10 #include "CAFAna/Extrap/ExtrapSterile.h" 26 sprintf(pot,
"%d", i);
41 const std::string fnamenear_conc=
"defname: prod_caf_R17-03-01-prod3reco.d_nd_genie_nonswap_fhc_nova_v08_full_v1";
42 const std::string fnameneardata_conc=
"defname: prod_caf_R17-03-01-prod3reco.d_nd_numi_fhc_full_v1_goodruns";
43 const std::string fnamefar_con=
"defname: prod_caf_R17-03-01-prod3reco.l_fd_genie_nonswap_fhc_nova_v08_full_v1";
44 const std::string fnameswap_con=
"defname: prod_caf_R17-03-01-prod3reco.l_fd_genie_fluxswap_fhc_nova_v08_full_v1";
45 const std::string fnametau_conc=
"defname: prod_caf_R17-03-01-prod3reco.l_fd_genie_tau_fhc_nova_v08_full_v1";
76 std::string labelRecoE =
"Energy Deposited in Scintillator (GeV)";
77 std::map<std::string, std::pair<HistAxis*, std::pair<Cut*, Cut*> > > cut_samples;
79 cut_samples[
"Ana01"] = std::pair<HistAxis*, std::pair<Cut*, Cut*> >(
87 std::map<std::string, IDecomp*> decomps_nominal;
88 std::map<std::string, std::map<std::string, std::map<int, IDecomp*> > > decomps_shifted;
89 std::map<std::string, PredictionNoExtrap*> predsNE_nominal;
90 std::map<std::string, std::map<std::string, std::map<int, PredictionNoExtrap*> > > predsNE_shifted;
91 std::map<std::string, PredictionSterile*> predsSt_nominal;
92 std::map<std::string, std::map<std::string, std::map<int, PredictionSterile*> > > predsSt_shifted;
96 std::vector<Var> kPPFXFluxUnivWgts;
97 for(
unsigned int UnivIdx = 0; UnivIdx < 100; UnivIdx++){
98 const Var tempPPFXWgt(
101 if (sr->
mc.
nnu != 1)
return 1.f;
102 if(sr->
mc.
nu[0].rwgt.ppfx.vuniv[UnivIdx] <= 0)
return 1.f;
103 return (
float)sr->
mc.
nu[0].rwgt.ppfx.vuniv[UnivIdx];
105 kPPFXFluxUnivWgts.push_back(tempPPFXWgt);
117 for(
const auto& sample : cut_samples) {
121 *sample.second.first, *sample.second.second.first,
126 floadfar, floadswap, floadtau,
134 floadnear, floadneardata,
135 *sample.second.first, *sample.second.second.first,
139 floadnear, floadneardata,
144 floadnear, floadswap, floadfar, floadtau, *decompnc_n, *decompnumu_n,
146 *sample.second.second.second, *sample.second.second.first,
kNumuND,
152 for(
unsigned int Idx = 0; Idx < 100; Idx++){
153 const Var kPPFXFluxWgt = kPPFXFluxUnivWgts[Idx];
158 *sample.second.first, *sample.second.second.first,
164 floadfar, floadswap, floadtau,
166 kNusNDEnergy17, *sample.second.second.second,
171 floadnear, floadneardata,
172 *sample.second.first, *sample.second.second.first,
176 floadnear, floadneardata,
181 floadnear, floadswap, floadfar, floadtau, *decompnc_s, *decompnumu_s,
183 *sample.second.second.second, *sample.second.second.first,
kNumuND,
210 std::string fullLocation = folder + filenm +
".root";
211 TFile* rootF =
new TFile(fullLocation.c_str(),
"RECREATE");
214 decomps_nominal, decomps_shifted,
215 predsNE_nominal, predsNE_shifted,
216 predsSt_nominal, predsSt_shifted
_HistAxis< Var > HistAxis
Cuts and Vars for the 2020 FD DiF Study.
caf::Proxy< caf::SRHeader > hdr
Proxy for caf::StandardRecord.
caf::Proxy< std::vector< caf::SRNeutrino > > nu
void SaveMaps(TDirectory *out, std::map< std::string, IDecomp * > decomps_nominal, std::map< std::string, std::map< std::string, std::map< int, IDecomp * > > > decomps_shifted, std::map< std::string, PredictionNoExtrap * > predsNE_nominal, std::map< std::string, std::map< std::string, std::map< int, PredictionNoExtrap * > > > predsNE_shifted, std::map< std::string, PredictionSterile * > predsSt_nominal, std::map< std::string, std::map< std::string, std::map< int, PredictionSterile * > > > predsSt_shifted)
Save all of the objects in the input maps to the out directory/file.
caf::Proxy< short int > nnu
void SetSpillCut(const SpillCut &cut)
const Cut kNus17ND
Full Nus17 ND analysis selection.
_Cut< caf::SRProxy > Cut
Representation of a cut (selection) to be applied to a caf::StandardRecord object.
virtual void Go() override
Load all the registered spectra.
const SystShifts kNoShift
caf::Proxy< caf::SRTruthBranch > mc
const HistAxis kNCBinsNumuCCAxis("Reconstructed Neutrino Energy (GeV)", kNCDisappearanceEnergyBinning, kCCE)
Splits Data proportionally according to MC.
Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.
std::string StringFromInt1(int i)
A prediction object compatible with sterile oscillations.
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
Just return the ND truth spectra as the decomposition.
const Binning kNCDisappearanceEnergyBinning
Energy binnings used in Ana01 for nus extrapolation.