Removed the idea of a mask. If one calib value is missing, it doesn't mean that the pixel should be masked in all gains.
Pixels which were masked or have missing calibrations are now set to the default value. Missing and default values are tracked per gain stage.
This commit is contained in:
+94
-42
@@ -130,8 +130,15 @@ int main(int argc, char* argv[]) {
|
||||
TH2F* g1mapcut = new TH2F("g1mapcut","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
|
||||
TH2F* g2mapcut = new TH2F("g2mapcut","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
|
||||
|
||||
TH2F* defaultvalmap = new TH2F("defaultvalmap","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
|
||||
TH2F* maskmap = new TH2F("maskmap","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
|
||||
TH2F* defaultvalmap_hg0 = new TH2F("defaultvalmap_hg0","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
|
||||
TH2F* defaultvalmap_g0 = new TH2F("defaultvalmap_g0","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
|
||||
TH2F* defaultvalmap_g1 = new TH2F("defaultvalmap_g1","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
|
||||
TH2F* defaultvalmap_g2 = new TH2F("defaultvalmap_g2","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
|
||||
|
||||
TH2F* missingvalmap_hg0 = new TH2F("missingvalmap_hg0","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
|
||||
TH2F* missingvalmap_g0 = new TH2F("missingvalmap_g0","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
|
||||
TH2F* missingvalmap_g1 = new TH2F("missingvalmap_g1","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
|
||||
TH2F* missingvalmap_g2 = new TH2F("missingvalmap_g2","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
|
||||
|
||||
sprintf(savename,"data/M%s/gainMaps_M%s.bin", module_str.c_str(), module_str.c_str());
|
||||
fstream outfile;
|
||||
@@ -140,47 +147,52 @@ int main(int argc, char* argv[]) {
|
||||
for (int i = 0; i < NCH; i++) {
|
||||
|
||||
// load existing values into maps
|
||||
// if the map exists but the calibration is missing, mask pixel
|
||||
// if the map doesn't exist, put the global default value
|
||||
|
||||
if (FL_HG0_gain_map) {
|
||||
if (FL_HG0_gain_map->GetBinContent((i%NC)+1,(i/NC)+1) != 0) {
|
||||
mapsObject->hg0VALs[i] = FL_HG0_gain_map->GetBinContent((i%NC)+1,(i/NC)+1);
|
||||
} else {
|
||||
maskmap->SetBinContent((i%NC)+1,(i/NC)+1,1);
|
||||
mapsObject->hg0VALs[i] = FL_HG0_gain_map->GetBinContent((i%NC)+1,(i/NC)+1);
|
||||
if (FL_HG0_gain_map->GetBinContent((i%NC)+1,(i/NC)+1) == 0) {
|
||||
missingvalmap_hg0->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
} else {
|
||||
mapsObject->hg0VALs[i] = 100.;
|
||||
defaultvalmap_hg0->Fill(i%NC,i/NC,1);
|
||||
missingvalmap_hg0->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
|
||||
if (FL_G0_gain_map) {
|
||||
if (FL_G0_gain_map->GetBinContent((i%NC)+1,(i/NC)+1) != 0) {
|
||||
mapsObject->g0VALs[i] = FL_G0_gain_map->GetBinContent((i%NC)+1,(i/NC)+1);
|
||||
} else {
|
||||
maskmap->SetBinContent((i%NC)+1,(i/NC)+1,1);
|
||||
mapsObject->g0VALs[i] = FL_G0_gain_map->GetBinContent((i%NC)+1,(i/NC)+1);
|
||||
if (FL_G0_gain_map->GetBinContent((i%NC)+1,(i/NC)+1) == 0) {
|
||||
missingvalmap_g0->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
} else {
|
||||
mapsObject->g0VALs[i] = 40;
|
||||
defaultvalmap_g0->Fill(i%NC,i/NC,1);
|
||||
missingvalmap_g0->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
|
||||
if (DB_ratio_map) {
|
||||
if (DB_ratio_map->GetBinContent((i%NC)+1,(i/NC)+1) != 0) {
|
||||
mapsObject->g1VALs[i] = mapsObject->g0VALs[i] / DB_ratio_map->GetBinContent((i%NC)+1,(i/NC)+1);
|
||||
} else {
|
||||
maskmap->SetBinContent((i%NC)+1,(i/NC)+1,1);
|
||||
missingvalmap_g1->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
} else {
|
||||
mapsObject->g1VALs[i] = -1.4;
|
||||
defaultvalmap_g1->Fill(i%NC,i/NC,1);
|
||||
missingvalmap_g1->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
|
||||
if (CS_ratio_map) {
|
||||
if (CS_ratio_map->GetBinContent((i%NC)+1,(i/NC)+1) != 0) {
|
||||
mapsObject->g2VALs[i] = mapsObject->g1VALs[i] / CS_ratio_map->GetBinContent((i%NC)+1,(i/NC)+1);
|
||||
} else {
|
||||
maskmap->SetBinContent((i%NC)+1,(i/NC)+1,1);
|
||||
missingvalmap_g2->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
} else {
|
||||
mapsObject->g2VALs[i] = -0.1;
|
||||
defaultvalmap_g2->Fill(i%NC,i/NC,1);
|
||||
missingvalmap_g2->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
|
||||
|
||||
@@ -255,36 +267,27 @@ int main(int argc, char* argv[]) {
|
||||
|
||||
for (int i = 0; i < NCH; i++) {
|
||||
|
||||
// crazy value check: replace with module default
|
||||
// crazy and missing value check: replace with module default
|
||||
// think of a way to get the limits better
|
||||
// do not give masked pixels the module default vals, keep them masked
|
||||
|
||||
if (mapsObject->hg0VALs[i] < 80 || mapsObject->hg0VALs[i] > 120) {
|
||||
if (mapsObject->hg0VALs[i] != 0) {
|
||||
mapsObject->hg0VALs[i] = defaultHG0;
|
||||
defaultvalmap->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
mapsObject->hg0VALs[i] = defaultHG0;
|
||||
defaultvalmap_hg0->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
|
||||
if (mapsObject->g0VALs[i] < 30 || mapsObject->g0VALs[i] > 48) {
|
||||
if (mapsObject->g0VALs[i] != 0) {
|
||||
mapsObject->g0VALs[i] = defaultG0;
|
||||
defaultvalmap->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
mapsObject->g0VALs[i] = defaultG0;
|
||||
defaultvalmap_g0->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
|
||||
if (mapsObject->g1VALs[i] < -2.0 || mapsObject->g1VALs[i] > -0.5) {
|
||||
if (mapsObject->g1VALs[i] != 0) {
|
||||
mapsObject->g1VALs[i] = defaultG1;
|
||||
defaultvalmap->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
mapsObject->g1VALs[i] = defaultG1;
|
||||
defaultvalmap_g1->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
|
||||
if (mapsObject->g2VALs[i] < -0.2 || mapsObject->g2VALs[i] > -0.02) {
|
||||
if (mapsObject->g2VALs[i] != 0) {
|
||||
mapsObject->g2VALs[i] = defaultG2;
|
||||
defaultvalmap->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
mapsObject->g2VALs[i] = defaultG2;
|
||||
defaultvalmap_g2->Fill(i%NC,i/NC,1);
|
||||
}
|
||||
|
||||
|
||||
@@ -437,19 +440,68 @@ int main(int argc, char* argv[]) {
|
||||
sprintf(savename,"plots/M%s/gain2_cut_M%s.png", module_str.c_str(), module_str.c_str());
|
||||
mapcanvas->SaveAs((const char *)(savename));
|
||||
|
||||
defaultvalmap->GetXaxis()->SetTitle("Column");
|
||||
defaultvalmap->GetYaxis()->SetTitle("Row");
|
||||
defaultvalmap->GetYaxis()->SetTitleOffset(0.7);
|
||||
defaultvalmap->Draw("colz");
|
||||
defaultvalmap->GetZaxis()->SetRangeUser(0,4);
|
||||
sprintf(savename,"plots/M%s/defaultvalmap_M%s.png", module_str.c_str(), module_str.c_str());
|
||||
defaultvalmap_hg0->GetXaxis()->SetTitle("Column");
|
||||
defaultvalmap_hg0->GetYaxis()->SetTitle("Row");
|
||||
defaultvalmap_hg0->GetYaxis()->SetTitleOffset(0.7);
|
||||
defaultvalmap_hg0->Draw("colz");
|
||||
defaultvalmap_hg0->GetZaxis()->SetRangeUser(0,1);
|
||||
sprintf(savename,"plots/M%s/defaultvalmap_hg0_M%s.png", module_str.c_str(), module_str.c_str());
|
||||
mapcanvas->SaveAs((const char *)(savename));
|
||||
|
||||
maskmap->GetXaxis()->SetTitle("Column");
|
||||
maskmap->GetYaxis()->SetTitle("Row");
|
||||
maskmap->GetYaxis()->SetTitleOffset(0.7);
|
||||
maskmap->Draw("colz");
|
||||
sprintf(savename,"plots/M%s/maskmap_M%s.png", module_str.c_str(), module_str.c_str());
|
||||
defaultvalmap_g0->GetXaxis()->SetTitle("Column");
|
||||
defaultvalmap_g0->GetYaxis()->SetTitle("Row");
|
||||
defaultvalmap_g0->GetYaxis()->SetTitleOffset(0.7);
|
||||
defaultvalmap_g0->Draw("colz");
|
||||
defaultvalmap_g0->GetZaxis()->SetRangeUser(0,1);
|
||||
sprintf(savename,"plots/M%s/defaultvalmap_g0_M%s.png", module_str.c_str(), module_str.c_str());
|
||||
mapcanvas->SaveAs((const char *)(savename));
|
||||
|
||||
defaultvalmap_g1->GetXaxis()->SetTitle("Column");
|
||||
defaultvalmap_g1->GetYaxis()->SetTitle("Row");
|
||||
defaultvalmap_g1->GetYaxis()->SetTitleOffset(0.7);
|
||||
defaultvalmap_g1->Draw("colz");
|
||||
defaultvalmap_g1->GetZaxis()->SetRangeUser(0,1);
|
||||
sprintf(savename,"plots/M%s/defaultvalmap_g1_M%s.png", module_str.c_str(), module_str.c_str());
|
||||
mapcanvas->SaveAs((const char *)(savename));
|
||||
|
||||
defaultvalmap_g2->GetXaxis()->SetTitle("Column");
|
||||
defaultvalmap_g2->GetYaxis()->SetTitle("Row");
|
||||
defaultvalmap_g2->GetYaxis()->SetTitleOffset(0.7);
|
||||
defaultvalmap_g2->Draw("colz");
|
||||
defaultvalmap_g2->GetZaxis()->SetRangeUser(0,1);
|
||||
sprintf(savename,"plots/M%s/defaultvalmap_g2_M%s.png", module_str.c_str(), module_str.c_str());
|
||||
mapcanvas->SaveAs((const char *)(savename));
|
||||
|
||||
missingvalmap_hg0->GetXaxis()->SetTitle("Column");
|
||||
missingvalmap_hg0->GetYaxis()->SetTitle("Row");
|
||||
missingvalmap_hg0->GetYaxis()->SetTitleOffset(0.7);
|
||||
missingvalmap_hg0->Draw("colz");
|
||||
missingvalmap_hg0->GetZaxis()->SetRangeUser(0,1);
|
||||
sprintf(savename,"plots/M%s/missingvalmap_hg0_M%s.png", module_str.c_str(), module_str.c_str());
|
||||
mapcanvas->SaveAs((const char *)(savename));
|
||||
|
||||
missingvalmap_g0->GetXaxis()->SetTitle("Column");
|
||||
missingvalmap_g0->GetYaxis()->SetTitle("Row");
|
||||
missingvalmap_g0->GetYaxis()->SetTitleOffset(0.7);
|
||||
missingvalmap_g0->Draw("colz");
|
||||
missingvalmap_g0->GetZaxis()->SetRangeUser(0,1);
|
||||
sprintf(savename,"plots/M%s/missingvalmap_g0_M%s.png", module_str.c_str(), module_str.c_str());
|
||||
mapcanvas->SaveAs((const char *)(savename));
|
||||
|
||||
missingvalmap_g1->GetXaxis()->SetTitle("Column");
|
||||
missingvalmap_g1->GetYaxis()->SetTitle("Row");
|
||||
missingvalmap_g1->GetYaxis()->SetTitleOffset(0.7);
|
||||
missingvalmap_g1->Draw("colz");
|
||||
missingvalmap_g1->GetZaxis()->SetRangeUser(0,1);
|
||||
sprintf(savename,"plots/M%s/missingvalmap_g1_M%s.png", module_str.c_str(), module_str.c_str());
|
||||
mapcanvas->SaveAs((const char *)(savename));
|
||||
|
||||
missingvalmap_g2->GetXaxis()->SetTitle("Column");
|
||||
missingvalmap_g2->GetYaxis()->SetTitle("Row");
|
||||
missingvalmap_g2->GetYaxis()->SetTitleOffset(0.7);
|
||||
missingvalmap_g2->Draw("colz");
|
||||
missingvalmap_g2->GetZaxis()->SetRangeUser(0,1);
|
||||
sprintf(savename,"plots/M%s/missingvalmap_g2_M%s.png", module_str.c_str(), module_str.c_str());
|
||||
mapcanvas->SaveAs((const char *)(savename));
|
||||
|
||||
TCanvas* c1 = new TCanvas("c1","");
|
||||
|
||||
Reference in New Issue
Block a user