#include <NuCutImps.h>
Public Member Functions | |
MSRock_Nov09 (const NuPlots *plots=0) | |
Protected Member Functions | |
void | Preselection (const NuEvent &nu) |
void | Selection (const NuEvent &nu) |
Definition at line 428 of file NuCutImps.h.
NuCutImps::MSRock_Nov09::MSRock_Nov09 | ( | const NuPlots * | plots = 0 |
) |
Definition at line 2829 of file NuCutImps.cxx.
References NuCut::SetFidVol().
void NuCutImps::MSRock_Nov09::Preselection | ( | const NuEvent & | nu | ) | [protected, virtual] |
Implements NuCut.
Definition at line 2835 of file NuCutImps.cxx.
References NuEvent::coilCurrent, NuEvent::coilIsOk, NuCut::Cut_If(), NuEvent::cutOnBeamInfo, NuEvent::cutOnDataQuality, NuEvent::cutOnSpillTiming, NuEvent::detector, NuCutImps::ChairSound::GetRegion(), NuEvent::goodBeamSntp, NuCuts::GoodTimeToNearestSpill(), NuCutImps::CC0325Std::IsGoodBeam(), NuEvent::isGoodDataQuality, NuCuts::IsGoodTrackFitPassReclamation(), NuEvent::isLI, NuCut::Keep_Data_If(), NuCut::Keep_If(), Detector::kFar, Detector::kNear, Msg::kWarning, NuEvent::litime, MAXMSG, NuEvent::ntrk, and NuEvent::trkvtxdcosy.
02836 { 02837 // can't use CC0325Std::Preselection because it has a fiducial cut and 02838 // an overly tight angle cut. This is copied from there except for those. 02839 02840 Keep_If(nu.ntrk >= 1, "GoodNumberofTracks"); // Good tracks 02841 Cut_If(nu.isLI || nu.litime != -1, "LICut"); // Filter out LI events 02842 Keep_Data_If(!nu.cutOnDataQuality || nu.coilIsOk, nu, "IsCoilOkay"); 02843 Keep_Data_If(nu.goodBeamSntp && nu.coilIsOk, nu,"GoodBeamDetPOT"); 02844 Keep_Data_If(!nu.cutOnBeamInfo || CC0325Std::IsGoodBeam(nu),nu,"GoodBeam"); 02845 02846 // Per-detector cuts 02847 if (nu.detector == Detector::kFar){ 02848 // Matt's rock selection does not use Trackfitpass at the moment 02849 // Keep_If(nu.trkfitpass == 1, "trackfitpass"); 02850 Keep_Data_If(nu.isGoodDataQuality||!nu.cutOnDataQuality,nu,"DataQuality"); 02851 02852 // [-2, 12] microseconds 02853 Keep_Data_If(NuCuts::GoodTimeToNearestSpill(nu, -2, +12) 02854 || !nu.cutOnSpillTiming, nu, "SpillTime"); 02855 // Cosmic cut? 02856 Keep_If(TMath::Abs(nu.trkvtxdcosy) < 0.4, "CosY"); 02857 } 02858 else if (nu.detector == Detector::kNear){ 02859 MAXMSG("CC0325Std",Msg::kWarning, 1) 02860 << "Rock Muon Selection being called on ND. You probably don't want to be doing this." 02861 << endl; 02862 Keep_If(NuCuts::IsGoodTrackFitPassReclamation(nu), "trackfitreclamation"); 02863 Keep_Data_If(nu.coilCurrent<-1000||!nu.cutOnDataQuality,nu,"CoilCurrent"); 02864 } 02865 02866 // Make a fiducial cut 02867 // Keep_If(nu.regionTrkVtx == 1, "front_face"); 02868 // Keep_If(GetRegion(nu) == 1, "front_face"); 02869 Keep_If(ChairSound::GetRegion(nu) > 0 && ChairSound::GetRegion(nu) < 7, "Antifiducial"); 02870 }
void NuCutImps::MSRock_Nov09::Selection | ( | const NuEvent & | nu | ) | [protected, virtual] |
Implements NuCut.
Definition at line 2873 of file NuCutImps.cxx.
References NuCut::Keep_If(), and NuEvent::roID.
02874 { 02875 // Other selectors have a Defer_Selection to CC0325Std here, but I 02876 // don't think it makes sense here since we don't share a preselection. 02877 // However, I honestly have no clear idea what it's even supposed to do, 02878 // so I could be wrong. 02879 // Keep_If(nu.roID >= 0.25, "RoID"); // Note: >= is not the same as > 02880 // Keep_If(1/nu.sigqp_qp > 3.5, "SigmaQP_QP"); 02881 // Keep_If(TMath::Abs(nu.relativeAngle - TMath::Pi()) > 2.08, "RelativeAngle"); 02882 02883 Keep_If(nu.roID >= 0.1, "RoID"); 02884 }