Better logic in the fitting loop. No difference to results.

This commit is contained in:
redford_s
2017-04-04 11:07:18 +02:00
parent 8d65c4fe4e
commit 9712e26d98

View File

@@ -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;
}
}
}