plot_nueFD_Signal_REWvsNOM_RHC.C
Go to the documentation of this file.
1 // Macro to make table of nominal predictions at oscillation values
2 
3 
7 #include "CAFAna/Core/Binning.h"
8 #include "CAFAna/Core/Cut.h"
9 #include "CAFAna/Core/HistAxis.h"
11 #include "CAFAna/Core/Spectrum.h"
14 #include "CAFAna/Cuts/Cuts.h"
17 #include "CAFAna/Cuts/NueCutsSecondAna.h"
18 #include "CAFAna/Cuts/SpillCuts.h"
27 #include "CAFAna/Vars/Vars.h"
28 
29 #include "OscLib/OscCalcPMNSOpt.h"
30 #include "OscLib/OscCalcDumb.h"
31 #include "CAFAna/Analysis/Style.h"
32 
33 //#include "CAFAna/nue/SecondAna/draw_plots_util.h"
34 
35 #include "TFile.h"
36 #include "TH1.h"
37 #include "TCanvas.h"
38 #include "TGaxis.h"
39 #include "TLatex.h"
40 #include "TLegend.h"
41 #include "TLine.h"
42 #include "TSystem.h"
43 #include "TStyle.h"
44 #include <iostream>
45 #include <iomanip>
46 #include <fstream>
47 #include <tgmath.h>
48 
49 using namespace ana;
50 
51 void Legend(double x0, double y0, double x1, double y1)
52 {
53  // Doesn't handle log-y well
54  // TLegend* leg = AutoPlaceLegend(x1-x0, y1-y0);
55  TLegend* leg = new TLegend(x0, y0, x1, y1);
56  leg->SetFillStyle(0);
57  leg->SetTextSize(2/30.);
58 
59  leg->SetHeader("#splitline{#bf{Antineutrino Beam}}{#splitline{FD prediction}{#bar{#nu}_{e} signal+WS}}");
60  TH1* dummy = new TH1F("", "", 1, 0, 1);
61  TH1* dummyFill = new TH1F("", "", 1, 0, 1);
62  leg->AddEntry(dummy->Clone(), "","");
63  dummyFill->SetLineColor(kTotalMCColor);
64  dummyFill->SetFillColor(kTotalMCErrorBandColor);
65 
66  dummy->SetLineColor(kNueSignalColor);
67  leg->AddEntry(dummy->Clone(), "Nominal", "l");
68  dummy->SetLineStyle(9);
69  dummy->SetLineColor(kOrange+1);
70  leg->AddEntry(dummy->Clone(), "Q^{2} reweighted", "l");
71  dummy->SetLineStyle(8);
72  dummy->SetLineColor(kGray+2);
73  //leg->AddEntry(dummy->Clone(), "p_{T}/p reweighted", "l");
74  dummy->SetLineStyle(3);
75  //leg->AddEntry(dummy->Clone(), "cos #theta reweighted", "l");
76 
77  leg->Draw();
78 }
79 
80 TH1* create_coreperi_TH1(const TH1* coreTH1, const TH1* periTH1)
81 {
82  TH1* coreperiTH1 = (TH1*)coreTH1->Clone("coreperi");
83  for(int i = 18; i < 28; ++i){
84  coreperiTH1->SetBinContent(i, periTH1->GetBinContent(i));
85  }
86 
87  return coreperiTH1;
88 }
89 
90 void plot_nueFD_Signal_REWvsNOM_RHC(const std::string filename_no, const std::string filename_re_core, const std::string filename_re_peri)
91 
92 {
93  gStyle->SetPadTickX(1);
94  gStyle->SetPadTickY(0);
95 
96  TH1::AddDirectory(kFALSE);
97 
98  const int kNumSels = 1;
99  const int kNumVars = 1;
100 
101  struct HistDef
102  {
104  };
105 
106  const HistDef defs[kNumVars] = {
107  "cvn2d",
108  };
109 
110  TFile * file_no = new TFile (filename_no.c_str(),"READ");
111  if(file_no->IsZombie()){std::cerr << "Can't find " << filename_no.c_str() << std::endl; return;}
112  TFile * file_re_core = new TFile (filename_re_core.c_str(),"READ");
113  if(file_re_core->IsZombie()){std::cerr << "Can't find " << filename_re_core.c_str() << std::endl; return;}
114  TFile * file_re_peri = new TFile (filename_re_peri.c_str(), "READ");
115  if(file_re_peri->IsZombie()){std::cerr << "Can't find " << filename_re_peri.c_str() << std::endl; return;}
116 
118  osc::OscCalcDumb mycalc;
119 
120  std::ofstream tfile;
121 
122  tfile.open("plots/FDextrap-TableOut.tex", ios::out);
123 
124  tfile << "\\begin{tabular}{lllllllll} \n";
125  tfile << "\\multicolumn{9}{c}{prop FD $\nu_e$ signal + WS} \\\\ \n";
126  tfile << "Sample & Sig.+WS+Unosc. Bkg. & /NOMINAL & Signal+WS & /NOMINAL & WS & /NOMINAL & Signal & /NOMINAL \\\\ \n";
127  tfile << "\\hline \n";
128 
129 
130  for(int selIdx = 0; selIdx < kNumSels; ++selIdx){
131  TFile * file = new TFile("FD_KinematicsCorrection_RHC.root","RECREATE");
132  for(int varIdx = 0; varIdx < kNumVars; ++varIdx){
133  bool pidaxes = varIdx;
134  const std::string varName = defs[varIdx].name;
135  TDirectory * dpred_no = file_no->GetDirectory("prediction/nue_pred_ALL_cvn2d");
136  TDirectory * dpred_noextrap = file_no->GetDirectory("prediction/nue_pred_noextrap_ALL_cvn2d");
137  TDirectory * dpred_re_core = file_re_core->GetDirectory("CORE_CORE/nue_pred_trueQ2_CORE_cvn2d");
138  TDirectory * dpred_re_core_PtP = file_re_core->GetDirectory("CORE_CORE/nue_pred_PtP_CORE_cvn2d");
139  TDirectory * dpred_re_core_Cos = file_re_core->GetDirectory("CORE_CORE/nue_pred_Cos_CORE_cvn2d");
140  TDirectory * dpred_re_peri = file_re_peri->GetDirectory("PERI_PERI/nue_pred_trueQ2_PERI_cvn2d");
141  TDirectory * dpred_re_peri_PtP = file_re_peri->GetDirectory("PERI_PERI/nue_pred_PtP_PERI_cvn2d");
142  TDirectory * dpred_re_peri_Cos = file_re_peri->GetDirectory("PERI_PERI/nue_pred_Cos_PERI_cvn2d");
143 
144  //FD Plots
145  auto pred_no = ana::LoadFrom<IPrediction> (dpred_no);
146  auto pred_noextrap = ana::LoadFrom<IPrediction> (dpred_noextrap);
147  auto pred_re_core = ana::LoadFrom<PredictionExtendToPeripheral> (dpred_re_core);
148  auto pred_re_core_PtP = ana::LoadFrom<PredictionExtendToPeripheral> (dpred_re_core_PtP);
149  auto pred_re_core_Cos = ana::LoadFrom<PredictionExtendToPeripheral> (dpred_re_core_Cos);
150  auto pred_re_peri = ana::LoadFrom<PredictionExtendToPeripheral> (dpred_re_peri);
151  auto pred_re_peri_PtP = ana::LoadFrom<PredictionExtendToPeripheral> (dpred_re_peri_PtP);
152  auto pred_re_peri_Cos = ana::LoadFrom<PredictionExtendToPeripheral> (dpred_re_peri_Cos);
153 
154  if(selIdx == 0 && varIdx == 0)
155  std::cout << "MC POT: "
156  << pred_no->Predict(&mycalc).POT() << std::endl;
157 
158  //create a canvas
159  TCanvas *c2 =new TCanvas("c2","c2",500,400);
160 
161  TPad *padAbs = new TPad("padAbs", "padAbs", 0, 0.3, 1, 1.0);
162  padAbs -> SetBottomMargin(0);
163  padAbs->SetFillStyle(0);
164  padAbs -> SetLeftMargin(0.15);
165 
166  padAbs -> Draw();
167  padAbs -> cd();
168 
169  // POT set by hand from total POT of ND sample
170  const double kPOTFD = kAna2018RHCPOT;
171 
172  // NOMINAL
173  //Backgrounds
174  TH1* hNC = pred_no.get()->PredictComponent(&mycalc,
176  Current::kNC,
177  Sign::kBoth).ToTH1(kPOTFD);
178 
179  TH1* hCC = pred_no.get()->PredictComponent(&mycalc,
181  Current::kCC,
182  Sign::kBoth).ToTH1(kPOTFD);
183 
184  TH1* hBeam = pred_no.get()->PredictComponent(&mycalc,
186  Current::kCC,
187  Sign::kBoth).ToTH1(kPOTFD);
188 
189  TH1* hUnoscBkg = (TH1*)hNC->Clone(UniqueName().c_str());
190  hUnoscBkg->Add(hCC);
191  hUnoscBkg->Add(hBeam);
192 
193  //Signals and WS
194  TH1* hSig_no = pred_no.get()->PredictComponent(&mycalc,
196  Current::kCC,
197  Sign::kAntiNu).ToTH1(kPOTFD);
198  hSig_no->SetLineColor(kNueSignalColor);
199 
200  TH1* hWS_no = pred_no.get()->PredictComponent(&mycalc,
202  Current::kCC,
203  Sign::kNu).ToTH1(kPOTFD);
204  hWS_no->SetLineColor(kNueSignalWSColor);
205 
206  TH1* hAll_no = (TH1*)hSig_no->Clone("hAll_no");
207  hAll_no->Add(hWS_no);
208 
209  // Q2
210  TH1* hSig_re_core = pred_re_core.get()->PredictComponent(&mycalc,
212  Current::kCC,
213  Sign::kAntiNu).ToTH1(kPOTFD);
214  TH1* hWS_re_core = pred_re_core.get()->PredictComponent(&mycalc,
216  Current::kCC,
217  Sign::kNu).ToTH1(kPOTFD);
218 
219  TH1* hSig_re_peri = pred_re_peri.get()->PredictComponent(&mycalc,
221  Current::kCC,
222  Sign::kAntiNu).ToTH1(kPOTFD);
223  TH1* hWS_re_peri = pred_re_peri.get()->PredictComponent(&mycalc,
225  Current::kCC,
226  Sign::kNu).ToTH1(kPOTFD);
227 
228  //TH1* hSig_re = (TH1*)(create_coreperi_TH1(hSig_re_core, hSig_re_peri))->Clone("hSig_re");
229  //TH1* hWS_re = (TH1*)(create_coreperi_TH1(hWS_re_core, hWS_re_peri))->Clone("hWS_re");
230 
231  TH1* hSig_re = (TH1*)hSig_re_core->Clone("hSig_re");
232  TH1* hWS_re = (TH1*)hWS_re_core->Clone("hWS_re");
233 
234  TH1* hAll_re = (TH1*)hSig_re->Clone("hAll_re");
235  hAll_re->Add(hWS_re);
236 
237  hSig_re->SetLineColor(kOrange+1);
238  hSig_re->SetLineStyle(9);
239  hWS_re->SetLineColor(kOrange+1);
240  hWS_re->SetLineStyle(9);
241  hAll_re->SetLineColor(kOrange+1);
242  hAll_re->SetLineStyle(9);
243 
244  // PtP
245  TH1* hSig_re_core_PtP = pred_re_core_PtP.get()->PredictComponent(&mycalc,
247  Current::kCC,
248  Sign::kAntiNu).ToTH1(kPOTFD);
249  TH1* hWS_re_core_PtP = pred_re_core_PtP.get()->PredictComponent(&mycalc,
251  Current::kCC,
252  Sign::kNu).ToTH1(kPOTFD);
253 
254  TH1* hSig_re_peri_PtP = pred_re_peri_PtP.get()->PredictComponent(&mycalc,
256  Current::kCC,
257  Sign::kAntiNu).ToTH1(kPOTFD);
258  TH1* hWS_re_peri_PtP = pred_re_peri_PtP.get()->PredictComponent(&mycalc,
260  Current::kCC,
261  Sign::kNu).ToTH1(kPOTFD);
262 
263  TH1* hSig_re_PtP = create_coreperi_TH1(hSig_re_core_PtP, hSig_re_peri_PtP);
264  TH1* hWS_re_PtP = create_coreperi_TH1(hWS_re_core_PtP, hWS_re_peri_PtP);
265 
266  TH1* hAll_re_PtP = (TH1*)hSig_re_PtP->Clone("hAll_re_PtP");
267  hAll_re_PtP->Add(hWS_re_PtP);
268 
269  hSig_re_PtP->SetLineColor(kGray+2);
270  hSig_re_PtP->SetLineStyle(8);
271  hSig_re_PtP->SetLineWidth(1);
272  hWS_re_PtP->SetLineColor(kGray+2);
273  hWS_re_PtP->SetLineStyle(8);
274  hWS_re_PtP->SetLineWidth(1);
275  hAll_re_PtP->SetLineColor(kGray+2);
276  hAll_re_PtP->SetLineStyle(8);
277  hAll_re_PtP->SetLineWidth(1);
278 
279  TH1* hSig_re_core_Cos = pred_re_core_Cos.get()->PredictComponent(&mycalc,
281  Current::kCC,
282  Sign::kAntiNu).ToTH1(kPOTFD);
283  TH1* hWS_re_core_Cos = pred_re_core_Cos.get()->PredictComponent(&mycalc,
285  Current::kCC,
286  Sign::kNu).ToTH1(kPOTFD);
287 
288  TH1* hSig_re_peri_Cos = pred_re_peri_Cos.get()->PredictComponent(&mycalc,
290  Current::kCC,
291  Sign::kAntiNu).ToTH1(kPOTFD);
292  TH1* hWS_re_peri_Cos = pred_re_peri_Cos.get()->PredictComponent(&mycalc,
294  Current::kCC,
295  Sign::kNu).ToTH1(kPOTFD);
296 
297  TH1* hSig_re_Cos = create_coreperi_TH1(hSig_re_core_Cos, hSig_re_peri_Cos);
298  TH1* hWS_re_Cos = create_coreperi_TH1(hWS_re_core_Cos, hWS_re_peri_Cos);
299 
300  TH1* hAll_re_Cos = (TH1*)hSig_re_Cos->Clone("hAll_re_Cos");
301  hAll_re_Cos->Add(hWS_re_Cos);
302 
303  hSig_re_Cos->SetLineColor(kGray+2);
304  hSig_re_Cos->SetLineStyle(3);
305  hSig_re_Cos->SetLineWidth(1);
306  hWS_re_Cos->SetLineColor(kGray+2);
307  hWS_re_Cos->SetLineStyle(3);
308  hWS_re_Cos->SetLineWidth(1);
309  hAll_re_Cos->SetLineColor(kGray+2);
310  hAll_re_Cos->SetLineStyle(3);
311  hAll_re_Cos->SetLineWidth(1);
312 
313  double intUnoscBkg = hUnoscBkg->Integral();
314  double intSig_no = hSig_no->Integral();
315  double intSig_re = hSig_re->Integral();
316  double intSig_re_PtP = hSig_re_PtP->Integral();
317  double intSig_re_Cos = hSig_re_Cos->Integral();
318  double intWS_no = hWS_no->Integral();
319  double intWS_re = hWS_re->Integral();
320  double intWS_re_PtP = hWS_re_PtP->Integral();
321  double intWS_re_Cos = hWS_re_Cos->Integral();
322  double intAll_no = hAll_no->Integral();
323  double intAll_re = hAll_re->Integral();
324  double intAll_re_PtP = hAll_re_PtP->Integral();
325  double intAll_re_Cos = hAll_re_Cos->Integral();
326 
327  tfile << std::fixed;
328  tfile.precision(2);
329  tfile << "NOMINAL" << " & " << round(100.0*(intAll_no+intUnoscBkg))/100.0 << " & & ";
330  tfile << round(100.0*intAll_no)/100.0 << " & & " << round(100.0*intWS_no)/100.0 << " & & " << round(100.0*intSig_no)/100.0 << " & \\\\ \n";
331  tfile << "trueQ2 REW." << " & " << round(100.0*(intAll_re+intUnoscBkg))/100.0 << " & " << round(1000.0*((intAll_re+intUnoscBkg)/(intAll_no+intUnoscBkg)-1.0))/10.0 << " \\% & ";
332  tfile << round(100.0*intAll_re)/100.0 << " & " << round(1000.0*((intAll_re/intAll_no)-1.0))/10.0 << " \\% & ";
333  tfile << round(100.0*intWS_re)/100.0 << " & " << round (1000.0*((intWS_re/intWS_no)-1.0))/10.0 << " \\% & ";
334  tfile << round(100.0*intSig_re)/100.0 << " & "<< round(1000.0*((intSig_re/intSig_no)-1.0))/10.0 << " \\% \\\\ \n";
335  tfile << "PtP REW." << " & " << round(100.0*(intAll_re_PtP+intUnoscBkg))/100.0 << " & " << round(1000.0*((intAll_re_PtP+intUnoscBkg)/(intAll_no+intUnoscBkg)-1.0))/10.0 << " \\% & ";
336  tfile << round(100.0*intAll_re_PtP)/100.0 << " & " << round(1000.0*((intAll_re_PtP/intAll_no)-1.0))/10.0 << " \\% & ";
337  tfile << round(100.0*intWS_re_PtP)/100.0 << " & " << round (1000.0*((intWS_re_PtP/intWS_no)-1.0))/10.0 << " \\% & ";
338  tfile << round(100.0*intSig_re_PtP)/100.0 << " & "<< round(1000.0*((intSig_re_PtP/intSig_no)-1.0))/10.0 << " \\% \\\\ \n";
339  tfile << "Cos REW." << " & " << round(100.0*(intAll_re_Cos+intUnoscBkg))/100.0 << " & " << round(1000.0*((intAll_re_Cos+intUnoscBkg)/(intAll_no+intUnoscBkg)-1.0))/10.0 << " \\% & ";
340  tfile << round(100.0*intAll_re_Cos)/100.0 << " & " << round(1000.0*((intAll_re_Cos/intAll_no)-1.0))/10.0 << " \\% & ";
341  tfile << round(100.0*intWS_re_Cos)/100.0 << " & " << round (1000.0*((intWS_re_Cos/intWS_no)-1.0))/10.0 << " \\% & ";
342  tfile << round(100.0*intSig_re_Cos)/100.0 << " & "<< round(1000.0*((intSig_re_Cos/intSig_no)-1.0))/10.0 << " \\% \\\\ \n";
343  tfile << "\\hline \n";
344  tfile << "\\end{tabular}";
345  tfile.close();
346 
347  hAll_re->GetXaxis()->CenterTitle();
348  hAll_re->GetYaxis()->CenterTitle();
349  hAll_re->GetXaxis()->SetDecimals();
350  hAll_re->GetYaxis()->SetDecimals();
351  hAll_re->GetYaxis()->SetTitleOffset(.8);
352  hAll_re->GetYaxis()->SetTitleSize(.06);
353  hAll_re->GetYaxis()->SetRangeUser(.001,1.005*TMath::Max(hSig_re->GetMaximum(),hSig_no->GetMaximum()));
354  hAll_re->GetYaxis()->SetLabelSize(.06);
355  hAll_re->GetXaxis()->SetLabelSize(.0);
356  hAll_re->SetMaximum(1.1*TMath::Max(hSig_re->GetMaximum(),hSig_no->GetMaximum()));
357  hAll_re->GetYaxis()->SetTitle(TString::Format("Events / %.02lf #times 10^{20} POT", kPOTFD/1E20));
358 
359  hAll_re->Draw("hist");
360  //hAll_re_PtP->Draw("same hist");
361  //hAll_re_Cos->Draw("same hist");
362  hAll_no->Draw("same hist");
363  hAll_re->DrawCopy("hist same");
364  Nue2018ThreeBinAxis(hAll_re, true, false, false);
365  hAll_re->GetYaxis()->SetRangeUser(.001,3.5);
366 
367  //Fix up the axis
368  padAbs->RedrawAxis();
369  padAbs->Update();
370 
371  double legendxlow=0.55;
372  double legendxhigh=0.95;
373 
374  Legend(legendxlow, .45, legendxhigh, .85);
375 
376  TLatex* selTitle = new TLatex(.9, .95, "NOvA Simulation");
377  selTitle->SetNDC();
378  selTitle->SetTextSize(2/30.);
379  selTitle->SetTextColor(kGray+1);
380  selTitle->SetTextAlign(32);
381  selTitle->Draw();
382 
383  c2->cd();
384  TPad *padRatio = new TPad("padRatio", "padRatio", 0, 0.0, 1, 0.33);
385  padRatio -> SetTopMargin(0.11);
386  padRatio -> SetBottomMargin(0.33);
387  padRatio -> SetFillStyle(0);
388  padRatio -> SetLeftMargin(0.15);
389 
390  padRatio -> Draw();
391  padRatio -> cd();
392 
393  TH1* hRatio = (TH1*)hAll_re -> Clone("hRatio");
394  TH1* hRatio_PtP = (TH1*)hAll_re_PtP -> Clone("hRatio_PtP");
395  TH1* hRatio_Cos = (TH1*)hAll_re_Cos -> Clone("hRatio_Cos");
396  TLine* lOne = new TLine(0,1.0,27.0,1.0);
397  lOne -> SetLineStyle(2);
398 
399  hRatio -> Divide(hAll_no);
400  hRatio_PtP -> Divide(hAll_no);
401  hRatio_Cos -> Divide(hAll_no);
402 
403  hRatio->GetXaxis()->CenterTitle();
404  hRatio->GetYaxis()->CenterTitle();
405  hRatio->GetYaxis()->SetLabelSize(.12);
406  hRatio->GetXaxis()->SetLabelSize(.12);
407  hRatio->GetXaxis()->SetTitleOffset(1.0);
408  hRatio->GetXaxis()->SetTickSize(.1);
409  hRatio->GetYaxis()->SetTitleSize(.12);
410  hRatio->GetXaxis()->SetTitleSize(.12);
411  hRatio->GetYaxis()->SetRangeUser(0.8,1.2);
412  hRatio->SetMarkerSize(.1);
413  hRatio->GetXaxis()->SetDecimals();
414  hRatio->GetYaxis()->SetDecimals();
415  hRatio->GetYaxis()->SetTitleOffset(0.4);
416  hRatio->GetYaxis()->SetTitle("#splitline{Ratio to}{nominal}");
417 
418  hRatio->GetYaxis()->SetNdivisions(502,kFALSE);
419 
420  hRatio -> Draw("hist");
421  //hRatio_PtP -> Draw("same hist");
422  //hRatio_Cos -> Draw("same hist");
423  lOne -> Draw("same");
424  hRatio -> Draw("hist same");
425  hRatio -> SetMinimum(0.8);
426  Nue2018ThreeBinAxis(hRatio, true, false, false);
427  hRatio->GetYaxis()->SetRangeUser(0.8,1.2);
428 
429  c2->Print(("plots/FDnue_pred_recoE_abs.png"));
430  c2->SaveAs("plots/FDnue_pred_recoE_abs.pdf","pdf");
431 
432  /*hRatio -> Write("trueQ2_FD_KinematicsCorrection_RHC");
433  hRatio_PtP -> Write("PtP_FD_KinematicsCorrection_RHC");
434  hRatio_Cos -> Write("Cos_FD_KinematicsCorrection_RHC");*/
435  } // end for varIdx
436  } // end for selIdx
437 } // end
438 
439 
440 
void Nue2018ThreeBinAxis(THStack *axes, bool drawLabels, bool merged, bool coreOnly)
tree Draw("slc.nhit")
enum BeamMode kOrange
Pass neutrinos through unchanged.
Definition: IOscCalc.h:45
ratio_hxv Divide(hxv, goal_hxv)
const int kNumVars
Definition: vars.h:14
Cuts and Vars for the 2020 FD DiF Study.
Definition: vars.h:6
Antineutrinos-only.
Definition: IPrediction.h:50
Float_t y1[n_points_granero]
Definition: compare.C:5
(&#39; appearance&#39;)
Definition: IPrediction.h:18
Float_t x1[n_points_granero]
Definition: compare.C:5
(&#39;beam &#39;)
Definition: IPrediction.h:15
hmean SetLineStyle(2)
const Color_t kNueSignalWSColor
Definition: Style.h:20
std::string name
Definition: NuePlotLists.h:12
OStream cerr
Definition: OStream.cxx:7
void Legend(double x0, double y0, double x1, double y1)
const Color_t kTotalMCErrorBandColor
Definition: Style.h:17
fvar< T > round(const fvar< T > &x)
Definition: round.hpp:23
ntuple SetFillStyle(1001)
const double kAna2018RHCPOT
Definition: Exposures.h:208
const Color_t kNueSignalColor
Definition: Style.h:19
c2
Definition: demo5.py:33
Charged-current interactions.
Definition: IPrediction.h:39
Simple oscillation probability calculator that has no solar term or mass hierarchy or delta so it&#39;s s...
Definition: OscCalcDumb.h:16
const HistDef defs[kNumVars]
Definition: vars.h:15
std::unique_ptr< IPrediction > LoadFrom< IPrediction >(TDirectory *dir, const std::string &label)
Definition: IPrediction.cxx:18
const int kNumSels
Definition: vars.h:43
osc::NoOscillations noosc
Definition: NueSystFuncs.h:44
Neutrinos-only.
Definition: IPrediction.h:49
OStream cout
Definition: OStream.cxx:6
Neutral-current interactions.
Definition: IPrediction.h:40
TFile * file
Definition: cellShifts.C:17
Both neutrinos and antineutrinos.
Definition: IPrediction.h:52
void Format(TGraph *gr, int lcol, int lsty, int lwid, int mcol, int msty, double msiz)
Definition: Style.cxx:154
const Color_t kTotalMCColor
Definition: Style.h:16
histo SetMinimum(1.0e-9)
void plot_nueFD_Signal_REWvsNOM_RHC(const std::string filename_no, const std::string filename_re_core, const std::string filename_re_peri)
All neutrinos, any flavor.
Definition: IPrediction.h:26
std::string UniqueName()
Return a different string each time, for creating histograms.
Definition: Utilities.cxx:29
c cd(1)
TH1 * create_coreperi_TH1(const TH1 *coreTH1, const TH1 *periTH1)
enum BeamMode string