All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
NueCuts.h
Go to the documentation of this file.
1 #pragma once
2 
6 
7 namespace ana {
8 extern const Cut kRecoShower;
9 extern const Cut kNueBasicCut;
10 
11 extern const Cut kNueHasTrackCut;
13 extern const Cut kNueTrackLenCut;
14 extern const Cut kNueMuonCutOLD;
15 extern const Cut kNueMuonCutNEW;
16 extern const Cut kNueMuonCut;
17 
18 extern const Cut kNueNumShowersCut;
19 
20 extern const Cut kShowerEnergyCut;
21 extern const Cut kShowerdEdxCut;
22 extern const Cut kShowerConvGapCut;
23 extern const Cut kShowerDensityCut;
24 extern const Cut kShowerOpenAngleCut;
25 
26 extern const Cut kShowerRazzleElectronCut;
32 
33 extern const Cut kNueContainedND;
34 extern const Cut kNueContainedFD;
35 
40 
41 // Specific FD cuts although they're currenly basically the same as for the ND
46 
47 }
const Cut kShowerConvGapCut([](const caf::SRSliceProxy *slc){const int largestShwIdx(kLargestRecoShowerIdx(slc));return false;return(slc->reco.shw[largestShwIdx].conversion_gap< 3.25f);})
Definition: NueCuts.h:22
const Cut kShowerDensityCut([](const caf::SRSliceProxy *slc){const int largestShwIdx(kLargestRecoShowerIdx(slc));return false;return(slc->reco.shw[largestShwIdx].density > 4.5);})
Definition: NueCuts.h:23
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);})
Definition: NueCuts.h:34
const Cut kNueMuonCutOLD
const Cut kPreNueSelND
Definition: NueCuts.h:36
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);})
Definition: NueCuts.h:20
const Cut kShowerRazzleElectronScoreCut
Definition: NueCuts.cxx:129
const Cut kContainedFD
const Cut kFullNueSel
Definition: NueCuts.h:38
const Cut kNueAllTrackDazzleMuonCut([](const caf::SRSliceProxy *slc){for(auto const &trk:slc->reco.trk){return false;}return true;})
Definition: NueCuts.h:30
const Cut kFiducialVolumeND([](const caf::SRSliceProxy *slc){return PtInVolAbsX(slc->vertex, fvndAbs);})
const Cut kNueFlashScoreFDCut
Definition: NueCuts.h:42
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);})
Definition: NueCuts.h:33
const Cut kNueMuonCut([](const caf::SRSliceProxy *slc){return(kLongestTrackLength(slc)< 80.f||kLongestTrackChi2Muon(slc) > 30.f||kLongestTrackChi2Proton(slc)< 60.f);})
Definition: NueCuts.h:16
const Cut kNueHasTrackCut([](const caf::SRSliceProxy *slc){return slc->reco.ntrk > 0;})
Definition: NueCuts.h:11
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;})
Definition: NueCuts.h:13
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);})
Definition: NueCuts.h:9
const Cut kNuePandoraScoreFDCut
Definition: NueCuts.h:43
const Cut kRecoNueSel
Definition: NueCuts.h:37
const Cut kNueMuonCutNEW
const Cut kRazzleDazzleNueSel
Definition: NueCuts.h:39
const Cut kShowerdEdxCut([](const caf::SRSliceProxy *slc){const int largestShwIdx(kLargestRecoShowerIdx(slc));return false;return(slc->reco.shw[largestShwIdx].bestplane_dEdx< 3.625f);})
Definition: NueCuts.h:21
const Cut kNueLongestTrackDazzleMuonScoreCut
Definition: NueCuts.cxx:132
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);})
Definition: NueCuts.h:8
const Cut kRecoShowerFD
Definition: NueCuts.h:44
const Cut kShowerOpenAngleCut([](const caf::SRSliceProxy *slc){return kRecoShower_OpenAngle(slc)< 12.f;})
Definition: NueCuts.h:24
const Cut kShowerRazzleElectronCut
Definition: NueCuts.cxx:128
Template for Cut and SpillCut.
Definition: Cut.h:16
const Cut kNueFD
Definition: NueCuts.h:45
const Cut kNueAllTrackDazzleMuonScoreCut([](const caf::SRSliceProxy *slc){for(auto const &trk:slc->reco.trk){return false;}return true;})
Definition: NueCuts.h:31
const Cut kNueTrackContainmentCut([](const caf::SRSliceProxy *slc){const int longestTrackIdx(kLongestTrackIdx(slc));return true;return PtInVol(slc->reco.trk[longestTrackIdx].end, fvndExit);})
Definition: NueCuts.h:12
const Cut kNueNumShowersCut([](const caf::SRSliceProxy *slc){return((unsigned int) kRecoShowers_EnergyCut(slc)==1);})
Definition: NueCuts.h:18
const Cut kNueLongestTrackDazzleMuonCut
Definition: NueCuts.cxx:131