hyperon_plot.C
Go to the documentation of this file.
1 #pragma once
2 
3 #include "CAFAna/Core/Loaders.h"
4 #include "CAFAna/Core/Binning.h"
5 #include "CAFAna/Core/Spectrum.h"
8 #include "CAFAna/Core/Var.h"
9 #include "CAFAna/Core/MultiVar.h"
10 
11 #include "CAFAna/Vars/HistAxes.h"
13 #include "CAFAna/Vars/Vars.h"
16 
17 #include "CAFAna/Cuts/Cuts.h"
23 #include "CAFAna/Cuts/SpillCuts.h"
24 
29 
30 #include "CAFAna/Analysis/Calcs.h"
32 
34 
35 #include "OscLib/OscCalcGeneral.h"
36 #include "OscLib/OscCalcPMNS.h"
37 #include "OscLib/OscCalc.h"
38 #include "OscLib/IOscCalc.h"
39 #include "OscLib/OscCalcPMNSOpt.h"
40 
41 #include "Utilities/rootlogon.C"
42 
43 #include "TCanvas.h"
44 #include "TH2.h"
45 #include "TProfile.h"
46 #include "TSystem.h"
47 #include "TLegend.h"
48 #include "TLegendEntry.h"
49 
50 using namespace ana;
51 
52 // --- interaction types ---
53 const std::vector<std::string> GENIEStr = {"All", "MEC", "DIS", "RES", "COH", "QE"}; const unsigned int nGENIE = 6;
54 const std::vector<std::string> GENIELeg = {"Nominal", "MEC", "DIS", "RES", "COH", "QE"};
55 
56 // --- cuts ---
57 std::vector<std::string> FDcuts = {"kNoCut", "qual", "qual+cont", "qual+cont+PID", "full"}; const unsigned int nFD = 5;
58 std::vector<std::string> NDcuts = {"kNoCut", "qual", "qual+cont", "full"}; const unsigned int nND = 4;
59 
60 // --- quantiles ----
61 std::vector<std::string> quants = {"AllQuant", "Quant1", "Quant2", "Quant3", "Quant4"}; const unsigned int nQ = 1; // 5 to go through each quantile, 1 to do combined quantiles only
62 
63 // --- channels ----
64 // sigma+ doesn't get filled so excluding it here
65 // the channel breakdown was a side investigation so I'm not pursuing it further
66 std::vector<std::string> chNames = {"AllChannels", "Lambda", "Sigma0", "Sigma-"}; const unsigned int nCh = 4;
67 std::vector<std::string> chLeg = {"hyperons", "#Lambda", "#Sigma^{0}", "#Sigma^{-}"};
68 
69 struct MySpectra{
70  TH1D* RmT_hyp_FD [nFD][nQ][nCh];
71  TH1D* RmToT_hyp_FD [nFD][nQ][nCh];
72  TH1D* trueHadE_hyp_FD [nFD][nQ][nCh];
73  TH1D* recoHadE_hyp_FD [nFD][nQ][nCh];
74  TH1D* png_hyp_FD [nFD][nQ][nCh];
75  TH1D* trueNuE_hyp_FD [nFD][nQ][nCh];
76  TH1D* recoNuE_hyp_FD [nFD][nQ][nCh];
77  TH1D* trueMuonE_hyp_FD [nFD][nQ][nCh];
78  TH1D* recoMuonE_hyp_FD [nFD][nQ][nCh];
79  TH1D* remid_hyp_FD [nFD][nQ][nCh];
80  TH1D* cvnprod3_hyp_FD [nFD][nQ][nCh];
81  TH1D* cvn2017_hyp_FD [nFD][nQ][nCh];
82  TH1D* Vx_hyp_FD [nFD][nQ][nCh];
83  TH1D* Vy_hyp_FD [nFD][nQ][nCh];
84  TH1D* Vz_hyp_FD [nFD][nQ][nCh];
85  TH1D* trklen_hyp_FD [nFD][nQ][nCh];
86  TH1D* scatLL_hyp_FD [nFD][nQ][nCh];
87  TH1D* dedxLL_hyp_FD [nFD][nQ][nCh];
88  TH1D* MF_hyp_FD [nFD][nQ][nCh];
89 
90  TH1D* RmT_nom_FD [nFD][nQ][nGENIE];
91  TH1D* RmToT_nom_FD [nFD][nQ][nGENIE];
92  TH1D* trueHadE_nom_FD [nFD][nQ][nGENIE];
93  TH1D* recoHadE_nom_FD [nFD][nQ][nGENIE];
94  TH1D* png_nom_FD [nFD][nQ][nGENIE];
95  TH1D* trueNuE_nom_FD [nFD][nQ][nGENIE];
96  TH1D* recoNuE_nom_FD [nFD][nQ][nGENIE];
97  TH1D* trueMuonE_nom_FD [nFD][nQ][nGENIE];
98  TH1D* recoMuonE_nom_FD [nFD][nQ][nGENIE];
99  TH1D* remid_nom_FD [nFD][nQ][nGENIE];
100  TH1D* cvnprod3_nom_FD [nFD][nQ][nGENIE];
101  TH1D* cvn2017_nom_FD [nFD][nQ][nGENIE];
102  TH1D* Vx_nom_FD [nFD][nQ][nGENIE];
103  TH1D* Vy_nom_FD [nFD][nQ][nGENIE];
104  TH1D* Vz_nom_FD [nFD][nQ][nGENIE];
105  TH1D* trklen_nom_FD [nFD][nQ][nGENIE];
106  TH1D* scatLL_nom_FD [nFD][nQ][nGENIE];
107  TH1D* dedxLL_nom_FD [nFD][nQ][nGENIE];
108  TH1D* MF_nom_FD [nFD][nQ][nGENIE];
109 
110  TH1D* RmT_hyp_ND [nND][nQ][nCh];
111  TH1D* RmToT_hyp_ND [nND][nQ][nCh];
112  TH1D* trueHadE_hyp_ND [nND][nQ][nCh];
113  TH1D* recoHadE_hyp_ND [nND][nQ][nCh];
114  TH1D* png_hyp_ND [nND][nQ][nCh];
115  TH1D* trueNuE_hyp_ND [nND][nQ][nCh];
116  TH1D* recoNuE_hyp_ND [nND][nQ][nCh];
117  TH1D* trueMuonE_hyp_ND [nND][nQ][nCh];
118  TH1D* recoMuonE_hyp_ND [nND][nQ][nCh];
119  TH1D* remid_hyp_ND [nND][nQ][nCh];
120  TH1D* cvnprod3_hyp_ND [nND][nQ][nCh];
121  TH1D* cvn2017_hyp_ND [nND][nQ][nCh];
122  TH1D* Vx_hyp_ND [nND][nQ][nCh];
123  TH1D* Vy_hyp_ND [nND][nQ][nCh];
124  TH1D* Vz_hyp_ND [nND][nQ][nCh];
125  TH1D* trklen_hyp_ND [nND][nQ][nCh];
126  TH1D* scatLL_hyp_ND [nND][nQ][nCh];
127  TH1D* dedxLL_hyp_ND [nND][nQ][nCh];
128  TH1D* MF_hyp_ND [nND][nQ][nCh];
129 
130  TH1D* RmT_nom_ND [nND][nQ][nGENIE];
131  TH1D* RmToT_nom_ND [nND][nQ][nGENIE];
132  TH1D* trueHadE_nom_ND [nND][nQ][nGENIE];
133  TH1D* recoHadE_nom_ND [nND][nQ][nGENIE];
134  TH1D* png_nom_ND [nND][nQ][nGENIE];
135  TH1D* trueNuE_nom_ND [nND][nQ][nGENIE];
136  TH1D* recoNuE_nom_ND [nND][nQ][nGENIE];
137  TH1D* trueMuonE_nom_ND [nND][nQ][nGENIE];
138  TH1D* recoMuonE_nom_ND [nND][nQ][nGENIE];
139  TH1D* remid_nom_ND [nND][nQ][nGENIE];
140  TH1D* cvnprod3_nom_ND [nND][nQ][nGENIE];
141  TH1D* cvn2017_nom_ND [nND][nQ][nGENIE];
142  TH1D* Vx_nom_ND [nND][nQ][nGENIE];
143  TH1D* Vy_nom_ND [nND][nQ][nGENIE];
144  TH1D* Vz_nom_ND [nND][nQ][nGENIE];
145  TH1D* trklen_nom_ND [nND][nQ][nGENIE];
146  TH1D* scatLL_nom_ND [nND][nQ][nGENIE];
147  TH1D* dedxLL_nom_ND [nND][nQ][nGENIE];
148  TH1D* MF_nom_ND [nND][nQ][nGENIE];
149 };
150 
151 // --- supporting functions ---
152 TH1D* SpecToHist(TFile* file, std::string specName, double POT, std::string AxisTitle, bool force = false);
153 void MakeComparisonPlots( std::vector<TH1D*> TheHists, std::string PlotName, std::vector<std::string> Labels);
154 void Print1D(TH1D* hist, std::string plotName);
155 
157  gStyle->SetOptStat(0);
158  gROOT->SetStyle("novaStyle");
159 
160  MySpectra sp;
161  std::string hypFD = "hyp_FD.root"; TFile *hypFileFD = TFile::Open(hypFD.c_str());
162  std::string hypND = "hyp_ND.root"; TFile *hypFileND = TFile::Open(hypND.c_str());
163 
164  std::string nomFD = "nom_FD.root"; TFile *nomFileFD = TFile::Open(nomFD.c_str());
165  std::string nomND = "nom_ND.root"; TFile *nomFileND = TFile::Open(nomND.c_str());
166 
167  double POT = kAna2018RHCPOT;
168 
169  // load in the plots
170  for(unsigned int quant=0; quant<nQ; ++quant) {
171  for(unsigned int det=0; det<nFD; ++det) {
172  for (unsigned int chan=0; chan<nCh; ++chan){
173  std::string hypStr = "_"+FDcuts[det]+"_"+quants[quant]+"_"+chNames[chan];
174  sp.RmT_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "RmT_hyp"+hypStr, POT, ";kCCE - kTrueE;Events", true);
175  sp.RmToT_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "RmToT_hyp"+hypStr, POT, ";(kCCE-kTrueE)/kTrueE;Events", true);
176  sp.trueHadE_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "trueHadE_hyp"+hypStr, POT, ";kTrueE - kMuE;Events", true);
177  sp.recoHadE_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "recoHadE_hyp"+hypStr, POT, ";kHadE;Events", true);
178  sp.png_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "png_hyp"+hypStr, POT, ";npng;Events", true);
179  sp.trueNuE_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "trueNuE_hyp"+hypStr, POT, ";kTrueE;Events", true);
180  sp.recoNuE_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "recoNuE_hyp"+hypStr, POT, ";kCCE;Events", true);
181  sp.trueMuonE_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "trueMuonE_hyp"+hypStr, POT, ";kTrueMuonE;Events", true);
182  sp.recoMuonE_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "recoMuonE_hyp"+hypStr, POT, ";kMuE;Events", true);
183  sp.remid_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "remid_hyp"+hypStr, POT, ";remid;Events", true);
184  sp.cvnprod3_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "cvnprod3_hyp"+hypStr, POT, ";cvnprod3train;Events", true);
185  sp.cvn2017_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "cvn2017_hyp"+hypStr, POT, ";cvn2017;Events", true);
186  sp.Vx_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "Vx_hyp"+hypStr, POT, ";vertex X;Events", true);
187  sp.Vy_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "Vy_hyp"+hypStr, POT, ";vertex Y;Events", true);
188  sp.Vz_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "Vz_hyp"+hypStr, POT, ";vertex Z;Events", true);
189  sp.trklen_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "trklen_hyp"+hypStr, POT, ";track length;Events", true);
190  sp.scatLL_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "scatLL_hyp"+hypStr, POT, ";scatLL;Events", true);
191  sp.dedxLL_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "dedxLL_hyp"+hypStr, POT, ";dEdxLL;Events", true);
192  sp.MF_hyp_FD [det][quant][chan] = SpecToHist(hypFileFD, "MF_hyp"+hypStr, POT, ";meas frac;Events", true);
193  }
194  for(unsigned int gen=0; gen<nGENIE; ++gen){
195  std::string nomStr = "_"+FDcuts[det]+"_"+quants[quant]+"_"+GENIEStr[gen];
196  sp.RmT_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "RmT_nom"+nomStr, POT, ";kCCE - kTrueE;Events");
197  sp.RmToT_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "RmToT_nom"+nomStr, POT, ";(kCCE-kTrueE)/kTrueE;Events");
198  sp.trueHadE_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "trueHadE_nom"+nomStr, POT, ";kTrue - kMuE;Events");
199  sp.recoHadE_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "recoHadE_nom"+nomStr, POT, ";kHadE;Events");
200  sp.png_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "png_nom"+nomStr, POT, ";npng;Events");
201  sp.trueNuE_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "trueNuE_nom"+nomStr, POT, ";kTrueE;Events");
202  sp.recoNuE_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "recoNuE_nom"+nomStr, POT, ";kCCE;Events");
203  sp.trueMuonE_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "trueMuonE_nom"+nomStr, POT, ";kTrueMuonE;Events");
204  sp.recoMuonE_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "recoMuonE_nom"+nomStr, POT, ";kMuE;Events");
205  sp.remid_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "remid_nom"+nomStr, POT, ";remid;Events");
206  sp.cvnprod3_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "cvnprod3_nom"+nomStr, POT, ";cvnprod3train;Events");
207  sp.cvn2017_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "cvn2017_nom"+nomStr, POT, ";cvn2017;Events");
208  sp.Vx_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "Vx_nom"+nomStr, POT, ";vertex X;Events");
209  sp.Vy_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "Vy_nom"+nomStr, POT, ";vertex Y;Events");
210  sp.Vz_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "Vz_nom"+nomStr, POT, ";vertex Z;Events");
211  sp.trklen_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "trklen_nom"+nomStr, POT, ";track length;Events");
212  sp.scatLL_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "scatLL_nom"+nomStr, POT, ";scatLL;Events");
213  sp.dedxLL_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "dedxLL_nom"+nomStr, POT, ";dEdxLL;Events");
214  sp.MF_nom_FD [det][quant][gen] = SpecToHist(nomFileFD, "MF_nom"+nomStr, POT, ";meas frac;Events");
215  }
216  }
217 
218  for(unsigned int det=0; det<nND; ++det){
219  for(unsigned int chan=0; chan<nCh; ++chan){
220  std::string hypStr = "_"+NDcuts[det]+"_"+quants[quant]+"_"+chNames[chan];
221  sp.RmT_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "RmT_hyp"+hypStr, POT, ";kCCE - kTrueE;Events", true);
222  sp.RmToT_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "RmToT_hyp"+hypStr, POT, ";(kCCE-kTrueE)/kTrueE;Events", true);
223  sp.trueHadE_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "trueHadE_hyp"+hypStr, POT, ";kTrueE - kMuE;Events", true);
224  sp.recoHadE_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "recoHadE_hyp"+hypStr, POT, ";kHadE;Events", true);
225  sp.png_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "png_hyp"+hypStr, POT, ";npng;Events", true);
226  sp.trueNuE_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "trueNuE_hyp"+hypStr, POT, ";kTrueE;Events", true);
227  sp.recoNuE_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "recoNuE_hyp"+hypStr, POT, ";kCCE;Events", true);
228  sp.trueMuonE_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "trueMuonE_hyp"+hypStr, POT, ";kTrueMuonE;Events", true);
229  sp.recoMuonE_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "recoMuonE_hyp"+hypStr, POT, ";kMuE;Events", true);
230  sp.remid_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "remid_hyp"+hypStr, POT, ";remid;Events", true);
231  sp.cvnprod3_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "cvnprod3_hyp"+hypStr, POT, ";cvnprod3train;Events", true);
232  sp.cvn2017_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "cvn2017_hyp"+hypStr, POT, ";cvn2017;Events", true);
233  sp.Vx_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "Vx_hyp"+hypStr, POT, ";vertex X;Events", true);
234  sp.Vy_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "Vy_hyp"+hypStr, POT, ";vertex Y;Events", true);
235  sp.Vz_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "Vz_hyp"+hypStr, POT, ";vertex Z;Events", true);
236  sp.trklen_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "trklen_hyp"+hypStr, POT, ";track length;Events", true);
237  sp.scatLL_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "scatLL_hyp"+hypStr, POT, ";scatLL;Events", true);
238  sp.dedxLL_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "dedxLL_hyp"+hypStr, POT, ";dEdxLL;Events", true);
239  sp.MF_hyp_ND [det][quant][chan] = SpecToHist(hypFileND, "MF_hyp"+hypStr, POT, ";meas frac;Events", true);
240  }
241 
242  for(unsigned int gen=0; gen<nGENIE; ++gen){
243  std::string nomStr = "_"+NDcuts[det]+"_"+quants[quant]+"_"+GENIEStr[gen];
244  sp.RmT_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "RmT_nom"+nomStr, POT, ";kCCE - kTrueE;Events");
245  sp.RmToT_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "RmToT_nom"+nomStr, POT, ";(kCCE-kTrueE)/kTrueE;Events");
246  sp.trueHadE_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "trueHadE_nom"+nomStr, POT, ";kTrueE - kMuE;Events");
247  sp.recoHadE_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "recoHadE_nom"+nomStr, POT, ";kHadE;Events");
248  sp.png_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "png_nom"+nomStr, POT, ";npng;Events");
249  sp.trueNuE_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "trueNuE_nom"+nomStr, POT, ";kTrueE;Events");
250  sp.recoNuE_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "recoNuE_nom"+nomStr, POT, ";kCCE;Events");
251  sp.trueMuonE_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "trueMuonE_nom"+nomStr, POT, ";kTrueMuonE;Events");
252  sp.recoMuonE_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "recoMuonE_nom"+nomStr, POT, ";kMuE;Events");
253  sp.remid_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "remid_nom"+nomStr, POT, ";remid;Events");
254  sp.cvnprod3_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "cvnprod3_nom"+nomStr, POT, ";cvnprod3train;Events");
255  sp.cvn2017_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "cvn2017_nom"+nomStr, POT, ";cvn2017;Events");
256  sp.Vx_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "Vx_nom"+nomStr, POT, ";vertex X;Events");
257  sp.Vy_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "Vy_nom"+nomStr, POT, ";vertex Y;Events");
258  sp.Vz_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "Vz_nom"+nomStr, POT, ";vertex Z;Events");
259  sp.trklen_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "trklen_nom"+nomStr, POT, ";track length;Events");
260  sp.scatLL_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "scatLL_nom"+nomStr, POT, ";scatLL;Events");
261  sp.dedxLL_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "dedxLL_nom"+nomStr, POT, ";dEdxLL;Events");
262  sp.MF_nom_ND [det][quant][gen] = SpecToHist(nomFileND, "MF_nom"+nomStr, POT, ";meas frac;Events");
263  }
264  }
265  }
266 
267  hypFileFD->Close();
268  hypFileND->Close();
269 
270  // --- all 1D distributions, no comparisons ---
271 // for(unsigned int quant=0; quant<nQ; ++quant){
272 // for(unsigned int chan=0; chan<nCh; ++chan){
273 // for(unsigned int det=0; det<nFD; ++det){
274 // std::string comb = "_"+chNames[chan]+"_"+FDcuts[det]+"_"+quants[quant];
275 // Print1D(sp.RmT_hyp_FD [det][quant][chan], "RmT_hyp_FD"+comb);
276 // Print1D(sp.RmToT_hyp_FD [det][quant][chan], "RmToT_hyp_FD"+comb);
277 // Print1D(sp.trueHadE_hyp_FD [det][quant][chan], "trueHadE_hyp_FD"+comb);
278 // Print1D(sp.recoHadE_hyp_FD [det][quant][chan], "recoHadE_hyp_FD"+comb);
279 // Print1D(sp.png_hyp_FD [det][quant][chan], "png_hyp_FD"+comb);
280 // Print1D(sp.trueNuE_hyp_FD [det][quant][chan], "trueNuE_hyp_FD"+comb);
281 // Print1D(sp.recoNuE_hyp_FD [det][quant][chan], "recoNuE_hyp_FD"+comb);
282 // Print1D(sp.trueMuonE_hyp_FD [det][quant][chan], "trueMuonE_hyp_FD"+comb);
283 // Print1D(sp.recoMuonE_hyp_FD [det][quant][chan], "recoMuonE_hyp_FD"+comb);
284 // }
285 // for(unsigned int det=0; det<nND; ++det){
286 // std::string comb = "_"+chNames[chan]+"_"+NDcuts[det]+"_"+quants[quant];
287 // Print1D(sp.RmT_hyp_ND [det][quant][chan], "RmT_hyp_ND"+comb);
288 // Print1D(sp.RmToT_hyp_ND [det][quant][chan], "RmToT_hyp_ND"+comb);
289 // Print1D(sp.trueHadE_hyp_ND [det][quant][chan], "trueHadE_hyp_ND"+comb);
290 // Print1D(sp.recoHadE_hyp_ND [det][quant][chan], "recoHadE_hyp_ND"+comb);
291 // Print1D(sp.png_hyp_ND [det][quant][chan], "png_hyp_ND"+comb);
292 // Print1D(sp.trueNuE_hyp_ND [det][quant][chan], "trueNuE_hyp_ND"+comb);
293 // Print1D(sp.recoNuE_hyp_ND [det][quant][chan], "recoNuE_hyp_ND"+comb);
294 // Print1D(sp.trueMuonE_hyp_ND [det][quant][chan], "trueMuonE_hyp_ND"+comb);
295 // Print1D(sp.recoMuonE_hyp_ND [det][quant][chan], "recoMuonE_hyp_ND"+comb);
296 // }
297 // }
298 // }
299 
300  // --- cut flow comparisons ---
301  // hyperon files only
302  // all quantiles, all channels
303 
304  // FD
305  MakeComparisonPlots({sp.RmT_hyp_FD[0][0][0],
306  sp.RmT_hyp_FD[1][0][0],
307  sp.RmT_hyp_FD[2][0][0],
308  sp.RmT_hyp_FD[3][0][0],
309  sp.RmT_hyp_FD[4][0][0]},
310  "RmT_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
311  FDcuts);
312  MakeComparisonPlots({sp.RmToT_hyp_FD[0][0][0],
313  sp.RmToT_hyp_FD[1][0][0],
314  sp.RmToT_hyp_FD[2][0][0],
315  sp.RmToT_hyp_FD[3][0][0],
316  sp.RmToT_hyp_FD[4][0][0]},
317  "RmToT_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
318  FDcuts);
320  sp.trueHadE_hyp_FD[1][0][0],
321  sp.trueHadE_hyp_FD[2][0][0],
322  sp.trueHadE_hyp_FD[3][0][0],
323  sp.trueHadE_hyp_FD[4][0][0]},
324  "trueHadE_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
325  FDcuts);
327  sp.recoHadE_hyp_FD[1][0][0],
328  sp.recoHadE_hyp_FD[2][0][0],
329  sp.recoHadE_hyp_FD[3][0][0],
330  sp.recoHadE_hyp_FD[4][0][0]},
331  "recoHadE_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
332  FDcuts);
333  MakeComparisonPlots({sp.png_hyp_FD[0][0][0],
334  sp.png_hyp_FD[1][0][0],
335  sp.png_hyp_FD[2][0][0],
336  sp.png_hyp_FD[3][0][0],
337  sp.png_hyp_FD[4][0][0]},
338  "png_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
339  FDcuts);
340  MakeComparisonPlots({sp.trueNuE_hyp_FD[0][0][0],
341  sp.trueNuE_hyp_FD[1][0][0],
342  sp.trueNuE_hyp_FD[2][0][0],
343  sp.trueNuE_hyp_FD[3][0][0],
344  sp.trueNuE_hyp_FD[4][0][0]},
345  "trueNuE_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
346  FDcuts);
347  MakeComparisonPlots({sp.recoNuE_hyp_FD[0][0][0],
348  sp.recoNuE_hyp_FD[1][0][0],
349  sp.recoNuE_hyp_FD[2][0][0],
350  sp.recoNuE_hyp_FD[3][0][0],
351  sp.recoNuE_hyp_FD[4][0][0]},
352  "recoNuE_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
353  FDcuts);
355  sp.trueMuonE_hyp_FD[1][0][0],
356  sp.trueMuonE_hyp_FD[2][0][0],
357  sp.trueMuonE_hyp_FD[3][0][0],
358  sp.trueMuonE_hyp_FD[4][0][0]},
359  "trueMuonE_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
360  FDcuts);
362  sp.recoMuonE_hyp_FD[1][0][0],
363  sp.recoMuonE_hyp_FD[2][0][0],
364  sp.recoMuonE_hyp_FD[3][0][0],
365  sp.recoMuonE_hyp_FD[4][0][0]},
366  "recoMuonE_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
367  FDcuts);
368  MakeComparisonPlots({sp.remid_hyp_FD[0][0][0],
369  sp.remid_hyp_FD[1][0][0],
370  sp.remid_hyp_FD[2][0][0],
371  sp.remid_hyp_FD[3][0][0],
372  sp.remid_hyp_FD[4][0][0]},
373  "remid_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
374  FDcuts);
376  sp.cvnprod3_hyp_FD[1][0][0],
377  sp.cvnprod3_hyp_FD[2][0][0],
378  sp.cvnprod3_hyp_FD[3][0][0],
379  sp.cvnprod3_hyp_FD[4][0][0]},
380  "cvnprod3_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
381  FDcuts);
382  MakeComparisonPlots({sp.cvn2017_hyp_FD[0][0][0],
383  sp.cvn2017_hyp_FD[1][0][0],
384  sp.cvn2017_hyp_FD[2][0][0],
385  sp.cvn2017_hyp_FD[3][0][0],
386  sp.cvn2017_hyp_FD[4][0][0]},
387  "cvn2017_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
388  FDcuts);
389  MakeComparisonPlots({sp.Vx_hyp_FD[0][0][0],
390  sp.Vx_hyp_FD[1][0][0],
391  sp.Vx_hyp_FD[2][0][0],
392  sp.Vx_hyp_FD[3][0][0],
393  sp.Vx_hyp_FD[4][0][0]},
394  "Vx_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
395  FDcuts);
396  MakeComparisonPlots({sp.Vy_hyp_FD[0][0][0],
397  sp.Vy_hyp_FD[1][0][0],
398  sp.Vy_hyp_FD[2][0][0],
399  sp.Vy_hyp_FD[3][0][0],
400  sp.Vy_hyp_FD[4][0][0]},
401  "Vy_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
402  FDcuts);
403  MakeComparisonPlots({sp.Vz_hyp_FD[0][0][0],
404  sp.Vz_hyp_FD[1][0][0],
405  sp.Vz_hyp_FD[2][0][0],
406  sp.Vz_hyp_FD[3][0][0],
407  sp.Vz_hyp_FD[4][0][0]},
408  "Vz_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
409  FDcuts);
410  MakeComparisonPlots({sp.trklen_hyp_FD[0][0][0],
411  sp.trklen_hyp_FD[1][0][0],
412  sp.trklen_hyp_FD[2][0][0],
413  sp.trklen_hyp_FD[3][0][0],
414  sp.trklen_hyp_FD[4][0][0]},
415  "trklen_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
416  FDcuts);
417  MakeComparisonPlots({sp.scatLL_hyp_FD[0][0][0],
418  sp.scatLL_hyp_FD[1][0][0],
419  sp.scatLL_hyp_FD[2][0][0],
420  sp.scatLL_hyp_FD[3][0][0],
421  sp.scatLL_hyp_FD[4][0][0]},
422  "scatLL_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
423  FDcuts);
424  MakeComparisonPlots({sp.dedxLL_hyp_FD[0][0][0],
425  sp.dedxLL_hyp_FD[1][0][0],
426  sp.dedxLL_hyp_FD[2][0][0],
427  sp.dedxLL_hyp_FD[3][0][0],
428  sp.dedxLL_hyp_FD[4][0][0]},
429  "dedxLL_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
430  FDcuts);
431  MakeComparisonPlots({sp.MF_hyp_FD[0][0][0],
432  sp.MF_hyp_FD[1][0][0],
433  sp.MF_hyp_FD[2][0][0],
434  sp.MF_hyp_FD[3][0][0],
435  sp.MF_hyp_FD[4][0][0]},
436  "MF_hyp_FD_cutflow_"+chNames[0]+"_"+quants[0],
437  FDcuts);
438 
439  // ND
440  MakeComparisonPlots({sp.RmT_hyp_ND[0][0][0],
441  sp.RmT_hyp_ND[1][0][0],
442  sp.RmT_hyp_ND[2][0][0],
443  sp.RmT_hyp_ND[3][0][0]},
444  "RmT_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
445  NDcuts);
446  MakeComparisonPlots({sp.RmToT_hyp_ND[0][0][0],
447  sp.RmToT_hyp_ND[1][0][0],
448  sp.RmToT_hyp_ND[2][0][0],
449  sp.RmToT_hyp_ND[3][0][0]},
450  "RmToT_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
451  NDcuts);
453  sp.trueHadE_hyp_ND[1][0][0],
454  sp.trueHadE_hyp_ND[2][0][0],
455  sp.trueHadE_hyp_ND[3][0][0]},
456  "trueHadE_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
457  NDcuts);
459  sp.recoHadE_hyp_ND[1][0][0],
460  sp.recoHadE_hyp_ND[2][0][0],
461  sp.recoHadE_hyp_ND[3][0][0]},
462  "recoHadE_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
463  NDcuts);
464  MakeComparisonPlots({sp.png_hyp_ND[0][0][0],
465  sp.png_hyp_ND[1][0][0],
466  sp.png_hyp_ND[2][0][0],
467  sp.png_hyp_ND[3][0][0]},
468  "png_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
469  NDcuts);
470  MakeComparisonPlots({sp.trueNuE_hyp_ND[0][0][0],
471  sp.trueNuE_hyp_ND[1][0][0],
472  sp.trueNuE_hyp_ND[2][0][0],
473  sp.trueNuE_hyp_ND[3][0][0]},
474  "trueNuE_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
475  NDcuts);
476  MakeComparisonPlots({sp.recoNuE_hyp_ND[0][0][0],
477  sp.recoNuE_hyp_ND[1][0][0],
478  sp.recoNuE_hyp_ND[2][0][0],
479  sp.recoNuE_hyp_ND[3][0][0]},
480  "recoNuE_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
481  NDcuts);
483  sp.trueMuonE_hyp_ND[1][0][0],
484  sp.trueMuonE_hyp_ND[2][0][0],
485  sp.trueMuonE_hyp_ND[3][0][0]},
486  "trueMuonE_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
487  NDcuts);
489  sp.recoMuonE_hyp_ND[1][0][0],
490  sp.recoMuonE_hyp_ND[2][0][0],
491  sp.recoMuonE_hyp_ND[3][0][0]},
492  "recoMuonE_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
493  NDcuts);
494  MakeComparisonPlots({sp.remid_hyp_ND[0][0][0],
495  sp.remid_hyp_ND[1][0][0],
496  sp.remid_hyp_ND[2][0][0],
497  sp.remid_hyp_ND[3][0][0]},
498  "remid_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
499  NDcuts);
501  sp.cvnprod3_hyp_ND[1][0][0],
502  sp.cvnprod3_hyp_ND[2][0][0],
503  sp.cvnprod3_hyp_ND[3][0][0]},
504  "cvnprod3_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
505  NDcuts);
506  MakeComparisonPlots({sp.cvn2017_hyp_ND[0][0][0],
507  sp.cvn2017_hyp_ND[1][0][0],
508  sp.cvn2017_hyp_ND[2][0][0],
509  sp.cvn2017_hyp_ND[3][0][0]},
510  "cvn2017_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
511  NDcuts);
512  MakeComparisonPlots({sp.Vx_hyp_ND[0][0][0],
513  sp.Vx_hyp_ND[1][0][0],
514  sp.Vx_hyp_ND[2][0][0],
515  sp.Vx_hyp_ND[3][0][0]},
516  "Vx_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
517  NDcuts);
518  MakeComparisonPlots({sp.Vy_hyp_ND[0][0][0],
519  sp.Vy_hyp_ND[1][0][0],
520  sp.Vy_hyp_ND[2][0][0],
521  sp.Vy_hyp_ND[3][0][0]},
522  "Vy_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
523  NDcuts);
524  MakeComparisonPlots({sp.Vz_hyp_ND[0][0][0],
525  sp.Vz_hyp_ND[1][0][0],
526  sp.Vz_hyp_ND[2][0][0],
527  sp.Vz_hyp_ND[3][0][0]},
528  "Vz_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
529  NDcuts);
530  MakeComparisonPlots({sp.trklen_hyp_ND[0][0][0],
531  sp.trklen_hyp_ND[1][0][0],
532  sp.trklen_hyp_ND[2][0][0],
533  sp.trklen_hyp_ND[3][0][0]},
534  "trklen_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
535  NDcuts);
536  MakeComparisonPlots({sp.scatLL_hyp_ND[0][0][0],
537  sp.scatLL_hyp_ND[1][0][0],
538  sp.scatLL_hyp_ND[2][0][0],
539  sp.scatLL_hyp_ND[3][0][0]},
540  "scatLL_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
541  NDcuts);
542  MakeComparisonPlots({sp.dedxLL_hyp_ND[0][0][0],
543  sp.dedxLL_hyp_ND[1][0][0],
544  sp.dedxLL_hyp_ND[2][0][0],
545  sp.dedxLL_hyp_ND[3][0][0]},
546  "dedxLL_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
547  NDcuts);
548  MakeComparisonPlots({sp.MF_hyp_ND[0][0][0],
549  sp.MF_hyp_ND[1][0][0],
550  sp.MF_hyp_ND[2][0][0],
551  sp.MF_hyp_ND[3][0][0]},
552  "MF_hyp_ND_cutflow_"+chNames[0]+"_"+quants[0],
553  NDcuts);
554 
555 
556  // --- compare all channels combined with all GENIE int. types combined
557  for(unsigned int quant=0; quant<nQ; ++quant){
558  std::string comb = "_"+chNames[0]+"_"+GENIEStr[0]+"_"+FDcuts[4]+"_"+quants[quant];
559  MakeComparisonPlots({sp.RmT_hyp_FD[4][quant][0],
560  sp.RmT_nom_FD[4][quant][0]},
561  "RmT_FD"+comb,
562  {chLeg[0], GENIELeg[0]});
563  MakeComparisonPlots({sp.RmToT_hyp_FD[4][quant][0],
564  sp.RmToT_nom_FD[4][quant][0]},
565  "RmToT_FD"+comb,
566  {chLeg[0], GENIELeg[0]});
567  MakeComparisonPlots({sp.trueHadE_hyp_FD[4][quant][0],
568  sp.trueHadE_nom_FD[4][quant][0]},
569  "trueHadE_FD"+comb,
570  {chLeg[0], GENIELeg[0]});
571  MakeComparisonPlots({sp.recoHadE_hyp_FD[4][quant][0],
572  sp.recoHadE_nom_FD[4][quant][0]},
573  "recoHadE_FD"+comb,
574  {chLeg[0], GENIELeg[0]});
575  MakeComparisonPlots({sp.png_hyp_FD[4][quant][0],
576  sp.png_nom_FD[4][quant][0]},
577  "png_FD"+comb,
578  {chLeg[0], GENIELeg[0]});
579  MakeComparisonPlots({sp.trueNuE_hyp_FD[4][quant][0],
580  sp.trueNuE_nom_FD[4][quant][0]},
581  "trueNuE_FD"+comb,
582  {chLeg[0], GENIELeg[0]});
583  MakeComparisonPlots({sp.recoNuE_hyp_FD[4][quant][0],
584  sp.recoNuE_nom_FD[4][quant][0]},
585  "recoNuE_FD"+comb,
586  {chLeg[0], GENIELeg[0]});
587  MakeComparisonPlots({sp.trueMuonE_hyp_FD[4][quant][0],
588  sp.trueMuonE_nom_FD[4][quant][0]},
589  "trueMuonE_FD"+comb,
590  {chLeg[0], GENIELeg[0]});
591  MakeComparisonPlots({sp.recoMuonE_hyp_FD[4][quant][0],
592  sp.recoMuonE_nom_FD[4][quant][0]},
593  "recoMuonE_FD"+comb,
594  {chLeg[0], GENIELeg[0]});
595  MakeComparisonPlots({sp.remid_hyp_FD[4][quant][0],
596  sp.remid_nom_FD[4][quant][0]},
597  "remid_FD"+comb,
598  {chLeg[0], GENIELeg[0]});
599  MakeComparisonPlots({sp.cvnprod3_hyp_FD[4][quant][0],
600  sp.cvnprod3_nom_FD[4][quant][0]},
601  "cvnprod3_FD"+comb,
602  {chLeg[0], GENIELeg[0]});
603  MakeComparisonPlots({sp.cvn2017_hyp_FD[4][quant][0],
604  sp.cvn2017_nom_FD[4][quant][0]},
605  "cvn2017_FD"+comb,
606  {chLeg[0], GENIELeg[0]});
607  MakeComparisonPlots({sp.Vx_hyp_FD[4][quant][0],
608  sp.Vx_nom_FD[4][quant][0]},
609  "Vx_FD"+comb,
610  {chLeg[0], GENIELeg[0]});
611  MakeComparisonPlots({sp.Vy_hyp_FD[4][quant][0],
612  sp.Vy_nom_FD[4][quant][0]},
613  "Vy_FD"+comb,
614  {chLeg[0], GENIELeg[0]});
615  MakeComparisonPlots({sp.Vz_hyp_FD[4][quant][0],
616  sp.Vz_nom_FD[4][quant][0]},
617  "Vz_FD"+comb,
618  {chLeg[0], GENIELeg[0]});
619  MakeComparisonPlots({sp.trklen_hyp_FD[4][quant][0],
620  sp.trklen_nom_FD[4][quant][0]},
621  "trklen_FD"+comb,
622  {chLeg[0], GENIELeg[0]});
623  MakeComparisonPlots({sp.scatLL_hyp_FD[4][quant][0],
624  sp.scatLL_nom_FD[4][quant][0]},
625  "scatLL_FD"+comb,
626  {chLeg[0], GENIELeg[0]});
627  MakeComparisonPlots({sp.dedxLL_hyp_FD[4][quant][0],
628  sp.dedxLL_nom_FD[4][quant][0]},
629  "dedxLL_FD"+comb,
630  {chLeg[0], GENIELeg[0]});
631  MakeComparisonPlots({sp.MF_hyp_FD[4][quant][0],
632  sp.MF_nom_FD[4][quant][0]},
633  "MF_FD"+comb,
634  {chLeg[0], GENIELeg[0]});
635 
636  comb = "_"+chNames[0]+"_"+GENIEStr[0]+"_"+NDcuts[3]+"_"+quants[quant];
637 
638  MakeComparisonPlots({sp.RmT_hyp_ND[3][quant][0],
639  sp.RmT_nom_ND[3][quant][0]},
640  "RmT_ND"+comb,
641  {chLeg[0], GENIELeg[0]});
642  MakeComparisonPlots({sp.RmToT_hyp_ND[3][quant][0],
643  sp.RmToT_nom_ND[3][quant][0]},
644  "RmToT_ND"+comb,
645  {chLeg[0], GENIELeg[0]});
646  MakeComparisonPlots({sp.trueHadE_hyp_ND[3][quant][0],
647  sp.trueHadE_nom_ND[3][quant][0]},
648  "trueHadE_ND"+comb,
649  {chLeg[0], GENIELeg[0]});
650  MakeComparisonPlots({sp.recoHadE_hyp_ND[3][quant][0],
651  sp.recoHadE_nom_ND[3][quant][0]},
652  "recoHadE_ND"+comb,
653  {chLeg[0], GENIELeg[0]});
654  MakeComparisonPlots({sp.png_hyp_ND[3][quant][0],
655  sp.png_nom_ND[3][quant][0]},
656  "png_ND"+comb,
657  {chLeg[0], GENIELeg[0]});
658  MakeComparisonPlots({sp.trueNuE_hyp_ND[3][quant][0],
659  sp.trueNuE_nom_ND[3][quant][0]},
660  "trueNuE_ND"+comb,
661  {chLeg[0], GENIELeg[0]});
662  MakeComparisonPlots({sp.recoNuE_hyp_ND[3][quant][0],
663  sp.recoNuE_nom_ND[3][quant][0]},
664  "recoNuE_ND"+comb,
665  {chLeg[0], GENIELeg[0]});
666  MakeComparisonPlots({sp.trueMuonE_hyp_ND[3][quant][0],
667  sp.trueMuonE_nom_ND[3][quant][0]},
668  "trueMuonE_ND"+comb,
669  {chLeg[0], GENIELeg[0]});
670  MakeComparisonPlots({sp.recoMuonE_hyp_ND[3][quant][0],
671  sp.recoMuonE_nom_ND[3][quant][0]},
672  "recoMuonE_ND"+comb,
673  {chLeg[0], GENIELeg[0]});
674  MakeComparisonPlots({sp.remid_hyp_ND[3][quant][0],
675  sp.remid_nom_ND[3][quant][0]},
676  "remid_ND"+comb,
677  {chLeg[0], GENIELeg[0]});
678  MakeComparisonPlots({sp.cvnprod3_hyp_ND[3][quant][0],
679  sp.cvnprod3_nom_ND[3][quant][0]},
680  "cvnprod3_ND"+comb,
681  {chLeg[0], GENIELeg[0]});
682  MakeComparisonPlots({sp.cvn2017_hyp_ND[3][quant][0],
683  sp.cvn2017_nom_ND[3][quant][0]},
684  "cvn2017_ND"+comb,
685  {chLeg[0], GENIELeg[0]});
686  MakeComparisonPlots({sp.Vx_hyp_ND[3][quant][0],
687  sp.Vx_nom_ND[3][quant][0]},
688  "Vx_ND"+comb,
689  {chLeg[0], GENIELeg[0]});
690  MakeComparisonPlots({sp.Vy_hyp_ND[3][quant][0],
691  sp.Vy_nom_ND[3][quant][0]},
692  "Vy_ND"+comb,
693  {chLeg[0], GENIELeg[0]});
694  MakeComparisonPlots({sp.Vz_hyp_ND[3][quant][0],
695  sp.Vz_nom_ND[3][quant][0]},
696  "Vz_ND"+comb,
697  {chLeg[0], GENIELeg[0]});
698  MakeComparisonPlots({sp.trklen_hyp_ND[3][quant][0],
699  sp.trklen_nom_ND[3][quant][0]},
700  "trklen_ND"+comb,
701  {chLeg[0], GENIELeg[0]});
702  MakeComparisonPlots({sp.scatLL_hyp_ND[3][quant][0],
703  sp.scatLL_nom_ND[3][quant][0]},
704  "scatLL_ND"+comb,
705  {chLeg[0], GENIELeg[0]});
706  MakeComparisonPlots({sp.dedxLL_hyp_ND[3][quant][0],
707  sp.dedxLL_nom_ND[3][quant][0]},
708  "dedxLL_ND"+comb,
709  {chLeg[0], GENIELeg[0]});
710  MakeComparisonPlots({sp.MF_hyp_ND[3][quant][0],
711  sp.MF_nom_ND[3][quant][0]},
712  "MF_ND"+comb,
713  {chLeg[0], GENIELeg[0]});
714  }
715 
716 
717  // --- loop over GENIE interaction types in the nominal files ---
718  // --- compare to each hyperon channel in each quantile, full selection ---
719 
720  for(unsigned int quant=0; quant<nQ; ++quant){
721  for(unsigned int gen=0; gen<nGENIE; ++gen){
722  std::string comb = "_channelbreakdown_"+GENIEStr[gen]+"_"+FDcuts[4]+"_"+quants[quant];
723 
724  MakeComparisonPlots({sp.RmT_nom_FD[4][quant][gen],
725  sp.RmT_hyp_FD[4][quant][1],
726  sp.RmT_hyp_FD[4][quant][2],
727  sp.RmT_hyp_FD[4][quant][3]},
728  "RmT_FD"+comb,
729  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
730  MakeComparisonPlots({sp.RmToT_nom_FD[4][quant][gen],
731  sp.RmToT_hyp_FD[4][quant][1],
732  sp.RmToT_hyp_FD[4][quant][2],
733  sp.RmToT_hyp_FD[4][quant][3]},
734  "RmToT_FD"+comb,
735  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
736  MakeComparisonPlots({sp.trueHadE_nom_FD[4][quant][gen],
737  sp.trueHadE_hyp_FD[4][quant][1],
738  sp.trueHadE_hyp_FD[4][quant][2],
739  sp.trueHadE_hyp_FD[4][quant][3]},
740  "trueHadE_FD"+comb,
741  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
742  MakeComparisonPlots({sp.recoHadE_nom_FD[4][quant][gen],
743  sp.recoHadE_hyp_FD[4][quant][1],
744  sp.recoHadE_hyp_FD[4][quant][2],
745  sp.recoHadE_hyp_FD[4][quant][3]},
746  "recoHadE_FD"+comb,
747  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
748  MakeComparisonPlots({sp.png_nom_FD[4][quant][gen],
749  sp.png_hyp_FD[4][quant][1],
750  sp.png_hyp_FD[4][quant][2],
751  sp.png_hyp_FD[4][quant][3]},
752  "png_FD"+comb,
753  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
754  MakeComparisonPlots({sp.trueNuE_nom_FD[4][quant][gen],
755  sp.trueNuE_hyp_FD[4][quant][1],
756  sp.trueNuE_hyp_FD[4][quant][2],
757  sp.trueNuE_hyp_FD[4][quant][3]},
758  "trueNuE_FD"+comb,
759  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
760  MakeComparisonPlots({sp.recoNuE_nom_FD[4][quant][gen],
761  sp.recoNuE_hyp_FD[4][quant][1],
762  sp.recoNuE_hyp_FD[4][quant][2],
763  sp.recoNuE_hyp_FD[4][quant][3]},
764  "recoNuE_FD"+comb,
765  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
766  MakeComparisonPlots({sp.trueMuonE_nom_FD[4][quant][gen],
767  sp.trueMuonE_hyp_FD[4][quant][1],
768  sp.trueMuonE_hyp_FD[4][quant][2],
769  sp.trueMuonE_hyp_FD[4][quant][3]},
770  "trueMuonE_FD"+comb,
771  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
772  MakeComparisonPlots({sp.recoMuonE_nom_FD[4][quant][gen],
773  sp.recoMuonE_hyp_FD[4][quant][1],
774  sp.recoMuonE_hyp_FD[4][quant][2],
775  sp.recoMuonE_hyp_FD[4][quant][3]},
776  "recoMuonE_FD"+comb,
777  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
778  MakeComparisonPlots({sp.remid_nom_FD[4][quant][gen],
779  sp.remid_hyp_FD[4][quant][1],
780  sp.remid_hyp_FD[4][quant][2],
781  sp.remid_hyp_FD[4][quant][3]},
782  "remid_FD"+comb,
783  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
784  MakeComparisonPlots({sp.cvnprod3_nom_FD[4][quant][gen],
785  sp.cvnprod3_hyp_FD[4][quant][1],
786  sp.cvnprod3_hyp_FD[4][quant][2],
787  sp.cvnprod3_hyp_FD[4][quant][3]},
788  "cvnprod3_FD"+comb,
789  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
790  MakeComparisonPlots({sp.cvn2017_nom_FD[4][quant][gen],
791  sp.cvn2017_hyp_FD[4][quant][1],
792  sp.cvn2017_hyp_FD[4][quant][2],
793  sp.cvn2017_hyp_FD[4][quant][3]},
794  "cvn2017_FD"+comb,
795  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
796  MakeComparisonPlots({sp.Vx_nom_FD[4][quant][gen],
797  sp.Vx_hyp_FD[4][quant][1],
798  sp.Vx_hyp_FD[4][quant][2],
799  sp.Vx_hyp_FD[4][quant][3]},
800  "Vx_FD"+comb,
801  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
802  MakeComparisonPlots({sp.Vy_nom_FD[4][quant][gen],
803  sp.Vy_hyp_FD[4][quant][1],
804  sp.Vy_hyp_FD[4][quant][2],
805  sp.Vy_hyp_FD[4][quant][3]},
806  "Vy_FD"+comb,
807  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
808  MakeComparisonPlots({sp.Vz_nom_FD[4][quant][gen],
809  sp.Vz_hyp_FD[4][quant][1],
810  sp.Vz_hyp_FD[4][quant][2],
811  sp.Vz_hyp_FD[4][quant][3]},
812  "Vz_FD"+comb,
813  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
814  MakeComparisonPlots({sp.trklen_nom_FD[4][quant][gen],
815  sp.trklen_hyp_FD[4][quant][1],
816  sp.trklen_hyp_FD[4][quant][2],
817  sp.trklen_hyp_FD[4][quant][3]},
818  "trklen_FD"+comb,
819  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
820  MakeComparisonPlots({sp.scatLL_nom_FD[4][quant][gen],
821  sp.scatLL_hyp_FD[4][quant][1],
822  sp.scatLL_hyp_FD[4][quant][2],
823  sp.scatLL_hyp_FD[4][quant][3]},
824  "scatLL_FD"+comb,
825  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
826  MakeComparisonPlots({sp.dedxLL_nom_FD[4][quant][gen],
827  sp.dedxLL_hyp_FD[4][quant][1],
828  sp.dedxLL_hyp_FD[4][quant][2],
829  sp.dedxLL_hyp_FD[4][quant][3]},
830  "dedxLL_FD"+comb,
831  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
832  MakeComparisonPlots({sp.MF_nom_FD[4][quant][gen],
833  sp.MF_hyp_FD[4][quant][1],
834  sp.MF_hyp_FD[4][quant][2],
835  sp.MF_hyp_FD[4][quant][3]},
836  "MF_FD"+comb,
837  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
838 
839  comb = "_channelbreakdown_"+GENIEStr[gen]+"_"+NDcuts[3]+"_"+quants[quant];
840 
841  MakeComparisonPlots({sp.RmT_nom_ND[3][quant][gen],
842  sp.RmT_hyp_ND[3][quant][1],
843  sp.RmT_hyp_ND[3][quant][2],
844  sp.RmT_hyp_ND[3][quant][3]},
845  "RmT_ND"+comb,
846  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
847  MakeComparisonPlots({sp.RmToT_nom_ND[3][quant][gen],
848  sp.RmToT_hyp_ND[3][quant][1],
849  sp.RmToT_hyp_ND[3][quant][2],
850  sp.RmToT_hyp_ND[3][quant][3]},
851  "RmToT_ND"+comb,
852  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
853  MakeComparisonPlots({sp.trueHadE_nom_ND[3][quant][gen],
854  sp.trueHadE_hyp_ND[3][quant][1],
855  sp.trueHadE_hyp_ND[3][quant][2],
856  sp.trueHadE_hyp_ND[3][quant][3]},
857  "trueHadE_ND"+comb,
858  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
859  MakeComparisonPlots({sp.recoHadE_nom_ND[3][quant][gen],
860  sp.recoHadE_hyp_ND[3][quant][1],
861  sp.recoHadE_hyp_ND[3][quant][2],
862  sp.recoHadE_hyp_ND[3][quant][3]},
863  "recoHadE_ND"+comb,
864  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
865  MakeComparisonPlots({sp.png_nom_ND[3][quant][gen],
866  sp.png_hyp_ND[3][quant][1],
867  sp.png_hyp_ND[3][quant][2],
868  sp.png_hyp_ND[3][quant][3]},
869  "png_ND"+comb,
870  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
871  MakeComparisonPlots({sp.trueNuE_nom_ND[3][quant][gen],
872  sp.trueNuE_hyp_ND[3][quant][1],
873  sp.trueNuE_hyp_ND[3][quant][2],
874  sp.trueNuE_hyp_ND[3][quant][3]},
875  "trueNuE_ND"+comb,
876  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
877  MakeComparisonPlots({sp.recoNuE_nom_ND[3][quant][gen],
878  sp.recoNuE_hyp_ND[3][quant][1],
879  sp.recoNuE_hyp_ND[3][quant][2],
880  sp.recoNuE_hyp_ND[3][quant][3]},
881  "recoNuE_ND"+comb,
882  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
883  MakeComparisonPlots({sp.trueMuonE_nom_ND[3][quant][gen],
884  sp.trueMuonE_hyp_ND[3][quant][1],
885  sp.trueMuonE_hyp_ND[3][quant][2],
886  sp.trueMuonE_hyp_ND[3][quant][3]},
887  "trueMuonE_ND"+comb,
888  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
889  MakeComparisonPlots({sp.recoMuonE_nom_ND[3][quant][gen],
890  sp.recoMuonE_hyp_ND[3][quant][1],
891  sp.recoMuonE_hyp_ND[3][quant][2],
892  sp.recoMuonE_hyp_ND[3][quant][3]},
893  "recoMuonE_ND"+comb,
894  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
895  MakeComparisonPlots({sp.remid_nom_ND[3][quant][gen],
896  sp.remid_hyp_ND[3][quant][1],
897  sp.remid_hyp_ND[3][quant][2],
898  sp.remid_hyp_ND[3][quant][3]},
899  "remid_ND"+comb,
900  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
901  MakeComparisonPlots({sp.cvnprod3_nom_ND[3][quant][gen],
902  sp.cvnprod3_hyp_ND[3][quant][1],
903  sp.cvnprod3_hyp_ND[3][quant][2],
904  sp.cvnprod3_hyp_ND[3][quant][3]},
905  "cvnprod3_ND"+comb,
906  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
907  MakeComparisonPlots({sp.cvn2017_nom_ND[3][quant][gen],
908  sp.cvn2017_hyp_ND[3][quant][1],
909  sp.cvn2017_hyp_ND[3][quant][2],
910  sp.cvn2017_hyp_ND[3][quant][3]},
911  "cvn2017_ND"+comb,
912  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
913  MakeComparisonPlots({sp.Vx_nom_ND[3][quant][gen],
914  sp.Vx_hyp_ND[3][quant][1],
915  sp.Vx_hyp_ND[3][quant][2],
916  sp.Vx_hyp_ND[3][quant][3]},
917  "Vx_ND"+comb,
918  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
919  MakeComparisonPlots({sp.Vy_nom_ND[3][quant][gen],
920  sp.Vy_hyp_ND[3][quant][1],
921  sp.Vy_hyp_ND[3][quant][2],
922  sp.Vy_hyp_ND[3][quant][3]},
923  "Vy_ND"+comb,
924  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
925  MakeComparisonPlots({sp.Vz_nom_ND[3][quant][gen],
926  sp.Vz_hyp_ND[3][quant][1],
927  sp.Vz_hyp_ND[3][quant][2],
928  sp.Vz_hyp_ND[3][quant][3]},
929  "Vz_ND"+comb,
930  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
931  MakeComparisonPlots({sp.trklen_nom_ND[3][quant][gen],
932  sp.trklen_hyp_ND[3][quant][1],
933  sp.trklen_hyp_ND[3][quant][2],
934  sp.trklen_hyp_ND[3][quant][3]},
935  "trklen_ND"+comb,
936  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
937  MakeComparisonPlots({sp.scatLL_nom_ND[3][quant][gen],
938  sp.scatLL_hyp_ND[3][quant][1],
939  sp.scatLL_hyp_ND[3][quant][2],
940  sp.scatLL_hyp_ND[3][quant][3]},
941  "scatLL_ND"+comb,
942  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
943  MakeComparisonPlots({sp.dedxLL_nom_ND[3][quant][gen],
944  sp.dedxLL_hyp_ND[3][quant][1],
945  sp.dedxLL_hyp_ND[3][quant][2],
946  sp.dedxLL_hyp_ND[3][quant][3]},
947  "dedxLL_ND"+comb,
948  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
949  MakeComparisonPlots({sp.MF_nom_ND[3][quant][gen],
950  sp.MF_hyp_ND[3][quant][1],
951  sp.MF_hyp_ND[3][quant][2],
952  sp.MF_hyp_ND[3][quant][3]},
953  "MF_ND"+comb,
954  {GENIELeg[gen], chLeg[1], chLeg[2], chLeg[3]});
955  }
956  }
957 
958 
959  // --- comparison plots for hyperons vs. nominal ---
960  // --- each quartile, each int. type, all hyperon channels ---
961  for(unsigned int quant=0; quant<nQ; ++quant){
962  for(unsigned int ch = 0; ch<nCh; ++ch){
963  std::string comb = "_"+chNames[ch]+"_GENIEIntbreakdown_"+FDcuts[4]+"_"+quants[quant];
964  MakeComparisonPlots({sp.RmT_hyp_FD[4][quant][ch],
965  sp.RmT_nom_FD[4][quant][1],
966  sp.RmT_nom_FD[4][quant][2],
967  sp.RmT_nom_FD[4][quant][3],
968  sp.RmT_nom_FD[4][quant][4],
969  sp.RmT_nom_FD[4][quant][5]},
970  "RmT_FD"+comb,
971  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
972  MakeComparisonPlots({sp.RmToT_hyp_FD[4][quant][ch],
973  sp.RmToT_nom_FD[4][quant][1],
974  sp.RmToT_nom_FD[4][quant][2],
975  sp.RmToT_nom_FD[4][quant][3],
976  sp.RmToT_nom_FD[4][quant][4],
977  sp.RmToT_nom_FD[4][quant][5]},
978  "RmToT_FD"+comb,
979  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
980  MakeComparisonPlots({sp.trueHadE_hyp_FD[4][quant][ch],
981  sp.trueHadE_nom_FD[4][quant][1],
982  sp.trueHadE_nom_FD[4][quant][2],
983  sp.trueHadE_nom_FD[4][quant][3],
984  sp.trueHadE_nom_FD[4][quant][4],
985  sp.trueHadE_nom_FD[4][quant][5]},
986  "trueHadE_FD"+comb,
987  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
988  MakeComparisonPlots({sp.recoHadE_hyp_FD[4][quant][ch],
989  sp.recoHadE_nom_FD[4][quant][1],
990  sp.recoHadE_nom_FD[4][quant][2],
991  sp.recoHadE_nom_FD[4][quant][3],
992  sp.recoHadE_nom_FD[4][quant][4],
993  sp.recoHadE_nom_FD[4][quant][5]},
994  "recoHadE_FD"+comb,
995  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
996  MakeComparisonPlots({sp.png_hyp_FD[4][quant][ch],
997  sp.png_nom_FD[4][quant][1],
998  sp.png_nom_FD[4][quant][2],
999  sp.png_nom_FD[4][quant][3],
1000  sp.png_nom_FD[4][quant][4],
1001  sp.png_nom_FD[4][quant][5]},
1002  "png_FD"+comb,
1003  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1004  MakeComparisonPlots({sp.trueNuE_hyp_FD[4][quant][ch],
1005  sp.trueNuE_nom_FD[4][quant][1],
1006  sp.trueNuE_nom_FD[4][quant][2],
1007  sp.trueNuE_nom_FD[4][quant][3],
1008  sp.trueNuE_nom_FD[4][quant][4],
1009  sp.trueNuE_nom_FD[4][quant][5]},
1010  "trueNuE_FD"+comb,
1011  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1012  MakeComparisonPlots({sp.recoNuE_hyp_FD[4][quant][ch],
1013  sp.recoNuE_nom_FD[4][quant][1],
1014  sp.recoNuE_nom_FD[4][quant][2],
1015  sp.recoNuE_nom_FD[4][quant][3],
1016  sp.recoNuE_nom_FD[4][quant][4],
1017  sp.recoNuE_nom_FD[4][quant][5]},
1018  "recoNuE_FD"+comb,
1019  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1020  MakeComparisonPlots({sp.trueMuonE_hyp_FD[4][quant][ch],
1021  sp.trueMuonE_nom_FD[4][quant][1],
1022  sp.trueMuonE_nom_FD[4][quant][2],
1023  sp.trueMuonE_nom_FD[4][quant][3],
1024  sp.trueMuonE_nom_FD[4][quant][4],
1025  sp.trueMuonE_nom_FD[4][quant][5]},
1026  "trueMuonE_FD"+comb,
1027  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1028  MakeComparisonPlots({sp.recoMuonE_hyp_FD[4][quant][ch],
1029  sp.recoMuonE_nom_FD[4][quant][1],
1030  sp.recoMuonE_nom_FD[4][quant][2],
1031  sp.recoMuonE_nom_FD[4][quant][3],
1032  sp.recoMuonE_nom_FD[4][quant][4],
1033  sp.recoMuonE_nom_FD[4][quant][5]},
1034  "recoMuonE_FD"+comb,
1035  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1036  MakeComparisonPlots({sp.remid_hyp_FD[4][quant][ch],
1037  sp.remid_nom_FD[4][quant][1],
1038  sp.remid_nom_FD[4][quant][2],
1039  sp.remid_nom_FD[4][quant][3],
1040  sp.remid_nom_FD[4][quant][4],
1041  sp.remid_nom_FD[4][quant][5]},
1042  "remid_FD"+comb,
1043  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1044  MakeComparisonPlots({sp.cvnprod3_hyp_FD[4][quant][ch],
1045  sp.cvnprod3_nom_FD[4][quant][1],
1046  sp.cvnprod3_nom_FD[4][quant][2],
1047  sp.cvnprod3_nom_FD[4][quant][3],
1048  sp.cvnprod3_nom_FD[4][quant][4],
1049  sp.cvnprod3_nom_FD[4][quant][5]},
1050  "cvnprod3_FD"+comb,
1051  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1052  MakeComparisonPlots({sp.cvn2017_hyp_FD[4][quant][ch],
1053  sp.cvn2017_nom_FD[4][quant][1],
1054  sp.cvn2017_nom_FD[4][quant][2],
1055  sp.cvn2017_nom_FD[4][quant][3],
1056  sp.cvn2017_nom_FD[4][quant][4],
1057  sp.cvn2017_nom_FD[4][quant][5]},
1058  "cvn2017_FD"+comb,
1059  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1060  MakeComparisonPlots({sp.Vx_hyp_FD[4][quant][ch],
1061  sp.Vx_nom_FD[4][quant][1],
1062  sp.Vx_nom_FD[4][quant][2],
1063  sp.Vx_nom_FD[4][quant][3],
1064  sp.Vx_nom_FD[4][quant][4],
1065  sp.Vx_nom_FD[4][quant][5]},
1066  "Vx_FD"+comb,
1067  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1068  MakeComparisonPlots({sp.Vy_hyp_FD[4][quant][ch],
1069  sp.Vy_nom_FD[4][quant][1],
1070  sp.Vy_nom_FD[4][quant][2],
1071  sp.Vy_nom_FD[4][quant][3],
1072  sp.Vy_nom_FD[4][quant][4],
1073  sp.Vy_nom_FD[4][quant][5]},
1074  "Vy_FD"+comb,
1075  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1076  MakeComparisonPlots({sp.Vz_hyp_FD[4][quant][ch],
1077  sp.Vz_nom_FD[4][quant][1],
1078  sp.Vz_nom_FD[4][quant][2],
1079  sp.Vz_nom_FD[4][quant][3],
1080  sp.Vz_nom_FD[4][quant][4],
1081  sp.Vz_nom_FD[4][quant][5]},
1082  "Vz_FD"+comb,
1083  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1084  MakeComparisonPlots({sp.trklen_hyp_FD[4][quant][ch],
1085  sp.trklen_nom_FD[4][quant][1],
1086  sp.trklen_nom_FD[4][quant][2],
1087  sp.trklen_nom_FD[4][quant][3],
1088  sp.trklen_nom_FD[4][quant][4],
1089  sp.trklen_nom_FD[4][quant][5]},
1090  "trklen_FD"+comb,
1091  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1092  MakeComparisonPlots({sp.scatLL_hyp_FD[4][quant][ch],
1093  sp.scatLL_nom_FD[4][quant][1],
1094  sp.scatLL_nom_FD[4][quant][2],
1095  sp.scatLL_nom_FD[4][quant][3],
1096  sp.scatLL_nom_FD[4][quant][4],
1097  sp.scatLL_nom_FD[4][quant][5]},
1098  "scatLL_FD"+comb,
1099  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1100  MakeComparisonPlots({sp.dedxLL_hyp_FD[4][quant][ch],
1101  sp.dedxLL_nom_FD[4][quant][1],
1102  sp.dedxLL_nom_FD[4][quant][2],
1103  sp.dedxLL_nom_FD[4][quant][3],
1104  sp.dedxLL_nom_FD[4][quant][4],
1105  sp.dedxLL_nom_FD[4][quant][5]},
1106  "dedxLL_FD"+comb,
1107  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1108  MakeComparisonPlots({sp.MF_hyp_FD[4][quant][ch],
1109  sp.MF_nom_FD[4][quant][1],
1110  sp.MF_nom_FD[4][quant][2],
1111  sp.MF_nom_FD[4][quant][3],
1112  sp.MF_nom_FD[4][quant][4],
1113  sp.MF_nom_FD[4][quant][5]},
1114  "MF_FD"+comb,
1115  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1116 
1117  comb = "_"+chNames[ch]+"_GENIEIntbreakdown_"+NDcuts[3]+"_"+quants[quant];
1118  MakeComparisonPlots({sp.RmT_hyp_ND[3][quant][ch],
1119  sp.RmT_nom_ND[3][quant][1],
1120  sp.RmT_nom_ND[3][quant][2],
1121  sp.RmT_nom_ND[3][quant][3],
1122  sp.RmT_nom_ND[3][quant][4],
1123  sp.RmT_nom_ND[3][quant][5]},
1124  "RmT_ND"+comb,
1125  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1126  MakeComparisonPlots({sp.RmToT_hyp_ND[3][quant][ch],
1127  sp.RmToT_nom_ND[3][quant][1],
1128  sp.RmToT_nom_ND[3][quant][2],
1129  sp.RmToT_nom_ND[3][quant][3],
1130  sp.RmToT_nom_ND[3][quant][4],
1131  sp.RmToT_nom_ND[3][quant][5]},
1132  "RmToT_ND"+comb,
1133  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1134  MakeComparisonPlots({sp.trueHadE_hyp_ND[3][quant][ch],
1135  sp.trueHadE_nom_ND[3][quant][1],
1136  sp.trueHadE_nom_ND[3][quant][2],
1137  sp.trueHadE_nom_ND[3][quant][3],
1138  sp.trueHadE_nom_ND[3][quant][4],
1139  sp.trueHadE_nom_ND[3][quant][5]},
1140  "trueHadE_ND"+comb,
1141  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1142  MakeComparisonPlots({sp.recoHadE_hyp_ND[3][quant][ch],
1143  sp.recoHadE_nom_ND[3][quant][1],
1144  sp.recoHadE_nom_ND[3][quant][2],
1145  sp.recoHadE_nom_ND[3][quant][3],
1146  sp.recoHadE_nom_ND[3][quant][4],
1147  sp.recoHadE_nom_ND[3][quant][5]},
1148  "recoHadE_ND"+comb,
1149  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1150  MakeComparisonPlots({sp.png_hyp_ND[3][quant][ch],
1151  sp.png_nom_ND[3][quant][1],
1152  sp.png_nom_ND[3][quant][2],
1153  sp.png_nom_ND[3][quant][3],
1154  sp.png_nom_ND[3][quant][4],
1155  sp.png_nom_ND[3][quant][5]},
1156  "png_ND"+comb,
1157  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1158  MakeComparisonPlots({sp.trueNuE_hyp_ND[3][quant][ch],
1159  sp.trueNuE_nom_ND[3][quant][1],
1160  sp.trueNuE_nom_ND[3][quant][2],
1161  sp.trueNuE_nom_ND[3][quant][3],
1162  sp.trueNuE_nom_ND[3][quant][4],
1163  sp.trueNuE_nom_ND[3][quant][5]},
1164  "trueNuE_ND"+comb,
1165  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1166  MakeComparisonPlots({sp.recoNuE_hyp_ND[3][quant][ch],
1167  sp.recoNuE_nom_ND[3][quant][1],
1168  sp.recoNuE_nom_ND[3][quant][2],
1169  sp.recoNuE_nom_ND[3][quant][3],
1170  sp.recoNuE_nom_ND[3][quant][4],
1171  sp.recoNuE_nom_ND[3][quant][5]},
1172  "recoNuE_ND"+comb,
1173  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1174  MakeComparisonPlots({sp.trueMuonE_hyp_ND[3][quant][ch],
1175  sp.trueMuonE_nom_ND[3][quant][1],
1176  sp.trueMuonE_nom_ND[3][quant][2],
1177  sp.trueMuonE_nom_ND[3][quant][3],
1178  sp.trueMuonE_nom_ND[3][quant][4],
1179  sp.trueMuonE_nom_ND[3][quant][5]},
1180  "trueMuonE_ND"+comb,
1181  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1182  MakeComparisonPlots({sp.recoMuonE_hyp_ND[3][quant][ch],
1183  sp.recoMuonE_nom_ND[3][quant][1],
1184  sp.recoMuonE_nom_ND[3][quant][2],
1185  sp.recoMuonE_nom_ND[3][quant][3],
1186  sp.recoMuonE_nom_ND[3][quant][4],
1187  sp.recoMuonE_nom_ND[3][quant][5]},
1188  "recoMuonE_ND"+comb,
1189  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1190  MakeComparisonPlots({sp.remid_hyp_ND[3][quant][ch],
1191  sp.remid_nom_ND[3][quant][1],
1192  sp.remid_nom_ND[3][quant][2],
1193  sp.remid_nom_ND[3][quant][3],
1194  sp.remid_nom_ND[3][quant][4],
1195  sp.remid_nom_ND[3][quant][5]},
1196  "remid_ND"+comb,
1197  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1198  MakeComparisonPlots({sp.cvnprod3_hyp_ND[3][quant][ch],
1199  sp.cvnprod3_nom_ND[3][quant][1],
1200  sp.cvnprod3_nom_ND[3][quant][2],
1201  sp.cvnprod3_nom_ND[3][quant][3],
1202  sp.cvnprod3_nom_ND[3][quant][4],
1203  sp.cvnprod3_nom_ND[3][quant][5]},
1204  "cvnprod3_ND"+comb,
1205  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1206  MakeComparisonPlots({sp.cvn2017_hyp_ND[3][quant][ch],
1207  sp.cvn2017_nom_ND[3][quant][1],
1208  sp.cvn2017_nom_ND[3][quant][2],
1209  sp.cvn2017_nom_ND[3][quant][3],
1210  sp.cvn2017_nom_ND[3][quant][4],
1211  sp.cvn2017_nom_ND[3][quant][5]},
1212  "cvn2017_ND"+comb,
1213  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1214  MakeComparisonPlots({sp.Vx_hyp_ND[3][quant][ch],
1215  sp.Vx_nom_ND[3][quant][1],
1216  sp.Vx_nom_ND[3][quant][2],
1217  sp.Vx_nom_ND[3][quant][3],
1218  sp.Vx_nom_ND[3][quant][4],
1219  sp.Vx_nom_ND[3][quant][5]},
1220  "Vx_ND"+comb,
1221  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1222  MakeComparisonPlots({sp.Vy_hyp_ND[3][quant][ch],
1223  sp.Vy_nom_ND[3][quant][1],
1224  sp.Vy_nom_ND[3][quant][2],
1225  sp.Vy_nom_ND[3][quant][3],
1226  sp.Vy_nom_ND[3][quant][4],
1227  sp.Vy_nom_ND[3][quant][5]},
1228  "Vy_ND"+comb,
1229  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1230  MakeComparisonPlots({sp.Vz_hyp_ND[3][quant][ch],
1231  sp.Vz_nom_ND[3][quant][1],
1232  sp.Vz_nom_ND[3][quant][2],
1233  sp.Vz_nom_ND[3][quant][3],
1234  sp.Vz_nom_ND[3][quant][4],
1235  sp.Vz_nom_ND[3][quant][5]},
1236  "Vz_ND"+comb,
1237  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1238  MakeComparisonPlots({sp.trklen_hyp_ND[3][quant][ch],
1239  sp.trklen_nom_ND[3][quant][1],
1240  sp.trklen_nom_ND[3][quant][2],
1241  sp.trklen_nom_ND[3][quant][3],
1242  sp.trklen_nom_ND[3][quant][4],
1243  sp.trklen_nom_ND[3][quant][5]},
1244  "trklen_ND"+comb,
1245  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1246  MakeComparisonPlots({sp.scatLL_hyp_ND[3][quant][ch],
1247  sp.scatLL_nom_ND[3][quant][1],
1248  sp.scatLL_nom_ND[3][quant][2],
1249  sp.scatLL_nom_ND[3][quant][3],
1250  sp.scatLL_nom_ND[3][quant][4],
1251  sp.scatLL_nom_ND[3][quant][5]},
1252  "scatLL_ND"+comb,
1253  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1254  MakeComparisonPlots({sp.dedxLL_hyp_ND[3][quant][ch],
1255  sp.dedxLL_nom_ND[3][quant][1],
1256  sp.dedxLL_nom_ND[3][quant][2],
1257  sp.dedxLL_nom_ND[3][quant][3],
1258  sp.dedxLL_nom_ND[3][quant][4],
1259  sp.dedxLL_nom_ND[3][quant][5]},
1260  "dedxLL_ND"+comb,
1261  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1262  MakeComparisonPlots({sp.MF_hyp_ND[3][quant][ch],
1263  sp.MF_nom_ND[3][quant][1],
1264  sp.MF_nom_ND[3][quant][2],
1265  sp.MF_nom_ND[3][quant][3],
1266  sp.MF_nom_ND[3][quant][4],
1267  sp.MF_nom_ND[3][quant][5]},
1268  "MF_ND"+comb,
1269  {chLeg[ch], GENIELeg[1], GENIELeg[2], GENIELeg[3], GENIELeg[4], GENIELeg[5]});
1270  }
1271  }
1272 
1273  std::cout<<"done with plots"<<std::endl;
1274  // Selection efficiency
1275  std::cout<<"selected / no cut -- ND"<<std::endl;
1276  std::cout<<"hyperon"<<std::endl;
1277  std::cout<<sp.RmT_hyp_ND[3][0][0]->GetEntries()<<"/"<<sp.RmT_hyp_ND[0][0][0]->GetEntries()<<"="<<sp.RmT_hyp_ND[3][0][0]->GetEntries()/sp.RmT_hyp_ND[0][0][0]->GetEntries()<<std::endl;
1278  std::cout<<"FD"<<std::endl;
1279  std::cout<<sp.RmT_hyp_FD[3][0][0]->GetEntries()<<"/"<<sp.RmT_hyp_FD[0][0][0]->GetEntries()<<"="<<sp.RmT_hyp_FD[3][0][0]->GetEntries()/sp.RmT_hyp_FD[0][0][0]->GetEntries()<<std::endl;
1280 
1281 }
1282 
1283 TH1D* SpecToHist(TFile* file, std::string SpecName, double POT, std::string AxisTitle, bool force) {
1284  std::unique_ptr<Spectrum> tempSpec = Spectrum::LoadFrom(file, SpecName.c_str());
1285  if(force) tempSpec->OverridePOT(POT);
1286  TH1D* tempHist = tempSpec->ToTH1(POT);
1287  CenterTitles(tempHist);
1288  tempHist->SetMinimum(0);
1289  tempHist->SetMaximum(tempHist->GetMaximum()*1.1);
1290  tempHist->SetTitle(AxisTitle.c_str());
1291  //area norm
1292  tempHist->Scale(1./tempHist->Integral());
1293 
1294 // std::cout<<SpecName<<std::endl;
1295 // std::cout << tempHist->GetMean() << " pm " << tempHist->GetMeanError(0)<<std::endl;
1296 // std::cout << tempHist->GetRMS() << " pm " << tempHist->GetRMSError(0)<<std::endl;
1297 
1298  //comment this out to keep the 0bin
1299  //tempHist->GetXaxis()->SetRange(2,tempHist->GetNbinsX());
1300 
1301  return tempHist;
1302 }
1303 
1304 void MakeComparisonPlots(std::vector<TH1D*> hists, std::string plotName, std::vector<std::string> labels) {
1305  TCanvas* c = new TCanvas(plotName.c_str(), plotName.c_str());
1306 
1307  double leg_x1 = 0.57, leg_y1 = 0.65, leg_x2 = 0.88, leg_y2 = 0.88;
1308  TLegend* leg = new TLegend(leg_x1, leg_y1, leg_x2, leg_y2);
1309 
1310  double max = 0.0;
1311  for(size_t hist=0; hist<hists.size(); ++hist) {
1312  hists[hist]->SetLineColor(1+hist);
1313  if(hists[hist]->GetMaximum() > max) max = hists[hist]->GetMaximum();
1314  if (hist==0) hists[hist]->Draw("hist");
1315 // else if (hist==4) {
1316 // hists[hist]->SetMarkerStyle(24);
1317 // hists[hist]->Draw("p same");
1318 // }
1319  else hists[hist] -> Draw("hist same");
1320 
1321  leg->AddEntry(hists[hist],labels[hist].c_str());
1322  }
1323  leg->SetTextSize(.05);
1324  leg->SetFillStyle(0);
1325  leg->SetBorderSize(0);
1326  leg->Draw();
1327 
1328  hists[0]->SetMaximum(max*1.1);
1329 
1330  c->SaveAs(TString("Plots/")+TString(c->GetName())+TString(".pdf"));
1331 // c->SaveAs(TString("Plots/")+TString(c->GetName())+TString(".png"));
1332 
1333  return;
1334 }
1335 
1337  TCanvas* hCan = new TCanvas(plotName.c_str(), plotName.c_str());
1338  hCan->SetLeftMargin(0.1);
1339  hist->DrawCopy("hist");
1340  hCan -> SaveAs(TString("Plots/")+TString(hCan->GetName())+TString(".pdf"));
1341 // hCan -> SaveAs(TString("Plots/")+TString(hCan->GetName())+TString(".png"));
1342 }
1343 
const std::vector< std::string > GENIELeg
Definition: hyperon_plot.C:54
TH1D * Vx_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:102
TH1D * RmToT_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:111
tree Draw("slc.nhit")
TH1D * Vz_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:144
const unsigned int nFD
Definition: hyperon_plot.C:57
Cuts and Vars for the 2020 FD DiF Study.
Definition: vars.h:6
TH1D * remid_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:119
TH1D * trklen_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:145
TH1D * trueNuE_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:135
TH1D * trklen_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:85
TH1D * cvn2017_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:121
TH1D * trueMuonE_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:97
std::vector< std::string > NDcuts
Definition: hyperon_plot.C:58
TH1D * Vz_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:104
TH1D * recoNuE_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:96
TH1D * trueHadE_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:92
TH1D * trklen_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:125
TH1D * recoHadE_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:133
TH1D * dedxLL_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:147
const unsigned int nQ
Definition: hyperon_plot.C:61
TH1D * png_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:94
const std::vector< std::string > GENIEStr
Definition: hyperon_plot.C:53
TH1D * remid_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:79
TH1D * RmToT_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:71
TH1D * cvnprod3_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:140
TH1D * trklen_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:105
TH1D * png_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:134
void CenterTitles(TH1 *histo)
Definition: Plots.cxx:1483
TH1D * recoHadE_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:73
TString hists[nhists]
Definition: bdt_com.C:3
void MakeComparisonPlots(std::vector< TH1D * > TheHists, std::string PlotName, std::vector< std::string > Labels)
TH1D * scatLL_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:146
const double kAna2018RHCPOT
Definition: Exposures.h:208
TH1D * trueMuonE_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:117
TH1D * recoHadE_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:93
TH1D * recoNuE_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:76
TH1D * cvn2017_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:141
TH1D * png_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:114
TH1D * RmToT_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:91
TH1D * trueMuonE_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:77
TH1D * scatLL_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:126
TH1D * RmT_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:90
static std::unique_ptr< Spectrum > LoadFrom(TDirectory *dir, const std::string &name)
Definition: Spectrum.cxx:563
TH1D * recoMuonE_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:78
TH1D * Vy_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:83
const unsigned int nND
Definition: hyperon_plot.C:58
TH1D * trueHadE_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:132
TH1D * scatLL_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:86
TH1D * RmT_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:110
TH1D * dedxLL_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:127
TH1D * Vx_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:82
TH1D * cvnprod3_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:80
TH1D * remid_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:139
TH1D * trueNuE_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:95
TH1D * dedxLL_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:87
std::vector< std::string > quants
Definition: hyperon_plot.C:61
TH1D * Vz_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:84
TH1D * trueNuE_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:75
TH1D * trueHadE_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:72
OStream cout
Definition: OStream.cxx:6
TH1D * recoNuE_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:116
std::vector< double > POT
TH1D * recoMuonE_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:98
TH1D * recoNuE_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:136
TH1D * SpecToHist(TFile *file, std::string specName, double POT, std::string AxisTitle, bool force=false)
TH1D * recoMuonE_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:118
TH1D * Vx_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:142
TH1D * RmToT_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:131
TH1D * RmT_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:70
TH1D * Vx_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:122
TH1D * Vz_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:124
TH1D * recoHadE_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:113
TH1D * png_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:74
TH1D * cvnprod3_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:120
TH1D * Vy_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:103
TH1D * Vy_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:143
TH1D * trueNuE_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:115
TFile * file
Definition: cellShifts.C:17
TH1D * cvnprod3_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:100
TH1D * MF_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:88
TH1D * MF_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:128
const unsigned int nGENIE
Definition: hyperon_plot.C:53
TH1D * MF_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:108
std::vector< std::string > chLeg
Definition: hyperon_plot.C:67
TH1D * dedxLL_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:107
TH1D * cvn2017_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:101
void Print1D(TH1D *hist, std::string plotName)
TH1D * MF_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:148
TH1D * remid_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:99
cosmicTree SaveAs("cosmicTree.root")
TH1D * RmT_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:130
TH1D * cvn2017_hyp_FD[nFD][nQ][nCh]
Definition: hyperon_plot.C:81
T max(sqlite3 *const db, std::string const &table_name, std::string const &column_name)
Definition: statistics.h:66
TH1D * trueMuonE_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:137
TH1D * Vy_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:123
TH1D * scatLL_nom_FD[nFD][nQ][nGENIE]
Definition: hyperon_plot.C:106
TH1D * trueHadE_hyp_ND[nND][nQ][nCh]
Definition: hyperon_plot.C:112
std::vector< std::string > FDcuts
Definition: hyperon_plot.C:57
TH1D * recoMuonE_nom_ND[nND][nQ][nGENIE]
Definition: hyperon_plot.C:138
void hyperon_plot()
Definition: hyperon_plot.C:156
std::vector< std::string > chNames
Definition: hyperon_plot.C:66
const unsigned int nCh
Definition: hyperon_plot.C:66
enum BeamMode string