23 double arrow_down = 0;
48 results_file_name.insert(results_file_name.find(
".root"),
"_results");
52 TFile * input = TFile::Open(input_file_name.c_str(),
"read");
56 TFile *
results =
new TFile(results_file_name.c_str(),
"recreate");
57 optimize->Optimize(CutOptimization::kBinByBin,
58 CutOptimization::kdSigmaOverSigma,
60 results->mkdir(rootdir.c_str()),
64 TH1D * frac_uncert_xsec = (TH1D*) results->Get((rootdir +
"/frac_uncert_xsec" ).c_str());
65 TH1D * frac_uncert_sel = (TH1D*) results->Get((rootdir +
"/frac_uncert_sel" ).c_str());
66 TH1D * frac_uncert_bkgd_stat = (TH1D*) results->Get((rootdir +
"/frac_uncert_bkgd_stat").c_str());
67 TH1D * frac_uncert_bkgd_syst = (TH1D*) results->Get((rootdir +
"/frac_uncert_bkgd_syst").c_str());
68 TH1D * frac_uncert_eff = (TH1D*) results->Get((rootdir +
"/frac_uncert_eff" ).c_str());
72 TCanvas *
c =
new TCanvas();
73 c->SetLeftMargin(0.15);
75 frac_uncert_xsec->GetXaxis()->CenterTitle();
76 frac_uncert_xsec->GetYaxis()->CenterTitle();
77 frac_uncert_xsec->GetYaxis()->SetRangeUser(0, 1.2);
78 frac_uncert_xsec->GetYaxis()->SetTitleOffset(1.1);
79 frac_uncert_xsec->SetLineColor(
kRed);
81 frac_uncert_sel->GetXaxis()->CenterTitle();
82 frac_uncert_sel->GetYaxis()->CenterTitle();
83 frac_uncert_sel->GetYaxis()->SetRangeUser(0, 1.2);
84 frac_uncert_sel->GetYaxis()->SetTitleOffset(1.1);
85 frac_uncert_sel->SetLineColor(
kRed);
87 frac_uncert_bkgd_stat->GetXaxis()->CenterTitle();
88 frac_uncert_bkgd_stat->GetYaxis()->CenterTitle();
89 frac_uncert_bkgd_stat->GetYaxis()->SetRangeUser(0, 1.2);
90 frac_uncert_bkgd_stat->GetYaxis()->SetTitleOffset(1.1);
91 frac_uncert_bkgd_stat->SetLineColor(
kRed);
93 frac_uncert_bkgd_syst->GetXaxis()->CenterTitle();
94 frac_uncert_bkgd_syst->GetYaxis()->CenterTitle();
95 frac_uncert_bkgd_syst->GetYaxis()->SetRangeUser(0, 1.2);
96 frac_uncert_bkgd_syst->GetYaxis()->SetTitleOffset(1.1);
97 frac_uncert_bkgd_syst->SetLineColor(
kRed);
99 frac_uncert_eff->GetXaxis()->CenterTitle();
100 frac_uncert_eff->GetYaxis()->CenterTitle();
101 frac_uncert_eff->GetYaxis()->SetRangeUser(0, 1.2);
102 frac_uncert_eff->GetYaxis()->SetTitleOffset(1.1);
103 frac_uncert_eff->SetLineColor(
kRed);
105 frac_uncert_xsec->Draw(
"hist");
109 c->Print((plot_dump +
"/" + rootdir +
"_frac_uncert_xsec.pdf").c_str());
111 frac_uncert_sel->Draw(
"hist");
115 c->Print((plot_dump +
"/" + rootdir +
"_frac_uncert_sel.pdf").c_str());
117 frac_uncert_bkgd_stat->Draw(
"hist");
121 c->Print((plot_dump +
"/" + rootdir +
"_frac_uncert_bkgd_stat.pdf").c_str());
123 frac_uncert_bkgd_syst->Draw(
"hist");
127 c->Print((plot_dump +
"/" + rootdir +
"_frac_uncert_bkgd_syst.pdf").c_str());
129 frac_uncert_eff->Draw(
"hist");
133 c->Print((plot_dump +
"/" + rootdir +
"_frac_uncert_eff.pdf").c_str());
137 TFile * fdebug = TFile::Open((plot_dump +
"/debug.root").c_str());
138 auto syst_defs = optimize->GetSystDefs();
139 auto mvsyst_defs = optimize->GetMVSystDefs();
140 syst_defs.insert(syst_defs.end(), mvsyst_defs.begin(), mvsyst_defs.end());
141 std::vector<TH1*> vabs_uncert_eff_syst;
142 std::vector<TH1*> vabs_uncert_bkgd_syst;
143 std::vector<TH1*> vfrac_uncert_eff_syst;
144 std::vector<TH1*> vfrac_uncert_bkgd_syst;
145 std::vector<std::string> syst_labels;
146 for(
auto syst : syst_defs) {
147 syst_labels.push_back(syst->GetName());
148 vabs_uncert_eff_syst .push_back((TH1*) fdebug->Get((syst->GetName() +
"_abs_uncert_eff_syst" ).c_str()));
149 vabs_uncert_bkgd_syst .push_back((TH1*) fdebug->Get((syst->GetName() +
"_abs_uncert_bkgd_syst" ).c_str()));
150 vfrac_uncert_eff_syst .push_back((TH1*) fdebug->Get((syst->GetName() +
"_frac_uncert_eff_syst" ).c_str()));
151 vfrac_uncert_bkgd_syst.push_back((TH1*) fdebug->Get((syst->GetName() +
"_frac_uncert_bkgd_syst").c_str()));
152 vfrac_uncert_eff_syst .back()->GetYaxis()->SetRangeUser(0, 1.2);
153 vfrac_uncert_bkgd_syst.back()->GetYaxis()->SetRangeUser(0, 1.2);
157 CutOptimization::PlotDebug(vabs_uncert_eff_syst , syst_labels,
"hist",
"Abs. Syst. Uncert Efficiency", plot_dump +
"/debug_syst_abs_uncert_eff.pdf");
158 CutOptimization::PlotDebug(vabs_uncert_bkgd_syst , syst_labels,
"hist",
"Abs. Syst. Uncert Background", plot_dump +
"/debug_syst_abs_uncert_bkgd.pdf");
159 CutOptimization::PlotDebug(vfrac_uncert_eff_syst , syst_labels,
"hist",
"Frac. Syst. Uncert Efficiency", plot_dump +
"/debug_syst_frac_uncert_eff.pdf");
160 CutOptimization::PlotDebug(vfrac_uncert_bkgd_syst, syst_labels,
"hist",
"Frac. Syst. Uncert Background", plot_dump +
"/debug_syst_frac_uncert_bkgd.pdf");
void DrawArrow(TCanvas *c, double x, TString arrow_opt, int line_color=kBlack, int line_style=1, int line_width=3)
const TVector3 vNueCCIncFiducialMin(-130,-140, 150)
std::unique_ptr< T > LoadFrom(TDirectory *dir, const std::string &label)
void PlotDebug(std::vector< TH1 * > universes, TH1 *h_nominal, std::string title, std::string name)
const TVector3 vNueCCIncFiducialMax(150, 140, 800)
const double kAna2019RHCPOT