11 for (
auto const& prim : sr->mc.nu[0].prim) {
15 return (
float)prim.startE;
21 return (sr->mc.nnu == 0);
38 for (
auto const& prim : sr->mc.nu[0].prim) {
42 if (prim.startE > 0.2)
74 std::string
label =
"";
98 std::string
label =
"";
108 for (
auto const& slc : sr->slc) {
124 for (
auto const& slc : sr->slc) {
125 if (slc.tmatch.index < 0)
137 for (
auto const& slc : sr->slc) {
138 if (slc.tmatch.index < 0)
150 for (
auto const& slc : sr->slc) {
151 if (slc.tmatch.index < 0)
163 {
"nunc",
"NC",
kNCSpill, kOrange },
173 {
"spill_crtVeto",
"CRT Veto", kNuESpillTruthCuts&&
kCRTHitVetoND, kBlue },
const Binning kLengthBinning
const SpillCut kSpillTrueNuFV([](const caf::SRSpillProxy *sr){return true;return false;return PtInVolAbsX(sr->mc.nu[0].position, fvndAbs);})
const Cut kSlcCompletenessCut([](const caf::SRSliceProxy *slc){if(slc->truth.index< 0) return false;return(kCompletness(slc) > 0.5);})
then if[["$THISISATEST"==1]]
Represent the binning of a Spectrum's x-axis.
const Binning kTimeBinning
const SpillCut kSpillSingleNu([](const caf::SRSpillProxy *sr){return(sr->mc.nnu< 2);})
const Binning kDensityBinning
bool PtInVolAbsX(const caf::SRVector3DProxy &pt, const FidVol &vol)
const SpillCut kSpillPreSel([](const caf::SRSpillProxy *sr){unsigned int counter(0);for(auto const &slc:sr->slc){continue;++counter;}return counter;})
const SpillCut kSpillNuEEnergyCut([](const caf::SRSpillProxy *sr){if(kCosmicSpill(sr)||!(std::abs(sr->mc.nu[0].pdg)==12 &&sr->mc.nu[0].iscc)) return true;for(auto const &prim:sr->mc.nu[0].prim){continue;return true;}return false;})
const Cut kSpillPreSelSlc
const Binning kOpenAngleBinning
process_name opflashCryoW ana
const SpillCut kNuMuCCSpill([](const caf::SRSpillProxy *sr){if(kCosmicSpill(sr)||!kSpillSingleNu(sr)) return false;return(std::abs(sr->mc.nu[0].pdg)==14 &&sr->mc.nu[0].iscc &&PtInVolAbsX(sr->mc.nu[0].position, fvndAbs));})
const Binning kBDTBinning
const SpillCut kCRTHitVetoND([](const caf::SRSpillProxy *sr){for(auto const &crtHit:sr->crt_hits){return false;}return true;})
const SpillVar kLeptonEnergy([](const caf::SRSpillProxy *sr){return-5.f;for(auto const &prim:sr->mc.nu[0].prim){if(std::abs(prim.pdg)!=11 &&std::abs(prim.pdg)!=13) continue;return(float) prim.startE;}return-5.f;})
const Binning kdEdxBinning
const Binning kEnergyBinningGeV
const SpillCut kOtherNuSpill([](const caf::SRSpillProxy *sr){return(kSpillSingleNu(sr)&&!(kCosmicSpill(sr)||kNuECCSpill(sr)||kNuMuCCSpill(sr)||kNCSpill(sr)));})
const SpillCut kCosmicSpill([](const caf::SRSpillProxy *sr){return(sr->mc.nnu==0);})
auto counter(T begin, T end)
Returns an object to iterate values from begin to end in a range-for loop.
const Cut kSlcIsRecoNu([](const caf::SRSliceProxy *slc){return!slc->is_clear_cosmic;})
std::vector< SelDef > types
for($it=0;$it< $RaceTrack_number;$it++)
caf::Proxy< caf::StandardRecord > SRSpillProxy
std::vector< PlotDef > plots
const SpillCut kNoSpillCut([](const caf::SRSpillProxy *){return true;})
The simplest possible cut: pass everything, used as a default.
const SpillVar kNuEnergy([](const caf::SRSpillProxy *sr){float energy=(sr->mc.nnu!=1?-5.f:(float) sr->mc.nu[0].E);return energy;})
std::vector< SelDef > sels
const SpillCut kNuESpillTruthCuts
const SpillCut kSpillRecoSel([](const caf::SRSpillProxy *sr){unsigned int counter(0);for(auto const &slc:sr->slc){continue;if(kPreNueSelND(&slc)&&kRecoNueSel(&slc))++counter;}return counter;})
const SpillCut kSpillVtxDistCut([](const caf::SRSpillProxy *sr){return true;unsigned int counter(0);for(auto const &slc:sr->slc){continue;++counter;}return(bool) counter;})
const Binning kGapBinning
const SpillCut kNuECCSpill([](const caf::SRSpillProxy *sr){if(kCosmicSpill(sr)||!kSpillSingleNu(sr)) return false;return(std::abs(sr->mc.nu[0].pdg)==12 &&sr->mc.nu[0].iscc &&PtInVolAbsX(sr->mc.nu[0].position, fvndAbs)&&kSpillNuEEnergyCut(sr));})
const Binning kFlashBinning
const SpillVar kSpillCounting
Most useful for combining weights.
const SpillCut kSpillFullSel([](const caf::SRSpillProxy *sr){unsigned int counter(0);for(auto const &slc:sr->slc){continue;if(kPreNueSelND(&slc)&&kRecoNueSel(&slc)&&kFullNueSel(&slc))++counter;}return counter;})
const Cut kVtxDistMagCut([](const caf::SRSliceProxy *slc){if(slc->truth.index< 0) return true;return(kTruthVtxDistMag(slc)< 1);})