5 #include "CAFAna/Analysis/SALoaders.h" 9 #include "CAFAna/Core/Binning.h" 10 #include "CAFAna/Core/Cut.h" 11 #include "CAFAna/Core/HistAxis.h" 22 #include "CAFAna/Cuts/NueCutsSecondAna.h" 70 std::string loaderNDData =
"prod_caf_R17-09-05-prod4recopreview.f_nd_numi_fhc_full_v1_addShortSimpleCVN_goodruns";
71 std::string loaderNDMC =
"prod_caf_R17-11-14-prod4reco.d_nd_genie_nonswap_fhc_nova_v08_full_v1";
74 std::string loaderFDnonswapMC =
"prod_caf_R17-11-14-prod4reco.d_fd_genie_nonswap_fhc_nova_v08_full_v1";
75 std::string loaderFDfluxswapMC =
"prod_caf_R17-11-14-prod4reco.d_fd_genie_fluxswap_fhc_nova_v08_full_v1";
76 std::string loaderFDtauswapMC =
"prod_caf_R17-11-14-prod4reco.d_fd_genie_tau_fhc_nova_v08_full_v1";
108 const Cut cutNDNumu = {
138 for(
unsigned int selIdx = 0; selIdx <
kNumSels; ++selIdx){
139 for(
unsigned int varIdx = 0; varIdx <
kNumVars; ++varIdx){
144 axisNue, selND[selIdx],
148 *propDecomp[selIdx][varIdx], *numuDecomp,
150 selFD[selIdx], selND[selIdx], cutNDNumu,
153 predicProp[selIdx][varIdx] =
new PredictionExtrap (extrapProp[selIdx][varIdx]);
163 for(
unsigned int selIdx = 0; selIdx <
kNumSels; ++selIdx){
164 for(
unsigned int varIdx = 0; varIdx <
kNumVars; ++varIdx){
171 TDirectory * dFDshi = file->mkdir(
"prediction");
172 for(
unsigned int selIdx = 0; selIdx <
kNumSels; ++selIdx){
173 for(
unsigned int varIdx = 0; varIdx <
kNumVars; ++varIdx){
174 TString varName = defs[varIdx].
name.c_str();
175 predicExte[selIdx][varIdx]->
SaveTo(dFDshi,
"nue_pred_"+selNames[selIdx]+
"_"+varName) ;
176 predicProp[selIdx][varIdx]->
SaveTo(dFDshi,
"nue_pred_noextend_"+selNames[selIdx]+
"_"+varName) ;
177 predicNoXP[selIdx][varIdx]->
SaveTo(dFDshi,
"nue_pred_noextrap_"+selNames[selIdx]+
"_"+varName) ;
186 if(!gSystem->AccessPathName(outfilename.Data())){
187 std::cout <<
"\n\nThis will overwrite " << outfilename
188 <<
"\n\nAre you sure you want to continue? y/n ";
189 string input =
""; getline(cin,input);
190 if (input!=
"y") abort();
Near Detector underground.
Far Detector at Ash River.
Cuts and Vars for the 2020 FD DiF Study.
Simple record of shifts applied to systematic parameters.
const Cut kNue2018CVNCut([](const caf::SRProxy *sr){if(kIsRHC(sr)) return kNue2018RHCCVNCut(sr);else return kNue2018FHCCVNCut(sr);})
const Cut kNue2018NDPresel
string outfilename
knobs that need extra care
const Var kPtP
Transverse momentum fraction in slice.
Uses MC for NC and CC components, assigns remainder of data to CC.
const HistAxis kNumuCCAxis("Reconstructed Neutrino Energy (GeV)", kNumuEnergyBinning, kCCE)
void CheckFileOverwrite(TString)
Simple oscillation probability calculator that has no solar term or mass hierarchy or delta so it's s...
const HistDef defs[kNumVars]
const Binning kNue2018Binning
const Cut kNue2018FD
Use this cut for the full FD Core selection, apply for both RHC and FHC.
void make_nueFDprediction_kinematics_FHC(const std::string &outfilename="FDprediction_kinematics_FHC.root")
const Cut kNue2018FDPeripheral(kNue2018FDPeripheralFunc)
const SystShifts kNoShift
Splits Data proportionally according to MC.
const Cut kNue2018FDAllSamples
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
const std::string selNames[kNumSels]
virtual void SaveTo(TDirectory *dir, const std::string &name) const override
static Binning Simple(int n, double lo, double hi, const std::vector< std::string > &labels={})
const HistAxis kNue2018Axis("NuE Energy / Analysis Bin", kNue2018Binning, kNue2018AnaBin)
Use this Axis for Ana2018, official Axis.