7 #include "../WorkshopIncludes.h" 14 std::string directoryD =
"/pnfs/nova/persistent/production/concat/R16-03-03-prod2reco.d/";
15 std::string directoryF =
"/pnfs/nova/persistent/production/concat/R16-03-03-prod2reco.f/";
17 std::string nd_data = directoryD+
"prod_decaf_R16-03-03-prod2reco.d_nd_numi_fhc_full_numu_contain_v1_goodruns_prod2-snapshot.root";
20 std::string nd_nonswap = directoryD+
"prod_decaf_R16-03-03-prod2reco.d_nd_genie_nonswap_genierw_f\ 21 hc_nova_v08_epoch1-3c_numu_contain_v1_prod2-snapshot/*.root";
22 std::string fd_nonswap = directoryF+
"/"+fEpoch+
"/prod_decaf_R16-03-03-prod2reco.f_fd_genie_nonsw\ 23 ap_fhc_nova_v08_"+fEpoch+
"_numu_contain_v1_prod2-snapshot.root";
24 std::string fd_fluxswap = directoryF+
"/"+fEpoch+
"/prod_decaf_R16-03-03-prod2reco.f_fd_genie_fluxs\ 25 wap_fhc_nova_v08_"+fEpoch+
"_numu_contain_v1_prod2-snapshot.root";
26 std::string fd_tau = directoryF+
"/"+fEpoch+
"/prod_decaf_R16-03-03-prod2reco.f_fd_genie_tau_f\ 27 hc_nova_v08_"+fEpoch+
"_numu_contain_v1_prod2-snapshot.root";
38 osc::OscCalculatorPMNSOpt
calc;
41 calc.SetTh23(TMath::ASin(
sqrt(0.403)));
42 calc.SetDmsq32(2.67
e-3);
44 std::vector<const ISyst*>
systs = getAllNumuSysts();
46 TFile*
f =
new TFile((
"../Predictions/Prediction_"+fEpoch+
"_systs_kCCE.root").c_str(),
"RECREATE");
94 prediction_ugly->
SaveTo(f->mkdir(
"pred_ugly" ));
95 prediction_bad->
SaveTo(f->mkdir(
"pred_bad" ));
96 prediction_good->
SaveTo(f->mkdir(
"pred_good" ));
98 prediction_std->
SaveTo(f->mkdir(
"pred_std" ));
Near Detector underground.
Implements systematic errors by interpolation between shifted templates.
Far Detector at Ash River.
void ResetOscCalcToDefault(osc::IOscCalcAdjustable *calc)
Reset calculator to default assumptions for all parameters.
void savePrediction_complete(std::string &fEpoch)
Collection of SpectrumLoaders for many configurations.
const Cut kNumuCosmicRej([](const caf::SRProxy *sr){return(sr->sel.cosrej.anglekal > 0.5 &&
sr->sel.cosrej.numucontpid2019 > 0.535 && sr->slc.nhit< 400);})
const Cut kNumuContainFD([](const caf::SRProxy *sr){ std::pair< int, int > planes=calcFirstLastLivePlane(sr->slc.firstplane, std::bitset< 14 >(sr->hdr.dibmask));int planestofront=sr->slc.firstplane-planes.first;int planestoback=planes.second-sr->slc.lastplane;return( sr->slc.ncellsfromedge > 1 &&planestofront > 1 &&planestoback > 1 &&sr->sel.contain.kalfwdcell > 10 &&sr->sel.contain.kalbakcell > 10 &&sr->sel.contain.cosfwdcell > 0 &&sr->sel.contain.cosbakcell > 0);})
const Cut kNumuContainND([](const caf::SRProxy *sr){return( sr->trk.kalman.ntracks > sr->trk.kalman.idxremid &&sr->slc.ncellsfromedge > 1 &&sr->slc.firstplane > 1
&&sr->slc.lastplane< 212 &&sr->trk.kalman.tracks[0].start.Z()< 1150
&&( sr->trk.kalman.tracks[0].stop.Z()< 1275 ||sr->sel.contain.kalyposattrans< 55) &&( sr->energy.numu.ndhadcalcatE +sr->energy.numu.ndhadcaltranE)< 0.03
&&sr->sel.contain.kalfwdcellnd > 4 &&sr->sel.contain.kalbakcellnd > 8);})
void Go()
Call Go() on all the loaders.
void SetSpillCut(const SpillCut &cut)
virtual void SaveTo(TDirectory *dir, const std::string &name) const override
float pid
PID value output by kNN.
const Binning kNumuEnergyBinning
SRRemid remid
Output from RecoMuonID (ReMId) package.
const SystShifts kNoShift
The StandardRecord is the primary top-level object in the Common Analysis File trees.
SRIDBranch sel
Selector (PID) branch.
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
void SetLoaderPath(const std::string &path, caf::Det_t det, DataMC datamc, DataSource src=kBeam, SwappingConfig swap=kNonSwap)
Configure loader via wildcard path.