47 int fbcolors [9] = {100, 94, 90, 80, 418, 66, 60, 221, 6};
51 gStyle->SetOptStat(
" ");
190 char*
c1 =
"/nova/ana/users/mcampbel/calibration_thirdanalysis/original_mc/fdmc/gain100/uncorrected_attenprofs_fbandconsolidatedbyview/calib_hists_thirdanalysis_fdmc_gain100.root";
191 char* cthreshold1 =
"/nova/ana/users/mcampbel/calibration_thirdanalysis/original_mc/fdmc/gain100/thresh/thresh_fits_thirdanalysis_fd_gain100_fb0-8.root";
192 char* cattenuation1 =
"/nova/ana/users/mcampbel/calibration_thirdanalysis/original_mc/fdmc/gain100/corrected_attenprofs/Atten_Fit_Results.root";
220 char*
c2 =
"/nova/ana/users/mcampbel/calibration_thirdanalysis/trajectoryhits/fdmc_gain140/uncorrected_attenprofs/calibhists_trajhits_fdmc_gain140.root";
221 char* cthreshold2 =
"/nova/ana/users/mcampbel/calibration_thirdanalysis/trajectoryhits/fdmc_gain140/thresh/thresh_fits_thirdanalysis_trajhits_fd_gain140_fb0-8.root";
222 char* cattenuation2 =
"/nova/ana/users/mcampbel/calibration_thirdanalysis/trajectoryhits/fdmc_gain140/corrected_attenprofs/Atten_Fit_Results.root";
244 analysis1 =
"3rd_analysis";
245 analysis2 =
"Updated light levels";
247 hist1 =
"h_WPE_corr_xy";
248 hist2 =
"h_WPE_corr_xy";
257 if(
mc) mcdata =
"mc";
258 if(
data) mcdata =
"data";
274 if(
mc) mcdata =
"mc";
275 if(
data) mcdata =
"data";
314 TFile*
f1 =
new TFile(c1,
"read");
315 TFile*
f2 =
new TFile(c2,
"read");
326 TProfile* ProfileX_1 [9];
327 TProfile* ProfileX_2 [9];
331 if(f1->GetListOfKeys()->Contains(
"calib"))
332 h2D_1[0] = (TH2F*)f1->Get(
"calib/"+hist1+
"_in"+viewStr);
333 if(f1->GetListOfKeys()->Contains(
"make")){
334 h2D_1[0] = (TH2F*)f1->Get(
"make/"+hist1+
"_in"+viewStr);
337 ProfileX_1[0] = h2D_1[0]->ProfileX();
338 if(det==
"nd" && mcdata==
"data") ProfileX_1[0]->Rebin();
341 if(f1->GetListOfKeys()->Contains(
"calib")) histdir =
"calib/";
342 else if(f1->GetListOfKeys()->Contains(
"make")) histdir =
"make/";
343 for(
int fiberbrightness=0;fiberbrightness < 9;fiberbrightness++){
344 TString fbStr = Form(
"_fb%i", fiberbrightness);
345 h2D_1[fiberbrightness] = (TH2F*)f1->Get(histdir+hist1+
"_in"+viewStr+fbStr);
346 ProfileX_1[fiberbrightness] = h2D_1[fiberbrightness]->ProfileX();
353 if(f2->GetListOfKeys()->Contains(
"calib")) histdir =
"calib/";
354 else if(f2->GetListOfKeys()->Contains(
"make")) histdir =
"make/";
355 for(
int fiberbrightness=0;fiberbrightness < 9;fiberbrightness++){
356 TString fbStr = Form(
"_fb%i", fiberbrightness);
357 h2D_2[fiberbrightness] = (TH2F*)f2->Get(histdir+hist2+
"_in"+viewStr+fbStr);
358 ProfileX_2[fiberbrightness] = h2D_2[fiberbrightness]->ProfileX();
361 if(f2->GetListOfKeys()->Contains(
"calib"))
362 h2D_2[0] = (TH2F*)f2->Get(
"calib/"+hist2+
"_in"+viewStr);
363 else if(f2->GetListOfKeys()->Contains(
"make"))
364 h2D_2[0] = (TH2F*)f2->Get(
"make/"+hist2+
"_in"+viewStr);
365 ProfileX_2[0] = h2D_2[0]->ProfileX();
366 if(det==
"nd" && mcdata==
"data") ProfileX_2[0]->Rebin();
372 HistogramAttr1D(ProfileX_1[0],
"W (cm)",
"Uncorrected PE/cm", ProfileX_1[0]->
GetXaxis()->GetBinCenter(1), ProfileX_1[0]->
GetXaxis()->GetBinCenter(ProfileX_1[0]->
GetXaxis()->GetNbins()), 0, 60, kBlack);
373 ProfileX_1[0]->Draw();
374 ProfileX_1[0]->SetLineColor(kBlack);
377 for(
int fiberbrightness=0;fiberbrightness < 9;fiberbrightness++){
378 ProfileX_2[fiberbrightness]->SetLineColor(
fbcolors[fiberbrightness]);
379 ProfileX_2[fiberbrightness]->Draw(
"same");
381 ProfileX_1[fiberbrightness]->SetLineColor(
fbcolors[fiberbrightness]);
382 ProfileX_1[fiberbrightness]->SetLineStyle(kDotted);
383 if(fiberbrightness > 0) ProfileX_1[fiberbrightness]->Draw(
"same");
387 ProfileX_2[0]->SetLineColor(
kRed);
388 ProfileX_2[0]->Draw(
"same");
391 TLegend *
legend =
new TLegend(.12,.5,.88,.90);
392 legend->SetBorderSize(0);
393 legend->SetFillStyle(0);
394 legend->AddEntry((TObject*)0, det+
" "+mcdata,
" ");
395 if(!
manytomany) legend->AddEntry(ProfileX_1[0], analysis1+
" "+viewStr+
" view");
397 for(
int fiberbrightness=0;fiberbrightness < 9;fiberbrightness++){
398 TString fbStr = Form(
"FB %i", fiberbrightness);
399 legend->AddEntry(ProfileX_1[fiberbrightness], analysis1+
" "+viewStr+
" view "+fbStr);
403 for(
int fiberbrightness=0;fiberbrightness < 9;fiberbrightness++){
404 TString fbStr = Form(
"FB %i", fiberbrightness);
405 legend->AddEntry(ProfileX_2[fiberbrightness], analysis2+
" "+viewStr+
" view "+fbStr);
408 legend->AddEntry(ProfileX_2[0], analysis2+
" "+viewStr+
" view");
413 gPad->Print(
"Images/uncorrected_PEcm_vs_w_"+det+
"_"+mcdata+
"_"+analysis1+
"_vs_"+analysis2+
"_"+viewstr+
"view.pdf");
416 for(
int fiberbrightness=0;fiberbrightness < 9;fiberbrightness++){
418 ProfileX_1[fiberbrightness]->SetMinimum(0);
419 ProfileX_1[fiberbrightness]->SetMaximum(60);
420 ProfileX_1[fiberbrightness]->SetLineColor(kBlack);
421 ProfileX_1[fiberbrightness]->SetLineStyle(1);
422 ProfileX_1[fiberbrightness]->SetMarkerColor(kBlack);
423 ProfileX_1[fiberbrightness]->Draw();
424 ProfileX_2[fiberbrightness]->SetLineColor(
kRed);
425 ProfileX_2[fiberbrightness]->SetMarkerColor(
kRed);
426 ProfileX_2[fiberbrightness]->Draw(
"same");
428 fbstr.Form(
"fb%i", fiberbrightness);
429 TLegend * oneFBlegend =
new TLegend(0.12, 0.7, 0.5, 0.88);
430 oneFBlegend->SetBorderSize(0);
431 oneFBlegend->AddEntry(ProfileX_1[fiberbrightness], analysis1+
" "+viewStr+
" view "+fbStr,
"l");
432 oneFBlegend->AddEntry(ProfileX_2[fiberbrightness], analysis2+
" "+viewStr+
" view "+fbStr,
"l");
434 gPad->SaveAs(
"Images/uncorrected_PEcm_vs_w_"+det+
"_"+mcdata+
"_"+analysis1+
"_vs_"+analysis2+
"_"+viewstr+
"view_"+fbstr+
".pdf");
441 TString hrationame[9];
443 for(
int fiberbrightness=0;fiberbrightness < 9;fiberbrightness++){
445 if(
fb) fbStr.Form(
"_fb%i", fiberbrightness);
446 hrationame[fiberbrightness].Form(
"hratio%s_%s_%s%s", det.Data(), mcdata.Data(), viewstr.Data(), fbStr.Data());
447 hratio[fiberbrightness] =
new TH1D(hrationame[fiberbrightness],
"",ProfileX_1[0]->
GetXaxis()->GetNbins(), ProfileX_1[0]->GetBinCenter(0), ProfileX_1[0]->GetBinCenter(ProfileX_1[0]->
GetXaxis()->GetNbins()));
451 for(
int fiberbrightness=0;fiberbrightness < 9;fiberbrightness++){
452 if(
manytomany)
Ratiohist(ProfileX_1[fiberbrightness], ProfileX_2[fiberbrightness], hratio[fiberbrightness],
fbcolors[fiberbrightness], 24,
"W (cm)",
"Ratio", 0.8, 1.2);
453 else Ratiohist(ProfileX_1[0], ProfileX_2[fiberbrightness], hratio[fiberbrightness],
fbcolors[fiberbrightness], 24,
"W (cm)",
"Ratio", 0.7, 1.6);
456 Ratiohist(ProfileX_1[0], ProfileX_2[0], hratio[0],
kRed, 24,
"W (cm)",
"Ratio", 0.85, 1.10);
459 TLegend *ratiolegend =
new TLegend(.12,.62,.64,.90);
460 ratiolegend->SetBorderSize(0);
461 ratiolegend->SetFillStyle(0);
463 ratiolegend->AddEntry((TObject*)0, det+
" "+mcdata,
" ");
465 for(
int fiberbrightness=0;fiberbrightness < 9;fiberbrightness++){
466 TString fbStr = Form(
" FB %i", fiberbrightness);
467 ratiolegend->AddEntry(hratio[fiberbrightness],analysis2+
" to "+analysis1+
" "+viewStr+
" view"+fbStr);
470 ratiolegend->AddEntry(hratio[0],analysis2+
" to "+analysis1+
" "+viewStr+
" view");
473 gPad->Print(
"Images/uncorrected_PEcm_vs_w_ratio_"+det+
"_"+mcdata+
"_"+analysis1+
"_vs_"+analysis2+
"_"+viewstr+
"view.pdf");
478 uncorrected_PE(c1, c1, det, mcdata, analysis1, analysis2, hist1, hist2);
483 TFile*
f1 =
new TFile(c1,
"read");
484 TFile*
f2 =
new TFile(c2,
"read");
486 int nbrightnesses = 9;
488 const TString viewstr =
view ?
"y" :
"x";
489 const TString viewStr =
view ?
"Y" :
"X";
491 TH1D* correction_1[9];
492 TH1D* corrections_to_compare[9];
497 if(var==
"W")correction_1[0] = (TH1D*)f1->Get(
"a"+viewstr+
"view");
498 else if(var==
"Cell") correction_1[0] = (TH1D*)f1->Get(
"c"+viewstr+
"view");
499 correction_1[0]->SetLineColor(kBlack);
504 for(
int fiberbrightness = 0; fiberbrightness < nbrightnesses; fiberbrightness++) {
506 fbStr.Form(
"_fb%i", fiberbrightness);
509 if(var==
"W")correction_1[fiberbrightness] = (TH1D*)f1->Get(
"a"+viewstr+
"view"+fbStr);
510 else if(var==
"Cell")correction_1[fiberbrightness] = (TH1D*)f1->Get(
"c"+viewstr+
"view"+fbStr);
511 correction_1[fiberbrightness]->SetLineColor(
fbcolors[fiberbrightness]);
512 correction_1[fiberbrightness]->SetLineStyle(kDotted);
515 if(var==
"W")corrections_to_compare[fiberbrightness] = (TH1D*)f2->Get(
"a"+viewstr+
"view"+fbStr);
516 else if(var==
"Cell")corrections_to_compare[fiberbrightness] = (TH1D*)f2->Get(
"c"+viewstr+
"view"+fbStr);
517 corrections_to_compare[fiberbrightness]->SetLineColor(
fbcolors[fiberbrightness]);
522 correction_2 = (TH1D*)f2->Get(
"a"+viewstr+
"view");
523 correction_2->SetLineColor(
kRed);
527 TLegend *
legend =
new TLegend(.5,.62,.88,.90);
528 legend->SetBorderSize(0);
529 legend->SetFillStyle(0);
530 legend->AddEntry((TObject*)0, det+
" "+mcdata,
" ");
531 if(!
manytomany) legend->AddEntry(correction_1[0], analysis1+
" "+viewStr+
" view");
533 for(
int fiberbrightness = 0; fiberbrightness < nbrightnesses; fiberbrightness++){
535 fbStr.Form(
"FB %i", fiberbrightness);
536 legend->AddEntry(correction_1[fiberbrightness], analysis1+
" "+viewStr+
" view "+fbStr);
540 for(
int fiberbrightness = 0; fiberbrightness < nbrightnesses; fiberbrightness++){
542 fbStr.Form(
"FB %i", fiberbrightness);
543 legend->AddEntry(corrections_to_compare[fiberbrightness], analysis2+
" "+viewStr+
" view "+fbStr);
546 else legend->AddEntry(correction_2, analysis2+
" "+viewStr+
" view");
550 if(correction_1[0]->FindObject(
"stats")){
551 TPaveStats* pave1 = (TPaveStats*)correction_1[0]->FindObject(
"stats");
554 if(!
fb && correction_2->FindObject(
"stats")){
555 TPaveStats* pave2 = (TPaveStats*)correction_2->FindObject(
"stats");
558 correction_1[0]->SetMinimum(1.1);
559 correction_1[0]->SetMaximum(1.5);
560 correction_1[0]->Draw();
562 for(
int fiberbrightness = 0; fiberbrightness < nbrightnesses; fiberbrightness++){
563 corrections_to_compare[fiberbrightness]->Draw(
"same");
564 if(
manytomany && fiberbrightness > 0) correction_1[fiberbrightness]->Draw(
"same");
567 else correction_2->Draw(
"same");
569 if(var==
"W") labelx =
"W (cm)";
570 if(var==
"Cell") labelx =
"Cell";
583 HistogramAttr1D(correction_1[0], labelx.Data(),
"correction factor", correction_1[0]->GetXaxis()->GetBinCenter(1), correction_1[0]->GetXaxis()->GetBinCenter(correction_1[0]->
GetXaxis()->GetNbins()), ylow, yhigh, kBlack);
587 gPad->Print(
"Images/thresholdshadowing_vs_"+var+
"_"+det+
"_"+mcdata+
"_"+analysis1+
"_vs_"+analysis2+
"_"+viewstr+
"view.pdf");
590 for(
int fiberbrightness = 0; fiberbrightness < nbrightnesses; ++fiberbrightness){
592 correction_1[fiberbrightness]->SetMinimum(1.1);
593 correction_1[fiberbrightness]->SetMaximum(1.6);
594 correction_1[fiberbrightness]->Draw();
595 corrections_to_compare[fiberbrightness]->Draw(
"same");
597 fbstr.Form(
"fb%i", fiberbrightness);
598 TLegend * oneFBlegend =
new TLegend(0.5, 0.7, 0.9, 0.9);
599 oneFBlegend->AddEntry(correction_1[fiberbrightness], analysis1+
" "+viewStr+
" view "+fbStr,
"l");
600 oneFBlegend->AddEntry(corrections_to_compare[fiberbrightness], analysis2+
" "+viewStr+
" view "+fbStr,
"l");
602 gPad->SaveAs(
"Images/thresholdshadowing_vs_"+var+
"_"+det+
"_"+mcdata+
"_"+analysis1+
"_vs_"+analysis2+
"_"+viewstr+
"view_"+fbstr+
".pdf");
612 TLegend *legend =
new TLegend(.5,.62,.88,.90);
613 legend->SetBorderSize(0);
614 legend->SetFillStyle(0);
616 legend->AddEntry((TObject*)0, det+
" "+mcdata,
" ");
618 for(
int fiberbrightness=0;fiberbrightness<nbrightnesses;fiberbrightness++){
619 const TString fbStr = Form(
"FB %i", fiberbrightness);
620 const TString hrationame = Form(
"hratio%s_%s_%s_FB%i_%s", det.Data(), mcdata.Data(), viewstr.Data(), fiberbrightness, var.Data());
622 std::cout << correction_1[0]->GetXaxis()->GetNbins() <<
" bins, ";
623 std::cout <<
"first bin center " << correction_1[0]->GetBinCenter(0);
625 hratio[fiberbrightness] =
new TH1D(hrationame,
"",correction_1[0]->
GetXaxis()->GetNbins(), correction_1[0]->GetBinCenter(0), correction_1[0]->GetBinCenter(correction_1[0]->
GetXaxis()->GetNbins()));
626 if(fiberbrightness==0){
628 hratio[0]->SetMinimum(0.95);
629 hratio[0]->SetMaximum(1.1);
631 std::cout <<
"made hratio[" << fiberbrightness <<
"], ";
632 if(
manytomany)
Ratiohist(correction_1[fiberbrightness], corrections_to_compare[fiberbrightness], hratio[fiberbrightness],
fbcolors[fiberbrightness], 24, labelx.Data(),
"Correction factor ratio", 0.97, 1.03);
633 else Ratiohist(correction_1[0], corrections_to_compare[fiberbrightness], hratio[fiberbrightness],
fbcolors[fiberbrightness], 24, labelx.Data(),
"Correction factor ratio", 0.9, 1.2);
635 legend->AddEntry(hratio[fiberbrightness],analysis2+
" "+fbStr+
" to "+analysis1+
" "+viewStr+
" view");
640 const TString hrationame = Form(
"hratio%s_%s_%s_%s", det.Data(), mcdata.Data(), viewstr.Data(), var.Data());
641 hratio[0] =
new TH1D(hrationame,
"",correction_1[0]->
GetXaxis()->GetNbins(), correction_1[0]->GetBinCenter(0), correction_1[0]->GetBinCenter(correction_1[0]->
GetXaxis()->GetNbins()));
642 Ratiohist(correction_1, correction_2, hratio[0],
kRed, 24, labelx.Data(),
"Correction factor ratio", 1.8, 1.2);
644 TLegend *legend =
new TLegend(.5,.62,.88,.90);
645 legend->SetBorderSize(0);
646 legend->SetFillStyle(0);
647 legend->SetTextSize(0.04);
648 legend->AddEntry((TObject*)0, det+
" "+mcdata,
" ");
649 legend->AddEntry(hratio[0],analysis2+
" to "+analysis1+
" "+viewStr+
" view");
653 gPad->Print(
"Images/thresholdshadowinge_vs_"+var+
"_ratio_"+det+
"_"+mcdata+
"_"+analysis1+
"_vs_"+analysis2+
"_"+viewstr+
"view.pdf");
659 int nbrightnesses = 9;
662 if(plane.Atoi() > 3 || plane.Atoi() < 2){
663 std::cout <<
"It is a ND muon catcher data file and has only 002, 003 planes. Plane " << plane <<
" is out of range. " <<
std::endl;
666 if(cell.Atoi() > 95 || cell.Atoi() < 0){
671 if(det.Data()==
"nd"){
672 if(mcdata.Data()==
"mc"){
673 if(plane.Atoi() > 3 || plane.Atoi() < 0){
674 std::cout <<
"It is a Monte Carlo file. Plane " << plane <<
" out of range. " <<
std::endl;
677 if(cell.Atoi() > 95 || cell.Atoi() < 0){
678 std::cout <<
"It is a Monte Carlo file. Cell " << cell <<
" out of range. " <<
std::endl;
682 if(mcdata.Data()==
"data"){
683 if(plane.Atoi() > 191 || plane.Atoi() < 0){
684 std::cout <<
"It is a ND data file and has only 191 main body planes. Plane " << plane <<
" out of range. " <<
std::endl;
687 if(cell.Atoi() > 95 || cell.Atoi() < 0){
694 if(det.Data()==
"fd"){
695 if(mcdata.Data()==
"mc"){
696 if(plane.Atoi() > 1 || plane.Atoi() < 0){
697 std::cout <<
"It is a Monte Carlo file. Plane " << plane <<
" out of range. " <<
std::endl;
700 if(cell.Atoi() > 383 || cell.Atoi() < 0){
701 std::cout <<
"It is a Monte Carlo file. Cell " << cell <<
" out of range. " <<
std::endl;
705 else if(mcdata.Data()==
"data"){
706 if(plane.Atoi() > 895 || plane.Atoi() < 0){
710 if(cell.Atoi() > 383 || cell.Atoi() < 0){
717 TFile*
f1 =
new TFile(c1,
"read");
718 TFile*
f2 =
new TFile(c2,
"read");
724 std::cout <<
"getting " << c1 <<
": plane_" << plane <<
"/Atten_Fit_" << plane <<
"_" << cell <<
std::endl;
727 h1[0] = (TH1F*)f1->Get(
"plane_"+plane+
"/Atten_Fit_"+plane+
"_"+cell);
729 Color_t color1 = kBlack;
731 h1[0]->GetListOfFunctions()->Print();
732 if(plane.Atoi()==0) fit1[0] = (TF1*)h1[0]->FindObject(
"fitX");
733 else if(plane.Atoi()==1) fit1[0] = (TF1*)h1[0]->FindObject(
"fitY");
734 else if(plane.Atoi()==2) fit1[0] = (TF1*)h1[0]->FindObject(
"fitMuX");
735 else if(plane.Atoi()==3) fit1[0] = (TF1*)h1[0]->FindObject(
"fitMuY");
736 if(fit1[0]) fit1[0]->SetLineColor(color1);
738 else if(mcdata==
"data"){
740 if(plane.Atoi()==2) fit1[0] = (TF1*)h1[0]->FindObject(
"fitMuX");
741 else if(plane.Atoi()==3) fit1[0] = (TF1*)h1[0]->FindObject(
"fitMuY");
742 if(fit1[0]) fit1[0]->SetLineColor(color1);
744 else if(plane.Atoi()%2==0) fit1[0] = (TF1*)h1[0]->FindObject(
"fitY");
745 else if(plane.Atoi()%2!=0) fit1[0] = (TF1*)h1[0]->FindObject(
"fitX");
746 if(fit1[0]) fit1[0]->SetLineColor(color1);
750 for(
int fiberbrightness=0;fiberbrightness<nbrightnesses;fiberbrightness++){
754 TString fbStr = Form(
"fb%i_", fiberbrightness);
755 h1[fiberbrightness] = (TH1F*)f1->Get(fbStr+
"plane_"+plane+
"/Atten_Fit_"+fbStr+plane+
"_"+cell);
758 h1[fiberbrightness]->GetListOfFunctions()->Print();
759 if(!h1[fiberbrightness])
std::cout <<
"Can't find h1 " << fiberbrightness <<
std::endl;
763 if(plane.Atoi()%2==0){
764 fit1[fiberbrightness] = (TF1*)h1[fiberbrightness]->FindObject(
"fitY");
768 fit1[fiberbrightness] = (TF1*)h1[fiberbrightness]->FindObject(
"fitX");
771 fit1[fiberbrightness]->SetLineColor(
fbcolors[fiberbrightness]);
772 fit1[fiberbrightness]->SetLineStyle(kDotted);
774 if(!fit1[fiberbrightness]) fit1[fiberbrightness] = (TF1*)h1[fiberbrightness]->FindObject(
"fitX");
775 fit1[fiberbrightness] = (TF1*)h1[fiberbrightness]->FindObject(
"fitMuX");
777 if(fit1[fiberbrightness]){
778 fit1[fiberbrightness]->SetLineColor(
fbcolors[fiberbrightness]);
779 fit1[fiberbrightness]->SetLineStyle(kDotted);
782 fit1[fiberbrightness] = (TF1*)h1[fiberbrightness]->FindObject(
"rollFitY");
783 if(fit1[fiberbrightness]) fit1[fiberbrightness]->SetLineColor(
fbcolors[fiberbrightness]);
792 for(
int fiberbrightness=0;fiberbrightness<nbrightnesses;fiberbrightness++){
794 TString fbStr = Form(
"fb%i_", fiberbrightness);
795 h2[fiberbrightness] = (TH1F*)f2->Get(fbStr+
"plane_"+plane+
"/Atten_Fit_"+fbStr+plane+
"_"+cell);
798 if(!h2[fiberbrightness])
std::cout <<
"Can't find h2 " << fiberbrightness <<
std::endl;
800 if(plane.Atoi()%2==0){
801 fit2[fiberbrightness] = (TF1*)h2[fiberbrightness]->FindObject(
"fitY");
804 if(!fit2[fiberbrightness]) fit2[fiberbrightness] = (TF1*)h2[fiberbrightness]->FindObject(
"fitX");
805 fit2[fiberbrightness] = (TF1*)h2[fiberbrightness]->FindObject(
"fitMuX");
806 if(fit2[fiberbrightness]) fit2[fiberbrightness]->SetLineColor(
fbcolors[fiberbrightness]);
808 fit2[fiberbrightness] = (TF1*)h2[fiberbrightness]->FindObject(
"rollFitY");
809 if(fit2[fiberbrightness]) fit2[fiberbrightness]->SetLineColor(
fbcolors[fiberbrightness]);
813 h2[0] = (TH1F*)f2->Get(
"plane_"+plane+
"/Atten_Fit_"+plane+
"_"+cell);
815 Color_t color1 = kBlack;
816 Color_t color2 =
kRed;
818 if(mcdata==
"mc" && !
fb){
819 if(plane.Atoi()==0) fit2[0] = (TF1*)h2[0]->FindObject(
"fitX");
820 else if(plane.Atoi()==1) fit2[0] = (TF1*)h2[0]->FindObject(
"fitY");
821 else if(plane.Atoi()==2) fit2[0] = (TF1*)h2[0]->FindObject(
"fitMuX");
822 else if(plane.Atoi()==3) fit2[0] = (TF1*)h2[0]->FindObject(
"fitMuY");
823 if(fit2[0]) fit2[0]->SetLineColor(color2);
825 else if(mcdata==
"data" && !
fb){
827 if(plane.Atoi()==2) fit2[0] = (TF1*)h2[0]->FindObject(
"fitMuX");
828 else if(plane.Atoi()==3) fit2[0] = (TF1*)h2[0]->FindObject(
"fitMuY");
829 if(fit2[0]) fit2[0]->SetLineColor(color2);
831 else if(plane.Atoi()%2==0) fit2[0] = (TF1*)h2[0]->FindObject(
"fitY");
832 else if(plane.Atoi()%2!=0) fit2[0] = (TF1*)h2[0]->FindObject(
"fitX");
833 if(fit2[0]) fit2[0]->SetLineColor(color2);
841 h1[0]->SetMarkerStyle(24);
842 h1[0]->SetMaximum(50);
844 for(
int fiberbrightness=0;fiberbrightness<nbrightnesses;fiberbrightness++){
847 h1[fiberbrightness]->Draw(
"same");
848 h1[fiberbrightness]->SetLineStyle(kDotted);
849 h1[fiberbrightness]->SetMarkerColor(
fbcolors[fiberbrightness]);
850 h1[fiberbrightness]->SetMarkerStyle(25);
851 h1[fiberbrightness]->SetLineColor(
fbcolors[fiberbrightness]);
853 h2[fiberbrightness]->Draw(
"same");
854 h2[fiberbrightness]->SetLineColor(
fbcolors[fiberbrightness]);
855 h2[fiberbrightness]->SetMarkerColor(
fbcolors[fiberbrightness]);
856 h2[fiberbrightness]->SetMarkerStyle(24);
860 h2[0]->SetLineColor(color2);
861 h2[0]->SetMarkerColor(color2);
862 h2[0]->SetMarkerStyle(24);
865 TLegend *
legend =
new TLegend(.12,.4,.64,.90);
866 legend->SetBorderSize(0);
867 legend->SetFillStyle(0);
869 legend->AddEntry((TObject*)0, det+
" "+mcdata,
" ");
870 if(!
manytomany)legend->AddEntry(h1[0], analysis1);
872 for(
int fiberbrightness=0;fiberbrightness<nbrightnesses;fiberbrightness++){
873 TString fbStr = Form(
", FB %i", fiberbrightness);
874 legend->AddEntry(h1[fiberbrightness], analysis1+fbStr);
878 for(
int fiberbrightness=0;fiberbrightness<nbrightnesses;fiberbrightness++){
879 TString fbStr = Form(
", FB %i", fiberbrightness);
880 legend->AddEntry(h2[fiberbrightness], analysis2+fbStr);
883 legend->AddEntry(h2[0], analysis2);
886 gPad->Print(
"Images/Atten_Fit_"+det+
"_"+mcdata+
"_"+analysis1+
"_vs_"+analysis2+
"_"+plane+
"_"+cell+
".pdf");
889 for(
int fiberbrightness=0;fiberbrightness<nbrightnesses;fiberbrightness++){
891 h1[fiberbrightness]->Draw();
892 h2[fiberbrightness]->Draw(
"same");
893 TLegend * oneFBlegend =
new TLegend(0.5, 0.7, 0.9, 0.9);
894 const TString viewStr = (plane.Atoi()%2==0) ?
"Y" :
"X";
895 oneFBlegend->AddEntry(h1[fiberbrightness], analysis1+
" "+viewStr+
" view "+fbStr,
"l");
896 oneFBlegend->AddEntry(h2[fiberbrightness], analysis2+
" "+viewStr+
" view "+fbStr,
"l");
899 fbstr.Form(
"fb%i", fiberbrightness);
900 gPad->Print(
"Images/Atten_Fit_"+det+
"_"+mcdata+
"_"+analysis1+
"_vs_"+analysis2+
"_"+plane+
"_"+cell+
"_"+fbstr+
".pdf");
907 const TString hrationame = Form(
"hratio%s_%s_%s_%s", det.Data(), mcdata.Data(), plane.Data(), cell.Data());
909 TString hrationamearr[9];
911 for(
int fiberbrightness=0;fiberbrightness<nbrightnesses;fiberbrightness++){
912 hrationamearr[fiberbrightness] = Form(
"%s_fb%i", hrationame.Data(), fiberbrightness);
914 hratio[fiberbrightness] =
new TH1D(hrationamearr[fiberbrightness],
"",h1[0]->
GetXaxis()->GetNbins(), -800, 800);
915 if(
manytomany)
Ratiohist(h1[fiberbrightness], h2[fiberbrightness], hratio[fiberbrightness],
fbcolors[fiberbrightness], 24,
"W (cm)",
"Ratio of Mean PE/cm data points", 0.3, 2.0);
916 else Ratiohist(h1[0], h2[fiberbrightness], hratio[fiberbrightness],
fbcolors[fiberbrightness], 24,
"W (cm)",
"Ratio of Mean PE/cm data points", 0.3, 2.0);
919 hratio[0] = =
new TH1D(hrationame,
"",h1[0]->
GetXaxis()->GetNbins(), h1[0]->GetBinCenter(0), h1[0]->GetBinCenter(h1[0]->
GetXaxis()->GetNbins()));
920 Ratiohist(h1[0], h2[0], hratio[0],
kRed, 24,
"W (cm)",
"Ratio of Mean PE/cm data points", 0.3, 1.0);
923 TLegend *legend =
new TLegend(.12,.62,.64,.90);
924 legend->SetBorderSize(0);
925 legend->SetFillStyle(0);
926 legend->SetTextSize(0.04);
927 legend->AddEntry((TObject*)0, det+
" "+mcdata+
" : Plane "+plane+
" Cell "+cell,
" ");
929 for(
int fiberbrightness=0;fiberbrightness<nbrightnesses;fiberbrightness++){
930 TString fbStr = Form(
" FB %i", fiberbrightness);
931 legend->AddEntry(hratio[fiberbrightness],analysis2+fbStr+
" to "+analysis1);
934 legend->AddEntry(hratio[0],analysis2+
" to "+analysis1);
937 gPad->Print(
"Images/Atten_Fit_ratio_"+det+
"_"+mcdata+
"_"+analysis1+
"_vs_"+analysis2+
"_plane"+plane+
"_cell"+cell+
".pdf");
942 const TString hratiofitname = Form(
"hratiofit%s_%s_%s_%s", det.Data(), mcdata.Data(), plane.Data(), cell.Data());
943 TString hratiofitnamearr[9];
955 TH1D* hfit =
new TH1D(
"hfit",
"", x_bins, -x_limit, +x_limit);
957 HistogramAttr1D(hfit,
"W (cm)",
"Ratio of Mean PE/cm fitting curves", -x_limit, +x_limit, 0.5, 1.5, kWhite);
962 for(
int fiberbrightness=0;fiberbrightness<nbrightnesses;fiberbrightness++){
963 hratiofitnamearr[fiberbrightness] = Form(
"%s_fb%i", hratiofitname.Data(), fiberbrightness);
964 hratiofit[fiberbrightness] =
new TH1D(hratiofitnamearr[fiberbrightness],
"", x_bins, -x_limit, +x_limit);
965 Ratiofit(fit1[0], fit2[fiberbrightness], hratiofit[fiberbrightness], plane.Data(), cell.Data(),
fbcolors[fiberbrightness], 24,
"W (cm)",
"Ratio of Mean PE/cm fitting curves", 0.7, 2.0);
968 hratiofit[0] =
new TH1D(hratiofitname,
"", x_bins, -x_limit, +x_limit);
969 Ratiofit(fit1[0], fit2[0], hratiofit[0], plane.Data(), cell.Data(), color2, 24,
"W (cm)",
"Ratio of Mean PE/cm fitting curves", 0.55, 0.68);
972 TLegend *legend =
new TLegend(.12,.62,.64,.90);
973 legend->SetBorderSize(0);
974 legend->SetFillStyle(0);
975 legend->SetTextSize(0.04);
976 legend->AddEntry((TObject*)0, det+
" "+mcdata+
" : Plane "+plane+
" Cell "+cell,
" ");
979 for(
int fiberbrightness=0;fiberbrightness<nbrightnesses;fiberbrightness++){
980 TString fbStr = Form(
" FB %i", fiberbrightness);
981 legend->AddEntry(hratiofit[fiberbrightness],analysis2+fbStr+
" to "+analysis1);
984 legend->AddEntry(hratiofit,analysis2+
" to "+analysis1);
987 gPad->Print(
"Images/Atten_Fit_fitratio_"+det+
"_"+mcdata+
"_"+analysis1+
"_vs_"+analysis2+
"_plane"+plane+
"_cell"+cell+
".pdf");
997 FILE*
fout = fopen(
"uncalibrated_channels_"+det+
"_"+mcdata+
"_"+analysis1+
"_vs_"+analysis2+
".csv",
"w");
998 fprintf(fout,
"%s%50s%s\n", analysis1.Data(),
" ", analysis2.Data());
999 fprintf(fout,
"channel,coeff_exp,atten_length,background,chisq, %9s, channel,coeff_exp,atten_length,background,chisq\n",
" ");
1006 Float_t x_1, y_1, z_1, a_1, b_1, c_1, d_1, e_1, g_1;
1007 Float_t x_2, y_2, z_2, a_2, b_2,
c_2, d_2, e_2, g_2;
1008 Float_t chisq = 0.2;
1011 Int_t totalchannels1 = 0;
1012 Int_t totalchannels2 = 0;
1013 Int_t calibratedchannels1 = 0;
1014 Int_t calibratedchannels2 = 0;
1019 Double_t limit1D = 3.;
1020 Double_t limit2D = 1000.;
1022 if(det==
"nd" && mcdata==
"mc" ) { channels = 3063; }
1023 if(det==
"nd" && mcdata==
"data" ) { channels = 1003063; }
1024 if(det==
"fd" && mcdata==
"mc" ) { channels = 1383; }
1025 if(det==
"fd" && mcdata==
"data" ) { channels = 895383; }
1028 TH1F* hcoeffexp =
new TH1F(
"hcoeffexp",
"coeffexp difference distribution", 120, -limit1D, +limit1D );
1029 TH1F* hattenlength =
new TH1F(
"hattenlength",
"attenlength difference distribution", 600, -limit1D, +limit1D );
1030 TH1F* hbackground =
new TH1F(
"hbackground",
"background difference distribution", 120, -limit1D, +limit1D );
1031 TH1F* hchisq =
new TH1F(
"hchisq",
"chisq difference distribution", 600, -limit1D, +limit1D );
1033 TH2F* h2coeffexp =
new TH2F(
"h2coeffexp",
" " , 2*(Int_t)limit2D, -limit2D, limit2D, 2*(Int_t)limit2D, -limit2D, limit2D );
1034 TH2F* h2attenlength =
new TH2F(
"h2attenlength",
" " , 2*(Int_t)limit2D, -limit2D, limit2D, 2*(Int_t)limit2D, -limit2D, limit2D );
1035 TH2F* h2background =
new TH2F(
"h2background",
" " , 2*(Int_t)limit2D, -limit2D, limit2D, 2*(Int_t)limit2D, -limit2D, limit2D );
1036 TH2F* h2chisq =
new TH2F(
"h2chisq",
" ", 200,0.,2., 200,0.,2. );
1039 in_1 >> x_1 >> y_1 >> z_1 >> a_1 >> b_1 >> c_1 >> d_1 >> e_1 >> f_1 >> g_1;
1040 in_2 >> x_2 >> y_2 >> z_2 >> a_2 >> b_2 >> c_2 >> d_2 >> e_2 >> f_2 >> g_2;
1041 if(!in_1.good())
break;
1042 if(!in_2.good())
break;
1044 if(f_1<=channels && e_1 < chisq && e_2 < chisq){
1045 hcoeffexp->Fill((x_1 - x_2)/x_1);
1046 hattenlength->Fill((y_1 - y_2)/y_1);
1047 hbackground->Fill((z_1 - z_2)/z_1);
1049 h2coeffexp->Fill(x_2, x_1);
1050 h2attenlength->Fill(y_2, y_1);
1051 h2background->Fill(z_2, z_1);
1056 if(e_1<chisq) calibratedchannels1++;
1057 if(e_2<chisq) calibratedchannels2++;
1059 hchisq->Fill((e_1 - e_2)/e_1);
1060 h2chisq->Fill(e_2, e_1);
1062 if(e_1>=chisq || e_2>=chisq){
1063 fprintf(fout,
"%i,%g,%g,%g,%g,%20s,%i,%g,%g,%g,%g\n",f_1,x_1,y_1,z_1,e_1,
" ", f_2,x_2,y_2,z_2,e_2);
1064 out << f_1 << setw(22) << x_1 << setw(22) << y_1 << setw(22) << z_1 << setw(22) << e_1 << f_2 << setw(22) << x_2 << setw(22) << y_2 << setw(22) << z_2 << setw(22) << e_2 <<
endl;
1070 cout <<
"Total channels in "+analysis1+
" = " << totalchannels1 <<
" and calibrated channels = " << calibratedchannels1 <<
" = " << ((
float)calibratedchannels1/(
float)totalchannels1)*100. <<
" %." << endl;
1071 cout <<
"Total channels in "+analysis2+
" = " << totalchannels2 <<
" and calibrated channels = " << calibratedchannels2 <<
" = " << ((
float)calibratedchannels2/(
float)totalchannels2)*100. <<
" %." << endl;
1078 HistogramAttr1D(hcoeffexp,
"#Deltacoeffexp/coeffexp",
"# of channels", 0.5*hcoeffexp->GetXaxis()->GetBinCenter(1), 0.5*hcoeffexp->GetXaxis()->GetBinCenter(hcoeffexp->GetXaxis()->GetNbins()), 0., 7e5, kBlack);
1080 TLegend *
legend =
new TLegend(0.00, 0.60, 0.47, 0.93);
1081 legend->SetBorderSize(0);
1082 legend->SetFillStyle(0);
1083 legend->SetTextSize(0.05);
1084 legend->AddEntry((TObject*)0, det+
" "+mcdata,
" ");
1085 legend->AddEntry(hcoeffexp,
"#splitline{"+analysis1.Data()+
"}{vs "+analysis2.Data()+
"}",
"P");
1087 gPad->Print(
"Images/Delta_coeffexp_"+analysis1.Data()+
"_vs_"+analysis2+
"_"+det+
"_"+mcdata+
".pdf");
1093 HistogramAttr2D(h2coeffexp,
"coeffexp_{"+analysis2+
"}",
"coeffexp_{"+analysis1+
"}",
" ", 0, 100, 0, 100);
1094 h2coeffexp->Draw(
"colz");
1095 gPad->Print(
"Images/coeffexp2D_"+analysis1+
"_vs_"+analysis2+
"_"+det+
"_"+mcdata+
".pdf");
1100 HistogramAttr1D(hattenlength,
"#Deltaattenlength/attenlength",
"# of channels", 0.5*hattenlength->GetXaxis()->GetBinCenter(1), 0.5*hattenlength->GetXaxis()->GetBinCenter(hattenlength->GetXaxis()->GetNbins()), 0., 166500, kBlack);
1101 hattenlength->Draw();
1102 TLegend *legend =
new TLegend(0.00, 0.60, 0.47, 0.93);
1103 legend->SetBorderSize(0);
1104 legend->SetFillStyle(0);
1105 legend->SetTextSize(0.05);
1106 legend->AddEntry((TObject*)0, det+
" "+mcdata,
" ");
1107 legend->AddEntry(hattenlength,
"#splitline{"+analysis1+
"}{vs "+analysis2+
"}",
"P");
1109 gPad->Print(
"Images/Delta_attenlength_"+analysis1+
"_vs_"+analysis2+
"_"+det+
"_"+mcdata+
".pdf");
1114 HistogramAttr2D(h2attenlength,
"attenlength_{"+analysis2+
"} (cm)",
"attenlength_{"+analysis1+
"} (cm)",
" ", 0, 1000, 0, 1000);
1115 h2attenlength->Draw(
"colz");
1116 gPad->Print(
"Images/attenlength2D_"+analysis1+
"_vs_"+analysis2+
"_"+det+
"_"+mcdata+
".pdf");
1121 HistogramAttr1D(hbackground,
"#Deltabackground/background",
"# of channels", 0.5*hbackground->GetXaxis()->GetBinCenter(1), 0.5*hbackground->GetXaxis()->GetBinCenter(hbackground->GetXaxis()->GetNbins()), 0., 3e4, kBlack);
1122 hbackground->Draw();
1123 TLegend *legend =
new TLegend(0.00, 0.60, 0.47, 0.93);
1124 legend->SetBorderSize(0);
1125 legend->SetFillStyle(0);
1126 legend->SetTextSize(0.05);
1127 legend->AddEntry((TObject*)0, det+
" "+mcdata,
" ");
1128 legend->AddEntry(hbackground,
"#splitline{"+analysis1+
"}{vs "+analysis2+
"}",
"P");
1130 gPad->Print(
"Images/Delta_background_"+analysis1+
"_vs_"+analysis2+
"_"+det+
"_"+mcdata+
".pdf");
1135 HistogramAttr2D(h2background,
"background_{"+analysis2+
"}",
"background_{"+analysis1+
"}",
" ", -50, 50, -50, 50);
1136 h2background->Draw(
"colz");
1137 gPad->Print(
"Images/background2D_"+analysis1+
"_vs_"+analysis2+
"_"+det+
"_"+mcdata+
".pdf");
1142 HistogramAttr1D(hchisq,
"#Deltachisq/chisq",
"# of channels", 0.5*hchisq->GetXaxis()->GetBinCenter(1), 0.5*hchisq->GetXaxis()->GetBinCenter(hchisq->GetXaxis()->GetNbins()), 0., 4200., kBlack);
1144 TLegend *legend =
new TLegend(0.00, 0.60, 0.47, 0.93);
1145 legend->SetBorderSize(0);
1146 legend->SetFillStyle(0);
1147 legend->SetTextSize(0.05);
1148 legend->AddEntry((TObject*)0, det+
" "+mcdata,
" ");
1149 legend->AddEntry(hchisq,
"#splitline{"+analysis1+
"}{vs "+analysis2+
"}",
"P");
1151 gPad->Print(
"Images/Delta_chisq_"+analysis1+
"_vs_"+analysis2+
"_"+det+
"_"+mcdata+
".pdf");
1156 TString chisq_tstring =
"#chi^{2}_{"+analysis2+
"}",
"#chi^{2}_{"+analysis1.Data+
"}";
1157 char * chisq_char = chisq_tstring.Data();
1158 HistogramAttr2D(h2chisq,
"#chi^{2}_{"+analysis2+
"}",
"#chi^{2}_{"+analysis1+
"}",
" ", 0, 0.5, 0, 0.5);
1159 h2chisq->Draw(
"colz");
1160 gPad->Print(
"Images/chisq2D_"+analysis1+
"_vs_"+analysis2+
"_"+det+
"_"+mcdata+
".pdf");
1169 void zerosstudy(TFile * f0, TFile *
f1, TFile *
f2, TFile *
f3, TFile *
f4, TFile * f5, TFile * f6, TFile * f7, TFile * f8)
1171 const int nbrightnesses = 9;
1173 TFile *
file[nbrightnesses] = {f0,
f1,
f2,
f3,
f4, f5, f6, f7, f8};
1174 TLegend * lzeros =
new TLegend(0.5, 0.1, 0.88, 0.5);
1175 lzeros->SetBorderSize(0);
1176 lzeros->SetFillStyle(0);
1177 lzeros->SetTextSize(0.05);
1179 TH1F * hZerosVsWX[nbrightnesses];
1180 TH1F * hZerosVsWY[nbrightnesses];
1181 TH1F * hNCalibVsWX[nbrightnesses];
1182 TH1F * hNCalibVsWY[nbrightnesses];
1183 TH1F * hZerosVsCellX[nbrightnesses];
1184 TH1F * hZerosVsCellY[nbrightnesses];
1185 TH1F * hNCalibVsCellX[nbrightnesses];
1186 TH1F * hNCalibVsCellY[nbrightnesses];
1188 TCanvas * cZerosVsWX =
new TCanvas;
1189 TCanvas * cZerosVsWY =
new TCanvas;
1190 TCanvas * cCalibVsWX =
new TCanvas;
1191 TCanvas * cCalibVsWY =
new TCanvas;
1192 TCanvas * cZerosVsCellX =
new TCanvas;
1193 TCanvas * cZerosVsCellY =
new TCanvas;
1194 TCanvas * cCalibVsCellX =
new TCanvas;
1195 TCanvas * cCalibVsCellY =
new TCanvas;
1197 for(
int fb = 0;
fb < nbrightnesses; ++
fb){
1199 fbstr.Form(
"fb%i",
fb);
1201 FBStr.Form(
"FB %i",
fb);
1204 hZerosVsWX[
fb] = (TH1F*)file[
fb]->
Get(
"thresh/nZerosVsW_xview_"+fbstr);
1205 hZerosVsWY[
fb] = (TH1F*)file[
fb]->
Get(
"thresh/nZerosVsW_yview_"+fbstr);
1208 hZerosVsCellX[
fb] = (TH1F*)file[
fb]->
Get(
"thresh/nZerosVsCell_xview_"+fbstr);
1209 hZerosVsCellY[
fb] = (TH1F*)file[
fb]->
Get(
"thresh/nZerosVsCell_yview_"+fbstr);
1213 hZerosVsWX[
fb]->SetTitle(
"XView");
1214 hZerosVsWY[
fb]->SetTitle(
"YView");
1220 hZerosVsCellX[
fb]->SetLineColor(
fbcolors[fb]);
1221 hZerosVsCellY[
fb]->SetLineColor(
fbcolors[fb]);
1225 lzeros->AddEntry(hZerosVsWX[fb], FBStr.Data(),
"l");
1228 hZerosVsWX[
fb]->Draw(
"same");
1230 hZerosVsWY[
fb]->Draw(
"same");
1235 cZerosVsCellX->cd();
1236 hZerosVsCellX[
fb]->Draw(
"same");
1237 cZerosVsCellY->cd();
1238 hZerosVsCellY[
fb]->Draw(
"same");
1239 cCalibVsCellX->cd();
1241 cCalibVsCellY->cd();
1248 cZerosVsWX->SaveAs(
"zeros_W_X.pdf");
1252 cZerosVsWY->SaveAs(
"zeros_W_Y.pdf");
1256 cCalibVsWX->SaveAs(
"calib_W_X.pdf");
1260 cCalibVsWY->SaveAs(
"calib_W_Y.pdf");
1264 cZerosVsWX->SaveAs(
"zeros_W_X.pdf");
1268 cZerosVsWY->SaveAs(
"zeros_W_Y.pdf");
1272 cCalibVsWX->SaveAs(
"calib_W_X.pdf");
1276 cCalibVsWY->SaveAs(
"calib_W_Y.pdf");
void Ratiohist(TH1 *h1, TH1 *h2, TH1 *hratio, Color_t color, Style_t mstyle, TString labelx, TString labely, Double_t lowy, Double_t highy)
void calibrationconstants(char *c1, char *c2, TString det, TString mcdata, TString analysis1, TString analysis2)
cout<< "Opened file "<< fin<< " ixs= "<< ixs<< endl;if(ixs==0) hhh=(TH1F *) fff-> Get("h1")
static constexpr Double_t c_2
bool thresholdshadowingplots
const XML_Char const XML_Char * data
bool calibrationconstantsplots
std::map< ToFCounter, std::vector< unsigned int > > channels
void HistogramAttr2D(TH2 *h, char *titlx_x, char *titlx_y, char *titlx_z, Double_t binlowx, Double_t binhighx, Double_t binlowy, Double_t binhighy)
correl_xv GetXaxis() -> SetDecimals()
attenuation_calibration_comparisons_withfb()
void thresholdshadowing(char *c1, char *c2, TString det, TString mcdata, TString analysis1, TString analysis2, TString var)
void Ratiofit(TF1 *f1, TF1 *f2, TH1 *hratio, TString plane, TString cell, Color_t color, Style_t mstyle, TString labelx, TString labely, Double_t lowy, Double_t highy)
uncorrected_PE(char *c1, char *c2, TString det, TString mcdata, TString analysis1, TString analysis2, TString hist1, TString hist2)
HistogramAttr1D(TH1 *h, char *title_x, char *title_y, Double_t binlowx, Double_t binhighx, Double_t binlowy, Double_t binhighy, Color_t lcolor)
void uncorrected_PE_tricellvstrajectory(char *c1, TString det, TString mcdata, TString analysis1, TString analysis2, TString hist1, TString hist2)
void corrected_PE(char *c1, char *c2, TString det, TString mcdata, TString analysis1, TString analysis2, TString plane, TString cell)
void zerosstudy(TFile *f0, TFile *f1, TFile *f2, TFile *f3, TFile *f4, TFile *f5, TFile *f6, TFile *f7, TFile *f8)