const Cut kShowerConvGapCut([](const caf::SRSliceProxy *slc){const int largestShwIdx(kLargestRecoShowerIdx(slc));return false;return(slc->reco.shw[largestShwIdx].conversion_gap< 3.25f);})
const Cut kShowerDensityCut([](const caf::SRSliceProxy *slc){const int largestShwIdx(kLargestRecoShowerIdx(slc));return false;return(slc->reco.shw[largestShwIdx].density > 4.5);})
const Cut kNueContainedFD([](const caf::SRSliceProxy *slc){const int largestShwIdx(kLargestRecoShowerIdx(slc));return false;double this_endx=slc->reco.shw[largestShwIdx].start.x+(slc->reco.shw[largestShwIdx].dir.x *slc->reco.shw[largestShwIdx].len);double this_endy=slc->reco.shw[largestShwIdx].start.y+(slc->reco.shw[largestShwIdx].dir.y *slc->reco.shw[largestShwIdx].len);double this_endz=slc->reco.shw[largestShwIdx].start.z+(slc->reco.shw[largestShwIdx].dir.z *slc->reco.shw[largestShwIdx].len);bool startx=(fvfd_cryo1.xmin< slc->reco.shw[largestShwIdx].start.x)&&(slc->reco.shw[largestShwIdx].start.x< fvfd_cryo1.xmax);bool endx=(fvfd_cryo1.xmin< this_endx)&&(this_endx< fvfd_cryo1.xmax);bool starty=(fvfd_cryo1.ymin< slc->reco.shw[largestShwIdx].start.y)&&(slc->reco.shw[largestShwIdx].start.y< fvfd_cryo1.ymax);bool endy=(fvfd_cryo1.ymin< this_endy)&&(this_endy< fvfd_cryo1.ymax);bool startz=(fvfd_cryo1.zmin< slc->reco.shw[largestShwIdx].start.z)&&(slc->reco.shw[largestShwIdx].start.z< fvfd_cryo1.zmax);bool endz=(fvfd_cryo1.zmin< this_endz)&&(this_endz< fvfd_cryo1.zmax);return(startx &&endx &&starty &&endy &&startz &&endz);})
const Cut kSlcFlashMatchCut([](const caf::SRSliceProxy *slc){return(kSlcHasFlashMatch(slc)&&slc->fmatch.score >0 &&slc->fmatch.score< 6);})
process_name opflashCryoW ana
const Cut kShowerEnergyCut([](const caf::SRSliceProxy *slc){const int largestShwIdx(kLargestRecoShowerIdx(slc));return false;return(slc->reco.shw[largestShwIdx].bestplane_energy > 0.2f);})
const Cut kShowerRazzleElectronScoreCut
const Cut kNueAllTrackDazzleMuonCut([](const caf::SRSliceProxy *slc){for(auto const &trk:slc->reco.trk){return false;}return true;})
const Cut kFiducialVolumeND([](const caf::SRSliceProxy *slc){return PtInVolAbsX(slc->vertex, fvndAbs);})
const Cut kNueFlashScoreFDCut
const Cut kNueContainedND([](const caf::SRSliceProxy *slc){const int largestShwIdx(kLargestRecoShowerIdx(slc));return false;double this_endx=slc->reco.shw[largestShwIdx].start.x+(slc->reco.shw[largestShwIdx].dir.x *slc->reco.shw[largestShwIdx].len);double this_endy=slc->reco.shw[largestShwIdx].start.y+(slc->reco.shw[largestShwIdx].dir.y *slc->reco.shw[largestShwIdx].len);double this_endz=slc->reco.shw[largestShwIdx].start.z+(slc->reco.shw[largestShwIdx].dir.z *slc->reco.shw[largestShwIdx].len);bool startx=(fvndAbs.xmin< std::abs(slc->reco.shw[largestShwIdx].start.x))&&(std::abs(slc->reco.shw[largestShwIdx].start.x)< fvndAbs.xmax);bool endx=(fvndAbs.xmin< std::abs(this_endx))&&(std::abs(this_endx)< fvndAbs.xmax);bool starty=(fvndAbs.ymin< slc->reco.shw[largestShwIdx].start.y)&&(slc->reco.shw[largestShwIdx].start.y< fvndAbs.ymax);bool endy=(fvndAbs.ymin< this_endy)&&(this_endy< fvndAbs.ymax);bool startz=(fvndAbs.zmin< slc->reco.shw[largestShwIdx].start.z)&&(slc->reco.shw[largestShwIdx].start.z< fvndAbs.zmax);bool endz=(fvndAbs.zmin< this_endz)&&(this_endz< fvndAbs.zmax);return(startx &&endx &&starty &&endy &&startz &&endz);})
const Cut kNueMuonCut([](const caf::SRSliceProxy *slc){return(kLongestTrackLength(slc)< 80.f||kLongestTrackChi2Muon(slc) > 30.f||kLongestTrackChi2Proton(slc)< 60.f);})
const Cut kNueHasTrackCut([](const caf::SRSliceProxy *slc){return slc->reco.ntrk > 0;})
const Cut kSlcNuScoreCut([](const caf::SRSliceProxy *slc){return(kSlcIsRecoNu(slc)&&slc->nu_score >0.4);})
const Cut kNueTrackLenCut([](const caf::SRSliceProxy *slc){return kLongestTrackLength(slc)< 110.f;})
const Cut kNueBasicCut([](const caf::SRSliceProxy *slc){const int largestShwIdx(kLargestRecoShowerIdx(slc));return false;return(slc->reco.shw[largestShwIdx].bestplane_energy > 0.2f &&slc->reco.shw[largestShwIdx].bestplane_dEdx< 3 &&slc->reco.shw[largestShwIdx].conversion_gap< 3);})
const Cut kNuePandoraScoreFDCut
const Cut kRazzleDazzleNueSel
const Cut kShowerdEdxCut([](const caf::SRSliceProxy *slc){const int largestShwIdx(kLargestRecoShowerIdx(slc));return false;return(slc->reco.shw[largestShwIdx].bestplane_dEdx< 3.625f);})
const Cut kNueLongestTrackDazzleMuonScoreCut
const Cut kRecoShower([](const caf::SRSliceProxy *slc){const int largestShwIdx(kLargestRecoShowerIdx(slc));return false;return(slc->reco.shw[largestShwIdx].bestplane_energy > 0.f &&slc->reco.shw[largestShwIdx].bestplane_dEdx > 0.f &&slc->reco.shw[largestShwIdx].conversion_gap > 0.f);})
const Cut kShowerOpenAngleCut([](const caf::SRSliceProxy *slc){return kRecoShower_OpenAngle(slc)< 12.f;})
const Cut kShowerRazzleElectronCut
Template for Cut and SpillCut.
const Cut kNueAllTrackDazzleMuonScoreCut([](const caf::SRSliceProxy *slc){for(auto const &trk:slc->reco.trk){return false;}return true;})
const Cut kNueTrackContainmentCut([](const caf::SRSliceProxy *slc){const int longestTrackIdx(kLongestTrackIdx(slc));return true;return PtInVol(slc->reco.trk[longestTrackIdx].end, fvndExit);})
const Cut kNueNumShowersCut([](const caf::SRSliceProxy *slc){return((unsigned int) kRecoShowers_EnergyCut(slc)==1);})
const Cut kNueLongestTrackDazzleMuonCut