23 #include "TMultiGraph.h" 25 #include "TLegendEntry.h" 29 #include "TPaveText.h" 33 #include "TAttMarker.h" 54 TLatex*
prelim =
new TLatex(.9, .95,
"NOvA Preliminary");
55 prelim->SetTextColor(
kBlue);
57 prelim->SetTextSize(2/30.);
58 prelim->SetTextAlign(32);
66 TPaveText *pText =
new TPaveText (0.1, 0.94, 0.16, 0.98,
"NDC");
67 pText->SetFillStyle(0);
68 pText->SetLineColor(0);
69 pText->SetLineWidth(0);
70 pText->SetBorderSize(1);
71 pText->SetTextColor(kGray+2);
73 if (isFHC) pText->AddText(
"#nu-beam");
74 else pText->AddText(
"#bar{#nu}-beam");
75 pText->SetTextSize(2/40.);
76 pText->SetTextAlign(11);
84 struct Plot{
const char* savename;
const char* XaxisLabel;
int rebinAmt;
int legSide;
int yAxisLimit;};
85 const std::vector<Plot>
plots = {
86 {
"Shw_Angle",
"Cos(#theta_{beam})", 0, 0, 7000},
87 {
"NHits_in_slice",
"Hits in Slice", 4, 1, 8000},
88 {
"NHits_in_shower",
"Hits in Shower", 4, 1, 8000},
89 {
"Shw_E",
"Energy in Shower (GeV)", 8, 1, 6000},
90 {
"E_per_Hit",
"GeV / Hit", 0, 1, 0},
91 {
"CVNe",
"CVN #nu_{e} selector", 4, 0, 11000},
92 {
"Shw_Width",
"Shower Width (cm)", 2, 1, 8000},
93 {
"Shw_Length",
"Shower Length (cm)", 2, 1, 8000},
94 {
"Shw_Start X",
"Shower Start X", 32, 0, 3000},
95 {
"Shw_Start Y",
"Shower Start Y", 32, 0, 0},
96 {
"Shw_Start Z",
"Shower Start Z", 50, 0, 1500},
97 {
"Vtx_X",
"Vertex Location X", 32, 0, 3000},
98 {
"Vtx_Y",
"Vertex Location Y", 32, 0, 0},
99 {
"Vtx_Z",
"Vertex Location Z", 50, 0, 1500},
100 {
"Distance_Top",
"Distance to Top (cm)", 100, 1, 4000},
101 {
"Distance_Bottom",
"Distance to Bottom (cm)", 100, 0, 2500},
102 {
"Distance_East",
"Distance to East Face", 16, 1, 5000},
103 {
"Distance_West",
"Distance to West Face", 16, 1, 5000},
104 {
"Distance_Front",
"Distance to Front", 50, 0, 1500},
105 {
"Distance_Back",
"Distance to Back", 100, 0, 2800}
108 void makePlot(TCanvas *
c1, TH1 *hCosmicsData, TH1 *hCRYMC, TH1 *hGENIEFluxswap,
int sel,
int legSide,
bool isFHC);
109 void makeWgtdPlot(TCanvas *
c1, TH1 *hCosmicsData, TH1 *hCRYMC, TH1 *hGENIEFluxswap,
int sel,
int legSide,
bool isFHC);
110 void makePlot(TCanvas *
c1, TH1 *hCosmicsData, TH1 *hCRYMC,
int sel,
int legSide);
111 void makeWgtdPlot(TCanvas *
c1, TH1 *hCosmicsData, TH1 *hCRYMC,
int sel,
int legSide);
112 void makeDataCryRatio(TCanvas *
c1, TH1 *hCosmicsData, TH1 *hCRYMC,
int sel,
int legSide,
bool isFHC,
bool isWgtd);
113 void makeEffPlot(TCanvas *
c1, TH1 *hCosmicsDataCore, TH1 *hCosmicsDataPresel, TH1 *hCRYMCCore, TH1 *hCRYMCPresel,
int legSide,
bool isFHC);
114 void makeWgtdEffPlot(TCanvas *
c1, TH1 *hCosmicsDataCore, TH1 *hCosmicsDataPresel, TH1 *hCRYMCCore, TH1 *hCRYMCPresel,
int legSide,
bool isFHC);
124 std::string inFile =
"/nova/app/users/amhall/DiF_Cafana_4-6-2020/3FlavorAna/Ana2020/MRstudies/MRDiF_FD_"+
beam+
"_Step2_v2_clean.root";
125 TFile *
f1 =
new TFile(inFile.c_str());
132 double mylivetime=sForLivetime.Livetime();
133 double myPOT=sForPOT.POT();
136 std::vector<TH1D*> hDataPresel, hCRYMCPresel, hGENIEPresel, hData, hCRYMC, hGENIE;
137 std::vector<TH1D*> hDataPreselWtd, hCRYMCPreselWtd, hDataWtd, hCRYMCWtd;
138 std::vector<TH1D*> hDataEff, hDataWtdEff, hCRYMCEff, hCRYMCWtdEff;
139 std::vector<TH1D*> hDataPreselEff, hDataPreselWtdEff, hCRYMCPreselEff, hCRYMCPreselWtdEff;
142 for(
unsigned int i =0;
i <
plots.size();
i++)
146 sprintf(dirname,
"sDataPresel_V%d",
i);
148 hDataPresel.push_back(sDataPresel->ToTH1(mylivetime,
kLivetime));
150 sprintf(dirname,
"sData_V%d",
i);
152 hData.push_back(sData->ToTH1(mylivetime,
kLivetime));
154 sprintf(dirname,
"sDataPreselWtd_V%d",
i);
156 hDataPreselWtd.push_back(sDataPreselWtd->ToTH1(mylivetime,
kLivetime));
158 sprintf(dirname,
"sDataWtd_V%d",
i);
160 hDataWtd.push_back(sDataWtd->ToTH1(mylivetime,
kLivetime));
164 sprintf(dirname,
"sCRYMCPresel_V%d",
i);
166 hCRYMCPresel.push_back(sCRYMCPresel->ToTH1(mylivetime,
kLivetime));
168 sprintf(dirname,
"sCRYMC_V%d",
i);
170 hCRYMC.push_back(sCRYMC->ToTH1(mylivetime,
kLivetime));
172 sprintf(dirname,
"sCRYMCPreselWtd_V%d",
i);
174 hCRYMCPreselWtd.push_back(sCRYMCPreselWtd->ToTH1(mylivetime,
kLivetime));
176 sprintf(dirname,
"sCRYMCWtd_V%d",
i);
178 hCRYMCWtd.push_back(sCRYMCWtd->ToTH1(mylivetime,
kLivetime));
182 sprintf(dirname,
"sGENIEPresel_V%d",
i);
184 hGENIEPresel.push_back(sGENIEPresel->ToTH1(myPOT));
186 sprintf(dirname,
"sGENIE_V%d",
i);
188 hGENIE.push_back(sGENIE->ToTH1(myPOT));
191 hDataEff.push_back(sData->ToTH1(mylivetime,
kLivetime));
192 hDataWtdEff.push_back(sDataWtd->ToTH1(mylivetime,
kLivetime));
193 hDataPreselEff.push_back(sDataPresel->ToTH1(mylivetime,
kLivetime));
194 hDataPreselWtdEff.push_back(sDataPreselWtd->ToTH1(mylivetime,
kLivetime));
196 hCRYMCEff.push_back(sCRYMC->ToTH1(mylivetime,
kLivetime));
197 hCRYMCWtdEff.push_back(sCRYMCWtd->ToTH1(mylivetime,
kLivetime));
198 hCRYMCPreselEff.push_back(sCRYMCPresel->ToTH1(mylivetime,
kLivetime));
199 hCRYMCPreselWtdEff.push_back(sCRYMCPreselWtd->ToTH1(mylivetime,
kLivetime));
207 std::cout<<
"===================================== Before reweighting================================================"<<
std::endl;
209 std::cout<<
"========================================================================================================="<<
std::endl;
210 std::cout<<
"CorePresel :"<<hDataPresel[0]->Integral()<<
" "<<hCRYMCPresel[0]->Integral()<<
" "<< hGENIEPresel[0]->Integral()<<
std::endl;
211 std::cout<<
"Core :"<<hData[0]->Integral()<<
" "<<hCRYMC[0]->Integral()<<
" "<< hGENIE[0]->Integral()<<
std::endl;
214 std::cout<<
"===================================== After reweighting================================================"<<
std::endl;
216 std::cout<<
"========================================================================================================="<<
std::endl;
217 std::cout<<
"CorePresel :"<<hDataPreselWtd[0]->Integral()<<
" "<<hCRYMCPreselWtd[0]->Integral()<<
" "<< hGENIEPresel[0]->Integral()<<
std::endl;
218 std::cout<<
"Core :"<<hDataWtd[0]->Integral()<<
" "<<hCRYMCWtd[0]->Integral()<<
" "<< hGENIE[0]->Integral()<<
std::endl;
223 for(
unsigned int var=0;
var<hData.size();
var++)
245 hDataPreselWtdEff[
var]->Rebin(
plots[
var].rebinAmt);
246 hCRYMCPreselWtdEff[
var]->Rebin(
plots[
var].rebinAmt);
254 int lastBin = hData[0]->GetXaxis()->GetLast();
255 hData[0]->SetBinContent(lastBin, 0);
256 hDataPresel[0]->SetBinContent(lastBin, 0);
257 hDataEff[0]->SetBinContent(lastBin, 0);
258 hDataWtd[0]->SetBinContent(lastBin, 0);
259 hDataPreselWtd[0]->SetBinContent(lastBin, 0);
260 hDataWtdEff[0]->SetBinContent(lastBin, 0);
262 hData[0]->SetBinError(lastBin, 0);
263 hDataPresel[0]->SetBinError(lastBin, 0);
264 hDataEff[0]->SetBinError(lastBin, 0);
265 hDataWtd[0]->SetBinError(lastBin, 0);
266 hDataPreselWtd[0]->SetBinError(lastBin, 0);
267 hDataWtdEff[0]->SetBinError(lastBin, 0);
269 hCRYMC[0]->GetXaxis()->SetRangeUser(0.4, 1.0);
270 hCRYMCPresel[0]->GetXaxis()->SetRangeUser(0.4, 1.0);
271 hCRYMCEff[0]->GetXaxis()->SetRangeUser(0.4, 1.0);
272 hCRYMCWtd[0]->GetXaxis()->SetRangeUser(0.4, 1.0);
273 hCRYMCPreselWtd[0]->GetXaxis()->SetRangeUser(0.4, 1.0);
274 hCRYMCWtdEff[0]->GetXaxis()->SetRangeUser(0.4, 1.0);
276 hData[0]->GetXaxis()->SetRangeUser(0.4, 1.0);
277 hDataPresel[0]->GetXaxis()->SetRangeUser(0.4, 1.0);
278 hDataEff[0]->GetXaxis()->SetRangeUser(0.4, 1.0);
279 hDataWtd[0]->GetXaxis()->SetRangeUser(0.4, 1.0);
280 hDataPreselWtd[0]->GetXaxis()->SetRangeUser(0.4, 1.0);
281 hDataWtdEff[0]->GetXaxis()->SetRangeUser(0.4, 1.0);
283 hCRYMC[3]->GetXaxis()->SetRangeUser(0, 4.0);
284 hCRYMCPresel[3]->GetXaxis()->SetRangeUser(0, 4.0);
285 hCRYMCEff[3]->GetXaxis()->SetRangeUser(0, 4.0);
286 hCRYMCWtd[3]->GetXaxis()->SetRangeUser(0, 4.0);
287 hCRYMCPreselWtd[3]->GetXaxis()->SetRangeUser(0, 4.0);
288 hCRYMCWtdEff[3]->GetXaxis()->SetRangeUser(0, 4.0);
290 hData[3]->GetXaxis()->SetRangeUser(0, 4.0);
291 hDataPresel[3]->GetXaxis()->SetRangeUser(0, 4.0);
292 hDataEff[3]->GetXaxis()->SetRangeUser(0, 4.0);
293 hDataWtd[3]->GetXaxis()->SetRangeUser(0, 4.0);
294 hDataPreselWtd[3]->GetXaxis()->SetRangeUser(0, 4.0);
295 hDataWtdEff[3]->GetXaxis()->SetRangeUser(0, 4.0);
300 lastBin = hDataEff[3]->GetXaxis()->GetLast();
301 hDataEff[3]->SetBinContent(lastBin, 0);
302 hDataWtdEff[3]->SetBinContent(lastBin, 0);
303 hDataEff[3]->SetBinError(lastBin, 0);
304 hDataWtdEff[3]->SetBinError(lastBin, 0);
306 hCRYMC[4]->GetXaxis()->SetRangeUser(0, 0.1);
307 hCRYMCPresel[4]->GetXaxis()->SetRangeUser(0, 0.1);
308 hCRYMCEff[4]->GetXaxis()->SetRangeUser(0, 0.1);
309 hCRYMCWtd[4]->GetXaxis()->SetRangeUser(0, 0.1);
310 hCRYMCPreselWtd[4]->GetXaxis()->SetRangeUser(0, 0.1);
311 hCRYMCWtdEff[4]->GetXaxis()->SetRangeUser(0, 0.1);
313 hCRYMC[5]->GetXaxis()->SetRangeUser(0.3, 1);
314 hCRYMCPresel[5]->GetXaxis()->SetRangeUser(0.3, 1.0);
315 hCRYMCEff[5]->GetXaxis()->SetRangeUser(0.3, 1.0);
316 hCRYMCWtd[5]->GetXaxis()->SetRangeUser(0.3, 1.0);
317 hCRYMCPreselWtd[5]->GetXaxis()->SetRangeUser(0.3, 1.0);
318 hCRYMCWtdEff[5]->GetXaxis()->SetRangeUser(0.3, 1.0);
320 hData[4]->GetXaxis()->SetRangeUser(0, 0.1);
321 hDataPresel[4]->GetXaxis()->SetRangeUser(0, 0.1);
322 hDataEff[4]->GetXaxis()->SetRangeUser(0, 0.1);
323 hDataWtd[4]->GetXaxis()->SetRangeUser(0, 0.1);
324 hDataPreselWtd[4]->GetXaxis()->SetRangeUser(0, 0.1);
325 hDataWtdEff[4]->GetXaxis()->SetRangeUser(0, 0.1);
327 hData[5]->GetXaxis()->SetRangeUser(0.3, 1);
328 hDataPresel[5]->GetXaxis()->SetRangeUser(0.3, 1.0);
329 hDataEff[5]->GetXaxis()->SetRangeUser(0.3, 1.0);
330 hDataWtd[5]->GetXaxis()->SetRangeUser(0.3, 1.0);
331 hDataPreselWtd[5]->GetXaxis()->SetRangeUser(0.3, 1.0);
332 hDataWtdEff[5]->GetXaxis()->SetRangeUser(0.3, 1.0);
342 TCanvas *
c1 =
new TCanvas(
"c1",
"presel distributions", 800,600);
343 hCRYMCPresel[
var]->GetXaxis()->SetTitle(
plots[
var].XaxisLabel);
344 makePlot(c1, &*hDataPresel[
var], &*hCRYMCPresel[var], &*hGENIEPresel[var], 0,
plots[var].legSide,
beam==
"FHC" ?
true :
false);
347 TCanvas *
c2 =
new TCanvas(
"c2",
"distributions", 800,600);
348 hCRYMC[
var]->GetXaxis()->SetTitle(
plots[var].XaxisLabel);
349 makePlot(c2, &*hData[var], &*hCRYMC[var], &*hGENIE[var], 1,
plots[var].legSide,
beam==
"FHC" ?
true :
false);
352 if(
plots[var].yAxisLimit != 0) {
353 hCRYMCPresel[
var]->GetYaxis()->SetRangeUser(0,
plots[var].yAxisLimit);
354 hCRYMC[
var]->GetYaxis()->SetRangeUser(0,
plots[var].yAxisLimit);
358 TCanvas *
c3 =
new TCanvas(
"c3",
"wgtd presel distributions", 800,600);
359 hCRYMCPreselWtd[
var]->GetXaxis()->SetTitle(
plots[var].XaxisLabel);
360 makeWgtdPlot(c3, &*hDataPreselWtd[var], &*hCRYMCPreselWtd[var], &*hGENIEPresel[var], 0,
plots[var].legSide,
beam==
"FHC" ?
true :
false);
363 TCanvas *
c4 =
new TCanvas(
"c4",
"wgtd distributions", 800,600);
364 hCRYMCWtd[
var]->GetXaxis()->SetTitle(
plots[var].XaxisLabel);
365 makeWgtdPlot(c4, &*hDataWtd[var], &*hCRYMCWtd[var], &*hGENIE[var], 1,
plots[var].legSide,
beam==
"FHC" ?
true :
false);
368 if(
plots[var].yAxisLimit != 0) {
369 hCRYMCPreselWtd[
var]->GetYaxis()->SetRangeUser(0,
plots[var].yAxisLimit);
370 hCRYMCWtd[
var]->GetYaxis()->SetRangeUser(0,
plots[var].yAxisLimit);
374 TCanvas *c5 =
new TCanvas(
"c5",
"Eff",800,800);
376 hDataEff[
var]->GetXaxis()->SetTitle(
plots[var].XaxisLabel);
378 if (var == 3 &&
beam !=
"FHC")
makeEffPlot(c5, &*hDataEff[var], &*hDataPreselEff[var], &*hCRYMCEff[var], &*hCRYMCPreselEff[var], 0,
false);
379 else makeEffPlot(c5, &*hDataEff[var], &*hDataPreselEff[var], &*hCRYMCEff[var], &*hCRYMCPreselEff[var],
plots[var].legSide,
beam==
"FHC" ?
true :
false);
380 hCRYMCEff[3]->GetYaxis()->SetRangeUser(0,1.2);
383 TCanvas *c6 =
new TCanvas(
"c6",
"Weighted Eff",800,800);
385 hDataWtdEff[
var]->GetXaxis()->SetTitle(
plots[var].XaxisLabel);
387 if (var == 3 &&
beam !=
"FHC")
makeWgtdEffPlot(c6, &*hDataWtdEff[var], &*hDataPreselWtdEff[var], &*hCRYMCWtdEff[var], &*hCRYMCPreselWtdEff[var], 0,
false);
388 else makeWgtdEffPlot(c6, &*hDataWtdEff[var], &*hDataPreselWtdEff[var], &*hCRYMCWtdEff[var], &*hCRYMCPreselWtdEff[var],
plots[var].legSide,
beam==
"FHC" ?
true :
false);
389 hCRYMCWtdEff[3]->GetYaxis()->SetRangeUser(0, 2.0);
393 TCanvas *c7 =
new TCanvas(
"c7",
"presel distributions", 800,600);
394 hCRYMCPresel[
var]->GetXaxis()->SetTitle(
plots[var].XaxisLabel);
395 makePlot(c7, &*hDataPresel[var], &*hCRYMCPresel[var], 0,
plots[var].legSide);
398 TCanvas *c8 =
new TCanvas(
"c8",
"distributions", 800,600);
399 hCRYMC[
var]->GetXaxis()->SetTitle(
plots[var].XaxisLabel);
400 makePlot(c8, &*hData[var], &*hCRYMC[var], 1,
plots[var].legSide);
403 if(
plots[var].yAxisLimit != 0) {
404 hCRYMCPresel[
var]->GetYaxis()->SetRangeUser(0,
plots[var].yAxisLimit);
405 hCRYMC[
var]->GetYaxis()->SetRangeUser(0,
plots[var].yAxisLimit);
409 TCanvas *c9 =
new TCanvas(
"c9",
"wgtd presel distributions", 800,600);
410 hCRYMCPreselWtd[
var]->GetXaxis()->SetTitle(
plots[var].XaxisLabel);
411 makeWgtdPlot(c9, &*hDataPreselWtd[var], &*hCRYMCPreselWtd[var], 0,
plots[var].legSide);
414 TCanvas *c10 =
new TCanvas(
"c10",
"wgtd distributions", 800,600);
415 hCRYMCWtd[
var]->GetXaxis()->SetTitle(
plots[var].XaxisLabel);
419 if(
plots[var].yAxisLimit != 0) {
420 hCRYMCPreselWtd[
var]->GetYaxis()->SetRangeUser(0,
plots[var].yAxisLimit);
421 hCRYMCWtd[
var]->GetYaxis()->SetRangeUser(0,
plots[var].yAxisLimit);
426 sprintf(saveName,
"EffPlots/%s/%s_Presel_%s.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
427 c1->SaveAs(saveName);
428 sprintf(saveName,
"EffPlots/%s/%s_%s.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
429 c2->SaveAs(saveName);
431 sprintf(saveName,
"EffPlots/%s/%s_Presel_Wtd_%s.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
432 c3->SaveAs(saveName);
433 sprintf(saveName,
"EffPlots/%s/%s_Wtd_%s.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
434 c4->SaveAs(saveName);
436 sprintf(saveName,
"EffPlots/%s/%s_Eff_%s.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
437 c5->SaveAs(saveName);
438 sprintf(saveName,
"EffPlots/%s/%s_Eff_Wtd_%s.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
439 c6->SaveAs(saveName);
441 sprintf(saveName,
"EffPlots/%s/%s_Presel_%s_noGENIE.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
442 c7->SaveAs(saveName);
443 sprintf(saveName,
"EffPlots/%s/%s_%s_noGENIE.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
444 c8->SaveAs(saveName);
446 sprintf(saveName,
"EffPlots/%s/%s_Presel_Wtd_%s_noGENIE.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
447 c9->SaveAs(saveName);
448 sprintf(saveName,
"EffPlots/%s/%s_Wtd_%s_noGENIE.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
449 c10->SaveAs(saveName);
454 TCanvas *c11 =
new TCanvas(
"c11",
"Eff",800,800);
455 hDataPresel[
var]->GetXaxis()->SetTitle(
plots[var].XaxisLabel);
456 makeDataCryRatio(c11, &*hDataPresel[var], &*hCRYMCPresel[var], 0,
plots[var].legSide,
beam==
"FHC" ?
true :
false,
false);
457 sprintf(saveName,
"EffPlots/%s/%s_%s_Ratio.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
458 c11->SaveAs(saveName);
461 TCanvas *c12 =
new TCanvas(
"c12",
"Eff",800,800);
462 hDataPreselWtd[
var]->GetXaxis()->SetTitle(
plots[var].XaxisLabel);
463 makeDataCryRatio(c12, &*hDataPreselWtd[var], &*hCRYMCPreselWtd[var], 0,
plots[var].legSide,
beam==
"FHC" ?
true :
false,
true);
464 sprintf(saveName,
"EffPlots/%s/%s_Wtd_%s_Ratio.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
465 c12->SaveAs(saveName);
470 TCanvas *c13 =
new TCanvas(
"c13",
"Eff",800,600);
471 hCRYMCEff[
var]->GetXaxis()->SetTitle(
plots[var].XaxisLabel);
472 if (var == 3 &&
beam !=
"FHC")
makeEffPlotNoRatio(c13, &*hDataEff[var], &*hCRYMCEff[var], 0,
false,
false);
474 hCRYMCEff[3]->GetYaxis()->SetRangeUser(0,1.2);
477 TCanvas *c14 =
new TCanvas(
"c14",
"Weighted Eff",800,600);
478 hCRYMCWtdEff[
var]->GetXaxis()->SetTitle(
plots[var].XaxisLabel);
479 if (var == 3 &&
beam !=
"FHC")
makeEffPlotNoRatio(c14, &*hDataWtdEff[var], &*hCRYMCWtdEff[var], 0,
false,
true);
483 sprintf(saveName,
"EffPlots/%s/%s_Eff_%s_noRatio.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
484 c13->SaveAs(saveName);
485 sprintf(saveName,
"EffPlots/%s/%s_Eff_Wtd_%s_noRatio.png",
beam.c_str(),
plots[
var].savename,
beam.c_str());
486 c14->SaveAs(saveName);
495 void makePlot(TCanvas *
c1, TH1 *hCosmicsData, TH1 *hCRYMC, TH1 *hGENIEFluxswap,
int sel,
int legSide,
bool isFHC)
499 hCRYMC->GetXaxis()->CenterTitle();
500 hCRYMC->GetYaxis()->CenterTitle();
501 hCosmicsData->SetLineColor(kBlack);
502 hCosmicsData->SetMarkerStyle(20);
503 hCRYMC->SetFillColorAlpha(kMagenta+2, 0.5);
504 hCRYMC->SetLineColor(kMagenta+2);
505 hGENIEFluxswap->SetLineColor(
kBlue);
507 double kNormFactor = hCosmicsData->Integral();
508 hGENIEFluxswap->Scale(kNormFactor/hGENIEFluxswap->Integral());
509 hCRYMC->Scale(kNormFactor/hCRYMC->Integral());
511 hCRYMC->GetYaxis()->SetTitle(
"Events");
514 auto hCRYMC2 = (TH1*)hCRYMC->Clone();
515 for(
int bin =0;
bin <= hCRYMC2->GetXaxis()->GetLast();
bin ++) hCRYMC2->SetBinError(
bin, 0.000001);
516 hCRYMC2->SetFillColor(kWhite);
517 hCRYMC2->SetMarkerColor(kMagenta+2);
518 hCRYMC2->Draw(
"E hist same");
519 hCosmicsData->Draw(
"E1 same");
520 hGENIEFluxswap->Draw(
"hist E1 same");
521 hCRYMC->GetYaxis()->SetLabelSize(0.037);
522 hCRYMC->GetYaxis()->SetTitleOffset(0.95);
526 leg =
new TLegend(0.15,0.62,0.75,0.85);
528 leg->AddEntry(hCosmicsData,
"Cosmic Data",
"p");
529 leg->AddEntry((TObject*)0, sel==0 ?
"Preselected DiF Events":
"Selected DiF Events",
"");
530 leg->AddEntry(hCRYMC,
"Cosmics MC (CRY)",
"l");
531 leg->AddEntry((TObject*)0,
"Area norm. to data",
"");
532 leg->AddEntry(hCRYMC,
"Cosmics MC Stat. Err.",
"f");
533 leg->AddEntry((TObject*)0,
"",
"");
534 leg->AddEntry(hGENIEFluxswap, isFHC ?
"#nu_{e} Signal MC" :
"#bar{#nu}_{e} Signal MC",
"l");
537 leg =
new TLegend(0.15,0.62,0.85,0.85);
539 leg->AddEntry((TObject*)0, sel==0 ?
"Preselected DiF Events":
"Selected DiF Events",
"");
540 leg->AddEntry(hCosmicsData,
"Cosmic Data",
"p");
541 leg->AddEntry((TObject*)0,
"Area norm. to data",
"");
542 leg->AddEntry(hCRYMC,
"Cosmics MC (CRY)",
"l");
543 leg->AddEntry((TObject*)0,
"",
"");
544 leg->AddEntry(hCRYMC,
"Cosmics MC Stat. Err.",
"f");
545 leg->AddEntry((TObject*)0,
"",
"");
546 leg->AddEntry(hGENIEFluxswap, isFHC ?
"#nu_{e} Signal MC" :
"#bar{#nu}_{e} Signal MC",
"l");
548 leg->SetFillStyle(0);
549 leg->SetTextSize(0.04);
554 void makePlot(TCanvas *
c1, TH1 *hCosmicsData, TH1 *hCRYMC,
int sel,
int legSide)
559 hCRYMC->GetXaxis()->CenterTitle();
560 hCRYMC->GetYaxis()->CenterTitle();
561 hCosmicsData->SetLineColor(kBlack);
562 hCosmicsData->SetMarkerStyle(20);
563 hCRYMC->SetLineColor(kMagenta+2);
564 hCRYMC->SetFillColorAlpha(kMagenta+2, 0.5);
566 double kNormFactor = hCosmicsData->Integral();
567 hCRYMC->Scale(kNormFactor/hCRYMC->Integral());
569 hCRYMC->GetYaxis()->SetTitle(
"Events");
573 auto hCRYMC2 = (TH1*)hCRYMC->Clone();
574 for(
int bin =0;
bin <= hCRYMC2->GetXaxis()->GetLast();
bin ++) hCRYMC2->SetBinError(
bin, 0.000001);
575 hCRYMC2->SetFillColor(kWhite);
576 hCRYMC2->SetMarkerColor(kMagenta+2);
577 hCRYMC2->Draw(
"E hist same");
578 hCosmicsData->Draw(
"E1 same");
579 hCRYMC->GetYaxis()->SetLabelSize(0.037);
584 leg =
new TLegend(0.15,0.68,0.75,0.85);
586 leg->AddEntry(hCosmicsData,
"Cosmic Data",
"p");
587 leg->AddEntry((TObject*)0, sel==0 ?
"Preselected DiF Events":
"Selected DiF Events",
"");
588 leg->AddEntry(hCRYMC,
"Cosmics MC (CRY)",
"l");
589 leg->AddEntry((TObject*)0,
"Area norm. to data",
"");
590 leg->AddEntry(hCRYMC,
"Cosmics MC Stat. Err.",
"f");
593 leg =
new TLegend(0.15,0.68,0.85,0.85);
595 leg->AddEntry((TObject*)0, sel==0 ?
"Preselected DiF Events":
"Selected DiF Events",
"");
596 leg->AddEntry(hCosmicsData,
"Cosmic Data",
"p");
597 leg->AddEntry((TObject*)0,
"Area norm. to data",
"");
598 leg->AddEntry(hCRYMC,
"Cosmics MC (CRY)",
"l");
599 leg->AddEntry((TObject*)0,
"",
"");
600 leg->AddEntry(hCRYMC,
"Cosmics MC Stat. Err.",
"f");
602 leg->SetFillStyle(0);
603 leg->SetTextSize(0.04);
609 void makeWgtdPlot(TCanvas *
c1, TH1 *hCosmicsData, TH1 *hCRYMC, TH1 *hGENIEFluxswap,
int sel,
int legSide,
bool isFHC)
613 hCRYMC->GetXaxis()->CenterTitle();
614 hCRYMC->GetYaxis()->CenterTitle();
615 hCosmicsData->SetLineColor(kBlack);
616 hCosmicsData->SetMarkerStyle(20);
617 hCRYMC->SetLineColor(kMagenta+2);
618 hCRYMC->SetFillColorAlpha(kMagenta+2, 0.5);
619 hGENIEFluxswap->SetLineColor(
kBlue);
621 double kNormFactor = hCosmicsData->Integral();
622 hGENIEFluxswap->Scale(kNormFactor/hGENIEFluxswap->Integral());
623 hCRYMC->Scale(kNormFactor/hCRYMC->Integral());
625 hCRYMC->GetYaxis()->SetTitle(
"Events (cos#theta_{beam} weighted)");
629 auto hCRYMC2 = (TH1*)hCRYMC->Clone();
630 for(
int bin =0;
bin <= hCRYMC2->GetXaxis()->GetLast();
bin ++) hCRYMC2->SetBinError(
bin, 0.000001);
631 hCRYMC2->SetFillColor(kWhite);
632 hCRYMC2->SetMarkerColor(kMagenta+2);
633 hCRYMC2->Draw(
"E hist same");
634 hCosmicsData->Draw(
"E1 same");
636 hGENIEFluxswap->Draw(
"hist E1 same");
637 hCRYMC->GetYaxis()->SetLabelSize(0.037);
638 hCRYMC->GetYaxis()->SetTitleOffset(1.0);
639 hCRYMC->GetYaxis()->SetTitleSize(0.05);
643 leg =
new TLegend(0.15,0.62,0.75,0.85);
645 leg->AddEntry(hCosmicsData,
"Cosmic Data",
"p");
646 leg->AddEntry((TObject*)0, sel==0 ?
"Preselected DiF Events":
"Selected DiF Events",
"");
647 leg->AddEntry(hCRYMC,
"Cosmics MC (CRY)",
"l");
648 leg->AddEntry((TObject*)0,
"Area norm. to data",
"");
649 leg->AddEntry(hCRYMC,
"Cosmics MC Stat. Err.",
"f");
650 leg->AddEntry((TObject*)0,
"",
"");
651 leg->AddEntry(hGENIEFluxswap, isFHC ?
"#nu_{e} Signal MC" :
"#bar{#nu}_{e} Signal MC",
"l");
654 leg =
new TLegend(0.15,0.62,0.85,0.85);
656 leg->AddEntry((TObject*)0, sel==0 ?
"Preselected DiF Events":
"Selected DiF Events",
"");
657 leg->AddEntry(hCosmicsData,
"Cosmic Data",
"p");
658 leg->AddEntry((TObject*)0,
"Area norm. to data",
"");
659 leg->AddEntry(hCRYMC,
"Cosmics MC (CRY)",
"l");
660 leg->AddEntry((TObject*)0,
"",
"");
661 leg->AddEntry(hCRYMC,
"Cosmics MC Stat. Err.",
"f");
662 leg->AddEntry((TObject*)0,
"",
"");
663 leg->AddEntry(hGENIEFluxswap, isFHC ?
"#nu_{e} Signal MC" :
"#bar{#nu}_{e} Signal MC",
"l");
665 leg->SetFillStyle(0);
666 leg->SetTextSize(0.04);
671 void makeWgtdPlot(TCanvas *
c1, TH1 *hCosmicsData, TH1 *hCRYMC,
int sel,
int legSide)
676 hCRYMC->GetXaxis()->CenterTitle();
677 hCRYMC->GetYaxis()->CenterTitle();
678 hCosmicsData->SetLineColor(kBlack);
679 hCosmicsData->SetMarkerStyle(20);
680 hCRYMC->SetLineColor(kMagenta+2);
681 hCRYMC->SetFillColorAlpha(kMagenta+2, 0.5);
683 double kNormFactor = hCosmicsData->Integral();
684 hCRYMC->Scale(kNormFactor/hCRYMC->Integral());
685 hCRYMC->GetYaxis()->SetTitle(
"Events (cos#theta_{beam} weighted)");
689 auto hCRYMC2 = (TH1*)hCRYMC->Clone();
690 for(
int bin =0;
bin <= hCRYMC2->GetXaxis()->GetLast();
bin ++) hCRYMC2->SetBinError(
bin, 0.000001);
691 hCRYMC2->SetFillColor(kWhite);
692 hCRYMC2->SetMarkerColor(kMagenta+2);
693 hCRYMC2->Draw(
"E hist same");
694 hCosmicsData->Draw(
"E1 same");
700 leg =
new TLegend(0.15,0.68,0.75,0.85);
702 leg->AddEntry(hCosmicsData,
"Cosmic Data",
"p");
703 leg->AddEntry((TObject*)0, sel==0 ?
"Preselected DiF Events":
"Selected DiF Events",
"");
704 leg->AddEntry(hCRYMC,
"Cosmics MC (CRY)",
"l");
705 leg->AddEntry((TObject*)0,
"Area norm. to data",
"");
706 leg->AddEntry(hCRYMC,
"Cosmics MC Stat. Err.",
"f");
709 leg =
new TLegend(0.15,0.68,0.85,0.85);
711 leg->AddEntry((TObject*)0, sel==0 ?
"Preselected DiF Events":
"Selected DiF Events",
"");
712 leg->AddEntry(hCosmicsData,
"Cosmic Data",
"p");
713 leg->AddEntry((TObject*)0,
"Area norm. to data",
"");
714 leg->AddEntry(hCRYMC,
"Cosmics MC (CRY)",
"l");
715 leg->AddEntry((TObject*)0,
"",
"");
716 leg->AddEntry(hCRYMC,
"Cosmics MC Stat. Err.",
"f");
718 leg->SetFillStyle(0);
719 leg->SetTextSize(0.04);
728 TPad *
pad1 =
new TPad(
"pad1",
"pad1", 0, 0.375, 1, 1.0);
730 pad1->SetBottomMargin(0.02);
733 hCRYMC->GetXaxis()->CenterTitle();
734 hCRYMC->GetYaxis()->CenterTitle();
735 hCosmicsData->SetLineColor(kBlack);
736 hCosmicsData->SetMarkerStyle(20);
737 hCRYMC->SetLineColor(kMagenta+2);
738 hCRYMC->SetFillColorAlpha(kMagenta+2, 0.5);
740 double kNormFactor = hCosmicsData->Integral();
741 hCRYMC->Scale(kNormFactor/hCRYMC->Integral());
743 hCRYMC->GetYaxis()->SetTitle(isWgtd ?
"Events (cos#theta_{beam} weighted)" :
"Events");
747 auto hCRYMC2 = (TH1*)hCRYMC->Clone();
748 for(
int bin =0;
bin <= hCRYMC2->GetXaxis()->GetLast();
bin ++) hCRYMC2->SetBinError(
bin, 0.000001);
749 hCRYMC2->SetFillColor(kWhite);
750 hCRYMC2->SetMarkerColor(kMagenta+2);
751 hCRYMC2->Draw(
"E hist same");
752 hCosmicsData->Draw(
"E1 same");
753 hCRYMC->GetYaxis()->SetLabelSize(0.037);
754 hCRYMC->GetYaxis()->SetTitleOffset(0.95);
755 hCRYMC->GetXaxis()->SetLabelSize(0);
758 if (legSide ==0) leg =
new TLegend(0.15,0.68,0.75,0.85);
759 else leg =
new TLegend(0.5,0.68,0.8,0.85);
761 leg->AddEntry(hCosmicsData,
"Cosmic Data",
"p");
762 leg->AddEntry((TObject*)0, sel==0 ?
"Preselected DiF Events":
"Selected DiF Events",
"");
763 leg->AddEntry(hCRYMC,
"Cosmics MC (CRY)",
"l");
764 leg->AddEntry((TObject*)0,
"Area norm. to data",
"");
765 leg->AddEntry(hCRYMC,
"Cosmics MC Stat. Err.",
"f");
766 leg->SetTextSize(0.05);
771 TPad *
pad2 =
new TPad(
"pad2",
"pad2", 0, 0.002, 1, 0.375);
772 pad2->SetTopMargin(0);
773 pad2->SetBottomMargin(0.2);
778 TH1D* hRatio =(TH1D*)hCosmicsData->Clone(
"hRatio");
780 hRatio->GetXaxis()->CenterTitle();
781 hRatio->GetYaxis()->CenterTitle();
782 hRatio->SetLineColor(kBlack);
783 hRatio->SetMarkerStyle(20);
784 hRatio->SetLineWidth(3);
785 hRatio->Divide(hCRYMC);
787 hRatio->GetXaxis()->SetLabelSize(0.075);
788 hRatio->GetYaxis()->SetLabelSize(0.075);
789 hRatio->GetXaxis()->SetTitleOffset(0.85);
790 hRatio->GetYaxis()->SetTitleOffset(0.55);
791 hRatio->GetXaxis()->SetTitleSize(0.09);
792 hRatio->GetYaxis()->SetTitleSize(0.085);
793 hRatio->GetYaxis()->SetRangeUser(0.,2.0);
794 hRatio->GetYaxis()->SetTitle(
"#frac{Data}{MC}");
796 hCRYMC->GetXaxis()->SetTitle(
"");
803 void makeEffPlot(TCanvas *
c1, TH1 *hCosmicsDataCore, TH1 *hCosmicsDataPresel, TH1 *hCRYMCCore, TH1 *hCRYMCPresel,
int legSide,
bool isFHC)
806 TPad *
pad1 =
new TPad(
"pad1",
"pad1", 0, 0.375, 1, 1.0);
808 pad1->SetBottomMargin(0.02);
811 hCRYMCCore->GetXaxis()->CenterTitle();
812 hCRYMCCore->GetYaxis()->CenterTitle();
813 hCosmicsDataCore->SetLineColor(kBlack);
814 hCosmicsDataCore->SetMarkerStyle(20);
815 hCosmicsDataCore->SetLineWidth(2);
816 hCRYMCCore->SetLineColor(kMagenta+2);
817 hCRYMCCore->SetFillColorAlpha(kMagenta+2, 0.5);
818 hCRYMCCore->SetLineWidth(2);
820 hCosmicsDataCore->Divide(hCosmicsDataPresel);
821 hCRYMCCore->Divide(hCRYMCPresel);
822 hCRYMCCore->Draw(
"E2");
825 auto hCRYMC2 = (TH1*)hCRYMCCore->Clone();
826 for(
int bin =0;
bin <= hCRYMC2->GetXaxis()->GetLast();
bin ++) hCRYMC2->SetBinError(
bin, 0.000001);
827 hCRYMC2->SetFillColor(kWhite);
828 hCRYMC2->SetMarkerColor(kMagenta+2);
829 hCRYMC2->Draw(
"E hist same");
830 hCosmicsDataCore->Draw(
"E1 same");
833 hCRYMCCore->GetXaxis()->SetLabelSize(0);
834 hCRYMCCore->GetYaxis()->SetTitle(
"Selection Efficiency");
837 hCRYMCCore->GetYaxis()->SetRangeUser(0,1.2*gPad->GetUymax());
840 if (legSide ==0) leg =
new TLegend(0.15,0.68,0.45,0.85);
841 else leg =
new TLegend(0.5,0.68,0.8,0.85);
842 leg->AddEntry(hCosmicsDataCore,
"Cosmic Data",
"p");
843 leg->AddEntry(hCRYMCCore,
"Cosmic MC (CRY)",
"l");
844 leg->AddEntry(hCRYMCCore,
"Cosmic MC Stat. Err.",
"f");
845 leg->SetTextSize(0.05);
851 double dif_label_x = 0.5;
852 TText *
tt =
new TText(0.9*dif_label_x, 0.6,
"FD Decay-in-Flight");
853 tt->SetTextSize(0.06);
859 TPad *
pad2 =
new TPad(
"pad2",
"pad2", 0, 0.002, 1, 0.375);
860 pad2->SetTopMargin(0);
861 pad2->SetBottomMargin(0.2);
866 TH1D* hEffRatio =(TH1D*)hCosmicsDataCore->Clone(
"hEffRatio");
868 hEffRatio->GetXaxis()->CenterTitle();
869 hEffRatio->GetYaxis()->CenterTitle();
870 hEffRatio->SetLineColor(kBlack);
871 hEffRatio->SetMarkerStyle(20);
872 hEffRatio->SetLineWidth(3);
873 hEffRatio->Divide(hCRYMCCore);
874 hEffRatio->Draw(
"E1");
875 hEffRatio->GetXaxis()->SetLabelSize(0.075);
876 hEffRatio->GetYaxis()->SetLabelSize(0.075);
877 hEffRatio->GetXaxis()->SetTitleOffset(0.85);
878 hEffRatio->GetYaxis()->SetTitleOffset(0.55);
879 hEffRatio->GetXaxis()->SetTitleSize(0.09);
880 hEffRatio->GetYaxis()->SetTitleSize(0.085);
881 hEffRatio->GetYaxis()->SetRangeUser(0.5,1.5);
882 hEffRatio->GetYaxis()->SetTitle(
"#frac{Data}{MC}");
884 hCRYMCCore->GetXaxis()->SetTitle(
"");
890 void makeWgtdEffPlot(TCanvas *
c1, TH1 *hCosmicsDataCore, TH1 *hCosmicsDataPresel, TH1 *hCRYMCCore, TH1 *hCRYMCPresel,
int legSide,
bool isFHC)
893 TPad *
pad1 =
new TPad(
"pad1",
"pad1", 0, 0.375, 1, 1.0);
895 pad1->SetBottomMargin(0.02);
898 hCRYMCCore->GetXaxis()->CenterTitle();
899 hCRYMCCore->GetYaxis()->CenterTitle();
900 hCosmicsDataCore->SetLineColor(kBlack);
901 hCosmicsDataCore->SetMarkerStyle(20);
902 hCosmicsDataCore->SetLineWidth(2);
903 hCRYMCCore->SetLineColor(kMagenta+2);
904 hCRYMCCore->SetFillColorAlpha(kMagenta+2, 0.5);
905 hCRYMCCore->SetLineWidth(2);
907 hCosmicsDataCore->Divide(hCosmicsDataPresel);
908 hCRYMCCore->Divide(hCRYMCPresel);
909 hCRYMCCore->Draw(
"E2");
912 auto hCRYMC2 = (TH1*)hCRYMCCore->Clone();
913 for(
int bin =0;
bin <= hCRYMC2->GetXaxis()->GetLast();
bin ++) hCRYMC2->SetBinError(
bin, 0.000001);
914 hCRYMC2->SetFillColor(kWhite);
915 hCRYMC2->SetMarkerColor(kMagenta+2);
916 hCRYMC2->SetLineWidth(2);
917 hCRYMC2->Draw(
"E hist same");
918 hCosmicsDataCore->Draw(
"E1 same");
921 hCRYMCCore->GetYaxis()->SetLabelSize(0.037);
922 hCRYMCCore->GetXaxis()->SetLabelSize(0);
923 hCRYMCCore->GetYaxis()->SetTitle(
"cos#theta_{beam} Weighted Efficiency");
925 hCRYMCCore->GetYaxis()->SetRangeUser(0,1.2);
928 if (legSide ==0) leg =
new TLegend(0.15,0.68,0.45,0.85);
929 else leg =
new TLegend(0.5,0.68,0.8,0.85);
930 leg->AddEntry(hCosmicsDataCore,
"Cosmic Data",
"p");
931 leg->AddEntry(hCRYMCCore,
"Cosmic MC (CRY)",
"l");
932 leg->AddEntry(hCRYMCCore,
"Cosmic MC Stat. Err.",
"f");
933 leg->SetTextSize(0.05);
937 double dif_label_y = 0.6;
940 double dif_label_x = 0.5;
941 TText *
tt =
new TText(0.9*dif_label_x, dif_label_y,
"FD Decay-in-Flight");
942 tt->SetTextSize(0.06);
946 TPad *
pad2 =
new TPad(
"pad2",
"pad2", 0, 0.002, 1, 0.375);
947 pad2->SetTopMargin(0);
948 pad2->SetBottomMargin(0.2);
953 TH1D* hEffRatio =(TH1D*)hCosmicsDataCore->Clone(
"hEffRatio");
955 hEffRatio->GetXaxis()->CenterTitle();
956 hEffRatio->GetYaxis()->CenterTitle();
957 hEffRatio->SetLineColor(kBlack);
958 hEffRatio->SetMarkerStyle(20);
959 hEffRatio->SetLineWidth(3);
960 hEffRatio->Divide(hCRYMCCore);
961 hEffRatio->Draw(
"E1");
962 hEffRatio->GetXaxis()->SetLabelSize(0.075);
963 hEffRatio->GetYaxis()->SetLabelSize(0.075);
964 hEffRatio->GetXaxis()->SetTitleOffset(0.85);
965 hEffRatio->GetYaxis()->SetTitleOffset(0.55);
966 hEffRatio->GetXaxis()->SetTitleSize(0.09);
967 hEffRatio->GetYaxis()->SetTitleSize(0.085);
968 hEffRatio->GetYaxis()->SetRangeUser(0.5,1.5);
969 hEffRatio->GetYaxis()->SetTitle(
"#frac{Data}{MC}");
971 hCRYMCCore->GetXaxis()->SetTitle(
"");
981 hCRYMCEff->GetXaxis()->SetLabelSize(0.04);
982 hCRYMCEff->Draw(
"E2");
986 auto hCRYMC2 = (TH1*)hCRYMCEff->Clone();
987 for(
int bin =0;
bin <= hCRYMC2->GetXaxis()->GetLast();
bin ++) hCRYMC2->SetBinError(
bin, 0.000001);
988 hCRYMC2->SetFillColor(kWhite);
989 hCRYMC2->SetMarkerColor(kMagenta+2);
990 hCRYMC2->Draw(
"E hist same");
991 hCosmicsDataEff->Draw(
"E1 same");
994 if (legSide ==0) leg =
new TLegend(0.15,0.68,0.45,0.85);
995 else leg =
new TLegend(0.5,0.68,0.8,0.85);
996 leg->SetTextSize(0.05);
997 leg->AddEntry(hCosmicsDataEff,
"Cosmic Data",
"p");
998 leg->AddEntry(hCRYMCEff,
"Cosmic MC (CRY)",
"l");
999 leg->AddEntry(hCRYMCEff,
"Cosmic MC Stat. Err.",
"f");
1004 double dif_label_y = 0.6;
1005 double dif_label_x = 0.25;
1006 TText *
tt =
new TText(dif_label_x, dif_label_y,
"FD Decay-in-Flight");
1007 tt->SetTextSize(0.06);
void makeEffPlot(TCanvas *c1, TH1 *hCosmicsDataCore, TH1 *hCosmicsDataPresel, TH1 *hCRYMCCore, TH1 *hCRYMCPresel, int legSide, bool isFHC)
void makePlot(TCanvas *c1, TH1 *hCosmicsData, TH1 *hCRYMC, TH1 *hGENIEFluxswap, int sel, int legSide, bool isFHC)
Cuts and Vars for the 2020 FD DiF Study.
void makeEffPlotNoRatio(TCanvas *c1, TH1 *hCosmicsDataCEff, TH1 *hCRYMCCoreEff, int legSide, bool isFHC, bool isWgtd)
====================================================================== ///
static std::unique_ptr< Spectrum > LoadFrom(TDirectory *dir, const std::string &name)
TPaveText * DrawBeamLabel(bool isFHC)
Put the standardized beam label in the left corner of the active canvas.
const std::vector< Plot > plots
void makeDataCryRatio(TCanvas *c1, TH1 *hCosmicsData, TH1 *hCRYMC, int sel, int legSide, bool isFHC, bool isWgtd)
void DrawBeamLabelEff(bool isFHC)
void makeWgtdPlot(TCanvas *c1, TH1 *hCosmicsData, TH1 *hCRYMC, TH1 *hGENIEFluxswap, int sel, int legSide, bool isFHC)
void make_eff_plots_areaNorm(std::string beam="FHC")
void makeWgtdEffPlot(TCanvas *c1, TH1 *hCosmicsDataCore, TH1 *hCosmicsDataPresel, TH1 *hCRYMCCore, TH1 *hCRYMCPresel, int legSide, bool isFHC)