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:
@ -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);
|
||||
|
Reference in New Issue
Block a user