26 std::map<TString, SpectrumLoader *>
loaders;
47 kcNueCCIncFiducialLoose &&
63 loaders[
"kLightUpCalibDown"],
64 loaders[
"kLightDownCalibUp"],
75 loaders[
"kCalibShape"],
80 loaders[
"kCherenkov"],
87 std::vector<SystShifts> genie_shifts = genie_multiverse.
GetSystShifts();
113 TFile *
output =
new TFile(
"prongcvn_optimization.root",
"recreate");
114 optimize->
SaveTo(output,
"prongcvn_optimize");
const Cut kcNueCCIncContainment([](const caf::SRProxy *sr){if(sr->vtx.elastic[0].fuzzyk.nshwlid< 1) return false;TVector3 start=sr->vtx.elastic[0].fuzzyk.png[0].shwlid.start;TVector3 stop=sr->vtx.elastic[0].fuzzyk.png[0].shwlid.stop;for(uint ix=0;ix< sr->vtx.elastic[0].fuzzyk.nshwlid;ix++){TVector3 start_muoncatcher=sr->vtx.elastic[0].fuzzyk.png[ix].shwlid.start;TVector3 stop_muoncatcher=sr->vtx.elastic[0].fuzzyk.png[ix].shwlid.stop;if(std::max(start_muoncatcher.Z(), stop_muoncatcher.Z()) > 1250.0) return false;}if(sr->sel.nuecosrej.distallpngtop< 50) return false;if(sr->sel.nuecosrej.distallpngbottom< 30) return false;if(sr->sel.nuecosrej.distallpngeast< 50) return false;if(sr->sel.nuecosrej.distallpngwest< 30) return false;if(sr->sel.nuecosrej.distallpngfront< 150) return false;return true;})
const std::string NominalMC_entire_RHC_prod4
_HistAxis< Var > HistAxis
Cuts and Vars for the 2020 FD DiF Study.
std::vector< const ISyst * > getAllXsecSysts_2018()
Get master XSec syst list for 2018 analyses.
const NuTruthCut kTrueDetectorST([](const caf::SRNeutrinoProxy *sr){return(sr->vtx.X()< tvtxmax.X()&& sr->vtx.X() > tvtxmin.X()&& sr->vtx.Y() > tvtxmin.Y()&& sr->vtx.Y()< tvtxmax.Y()&& sr->vtx.Z() > tvtxmin.Z()&& sr->vtx.Z()< tvtxmax.Z());})
void prongcvn_optimization()
GenericSystematicDef< caf::SRProxy > SystematicDef
const std::string DWNLightFiles_full_RHC_prod4
void DefineNominal(SystematicDef *nominal)
_Var< caf::SRProxy > Var
Representation of a variable to be retrieved from a caf::StandardRecord object.
const std::string ShapeCalibFiles_full_RHC_prod4
const std::string UPCalibFiles_full_RHC_prod4
void SaveTo(TDirectory *dir, const std::string &name) const
void DefineMultiverseSystematic(SystematicDef *syst, std::vector< Var > mv_weights)
_Cut< caf::SRProxy > Cut
Representation of a cut (selection) to be applied to a caf::StandardRecord object.
const Var kvProngCVN([](const caf::SRProxy *sr){if(sr->vtx.nelastic< 1) return-1000.f;if(sr->vtx.elastic[0].fuzzyk.npng< 1) return-1000.f;int nProngs=sr->vtx.elastic[0].fuzzyk.npng;float maxProngCVNe=-5.;for(int iProng=0;iProng< nProngs;iProng++){if(sr->vtx.elastic[0].fuzzyk.png[iProng].cvnpart.electronid > maxProngCVNe){maxProngCVNe=sr->vtx.elastic[0].fuzzyk.png[iProng].cvnpart.electronid;}}return maxProngCVNe;})
void SetSpillCuts(const SpillCut &)
const std::string UPLightFiles_full_RHC_prod4
Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.
void DefineSystematic(SystematicDef *syst)
std::vector< SystShifts > GetSystShifts()
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
const std::string DWNCalibFiles_full_RHC_prod4
const std::string CherenkovFiles_full_RHC_prod4
static Binning Simple(int n, double lo, double hi, const std::vector< std::string > &labels={})
Cut CutFromNuTruthCut(const NuTruthCut &stc)