#include <NuCutsSelection.h>
Inheritance diagram for NuCutImps::NuCutsSelection:

Public Member Functions | |
| NuCutsSelection (const NuPlots *plots=0) | |
| NuCutsSelection (Int_t CutVersion, const NuPlots *plots=0) | |
| void | MakePostPreSelectionPlots (const NuEvent &nu) const |
| void | PrintSummary (void) |
| Prints a summary of all cuts. | |
| virtual Bool_t | InFidVol (const NuEvent &nu) const |
| virtual Bool_t | InFidVolEvt (const NuEvent &nu) const |
| virtual Bool_t | InFidVolTrueEvt (const NuMCEvent &mc) const |
Protected Member Functions | |
| void | Preselection (const NuEvent &nu) |
| void | Selection (const NuEvent &nu) |
Private Member Functions | |
| Bool_t | IsGoodPreSelectionCuts (const NuEvent &nu) const |
| Bool_t | IsGoodStdCuts (const NuEvent &nu) const |
Definition at line 15 of file NuCutsSelection.h.
|
|
Definition at line 27 of file NuCutsSelection.cxx. References plots(), and NuCut::SetAnaVersion(). 00027 : 00028 NuCut("NuCutsSelection", plots) 00029 { 00030 SetAnaVersion(NuCuts::kUnknown); 00031 }
|
|
||||||||||||
|
Definition at line 33 of file NuCutsSelection.cxx. References plots(), and NuCut::SetAnaVersion(). 00033 : 00034 NuCut("NuCutsSelection", plots) 00035 { 00036 SetAnaVersion(anaVersion); 00037 }
|
|
|
Fiducial volume calculation function. This is the basic 'infid' derived version, and should be overridden/passed to for any more complicated evaluations. Reimplemented from NuCut. Definition at line 207 of file NuCutsSelection.cxx. References NuCut::AnaVersion(), NuEvent::anaVersion, NuLibrary::cuts, NuLibrary::Instance(), and NuCuts::IsInFidVolTrk(). 00208 {
00209 NuLibrary& lib=NuLibrary::Instance();
00210 NuEvent tmp = nu;
00211 tmp.anaVersion = this->AnaVersion();
00212 return lib.cuts.IsInFidVolTrk(tmp);
00213 }
|
|
|
Duplicate of InFidVol except acting on event vertex instead of track vertex. Reimplemented from NuCut. Definition at line 215 of file NuCutsSelection.cxx. References NuCut::AnaVersion(), NuEvent::anaVersion, NuLibrary::cuts, NuLibrary::Instance(), and NuCuts::IsInFidVolEvt(). 00216 {
00217 NuLibrary& lib=NuLibrary::Instance();
00218 NuEvent tmp = nu;
00219 tmp.anaVersion = this->AnaVersion();
00220 return lib.cuts.IsInFidVolEvt(tmp);
00221 }
|
|
|
Determines if a MC event is truly in the fiducial volume. Behaves just like InFidVol Reimplemented from NuCut. Definition at line 223 of file NuCutsSelection.cxx. References NuCut::AnaVersion(), NuMCEvent::anaVersion, NuLibrary::cuts, NuLibrary::Instance(), and NuCuts::IsInFidVolTrueEvt(). 00224 {
00225 NuLibrary& lib=NuLibrary::Instance();
00226 NuMCEvent tmp(mc);
00227 tmp.anaVersion = this->AnaVersion();
00228 return lib.cuts.IsInFidVolTrueEvt(tmp);
00229 }
|
|
|
Definition at line 69 of file NuCutsSelection.cxx. References NuLibrary::cnt, NuLibrary::cuts, NuCounter::evtNotIsLI, NuCounter::evtWithTrkCounter, NuPlots::FillEvtAndSpillTimingPlots(), NuCounter::goodBeamInfoDBCounter, NuCounter::goodDataQualityCounter, NuCounter::goodDirectionCosineCounter, NuCounter::goodTimeToNearestSpillCounter, NuCounter::goodTrkPassCounter, NuLibrary::Instance(), NuCuts::IsGoodBeam(), NuCuts::IsGoodBeamDetPOTCountingStage(), NuCuts::IsGoodDataQuality(), NuCuts::IsGoodDirCos(), NuCuts::IsGoodNumberOfTracks(), NuCuts::IsGoodTimeToNearestSpill(), NuCuts::IsGoodTrackFitPass(), NuCuts::IsInFidVolTrk(), NuCuts::IsLI(), and NuCounter::trkInFidVolCounter. Referenced by IsGoodStdCuts(), and Preselection(). 00070 {
00071 //get an instance of the code library
00072 NuLibrary& lib=NuLibrary::Instance();
00073
00074 //cut on the sntp good beam and that coil is on
00075 if (!lib.cuts.IsGoodBeamDetPOTCountingStage(nu)) return false;
00076 //lib.cnt.goodBeamDetPOTCountingStage++;
00077
00078 //ensure good number of tracks in the event
00079 if (!lib.cuts.IsGoodNumberOfTracks(nu)) return false;
00080 lib.cnt.evtWithTrkCounter++;
00081
00082 //check if the trk is in the fiducial volume
00083 if (!lib.cuts.IsInFidVolTrk(nu)) return false;
00084 lib.cnt.trkInFidVolCounter++;
00085
00086 //cut on LI
00087 if (lib.cuts.IsLI(nu)) return false;
00088 lib.cnt.evtNotIsLI++;
00089
00090 //cut on the data quality
00091 if (!lib.cuts.IsGoodDataQuality(nu)) return false;
00092 lib.cnt.goodDataQualityCounter++;
00093
00094 //cut on the spill time
00095 if (fPlots) fPlots->FillEvtAndSpillTimingPlots(nu);
00096 if (!lib.cuts.IsGoodTimeToNearestSpill(nu)) return false;
00097 lib.cnt.goodTimeToNearestSpillCounter++;
00098
00099 //cut on the beam
00100 if (!lib.cuts.IsGoodBeam(nu)) return false;
00101 lib.cnt.goodBeamInfoDBCounter++;
00102
00103 //require a good trk fit
00104 if (!lib.cuts.IsGoodTrackFitPass(nu)) return false;
00105 lib.cnt.goodTrkPassCounter++;
00106
00107 //require a forward going neutrino about beam direction
00108 if (!lib.cuts.IsGoodDirCos(nu)) return false;
00109 lib.cnt.goodDirectionCosineCounter++;
00110
00111 return true;
00112 }
|
|
|
this function provides all the std cuts and plots to avoid duplication all over the place Definition at line 116 of file NuCutsSelection.cxx. References NuLibrary::cnt, NuLibrary::cuts, NuPlots::FillDPIdSigmaQPFailDpIDCutPlots(), NuPlots::FillDPIdSigmaQPFailProbCutPlots(), NuPlots::FillDPIdSigmaQPFailSigQPCutPlots(), NuPlots::FillDPIdSigmaQPPassDpIDCutPlots(), NuPlots::FillDPIdSigmaQPPassSigQPCutPlots(), NuPlots::FillN_1Plots(), NuCounter::goodFitProbCounter, NuCounter::goodFitSigQPCounter, NuCounter::goodPIDCounter, NuLibrary::Instance(), NuCuts::IsGoodFitProb(), NuCuts::IsGoodMajorityCurvature(), NuCuts::IsGoodPID(), IsGoodPreSelectionCuts(), NuCuts::IsGoodRelAngle(), NuCuts::IsGoodSigmaQP_QP(), NuCuts::IsGoodTrackLength(), NuCuts::IsGoodTrackLengthInUV(), and MakePostPreSelectionPlots(). Referenced by Selection(). 00117 {
00120
00121 //get an instance of the code library
00122 NuLibrary& lib=NuLibrary::Instance();
00123
00124 //make the preselection cuts
00125 if (!this->IsGoodPreSelectionCuts(nu)) return false;
00126
00127 //make the post-preselection plots
00128 if (fPlots) this->MakePostPreSelectionPlots(nu);
00129 if (fPlots) fPlots->FillN_1Plots(nu);
00130
00131 //cut on the PID
00132 if (!lib.cuts.IsGoodPID(nu)) {
00133 if (fPlots) fPlots->FillDPIdSigmaQPFailDpIDCutPlots(nu);
00134 return false;
00135 }
00136
00137 lib.cnt.goodPIDCounter++;
00138 if (fPlots) fPlots->FillDPIdSigmaQPPassDpIDCutPlots(nu);
00139
00140 //cut on the fractional track momentum and sign error
00141 if (!lib.cuts.IsGoodSigmaQP_QP(nu)) {
00142 if (fPlots) fPlots->FillDPIdSigmaQPFailSigQPCutPlots(nu);
00143 return false;
00144 }
00145 lib.cnt.goodFitSigQPCounter++;
00146 if (fPlots) fPlots->FillDPIdSigmaQPPassSigQPCutPlots(nu);
00147
00148 //cut on the track fit probability
00149 if (!lib.cuts.IsGoodFitProb(nu)) {
00150 if (fPlots) fPlots->FillDPIdSigmaQPFailProbCutPlots(nu);
00151 return false;
00152 }
00153 lib.cnt.goodFitProbCounter++;
00154
00155 //cut on majority curvature
00156 if (!lib.cuts.IsGoodMajorityCurvature(nu)){
00157 return false;
00158 }
00159
00160 // Cut on the track length
00161 if (!lib.cuts.IsGoodTrackLength(nu)) {
00162 return false;
00163 }
00164
00165 // Cut on the track length in UV
00166 if (!lib.cuts.IsGoodTrackLengthInUV(nu)) {
00167 return false;
00168 }
00169
00170 // Cut on the relative angle
00171 if (!lib.cuts.IsGoodRelAngle(nu)) {
00172 return false;
00173 }
00174
00175 return true;
00176 }
|
|
|
|
Implements NuCut. Definition at line 40 of file NuCutsSelection.cxx. References NuCut::AnaVersion(), NuEvent::anaVersion, IsGoodPreSelectionCuts(), and NuCut::Keep_If(). 00041 {
00042 // Copy and override the NuEvent
00043 NuEvent nu = nuold;
00044 nu.anaVersion = this->AnaVersion();
00045 // Don't do sanity checking for now - this will be reimplemented!
00046 // nuc.anaVersion = fDSTAna->SanityCheckedAnaVersion(nu.anaVersion, fAnaVersion);
00047
00048 Keep_If(IsGoodPreSelectionCuts(nu), "StdPreselection");
00049
00050
00051 // Make the preselection cut
00052 // Keep_If(fDSTAna->IsGoodPreSelectionCuts(fPlots,nuc));
00053 }
|
|
|
Prints a summary of all cuts.
Reimplemented from NuCut. Definition at line 198 of file NuCutsSelection.cxx. References NuLibrary::cnt, NuLibrary::Instance(), and NuCounter::PrintMicroDST(). 00199 {
00200 // Use the NuLibrary counter for this
00201 NuLibrary& lib=NuLibrary::Instance();
00202
00203 //print out the numbers of events
00204 lib.cnt.PrintMicroDST();
00205 }
|
|
|
Implements NuCut. Definition at line 56 of file NuCutsSelection.cxx. References NuCut::AnaVersion(), NuEvent::anaVersion, IsGoodStdCuts(), and NuCut::Keep_If(). 00057 {
00058 // Copy and override the NuEvent
00059 NuEvent nuc = nu;
00060 nuc.anaVersion = this->AnaVersion();
00061 // nuc.anaVersion = fDSTAna->SanityCheckedAnaVersion(nu.anaVersion, fAnaVersion);
00062
00063 // Keep_If(fDSTAna->IsGoodStdCuts(fPlots,nuc));
00064 Keep_If(IsGoodStdCuts(nu), "StdCuts");
00065
00066 }
|
1.3.9.1