Better logic in the fitting loop. No difference to results.
This commit is contained in:
@@ -436,19 +436,17 @@ int main(int argc, char* argv[]) {
|
||||
}
|
||||
}
|
||||
|
||||
float this_pede_val1[1] = {pede_val1[i]};
|
||||
float this_pede_val2[1] = {pede_val2[i]};
|
||||
if (r1_adc.size() > 1 && r3_adc.size() > 1) {
|
||||
|
||||
TGraph *grap_p1 = new TGraph(1,pede_ene,this_pede_val1);
|
||||
TGraph *grap_p2 = new TGraph(1,pede_ene,this_pede_val2);
|
||||
|
||||
TGraphErrors *grap_g1 = new TGraphErrors(r1_adc.size(),&(r1_filter[0]),&(r1_adc[0]),&(r1_ferr[0]),&(r1_adcerr[0]));
|
||||
TGraphErrors *grap_g2 = new TGraphErrors(r3_adc.size(),&(r3_filter[0]),&(r3_adc[0]),&(r3_ferr[0]),&(r3_adcerr[0]));
|
||||
float this_pede_val1[1] = {pede_val1[i]};
|
||||
float this_pede_val2[1] = {pede_val2[i]};
|
||||
|
||||
TGraph *grap_p1 = new TGraph(1,pede_ene,this_pede_val1);
|
||||
TGraph *grap_p2 = new TGraph(1,pede_ene,this_pede_val2);
|
||||
|
||||
TGraphErrors *grap_g1 = new TGraphErrors(r1_adc.size(),&(r1_filter[0]),&(r1_adc[0]),&(r1_ferr[0]),&(r1_adcerr[0]));
|
||||
TGraphErrors *grap_g2 = new TGraphErrors(r3_adc.size(),&(r3_filter[0]),&(r3_adc[0]),&(r3_ferr[0]),&(r3_adcerr[0]));
|
||||
|
||||
TF1 *fit2;
|
||||
TF1 *fit3;
|
||||
|
||||
if (r1_adc.size() > 1) {
|
||||
double rangemin2 = 0;
|
||||
double rangemax2 = 0;
|
||||
if (module_str == "032") {
|
||||
@@ -458,7 +456,7 @@ int main(int argc, char* argv[]) {
|
||||
rangemin2 = 0.075;
|
||||
rangemax2 = 2.5;
|
||||
}
|
||||
fit2 = new TF1("fit2","[0]+[1]*x",rangemin2,rangemax2);
|
||||
TF1 *fit2 = new TF1("fit2","[0]+[1]*x",rangemin2,rangemax2);
|
||||
fit2->SetParameter(0, 10000.);
|
||||
fit2->SetParameter(1, -0.1);
|
||||
fit2->SetLineColor(kGreen+2);
|
||||
@@ -481,9 +479,7 @@ int main(int argc, char* argv[]) {
|
||||
}
|
||||
}
|
||||
diffFromLinG1map->Fill(i%NC,i/NC,g1residsum/g1residn);
|
||||
}
|
||||
|
||||
if (r3_adc.size() > 1) {
|
||||
|
||||
double rangemin3 = 0;
|
||||
double rangemax3 = 0;
|
||||
if (module_str == "032" || module_str == "022" || module_str == "021") {
|
||||
@@ -493,7 +489,7 @@ int main(int argc, char* argv[]) {
|
||||
rangemin3 = 7.5;
|
||||
rangemax3 = *max_element(r3_filter.begin(),r3_filter.end());
|
||||
}
|
||||
fit3 = new TF1("fit3","[0]+[1]*x",rangemin3, rangemax3);
|
||||
TF1 *fit3 = new TF1("fit3","[0]+[1]*x",rangemin3, rangemax3);
|
||||
fit3->SetParameter(0, 10000.);
|
||||
fit3->SetParameter(1, -0.01);
|
||||
fit3->SetLineColor(kRed);
|
||||
@@ -514,9 +510,7 @@ int main(int argc, char* argv[]) {
|
||||
g2residn = g2residn + 1.;
|
||||
}
|
||||
diffFromLinG2map->Fill(i%NC,i/NC,g2residsum/g2residn);
|
||||
}
|
||||
|
||||
if (r1_adc.size() > 1 && r3_adc.size() > 1) {
|
||||
|
||||
g1overg2hist->Fill(fit2->GetParameter(1) / fit3->GetParameter(1));
|
||||
g1overg2erhist->Fill(abs(fit2->GetParameter(1)/fit3->GetParameter(1))*sqrt(pow((fit2->GetParError(1)/fit2->GetParameter(1)),2) + pow((fit3->GetParError(1)/fit3->GetParameter(1)),2)));
|
||||
g1overg2map->Fill(i%NC,i/NC,fit2->GetParameter(1) / fit3->GetParameter(1));
|
||||
@@ -541,104 +535,102 @@ int main(int argc, char* argv[]) {
|
||||
g1overg2_isBulk->Fill(fit2->GetParameter(1) / fit3->GetParameter(1));
|
||||
}
|
||||
|
||||
}
|
||||
if ((i >= 58000 && i < 58000+10) || // bulk
|
||||
(i >= 10 && i < 10+10) || // edge
|
||||
(i >= 1024+10 && i < 1024+10+10) || // inner edge
|
||||
(i >= (256*1024)+10 && i < (256*1024)+10+10) || // double
|
||||
(i >= (257*1024)+10 && i < (257*1024)+10+10) || // next to double
|
||||
(i == (255*1024)+255) // quad
|
||||
) {
|
||||
|
||||
string pixel_type = "x";
|
||||
if (i >= 58000 && i < 58000+10) {
|
||||
pixel_type = "b";
|
||||
} else if (i >= 10 && i < 10+10) {
|
||||
pixel_type = "e";
|
||||
} else if (i >= 1024+10 && i < 1024+10+10) {
|
||||
pixel_type = "ie";
|
||||
} else if (i >= (256*1024)+10 && i < (256*1024)+10+10) {
|
||||
pixel_type = "d";
|
||||
} else if (i >= (257*1024)+10 && i < (257*1024)+10+10) {
|
||||
pixel_type = "ntd";
|
||||
} else if (i == (255*1024)+255) {
|
||||
pixel_type = "q";
|
||||
}
|
||||
|
||||
mapcanvas->SetLeftMargin(0.13);
|
||||
mapcanvas->SetRightMargin(0.05);
|
||||
|
||||
grap_p1->SetMarkerColor(kGreen+2);
|
||||
grap_p2->SetMarkerColor(kRed);
|
||||
grap_p1->SetMarkerStyle(20);
|
||||
grap_p2->SetMarkerStyle(20);
|
||||
grap_g1->SetMarkerStyle(20);
|
||||
grap_g2->SetMarkerStyle(20);
|
||||
grap_g1->SetMarkerColor(kGreen+2);
|
||||
grap_g2->SetMarkerColor(kRed);
|
||||
grap_g1->SetLineColor(kGreen+2);
|
||||
grap_g2->SetLineColor(kRed);
|
||||
|
||||
if ((i >= 58000 && i < 58000+10) || // bulk
|
||||
(i >= 10 && i < 10+10) || // edge
|
||||
(i >= 1024+10 && i < 1024+10+10) || // inner edge
|
||||
(i >= (256*1024)+10 && i < (256*1024)+10+10) || // double
|
||||
(i >= (257*1024)+10 && i < (257*1024)+10+10) || // next to double
|
||||
(i == (255*1024)+255) // quad
|
||||
) {
|
||||
TF1 *fit2_e = new TF1("fit2_e","[0]+[1]*x",0.009,1.1E3);
|
||||
TF1 *fit3_e = new TF1("fit3_e","[0]+[1]*x",0.009,1.1E3);
|
||||
|
||||
string pixel_type = "x";
|
||||
if (i >= 58000 && i < 58000+10) {
|
||||
pixel_type = "b";
|
||||
} else if (i >= 10 && i < 10+10) {
|
||||
pixel_type = "e";
|
||||
} else if (i >= 1024+10 && i < 1024+10+10) {
|
||||
pixel_type = "ie";
|
||||
} else if (i >= (256*1024)+10 && i < (256*1024)+10+10) {
|
||||
pixel_type = "d";
|
||||
} else if (i >= (257*1024)+10 && i < (257*1024)+10+10) {
|
||||
pixel_type = "ntd";
|
||||
} else if (i == (255*1024)+255) {
|
||||
pixel_type = "q";
|
||||
fit2_e->SetParameters(fit2->GetParameter(0),fit2->GetParameter(1));
|
||||
fit2_e->SetLineColor(kGreen+2);
|
||||
fit2_e->SetLineStyle(2);
|
||||
fit3_e->SetParameters(fit3->GetParameter(0),fit3->GetParameter(1));
|
||||
fit3_e->SetLineColor(kRed);
|
||||
fit3_e->SetLineStyle(2);
|
||||
|
||||
grap_g1->GetXaxis()->SetLimits(0.009,1.1E2);
|
||||
grap_g1->SetMinimum(0);
|
||||
grap_g1->SetMaximum(20000);
|
||||
grap_g1->GetXaxis()->SetTitle("Integration time [#mus]");
|
||||
grap_g1->GetYaxis()->SetTitle("ADC [ADU]");
|
||||
grap_g1->GetYaxis()->SetTitleOffset(0.9);
|
||||
grap_g1->Draw("AP");
|
||||
fit2->Draw("same");
|
||||
mapcanvas->Update();
|
||||
TPaveStats *st0 = (TPaveStats*)grap_g1->FindObject("stats");
|
||||
st0->SetX1NDC(0.2);
|
||||
st0->SetX2NDC(0.54);
|
||||
st0->SetY1NDC(0.71);
|
||||
st0->SetY2NDC(0.90);
|
||||
st0->SetBorderSize(0);
|
||||
st0->SetTextColor(kGreen+2);
|
||||
grap_g2->Draw("P");
|
||||
fit3->Draw("same");
|
||||
mapcanvas->Update();
|
||||
TPaveStats *st1 = (TPaveStats*)grap_g2->FindObject("stats");
|
||||
st1->SetX1NDC(0.6);
|
||||
st1->SetX2NDC(0.94);
|
||||
st1->SetY1NDC(0.71);
|
||||
st1->SetY2NDC(0.90);
|
||||
st1->SetBorderSize(0);
|
||||
st1->SetTextColor(kRed);
|
||||
|
||||
fit2_e->Draw("same");
|
||||
fit3_e->Draw("same");
|
||||
grap_p1->Draw("P");
|
||||
grap_p2->Draw("P");
|
||||
mapcanvas->SetLogx();
|
||||
sprintf(savename,"plots/M%s/CurrentSource/pixel_%s_%d.png", module_str.c_str(), pixel_type.c_str(), i);
|
||||
mapcanvas->SaveAs((const char *)(savename));
|
||||
mapcanvas->SetLogx(0);
|
||||
|
||||
mapcanvas->SetLeftMargin(0.1);
|
||||
mapcanvas->SetRightMargin(0.13);
|
||||
delete fit2_e;
|
||||
delete fit3_e;
|
||||
}
|
||||
|
||||
mapcanvas->SetLeftMargin(0.13);
|
||||
mapcanvas->SetRightMargin(0.05);
|
||||
|
||||
grap_p1->SetMarkerColor(kGreen+2);
|
||||
grap_p2->SetMarkerColor(kRed);
|
||||
grap_p1->SetMarkerStyle(20);
|
||||
grap_p2->SetMarkerStyle(20);
|
||||
grap_g1->SetMarkerStyle(20);
|
||||
grap_g2->SetMarkerStyle(20);
|
||||
grap_g1->SetMarkerColor(kGreen+2);
|
||||
grap_g2->SetMarkerColor(kRed);
|
||||
grap_g1->SetLineColor(kGreen+2);
|
||||
grap_g2->SetLineColor(kRed);
|
||||
|
||||
TF1 *fit2_e = new TF1("fit2_e","[0]+[1]*x",0.009,1.1E3);
|
||||
TF1 *fit3_e = new TF1("fit3_e","[0]+[1]*x",0.009,1.1E3);
|
||||
|
||||
fit2_e->SetParameters(fit2->GetParameter(0),fit2->GetParameter(1));
|
||||
fit2_e->SetLineColor(kGreen+2);
|
||||
fit2_e->SetLineStyle(2);
|
||||
fit3_e->SetParameters(fit3->GetParameter(0),fit3->GetParameter(1));
|
||||
fit3_e->SetLineColor(kRed);
|
||||
fit3_e->SetLineStyle(2);
|
||||
|
||||
grap_g1->GetXaxis()->SetLimits(0.009,1.1E2);
|
||||
grap_g1->SetMinimum(0);
|
||||
grap_g1->SetMaximum(20000);
|
||||
grap_g1->GetXaxis()->SetTitle("Integration time [#mus]");
|
||||
grap_g1->GetYaxis()->SetTitle("ADC [ADU]");
|
||||
grap_g1->GetYaxis()->SetTitleOffset(0.9);
|
||||
grap_g1->Draw("AP");
|
||||
fit2->Draw("same");
|
||||
mapcanvas->Update();
|
||||
TPaveStats *st0 = (TPaveStats*)grap_g1->FindObject("stats");
|
||||
st0->SetX1NDC(0.2);
|
||||
st0->SetX2NDC(0.54);
|
||||
st0->SetY1NDC(0.71);
|
||||
st0->SetY2NDC(0.90);
|
||||
st0->SetBorderSize(0);
|
||||
st0->SetTextColor(kGreen+2);
|
||||
grap_g2->Draw("P");
|
||||
fit3->Draw("same");
|
||||
mapcanvas->Update();
|
||||
TPaveStats *st1 = (TPaveStats*)grap_g2->FindObject("stats");
|
||||
st1->SetX1NDC(0.6);
|
||||
st1->SetX2NDC(0.94);
|
||||
st1->SetY1NDC(0.71);
|
||||
st1->SetY2NDC(0.90);
|
||||
st1->SetBorderSize(0);
|
||||
st1->SetTextColor(kRed);
|
||||
|
||||
fit2_e->Draw("same");
|
||||
fit3_e->Draw("same");
|
||||
grap_p1->Draw("P");
|
||||
grap_p2->Draw("P");
|
||||
mapcanvas->SetLogx();
|
||||
sprintf(savename,"plots/M%s/CurrentSource/pixel_%s_%d.png", module_str.c_str(), pixel_type.c_str(), i);
|
||||
mapcanvas->SaveAs((const char *)(savename));
|
||||
mapcanvas->SetLogx(0);
|
||||
|
||||
mapcanvas->SetLeftMargin(0.1);
|
||||
mapcanvas->SetRightMargin(0.13);
|
||||
delete fit2_e;
|
||||
delete fit3_e;
|
||||
}
|
||||
|
||||
delete grap_g1;
|
||||
delete grap_g2;
|
||||
if (r1_adc.size() > 1) {
|
||||
delete fit2;
|
||||
}
|
||||
if (r3_adc.size() > 1) {
|
||||
delete fit3;
|
||||
delete grap_p1;
|
||||
delete grap_p2;
|
||||
delete fit2;
|
||||
delete fit3;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user