diff --git a/JFMC_CurrentSourceScan.cpp b/JFMC_CurrentSourceScan.cpp index 97dc56c..e745d6e 100644 --- a/JFMC_CurrentSourceScan.cpp +++ b/JFMC_CurrentSourceScan.cpp @@ -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; + } } }