29 if(calculator ==
"3a"){
30 CalcName =
"3A best fit";
34 if(calculator ==
"sa"){
35 CalcName =
"SA best fit";
39 if(calculator ==
"maxmix"){
40 CalcName =
"Maimal Mixing";
54 std::string inDirData =
"/nova/ana/nu_mu_ana/Ana2017/Data/";
56 std::string inName =
"Prediction_StatsOnly_3ACut_3AEnergy_OptBinning_";
64 CosmicsSpecFile =
"/nova/ana/nu_mu_ana/Ana2017/Cosmics/cosmicsScaled_NewBinning_" + SampleName +
".root";
65 CosmicsHistName =
"cosmics3A";
68 TFile inCosmicsFile(CosmicsSpecFile.c_str());
70 std::vector<Spectrum> sCosmics;
71 std::vector<TH1*> hCosmics;
72 hCosmics.push_back((TH1*)inCosmicsFile.Get(
"q1all"));
73 hCosmics.push_back((TH1*)inCosmicsFile.Get(
"q1all"));
74 hCosmics.push_back((TH1*)inCosmicsFile.Get(
"q2all"));
75 hCosmics.push_back((TH1*)inCosmicsFile.Get(
"q3all"));
76 hCosmics.push_back((TH1*)inCosmicsFile.Get(
"q4all"));
77 for(
int quantId = 2; quantId <
nQuantPlus; quantId++){
78 hCosmics[0]->Add(hCosmics[quantId]);
80 for(
int quantId = 0; quantId<
nQuantPlus; quantId++){
82 sCosmics.push_back(cosmics);
89 std::vector<PredictionInterp*> predictionVec;
97 predictionVec.push_back(&predQ1);
98 predictionVec.push_back(&predQ2);
99 predictionVec.push_back(&predQ3);
100 predictionVec.push_back(&predQ4);
118 TFile*
fout =
new TFile(outDir +
"plotDataPred.root",
"RECREATE");
123 std::vector<TH1*> hNuEToNuE;
124 std::vector<TH1*> hNuEToNuMu;
125 std::vector<TH1*> hNuEToNuTau;
126 std::vector<TH1*> hBarNuEToNuE;
127 std::vector<TH1*> hBarNuEToNuMu;
128 std::vector<TH1*> hBarNuEToNuTau;
130 std::vector<TH1*> hNuMuToNuE;
131 std::vector<TH1*> hNuMuToNuMu;
132 std::vector<TH1*> hNuMuToNuTau;
133 std::vector<TH1*> hBarNuMuToNuE;
134 std::vector<TH1*> hBarNuMuToNuMu;
135 std::vector<TH1*> hBarNuMuToNuTau;
137 std::vector<TH1*> hNC;
138 std::vector<TH1*> hPred;
156 hPred.push_back(predictionVec[0]->Predict(calc).ToTH1(pot, kGray));
158 for(
int quantId = 0; quantId <
nQuant; quantId++){
172 hPred.push_back(predictionVec[quantId]->Predict(calc).ToTH1(pot, kGray));
188 hPred[0]->Add(predictionVec[quantId]->Predict(calc).ToTH1(pot, kGray));
197 std::vector<double> iNuEToNuE;
198 std::vector<double> iNuEToNuMu;
199 std::vector<double> iNuEToNuTau;
200 std::vector<double> iBarNuEToNuE;
201 std::vector<double> iBarNuEToNuMu;
202 std::vector<double> iBarNuEToNuTau;
204 std::vector<double> iNuMuToNuE;
205 std::vector<double> iNuMuToNuMu;
206 std::vector<double> iNuMuToNuTau;
207 std::vector<double> iBarNuMuToNuE;
208 std::vector<double> iBarNuMuToNuMu;
209 std::vector<double> iBarNuMuToNuTau;
211 std::vector<double> iNC;
212 std::vector<double> iPred;
213 std::vector<double> iBkg;
214 std::vector<double> iCos;
215 std::vector<double> iNuMu;
218 for(
int quantId = 0; quantId <
nQuantPlus; quantId++){
221 iNuEToNuE.push_back(hNuEToNuE[quantId]->
Integral());
222 iNuEToNuMu.push_back(hNuEToNuMu[quantId]->
Integral());
223 iNuEToNuTau.push_back(hNuEToNuTau[quantId]->
Integral());
224 iBarNuEToNuE.push_back(hBarNuEToNuE[quantId]->
Integral());
225 iBarNuEToNuMu.push_back(hBarNuEToNuMu[quantId]->
Integral());
226 iBarNuEToNuTau.push_back(hBarNuEToNuTau[quantId]->
Integral());
227 iNuMuToNuE.push_back(hNuMuToNuE[quantId]->
Integral());
228 iNuMuToNuMu.push_back(hNuMuToNuMu[quantId]->
Integral());
229 iNuMuToNuTau.push_back(hNuMuToNuTau[quantId]->
Integral());
230 iBarNuMuToNuE.push_back(hBarNuMuToNuE[quantId]->
Integral());
231 iBarNuMuToNuMu.push_back(hBarNuMuToNuMu[quantId]->
Integral());
232 iBarNuMuToNuTau.push_back(hBarNuMuToNuTau[quantId]->
Integral());
233 iNC.push_back(hNC[quantId]->
Integral());
234 iCos.push_back(hCosmics[quantId]->
Integral());
236 float tempNuMu = iNuEToNuMu[quantId] + iBarNuEToNuMu[quantId] + iNuMuToNuMu[quantId] + iBarNuMuToNuMu[quantId];
237 float tempPred = hPred[quantId]->Integral() + iCos[quantId];
238 float tempBkg = tempPred - (iCos[quantId] + iNC[quantId] + tempNuMu);
240 iPred.push_back(tempPred);
241 iNuMu.push_back(tempNuMu);
242 iBkg.push_back(tempBkg);
248 for(
int quantId = 0; quantId <
nQuantPlus; quantId++){
250 cout.setf(ios::fixed, ios::floatfield);
261 std::cout <<
"slashmulticolumn{1}{|c}{Channel} & slashmulticolumn{1}{c|}{Selected events} & Channel & slashmulticolumn{1}{c|}{Selected events} doubleslash slashhline" <<
std::endl;
263 std::cout <<
"slashnumuD slasharrow slashnumuD} & slashmulticolumn{1}{c|}{" << iNuMuToNuMu[quantId] <<
"} & slashnueD slasharrow slashnumuD & slashmulticolumn{1}{c|}{" << iNuEToNuMu[quantId] <<
"} doubleslash" <<
std::endl;
264 std::cout <<
"slashmulticolumn{1}{|c}{slashnumuD slasharrow slashnueD} & slashmulticolumn{1}{c|}{" << iNuMuToNuE[quantId] <<
"} & slashnueD slasharrow slashnueD & slashmulticolumn{1}{c|}{" << iNuEToNuE[quantId] <<
"} doubleslash" <<
std::endl;
265 std::cout <<
"slashmulticolumn{1}{|c}{ slashnumuD slasharrow slashnutauD}& slashmulticolumn{1}{c|}{" << iNuMuToNuTau[quantId] <<
"} & slashnueD slasharrow slashnutauD & slashmulticolumn{1}{c|}{" << iNuEToNuTau[quantId] <<
"} doubleslash" <<
std::endl;
266 std::cout <<
"slashmulticolumn{1}{|c}{slashnumubarDslasharrowslashnumubarD} & slashmulticolumn{1}{c|}{" << iBarNuMuToNuMu[quantId] <<
"} & slashnuebarD slasharrow slashnumubarD & slashmulticolumn{1}{c|}{" << iBarNuEToNuMu[quantId] <<
"} doubleslash" <<
std::endl;
267 std::cout <<
"slashmulticolumn{1}{|c}{slashnumubarD slasharrow slashnuebarD} & slashmulticolumn{1}{c|}{" << iBarNuMuToNuE[quantId] <<
"} & slashnuebarD slasharrow slashnuebarD & slashmulticolumn{1}{c|}{" << iBarNuEToNuE[quantId] <<
"} doubleslash" <<
std::endl;
268 std::cout <<
"slashmulticolumn{1}{|c}{slashnumubarD slasharrow slashnutaubarD} & slashmulticolumn{1}{c|}{" << iBarNuMuToNuTau[quantId] <<
"} & slashnuebarD slasharrow slashnutaubarD & slashmulticolumn{1}{c|}{" << iBarNuEToNuTau[quantId] <<
"} doubleslash" <<
std::endl;
271 std::cout <<
"slashmulticolumn{1}{|c|}{slashnumuD + slashnumubarD signal} & slashmulticolumn{1}{c|}{NC} & slashmulticolumn{1}{c|}{Other beam bkg} & slashmulticolumn{1}{c|}{Cosmics} doubleslash" <<
std::endl;
272 std::cout <<
"slashmulticolumn{1}{|c|}{" << iNuMu[quantId] <<
"} & slashmulticolumn{1}{c|}{" << iNC[quantId] <<
"} & slashmulticolumn{1}{c|}{" << iBkg[quantId] <<
"} & slashmulticolumn{1}{c|}{" << iCos[quantId] <<
"} doubleslash" <<
std::endl;
void makePredTables(std::string calculator="maxmix")
Cuts and Vars for the 2020 FD DiF Study.
double Integral(const Spectrum &s, const double pot, int cvnregion)
osc::IOscCalcAdjustable * DefaultOscCalc()
Create a new calculator with default assumptions for all parameters.
virtual void SetDmsq32(const T &dmsq32)=0
Representation of a spectrum in any variable, with associated POT.
Charged-current interactions.
const double kAna2017Livetime
Loads shifted spectra from files.
virtual void SetTh23(const T &th23)=0
Neutral-current interactions.
Both neutrinos and antineutrinos.
std::vector< const ISyst * > getAllAna2017Systs(const EAnaType2017 ana, const bool smallgenie)
All neutrinos, any flavor.