7 #include "CAFAna/Core/Binning.h" 26 const TString predName,
const TString
version);
30 bool getFHC1 =
options.Contains(
"fhc1");
31 bool getFHC2 =
options.Contains(
"fhc2");
32 bool getRHC =
options.Contains(
"rhc");
37 Loaders loadersp123b, loadersp3c;
107 std::string path =
"/pnfs/nova/persistent/production/concat/R16-03-03-prod2reco.f/";
108 std::string pathd=
"/pnfs/nova/persistent/production/concat/R16-03-03-prod2reco.d/";
110 std::string fname1(path+
"period1/prod_decaf_R16-03-03-prod2reco.f_fd_genie_nonswap_fhc_nova_v08_period1_nue_or_numu_contain_v1_prod2-snapshot.root");
111 std::string fnameSwap1(path+
"period1/prod_decaf_R16-03-03-prod2reco.f_fd_genie_fluxswap_fhc_nova_v08_period1_nue_or_numu_contain_v1_prod2-snapshot.root");
112 std::string fnameTau1(path+
"period1/prod_decaf_R16-03-03-prod2reco.f_fd_genie_tau_fhc_nova_v08_period1_nue_or_numu_contain_v1_prod2-snapshot.root");
113 std::string fnameNDData(pathd+
"prod_decaf_R16-03-03-prod2reco.d_nd_numi_fhc_full_nue_or_numu_contain_v1_goodruns_prod2-snapshot.root");
114 std::string fnameNDMC(pathd+
"prod_decaf_R16-03-03-prod2reco.d_nd_genie_nonswap_genierw_fhc_nova_v08_epoch1-3c_nue_or_numu_contain_v1_prod2-snapshot/*.root");
116 std::string fname2(path+
"period2/prod_decaf_R16-03-03-prod2reco.f_fd_genie_nonswap_fhc_nova_v08_period2_nue_or_numu_contain_v1_prod2-snapshot.root");
117 std::string fnameSwap2(path+
"period2/prod_decaf_R16-03-03-prod2reco.f_fd_genie_fluxswap_fhc_nova_v08_period2_nue_or_numu_contain_v1_prod2-snapshot.root");
118 std::string fnameTau2(path+
"period2/prod_decaf_R16-03-03-prod2reco.f_fd_genie_tau_fhc_nova_v08_period2_nue_or_numu_contain_v1_prod2-snapshot.root");
120 std::string fname3b(path+
"epoch3b/prod_decaf_R16-03-03-prod2reco.f_fd_genie_nonswap_fhc_nova_v08_epoch3b_nue_or_numu_contain_v1_prod2-snapshot.root");
121 std::string fnameSwap3b(path+
"epoch3b/prod_decaf_R16-03-03-prod2reco.f_fd_genie_fluxswap_fhc_nova_v08_epoch3b_nue_or_numu_contain_v1_prod2-snapshot.root");
122 std::string fnameTau3b(path+
"epoch3b/prod_decaf_R16-03-03-prod2reco.f_fd_genie_tau_fhc_nova_v08_epoch3b_nue_or_numu_contain_v1_prod2-snapshot.root");
136 std::string path =
"/pnfs/nova/persistent/production/concat/R16-03-03-prod2reco.f/";
137 std::string pathd=
"/pnfs/nova/persistent/production/concat/R16-03-03-prod2reco.d/";
139 std::string fname3c(path+
"epoch3c/prod_decaf_R16-03-03-prod2reco.f_fd_genie_nonswap_fhc_nova_v08_epoch3c_nue_or_numu_contain_v1_prod2-snapshot.root");
140 std::string fnameSwap3c(path+
"epoch3c/prod_decaf_R16-03-03-prod2reco.f_fd_genie_fluxswap_fhc_nova_v08_epoch3c_nue_or_numu_contain_v1_prod2-snapshot.root");
141 std::string fnameTau3c(path+
"epoch3c/prod_decaf_R16-03-03-prod2reco.f_fd_genie_tau_fhc_nova_v08_epoch3c_nue_or_numu_contain_v1_prod2-snapshot.root");
142 std::string fnameNDData(pathd+
"prod_decaf_R16-03-03-prod2reco.d_nd_numi_fhc_full_nue_or_numu_contain_v1_goodruns_prod2-snapshot.root");
143 std::string fnameNDMC(pathd+
"prod_decaf_R16-03-03-prod2reco.d_nd_genie_nonswap_genierw_fhc_nova_v08_epoch1-3c_nue_or_numu_contain_v1_prod2-snapshot/*.root");
156 std::string fname =
"prod_decaf_R16-03-03-prod2reco.e_fd_genie_nonswap_nogenierw_rhc_nova_v08_full_nue_or_numu_contain_v1";
157 std::string fswap =
"prod_decaf_R16-03-03-prod2reco.e_fd_genie_fluxswap_nogenierw_rhc_nova_v08_full_nue_or_numu_contain_v1";
160 fname =
"/pnfs/nova/users/ecatanom/concat/prod_decaf_R16-03-03-prod2reco.e_fd_genie_nonswap_nogenierw_rhc_nova_v08_full_nue_or_numu_contain_v1.root";
161 fswap =
"/pnfs/nova/users/ecatanom/concat/prod_decaf_R16-03-03-prod2reco.e_fd_genie_fluxswap_nogenierw_rhc_nova_v08_full_nue_or_numu_contain_v1.root";
169 TString
dir =
"root_predictions/";
171 TFile *
output =
new TFile (dir+
"predInterp_"+part+
"_" + period +
"_"+ version +
".root",
"RECREATE");
172 pred->
SaveTo(output, predName);
Near Detector underground.
Implements systematic errors by interpolation between shifted templates.
Far Detector at Ash River.
Cuts and Vars for the 2020 FD DiF Study.
Collection of SpectrumLoaders for many configurations.
std::vector< const ISyst * > systsNumuFHC
void DisableLoader(caf::Det_t det, DataMC datamc, DataSource src=kBeam, SwappingConfig swap=kNonSwap)
const Var kkNumuBkgHalf([](const caf::SRProxy *sr){if((kkIsFD &&!kIsNumuCC)(sr)) return 0.5;return 1.;})
void Go()
Call Go() on all the loaders.
void SetSpillCut(const SpillCut &cut)
virtual void SaveTo(TDirectory *dir, const std::string &name) const override
const HistAxis kNumuCCAxis("Reconstructed Neutrino Energy (GeV)", kNumuEnergyBinning, kCCE)
std::vector< const ISyst * > systsNueFHC
Simple oscillation probability calculator that has no solar term or mass hierarchy or delta so it's s...
void setPathsRHC(Loaders &loadersRHC)
void setPathsFNALP3c(Loaders &loaders)
std::vector< const ISyst * > systsNumuRHC
const SystShifts kNoShift
std::vector< const ISyst * > systsNueRHC
void SetLoaderFiles(const std::vector< std::string > &files, caf::Det_t det, DataMC datamc, DataSource src=kBeam, SwappingConfig swap=kNonSwap)
Configure loader via explicit file list.
void SavePrediction(const TString part, const TString period, PredictionInterp *pred, const TString predName, const TString version)
void futureSig_getNueNumuSyst(const TString version="v01", const TString options="fhc1 fhc2 rhc")
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
void setPathsFNALP123b(Loaders &loaders)
void SetLoaderPath(const std::string &path, caf::Det_t det, DataMC datamc, DataSource src=kBeam, SwappingConfig swap=kNonSwap)
Configure loader via wildcard path.
virtual IOscCalc * Copy() const override