Big improvement to range finding. Idea is to fit only the ranges not affected by gain switching. Big improvement in consistency of results.

This commit is contained in:
redford_s
2017-11-10 19:09:42 +01:00
parent 089f99b0ef
commit cc8d2a89ea

View File

@ -344,6 +344,11 @@ int main(int argc, char* argv[]) {
TH1F* g0overg1hist_isQuad = new TH1F("g0overg1hist_isQuad","",100,-34,-24);
TH1F* g0overg1hist_isBulk = new TH1F("g0overg1hist_isBulk","",100,-34,-24);
TH1F* range0maxhist = new TH1F("range0maxhist","",100,-10.5,89.5);
TH1F* range1minhist = new TH1F("range1minhist","",100,-10.5,89.5);
TH2F* range0maxmap = new TH2F("range0maxmap","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
TH2F* range1minmap = new TH2F("range1minmap","",NC,-0.5,NC-0.5,NR,-0.5,NR-0.5);
for (int i = 0; i < NCH; i++) {
if (pixel_mask[i] == 1) {
@ -396,16 +401,9 @@ int main(int argc, char* argv[]) {
rangemin0 = 4;
}
double rangemax0 = 0;
if (module_str == "028") {
rangemax0 = 10;
} else if (module_str == "021" || module_str == "022") {
rangemax0 = 8;
} else if (module_str == "006") {
rangemax0 = 14;
} else if (module_str == "008" || module_str == "044" || module_str == "066" || module_str == "094") {
rangemax0 = 20;
}
double rangemax0 = *min_element(r1_filter.begin(),r1_filter.end()); // one less?
range0maxhist->Fill(rangemax0);
range0maxmap->Fill(i%NC,i/NC,rangemax0);
TF1 *fit1 = new TF1("fit1","[0]+[1]*x",rangemin0,rangemax0);
TF1 *fit2 = 0;
@ -427,12 +425,9 @@ int main(int argc, char* argv[]) {
fit1_e->SetLineColor(kBlue);
fit1_e->SetLineStyle(2);
double rangemin1 = 0;
if (module_str == "028" || module_str == "021" || module_str == "022") {
rangemin1 = 40;
} else if (module_str == "006" || module_str == "008" || module_str == "044" || module_str == "066" || module_str == "094") {
rangemin1 = 60;
}
double rangemin1 = *max_element(r0_filter.begin(),r0_filter.end()); // one more?
range1minhist->Fill(rangemin1);
range1minmap->Fill(i%NC,i/NC,rangemin1);
double rangemax1 = 80;
@ -597,6 +592,30 @@ int main(int argc, char* argv[]) {
}
}
range1minhist->GetXaxis()->SetTitle("Start of gain 1 fit [ADU]");
range1minhist->Draw();
sprintf(savename,"plots/M%s/DirectBeam/range1minhist.png", module_str.c_str());
mapcanvas->SaveAs((const char *)(savename));
range0maxhist->GetXaxis()->SetTitle("End of gain 0 fit [ADU]");
range0maxhist->Draw();
sprintf(savename,"plots/M%s/DirectBeam/range0maxhist.png", module_str.c_str());
mapcanvas->SaveAs((const char *)(savename));
range1minmap->GetXaxis()->SetTitle("Column");
range1minmap->GetYaxis()->SetTitle("Row");
range1minmap->GetYaxis()->SetTitleOffset(0.7);
range1minmap->Draw("colz");
sprintf(savename,"plots/M%s/DirectBeam/range1minmap.png", module_str.c_str());
mapcanvas->SaveAs((const char *)(savename));
range0maxmap->GetXaxis()->SetTitle("Column");
range0maxmap->GetYaxis()->SetTitle("Row");
range0maxmap->GetYaxis()->SetTitleOffset(0.7);
range0maxmap->Draw("colz");
sprintf(savename,"plots/M%s/DirectBeam/range0maxmap.png", module_str.c_str());
mapcanvas->SaveAs((const char *)(savename));
g1map->GetXaxis()->SetTitle("Column");
g1map->GetYaxis()->SetTitle("Row");
g1map->GetYaxis()->SetTitleOffset(0.7);