532 std::string fname =
"/nova/ana/users/rbowles/RootFiles/CVNPhotonOptimization/CVNphoton_optimization_Grid.root ";
534 TFile
fin(fname.c_str());
538 std::vector<std::string> taxes_labels = {
"1Prong_CVN_Photon_ID"};
539 std::vector<std::string>
cut_labels = {
"totmc",
"NSel_Cuts",
"Nsig_fid_only",
"Nbkg_Cuts"};
542 for(
int ivar = 0; ivar < nvar; ivar++)
545 std::vector<ana::Spectrum*> calibup, calibdown;
546 std::vector<ana::Spectrum*> lightup, lightdown;
547 std::vector<ana::Spectrum*> fluxup, fluxdown;
548 std::vector<ana::Spectrum*> ckv, calib_shape;
549 std::vector<ana::Spectrum*> nominal;
550 std::vector<const ana::Spectrum*> xsecup, xsecdown;
553 for(
int icut = 0; icut < 4; icut++)
555 nominal.push_back(LoadFromFile<Spectrum>(fname,
"nominal/"+cut_labels[icut]+
"_"+taxes_labels[ivar]).
release());
556 calibup.push_back(LoadFromFile<Spectrum>(fname,
"calibpos/"+cut_labels[icut]+
"_"+taxes_labels[ivar]).
release());
557 calibdown.push_back(LoadFromFile<Spectrum>(fname,
"calibneg/"+cut_labels[icut]+
"_"+taxes_labels[ivar]).
release());
560 lightup.push_back(LoadFromFile<Spectrum>(fname,
"lightup/"+cut_labels[icut]+
"_"+taxes_labels[ivar]).
release());
561 lightdown.push_back(LoadFromFile<Spectrum>(fname,
"lightdown/"+cut_labels[icut]+
"_"+taxes_labels[ivar]).
release());
562 ckv.push_back(LoadFromFile<Spectrum>(fname,
"ckv/"+cut_labels[icut]+
"_"+taxes_labels[ivar]).
release());
563 calib_shape.push_back(LoadFromFile<Spectrum>(fname,
"calibshape/"+cut_labels[icut]+
"_"+taxes_labels[ivar]).
release());
566 std::vector<ana::Spectrum*> flux_univs;
567 std::vector<std::unique_ptr<ana::Spectrum> > xsec_univs;
570 for(
int iuniv = 0; iuniv < 100; iuniv++)
573 flux_univs.push_back(LoadFromFile<Spectrum>(fname,
"flux_"+cut_labels[icut]+
"_"+taxes_labels[ivar]+
"/spec"+
std::to_string(iuniv)).
release());
577 std::vector<ana::Spectrum*> fupdown;
579 fluxup.push_back(fupdown[0]);
580 fluxdown.push_back(fupdown[1]);
584 xsecup.push_back(verses.UpperSigma(MultiverseSpectra::kBandFromNominal));
585 xsecdown.push_back(verses.LowerSigma(MultiverseSpectra::kBandFromNominal));
593 TH1* Nbkg_Cuts_xsecdown = xsecdown[3]->ToTH1(
pot);
594 TH1* Nbkg_Cuts_xsecup = xsecup[3]->ToTH1(
pot);
595 TH1* Nbkg_Cuts_fluxdown = fluxdown[3]->ToTH1(
pot);
596 TH1* Nbkg_Cuts_fluxup = fluxup[3]->ToTH1(
pot);
597 TH1* Nbkg_Cuts_calib_shape = calib_shape[3]->ToTH1(
pot);
598 TH1* Nbkg_Cuts_ckv = ckv[3]->ToTH1(
pot);
599 TH1* Nbkg_Cuts_lightup = lightup[3]->ToTH1(
pot);
600 TH1* Nbkg_Cuts_lightdown = lightdown[3]->ToTH1(
pot);
602 TH1* Nbkg_Cuts_calibdown = calibdown[3]->ToTH1(
pot);
603 TH1* Nbkg_Cuts_calibup = calibup[3]->ToTH1(
pot);
607 std::vector<TH1*> vector_up_Nbkg_Cuts = {fluxup[3]->ToTH1(
pot), xsecup[3]->ToTH1(
pot), calibup[3]->ToTH1(
pot), lightup[3]->ToTH1(
pot), ckv[3]->ToTH1(
pot), calib_shape[3]->ToTH1(
pot)};
610 std::vector<TH1*> vector_dwn_Nbkg_Cuts = {fluxdown[3]->ToTH1(
pot), xsecdown[3]->ToTH1(
pot), calibdown[3]->ToTH1(
pot), lightdown[3]->ToTH1(
pot),ckv[3]->ToTH1(
pot), calib_shape[3]->ToTH1(
pot)};
612 TH1* hnom_Nbkg_Cuts = nominal[3]->ToTH1(
pot);
613 std::cout <<
"*************Bins nominal*************: " << hnom_Nbkg_Cuts->GetXaxis()->GetNbins() <<
std::endl;
614 hnom_Nbkg_Cuts->SetTitle(
";Prong CVN Gamma ID; Background Events/8.09 #times 10^{20}POT");
615 gROOT->ProcessLine(
".! mkdir -p plots");
617 TCanvas* Prong_CVN_Gamma_ID_Nbkg_Cuts =
new TCanvas(
"Prong_CVN_Gamma_ID_Nbkg_Cuts",
"Prong_CVN_Gamma_ID_Nbkg_Cuts");
618 Prong_CVN_Gamma_ID_Nbkg_Cuts->SetLeftMargin(0.15);
621 TLegend *
leg =
new TLegend(0.55,0.5,0.65,0.8);
622 leg-> SetTextFont(42);
624 leg->AddEntry(hnom_Nbkg_Cuts,
" NC #pi^{0} > 0.3 E");
643 TH1* NSel_Cuts_xsecdown = xsecdown[0]->ToTH1(
pot);
644 TH1* NSel_Cuts_xsecup = xsecup[0]->ToTH1(
pot);
645 TH1* NSel_Cuts_fluxdown = fluxdown[0]->ToTH1(
pot);
646 TH1* NSel_Cuts_fluxup = fluxup[0]->ToTH1(
pot);
647 TH1* NSel_Cuts_calib_shape = calib_shape[0]->ToTH1(
pot);
648 TH1* NSel_Cuts_ckv = ckv[0]->ToTH1(
pot);
649 TH1* NSel_Cuts_lightup = lightup[0]->ToTH1(
pot);
650 TH1* NSel_Cuts_lightdown = lightdown[0]->ToTH1(
pot);
652 TH1* NSel_Cuts_calibdown = calibdown[0]->ToTH1(
pot);
653 TH1* NSel_Cuts_calibup = calibup[0]->ToTH1(
pot);
657 std::vector<TH1*> vector_up_NSel_Cuts = {fluxup[0]->ToTH1(
pot), xsecup[0]->ToTH1(
pot),calibup[0]->ToTH1(
pot), lightup[0]->ToTH1(
pot), ckv[0]->ToTH1(
pot), calib_shape[0]->ToTH1(
pot)};
660 std::vector<TH1*> vector_dwn_NSel_Cuts = {fluxdown[0]->ToTH1(
pot), xsecdown[0]->ToTH1(
pot),calibdown[0]->ToTH1(
pot), lightdown[0]->ToTH1(
pot),ckv[0]->ToTH1(
pot), calib_shape[0]->ToTH1(
pot)};
663 TH1* hnom_NSel_Cuts = nominal[0]->ToTH1(
pot);
664 hnom_NSel_Cuts->SetTitle(
";Prong CVN Gamma ID; Selected Events/8.09 #times 10^{20}POT");
665 std::cout <<
"*************Bins nominal*************: " << hnom_NSel_Cuts->GetXaxis()->GetNbins() <<
std::endl;
666 gROOT->ProcessLine(
".! mkdir -p plots");
668 TCanvas* Prong_CVN_Gamma_ID_NSel_Cuts =
new TCanvas(
"Prong_CVN_Gamma_ID_NSel_Cuts",
"Prong_CVN_Gamma_ID_NSel_Cuts");
669 Prong_CVN_Gamma_ID_NSel_Cuts ->SetLeftMargin(0.15);
672 TLegend * leg0 =
new TLegend(0.55,0.5,0.65,0.8);
673 leg0-> SetTextFont(42);
675 leg0->AddEntry(hnom_NSel_Cuts,
" NC #pi^{0} > 0.3 E");
694 TH1* signal_xsecdown = xsecdown[1]->ToTH1(
pot);
695 TH1* signal_xsecup = xsecup[1]->ToTH1(
pot);
696 TH1* signal_fluxdown = fluxdown[1]->ToTH1(
pot);
697 TH1* signal_fluxup = fluxup[1]->ToTH1(
pot);
698 TH1* signal_calib_shape = calib_shape[1]->ToTH1(
pot);
699 TH1* signal_ckv = ckv[1]->ToTH1(
pot);
700 TH1* signal_lightup = lightup[1]->ToTH1(
pot);
701 TH1* signal_lightdown = lightdown[1]->ToTH1(
pot);
703 TH1* signal_calibdown = calibdown[1]->ToTH1(
pot);
704 TH1* signal_calibup = calibup[1]->ToTH1(
pot);
708 std::vector<TH1*> vector_up_signal = {fluxup[1]->ToTH1(
pot), xsecup[1]->ToTH1(
pot), calibup[1]->ToTH1(
pot), lightup[1]->ToTH1(
pot), ckv[1]->ToTH1(
pot), calib_shape[1]->ToTH1(
pot)};
711 std::vector<TH1*> vector_dwn_signal = {fluxdown[1]->ToTH1(
pot), xsecdown[1]->ToTH1(
pot), calibdown[1]->ToTH1(
pot), lightdown[1]->ToTH1(
pot), ckv[1]->ToTH1(
pot), calib_shape[1]->ToTH1(
pot)};
713 TH1* hnom_signal = nominal[1]->ToTH1(
pot);
714 hnom_signal->SetTitle(
";Prong CVN Gamma ID; Signal events/8.09 #times 10^{20}POT");
715 std::cout <<
"*************Bins nominal*************: " << hnom_signal->GetXaxis()->GetNbins() <<
std::endl;
716 gROOT->ProcessLine(
".! mkdir -p plots");
718 TCanvas* Prong_CVN_Gamma_ID_NSig_Cuts =
new TCanvas(
"Prong_CVN_Gamma_ID_NSig_Cuts",
"Prong_CVN_Gamma_ID_NSig_Cuts");
719 Prong_CVN_Gamma_ID_NSig_Cuts->SetLeftMargin(0.15);
722 TLegend *
leg1 =
new TLegend(0.55,0.5,0.65,0.8);
723 leg1-> SetTextFont(42);
725 leg1->AddEntry(hnom_signal,
"NC #pi^{0} > 0.3 E");
743 TH1* truesignal_xsecdown = xsecdown[2]->ToTH1(
pot);
744 TH1* truesignal_xsecup = xsecup[2]->ToTH1(
pot);
745 TH1* truesignal_fluxdown = fluxdown[2]->ToTH1(
pot);
746 TH1* truesignal_fluxup = fluxup[2]->ToTH1(
pot);
747 TH1* truesignal_calib_shape = calib_shape[2]->ToTH1(
pot);
748 TH1* truesignal_ckv = ckv[2]->ToTH1(
pot);
749 TH1* truesignal_lightup = lightup[2]->ToTH1(
pot);
750 TH1* truesignal_lightdown = lightdown[2]->ToTH1(
pot);
752 TH1* truesignal_calibdown = calibdown[2]->ToTH1(
pot);
753 TH1* truesignal_calibup = calibup[2]->ToTH1(
pot);
757 std::vector<TH1*> vector_up_truesignal = {fluxup[2]->ToTH1(
pot), xsecup[2]->ToTH1(
pot), calibup[2]->ToTH1(
pot), lightup[2]->ToTH1(
pot), ckv[2]->ToTH1(
pot), calib_shape[2]->ToTH1(
pot)};
760 std::vector<TH1*> vector_dwn_truesignal = {fluxdown[2]->ToTH1(
pot), xsecdown[2]->ToTH1(
pot), calibdown[2]->ToTH1(
pot), lightdown[2]->ToTH1(
pot), ckv[2]->ToTH1(
pot), calib_shape[2]->ToTH1(
pot)};
763 TH1* hnom_truesignal = nominal[2]->ToTH1(
pot);
764 hnom_truesignal->SetTitle(
";Prong CVN Gamma ID; True signal events/8.09 #times 10^{20}POT");
766 gROOT->ProcessLine(
".! mkdir -p plots");
768 TCanvas* Prong_CVN_Gamma_ID_NtrueSig_Cut=
new TCanvas(
"Prong_CVN_Gamma_ID_NtrueSig_Cut",
"Prong_CVN_Gamma_ID_NtrueSig_Cut");
769 Prong_CVN_Gamma_ID_NtrueSig_Cut->SetLeftMargin(0.15);
772 TLegend * leg2 =
new TLegend(0.55,0.5,0.65,0.8);
773 leg2-> SetTextFont(42);
775 leg2->AddEntry(hnom_truesignal,
"NC #pi^{0} > 0.3 E");
792 TH1* hNbkg_Cuts =
new TH1F(
"Nbkg_Cuts",
"Nbkg_Cuts", 48,0,0.95 );
793 hNbkg_Cuts->GetXaxis()->CenterTitle();
794 hNbkg_Cuts->GetYaxis()->CenterTitle();
797 TH1* hNbkg_Cuts_xsecdown =
new TH1F(
"xsecdown",
"xsecdown",48,0,0.95);
798 TH1* hNbkg_Cuts_xsecup =
new TH1F(
"xsecup",
"xsecup",48,0,0.95);
799 TH1* hNbkg_Cuts_fluxdown =
new TH1F(
"fluxdown",
"fluxdown",48,0,0.95);
800 TH1* hNbkg_Cuts_fluxup =
new TH1F(
"fluxup",
"fluxup",48,0,0.95);
801 TH1* hNbkg_Cuts_calib_shape =
new TH1F(
"calibshape",
"calibshape",48,0,0.95);
802 TH1* hNbkg_Cuts_ckv =
new TH1F(
"ckv",
"ckv",48,0,0.95);
803 TH1* hNbkg_Cuts_lightup =
new TH1F(
"lightup",
"lightup",48,0,0.95);
804 TH1* hNbkg_Cuts_lightdown =
new TH1F(
"lightdown",
"lightdown",48,0,0.95);
806 TH1* hNbkg_Cuts_calibdown =
new TH1F(
"calibdown",
"calibdown",48,0,0.95);
807 TH1* hNbkg_Cuts_calibup =
new TH1F(
"calibup",
"calibup",48,0,0.95 ) ;
809 TH1* hPur=
new TH1F(
"hPur",
"",48,0,0.95);
812 for(
int n = 1;
n < hnom_Nbkg_Cuts->GetNbinsX()-3; ++
n)
814 const float nNSel_Cuts = hnom_NSel_Cuts->Integral(
n, 48);
815 const float nNbkg_Cuts = hnom_Nbkg_Cuts->Integral(
n, 48);
817 hNbkg_Cuts->SetBinContent(
n,nNbkg_Cuts);
819 hNbkg_Cuts_calibup->SetBinContent(
n, Nbkg_Cuts_calibup->Integral(
n,48));
820 hNbkg_Cuts_calibdown->SetBinContent(
n, Nbkg_Cuts_calibdown->Integral(
n, 48));
823 float Purity_den = nNSel_Cuts;
824 float Purity_num = nNSel_Cuts-nNbkg_Cuts;
825 if (Purity_num!=0 && Purity_den!=0)
827 pur=Purity_num/nNSel_Cuts;
828 cout<<
"Total Selected:"<<nNSel_Cuts<<
endl;
829 cout<<
"Background:"<<nNbkg_Cuts<<
endl;
830 cout<<
"Purity_num:"<<nNSel_Cuts-nNbkg_Cuts<<
endl;
831 cout<<
"Purity:"<<Purity_num/nNSel_Cuts<<
endl;
833 hPur->SetBinContent(
n,pur);
836 hNbkg_Cuts_xsecup->SetBinContent(
n, Nbkg_Cuts_xsecup->Integral(
n,48));
837 hNbkg_Cuts_xsecdown->SetBinContent(
n, Nbkg_Cuts_xsecdown->Integral(
n,48));
838 hNbkg_Cuts_lightup->SetBinContent(
n, Nbkg_Cuts_lightup->Integral(
n,48));
839 hNbkg_Cuts_lightdown->SetBinContent(
n, Nbkg_Cuts_lightdown->Integral(
n,48));
840 hNbkg_Cuts_fluxup->SetBinContent(
n, Nbkg_Cuts_fluxup->Integral(
n,48));
841 hNbkg_Cuts_fluxdown->SetBinContent(
n, Nbkg_Cuts_fluxdown->Integral(
n,48));
842 hNbkg_Cuts_calib_shape->SetBinContent(
n,Nbkg_Cuts_calib_shape->Integral(
n,48));
843 hNbkg_Cuts_ckv->SetBinContent(
n, Nbkg_Cuts_ckv->Integral(
n,48));
846 std::vector<TH1*> vector_up_Nbkg_Cuts_binbybin = {hNbkg_Cuts_fluxup, hNbkg_Cuts_xsecup, hNbkg_Cuts_calibup, hNbkg_Cuts_lightup, hNbkg_Cuts_ckv, hNbkg_Cuts_calib_shape};
848 std::vector<TH1*> vector_dwn_Nbkg_Cuts_binbybin = {hNbkg_Cuts_fluxdown, hNbkg_Cuts_xsecdown, hNbkg_Cuts_calibdown, hNbkg_Cuts_lightdown, hNbkg_Cuts_ckv, hNbkg_Cuts_calib_shape};
852 TCanvas* cNbkg_Cuts =
new TCanvas(
"cNbkg_Cuts",
"cNbkg_Cuts");
853 cNbkg_Cuts->SetLeftMargin(0.15);
854 hNbkg_Cuts->SetTitle(
";Prong CVN Gamma ID Cut value; Background Events/8.09 #times 10^{20} POT");
857 TLegend * leg3 =
new TLegend(0.55,0.5,0.65,0.8);
858 leg3-> SetTextFont(42);
860 leg3->AddEntry(hNbkg_Cuts,
"NC #pi^{0} > 0.3 E");
877 TCanvas* cpur =
new TCanvas(
"cpur",
"cpur");
878 cpur->SetLeftMargin(0.15);
879 hPur->SetLineColor(
kRed);
880 hPur->GetYaxis()->SetTitle(
"Purity");
881 hPur->GetXaxis()->SetTitle(
"Prong 2 CVN Gamma ID Cut Value");
883 TLegend * leg4 =
new TLegend(0.6,0.35,0.7,0.5);
884 leg4-> SetTextFont(42);
886 leg4->SetFillStyle(0);
887 leg4->AddEntry(hPur,
"NC #pi^{0} > 0.3 E");
895 TH1* hNSel_Cuts =
new TH1F(
"NSel_Cuts",
"NSel_Cuts", 48,0,0.95 );
896 hNSel_Cuts->GetXaxis()->CenterTitle();
897 hNSel_Cuts->GetYaxis()->CenterTitle();
900 TH1* hNSel_Cuts_xsecdown =
new TH1F(
"xsecdown",
"xsecdown",48,0,0.95);
901 TH1* hNSel_Cuts_xsecup =
new TH1F(
"xsecup",
"xsecup",48,0,0.95);
902 TH1* hNSel_Cuts_fluxdown =
new TH1F(
"fluxdown",
"fluxdown",48,0,0.95);
903 TH1* hNSel_Cuts_fluxup =
new TH1F(
"fluxup",
"fluxup",48,0,0.95);
904 TH1* hNSel_Cuts_calib_shape =
new TH1F(
"calibshape",
"calibshape",48,0,0.95);
905 TH1* hNSel_Cuts_ckv =
new TH1F(
"ckv",
"ckv", 48,0,0.95 );
906 TH1* hNSel_Cuts_lightup =
new TH1F(
"lightup",
"lightup",48,0,0.95);
907 TH1* hNSel_Cuts_lightdown =
new TH1F(
"lightdown",
"lightdown", 48,0,0.95);
909 TH1* hNSel_Cuts_calibdown =
new TH1F(
"calibdown",
"calibdown",48,0,0.95 );
910 TH1* hNSel_Cuts_calibup =
new TH1F(
"calibup",
"calibup" ,48,0,0.95);
912 for(
int n = 1;
n < hnom_NSel_Cuts->GetNbinsX() - 3; ++
n)
914 const float nsel_cuts = hnom_NSel_Cuts->Integral(
n,48);
916 hNSel_Cuts->SetBinContent(
n, nsel_cuts);
917 hNSel_Cuts_calibup->SetBinContent(
n,NSel_Cuts_calibup->Integral(
n,48));
918 hNSel_Cuts_calibdown->SetBinContent(
n, NSel_Cuts_calibdown->Integral(
n,48));
921 hNSel_Cuts_xsecup->SetBinContent(
n, NSel_Cuts_xsecup->Integral(
n,48));
922 hNSel_Cuts_xsecdown->SetBinContent(
n, NSel_Cuts_xsecdown->Integral(
n,48));
923 hNSel_Cuts_lightup->SetBinContent(
n, NSel_Cuts_lightup->Integral(
n,48));
924 hNSel_Cuts_lightdown->SetBinContent(
n, NSel_Cuts_lightdown->Integral(
n,48));
925 hNSel_Cuts_fluxup->SetBinContent(
n, NSel_Cuts_fluxup->Integral(
n,48));
926 hNSel_Cuts_fluxdown->SetBinContent(
n, NSel_Cuts_fluxdown->Integral(
n,48));
927 hNSel_Cuts_calib_shape->SetBinContent(
n, NSel_Cuts_calib_shape->Integral(
n,48));
928 hNSel_Cuts_ckv->SetBinContent(
n, NSel_Cuts_ckv->Integral(
n,48));
932 std::vector<TH1*> vector_up_NSel_Cuts_binbybin = {hNSel_Cuts_fluxup, hNSel_Cuts_xsecup, hNSel_Cuts_calibup, hNSel_Cuts_lightup, hNSel_Cuts_ckv, hNSel_Cuts_calib_shape};
934 std::vector<TH1*> vector_dwn_NSel_Cuts_binbybin = {hNSel_Cuts_fluxdown, hNSel_Cuts_xsecdown, hNSel_Cuts_calibdown, hNSel_Cuts_lightdown, hNSel_Cuts_ckv, hNSel_Cuts_calib_shape};
940 TCanvas* cNSel_Cuts =
new TCanvas(
"cNSel_Cuts",
"cNSel_Cuts");
941 cNSel_Cuts->SetLeftMargin(0.15);
942 hNSel_Cuts->SetTitle(
";Prong CVN Gamma ID Cut Value;Selected Events/8.09 #times 10^{20} POT");
945 TLegend * leg5 =
new TLegend(0.55,0.5,0.65,0.8);
946 leg5-> SetTextFont(42);
948 leg5->AddEntry(hNSel_Cuts,
"NC #pi^{0} > 0.3 E");
966 TH1* hsignal =
new TH1F(
"signal",
"signal", 48,0,0.95);
967 hsignal->GetXaxis()->CenterTitle();
968 hsignal->GetYaxis()->CenterTitle();
970 TH1* hsignal_xsecdown =
new TH1F(
"xsecdown",
"xsecdown", 48,0,0.95);
971 TH1* hsignal_xsecup =
new TH1F(
"xsecup",
"xsecup", 48,0,0.95);
972 TH1* hsignal_fluxdown =
new TH1F(
"fluxdown",
"fluxdown", 48,0,0.95);
973 TH1* hsignal_fluxup =
new TH1F(
"fluxup",
"fluxup", 48,0,0.95);
974 TH1* hsignal_calib_shape =
new TH1F(
"calibshape",
"calibshape", 48,0,0.95);
975 TH1* hsignal_ckv =
new TH1F(
"ckv",
"ckv", 48,0,0.95);
976 TH1* hsignal_lightup =
new TH1F(
"lightup",
"lightup", 48,0,0.95);
977 TH1* hsignal_lightdown =
new TH1F(
"lightdown",
"lightdown", 48,0,0.95);
979 TH1* hsignal_calibdown =
new TH1F(
"calibdown",
"calibdown", 48,0,0.95);
980 TH1* hsignal_calibup =
new TH1F(
"calibup",
"calibup", 48,0,0.95);
982 for(
int n = 1;
n < hnom_signal->GetNbinsX()-3; ++
n)
984 const float nsig = hnom_signal->Integral(
n,48);
985 hsignal->SetBinContent(
n, nsig);
987 hsignal_calibup->SetBinContent(
n,signal_calibup->Integral(
n,48));
988 hsignal_calibdown->SetBinContent(
n, signal_calibdown->Integral(
n,48));
989 hsignal_xsecup->SetBinContent(
n, signal_xsecup->Integral(
n,48));
990 hsignal_xsecdown->SetBinContent(
n, signal_xsecdown->Integral(
n,48));
991 hsignal_lightup->SetBinContent(
n, signal_lightup->Integral(
n,48));
992 hsignal_lightdown->SetBinContent(
n, signal_lightdown->Integral(
n,48));
993 hsignal_fluxup->SetBinContent(
n, signal_fluxup->Integral(
n,48));
994 hsignal_fluxdown->SetBinContent(
n, signal_fluxdown->Integral(
n,48));
996 hsignal_calib_shape->SetBinContent(
n, signal_calib_shape->Integral(
n,48));
997 hsignal_ckv->SetBinContent(
n, signal_ckv->Integral(
n,48));
1000 std::vector<TH1*> vector_up_signal_binbybin = {hsignal_fluxup, hsignal_xsecup, hsignal_calibup, hsignal_lightup, hsignal_ckv, hsignal_calib_shape};
1002 std::vector<TH1*> vector_dwn_signal_binbybin = {hsignal_fluxdown, hsignal_xsecdown,hsignal_calibdown, hsignal_lightdown, hsignal_ckv, hsignal_calib_shape};
1006 TCanvas* csignal =
new TCanvas(
"csignal",
"csignal");
1007 csignal->SetLeftMargin(0.15);
1008 hsignal->SetTitle(
";Prong CVN Gamma ID Cut Value;Signal Events/8.09 #times 10^{20} POT");
1011 TLegend * leg6 =
new TLegend(0.55,0.5,0.65,0.8);
1012 leg6-> SetTextFont(42);
1014 leg6->AddEntry(hsignal,
"NC #pi^{0} > 0.3 E");
1031 TH1* htruesignal =
new TH1F(
"",
"", 48,0,0.95);
1032 htruesignal->GetXaxis()->CenterTitle();
1033 htruesignal->GetYaxis()->CenterTitle();
1035 TH1* htruesignal_xsecdown =
new TH1F(
"xsecdown",
"xsecdown", 48,0,0.95);
1036 TH1* htruesignal_xsecup =
new TH1F(
"xsecup",
"xsecup", 48,0,0.95);
1037 TH1* htruesignal_fluxdown =
new TH1F(
"fluxdown",
"fluxdown", 48,0,0.95);
1038 TH1* htruesignal_fluxup =
new TH1F(
"fluxup",
"fluxup", 48,0,0.95);
1039 TH1* htruesignal_calib_shape =
new TH1F(
"calibshape",
"calibshape", 48,0,0.95);
1040 TH1* htruesignal_ckv =
new TH1F(
"ckv",
"ckv", 48,0,0.95);
1041 TH1* htruesignal_lightup =
new TH1F(
"lightup",
"lightup", 48,0,0.95);
1042 TH1* htruesignal_lightdown =
new TH1F(
"lightdown",
"lightdown", 48,0,0.95);
1044 TH1* htruesignal_calibdown =
new TH1F(
"calibdown",
"calibdown", 48,0,0.95);
1045 TH1* htruesignal_calibup =
new TH1F(
"calibup",
"calibup", 48,0,0.95);
1050 for(
int n = 1;
n < hnom_truesignal->GetNbinsX()-3; ++
n)
1052 const float nsig = hnom_truesignal->Integral(
n,48);
1053 htruesignal->SetBinContent(
n, nsig);
1055 htruesignal_calibup->SetBinContent(
n,truesignal_calibup->Integral(
n,48));
1056 htruesignal_calibdown->SetBinContent(
n, truesignal_calibdown->Integral(
n,48));
1058 htruesignal_xsecup->SetBinContent(
n, truesignal_xsecup->Integral(
n,48));
1059 htruesignal_xsecdown->SetBinContent(
n, truesignal_xsecdown->Integral(
n,48));
1060 htruesignal_lightup->SetBinContent(
n, truesignal_lightup->Integral(
n,48));
1061 htruesignal_lightdown->SetBinContent(
n, truesignal_lightdown->Integral(
n,48));
1062 htruesignal_fluxup->SetBinContent(
n, truesignal_fluxup->Integral(
n,48));
1063 htruesignal_fluxdown->SetBinContent(
n, truesignal_fluxdown->Integral(
n,48));
1064 htruesignal_calib_shape->SetBinContent(
n, truesignal_calib_shape->Integral(
n,48));
1065 htruesignal_ckv->SetBinContent(
n, truesignal_ckv->Integral(
n,48));
1069 std::vector<TH1*> vector_up_truesignal_binbybin = {htruesignal_fluxup, htruesignal_xsecup, htruesignal_calibup, htruesignal_lightup, htruesignal_ckv, htruesignal_calib_shape};
1071 std::vector<TH1*> vector_dwn_truesignal_binbybin = {htruesignal_fluxdown, htruesignal_xsecdown, htruesignal_calibdown, htruesignal_lightdown, htruesignal_ckv, htruesignal_calib_shape};
1079 TCanvas* ctruesignal =
new TCanvas(
"ctruesignal",
"ctruesignal");
1080 htruesignal->GetYaxis()->SetTitle(
"True signal Events/8.09 #times 10^{20} POT");
1081 htruesignal->SetTitleOffset(0.75,
"Y");
1082 htruesignal->GetXaxis()->SetTitle(
"Prong CVN Gamma ID Cut Value");
1086 TLegend* leg7 =
new TLegend(0.55,0.5,0.65,0.8);
1087 leg7-> SetTextFont(42);
1089 leg7->AddEntry(htruesignal,
"NC #pi^{0} > 0.3 E");
1105 TH1* num_xsecdown = xsecdown[1]->ToTH1(
pot);
1106 TH1* num_xsecup = xsecup[1]->ToTH1(
pot);
1107 TH1* denom_xsecdown = xsecdown[2]->ToTH1(
pot);
1108 TH1* denom_xsecup = xsecup[2]->ToTH1(
pot);
1109 TH1* num_fluxdown = fluxdown[1]->ToTH1(
pot);
1110 TH1* num_fluxup = fluxup[1]->ToTH1(
pot);
1111 TH1* denom_fluxdown = fluxdown[2]->ToTH1(
pot);
1112 TH1* denom_fluxup = fluxup[2]->ToTH1(
pot);
1113 TH1* num_calib_shape = calib_shape[1]->ToTH1(
pot);
1114 TH1* denom_calib_shape = calib_shape[2]->ToTH1(
pot);
1115 TH1* num_ckv = ckv[1]->ToTH1(
pot);
1116 TH1* denom_ckv = ckv[2]->ToTH1(
pot);
1117 TH1* num_lightup = lightup[1]->ToTH1(
pot);
1118 TH1* num_lightdown = lightdown[1]->ToTH1(
pot);
1119 TH1* denom_lightup = lightup[2]->ToTH1(
pot);
1120 TH1* denom_lightdown = lightdown[2]->ToTH1(
pot);
1122 TH1* num_calibdown = calibdown[1]->ToTH1(
pot);
1123 TH1* num_calibup = calibup[1]->ToTH1(
pot);
1124 TH1* denom_calibdown = calibdown[2]->ToTH1(
pot);
1125 TH1* denom_calibup = calibup[2]->ToTH1(
pot);
1128 TH1* sig = nominal[1]->ToTH1(
pot);
1131 TH1* denome = nominal[2]->ToTH1(
pot);
1133 float totsig = denome->Integral(1, 48);
1136 float vdenom_xsecdown = denom_xsecdown->Integral(1, 48);
1137 float vdenom_xsecup = denom_xsecup->Integral(1, 48);
1138 float vdenom_fluxdown = denom_fluxdown->Integral(1, 48);
1139 float vdenom_fluxup = denom_fluxup->Integral(1, 48);
1140 float vdenom_lightdown = denom_lightdown->Integral(1, 48);
1141 float vdenom_lightup = denom_lightup->Integral(1, 48);
1142 float vdenom_calib_shape = denom_calib_shape->Integral(1, 48);
1143 float vdenom_ckv = denom_ckv->Integral(1, 48);
1145 float vdenom_calibdown = denom_calibdown->Integral(1, 48);
1146 float vdenom_calibup = denom_calibup->Integral(1, 48);
1154 TH1* nomeff =
new TH1F(
"eff_",
"; Prong CVN Gamma ID Cut;Selection Efficiency",48,0,0.95);
1156 TH1* eff_calibdown =
new TH1F(
"eff_calibdown",
"Efficiency vs Cut Value; Prong CVN Gamma ID ;Efficiency",48,0,0.95);
1158 TH1* eff_calibup =
new TH1F(
"eff_calibup",
"Efficiency vs Cut Value;Prong CVN Gamma ID ;Efficiency",48,0,0.95);
1160 TH1* eff_lightdown =
new TH1F(
"eff_lightdown",
"Efficiency vs Cut Value; Prong CVN Gamma ID ;Efficiency",48,0,0.95);
1162 TH1* eff_lightup =
new TH1F(
"eff_lightup",
"Efficiency vs Cut Value; Prong CVN Gamma ID ;Efficiency",48,0,0.95 );
1164 TH1* eff_ckv =
new TH1F(
"eff_ckv",
"Efficiency vs Cut Value;Prong CVN Gamma ID ;Efficiency",48,0,0.95);
1166 TH1* eff_calib_shape =
new TH1F(
"eff_calibshape",
"Efficiency vs Cut Value; Prong CVN Gamma ID ;Efficiency",48,0,0.95);
1168 TH1* eff_fluxdown =
new TH1F(
"eff_fluxdown",
"Efficiency vs Cut Value; Prong CVN Gamma ID ;Efficiency",48,0,0.95);
1170 TH1* eff_fluxup =
new TH1F(
"eff_fluxup",
"Efficiency vs Cut Value; Prong CVN Gamma ID ;Efficiency",48,0,0.95);
1172 TH1* eff_xsecdown =
new TH1F(
"eff_xsecdown",
"Efficiency vs Cut Value; Prong CVN Gamma ID ;Efficiency",48,0,0.95);
1174 TH1* eff_xsecup =
new TH1F(
"eff_xsecup",
"Efficiency vs Cut Value; Prong CVN Gamma ID ;Efficiency",48,0,0.95);
1176 std::cout <<
"******************Total selected events (sta+sys): "<< totsig <<
std::endl;
1179 for(
int n = 1;
n < hnom_Nbkg_Cuts->GetNbinsX() - 3; ++
n)
1182 const float n1sig = sig->Integral(
n, 48);
1183 const float nxsecdown = num_xsecdown->Integral(
n, 48)/vdenom_xsecdown;
1184 const float nxsecup = num_xsecup->Integral(
n, 48)/vdenom_xsecup;
1185 const float nfluxdown = num_fluxdown->Integral(
n, 48)/vdenom_fluxdown;
1186 const float nfluxup = num_fluxup->Integral(
n, 48)/vdenom_fluxup;
1187 const float nlightdown = num_lightdown->Integral(
n, 48)/vdenom_lightdown;
1188 const float nlightup = num_lightup->Integral(
n, 48)/vdenom_lightup;
1189 const float ncalib_shape = num_calib_shape->Integral(
n, 48)/vdenom_calib_shape;
1190 const float nckv = num_ckv->Integral(
n, 48)/vdenom_ckv;
1193 const float ncalibdown = num_calibdown->Integral(
n, 48)/vdenom_calibdown;
1194 const float ncalibup = num_calibup->Integral(
n, 48)/vdenom_calibup;
1196 std::cout <<
"******************Total selected events (sta+sys): "<< totsig <<
std::endl;
1199 float neff = n1sig/(totsig);
1205 nomeff->SetBinContent(
n, neff);
1208 eff_xsecdown->SetBinContent(
n, nxsecdown);
1211 eff_xsecup->SetBinContent(
n, nxsecup);
1212 eff_fluxdown->SetBinContent(
n, nfluxdown);
1213 eff_fluxup->SetBinContent(
n, nfluxup);
1214 eff_calibdown->SetBinContent(
n, ncalibdown);
1215 eff_calibup->SetBinContent(
n, ncalibup);
1216 eff_lightdown->SetBinContent(
n, nlightdown);
1217 eff_lightup->SetBinContent(
n, nlightup);
1218 eff_calib_shape->SetBinContent(
n, ncalib_shape);
1219 eff_ckv->SetBinContent(
n, nckv);
1222 std::vector<TH1*> rdn = {eff_calibdown, eff_lightdown, eff_ckv, eff_calib_shape, eff_fluxdown, eff_xsecdown};
1224 std::vector<TH1*> rup = {eff_calibup, eff_lightup, eff_ckv, eff_calib_shape, eff_fluxup, eff_xsecup};
1227 vector_up_Nbkg_Cuts_binbybin,
1228 vector_dwn_Nbkg_Cuts_binbybin,
1229 vector_up_NSel_Cuts_binbybin,
1230 vector_dwn_NSel_Cuts_binbybin,
1232 "Prong__CVN_Gamma_ID_sigma_Systematics_optimization_Myfid_cont",
"Prong__CVN_Gamma_ID_Nbkg_Cuts_syst_Systematics_optimization_Myfid_cont",
"Prong__CVN_Gamma_ID_Nbkg_Cuts_stat__Systematics_optimization_Myfid_cont",
"Prong__CVN_Gamma_ID_NSel_Cuts_syst__Systematics_optimization_Myfid_cont",
"Prong__CVN_Gamma_ID_NSel_Cuts_stat_Systematics_optimization_Myfid_cont",
"Prong_CVN_Gamma_ID_delta_eff__Systematics_optimization_Myfid_cont",
"c7__Systematics_Prong__CVN_optimization_Myfid_cont",
"c8__Systematics_Prong__CVN_optimization_Myfid_cont",
"c9__Systematics_Prong__CVN_optimization_Myfid_cont",
true);
1234 TLegend * leg8 =
new TLegend(0.55,0.5,0.65,0.8);
1235 leg8-> SetTextFont(42);
1237 leg8->AddEntry(hNbkg_Cuts,
"NC #pi^{0} < 0.3 E");
1240 TCanvas* ceff =
new TCanvas(
"ceff",
"ceff");
1241 ceff->SetLeftMargin(0.15);
void GetFluxError(const Spectrum *nom, std::vector< ana::Spectrum * > univs, std::vector< ana::Spectrum * > &supdown)
prelim SetTextSize(2/30.)
const DateUp CurrentDate[Date]
void PlotWithSystErrorBandWidth(TH1 *&nom, std::vector< TH1 * > &ups, std::vector< TH1 * > &dns, int col, int errCol, float headroom, bool newaxis)
std::unique_ptr< T > LoadFrom(TDirectory *dir, const std::string &label)
std::vector< std::string > cut_labels
const FileUp CurrentFile[File]
void PlotDeltaSigmaWithSigma(TH1 *&nom, TH1 *&nomsel, std::vector< TH1 * > &ups, std::vector< TH1 * > &dns, std::vector< TH1 * > &upssel, std::vector< TH1 * > &dnssel, TH1 *&heff, std::vector< TH1 * > &effups, std::vector< TH1 * > &effdns, TString outname1, TString outname2, TString outname3, TString outname4, TString outname5, TString outname6, TString outname7, TString outname8, TString outname9, Bool_t printme=false)
std::string to_string(ModuleType mt)