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:
redford_s
2017-12-05 09:08:09 +01:00
parent f5f82310bb
commit e724e2cbb8
+94 -42
View File
@@ -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","");