1 #include "baseSelection.hxx" 2 #include "numuBkgInAntiNuModeCCFGD2Selection.hxx" 3 #include "CutUtils.hxx" 4 #include "SubDetId.hxx" 5 #include "EventBoxId.hxx" 8 numuBkgInAntiNuModeCCFGD2Selection::numuBkgInAntiNuModeCCFGD2Selection(
bool forceBreak):
SelectionBase(forceBreak,
EventBoxId::kEventBoxTracker) {
13 _numuBkgInAntiNuModeCCSelection.Initialize();
35 SetBranchAlias(0,
"trunk");
38 SetPreSelectionAccumLevel(2);
46 SetDetectorFV(SubDetId::kFGD2);
48 _numuCCFGD2Selection.SetDetectorFV(SubDetId::kFGD2);
49 _numuBkgInAntiNuModeCCSelection.SetDetectorFV(SubDetId::kFGD2);
53 bool numuBkgInAntiNuModeCCFGD2Selection::FillEventSummary(
AnaEventC& event, Int_t allCutsPassed[]){
57 static_cast<AnaEventSummaryB*
>(
event.Summary)->EventSample = SampleId::kFGD2NuMuBkgInAntiNuModeCC;
59 return (static_cast<AnaEventSummaryB*>(event.
Summary)->EventSample != SampleId::kUnassigned);
72 for(
int i = 0; i < 4; ++i){
84 return _numuCCFGD2Selection.IsRelevantRecObjectForSystematic(event,track,systId,branch);
92 return _numuCCFGD2Selection.IsRelevantTrueObjectForSystematic(event,trueTrack,systId,branch);
100 return _numuBkgInAntiNuModeCCSelection.IsRelevantSystematic(event, box, systId, branch);
107 _numuCCFGD2Selection.InitializeEvent(event);
114 return _numuCCFGD2Selection.CheckRedoSelection(event, PreviousToyBox, redoFromStep);
AnaTrueVertexB * TrueVertex
Pointer to the AnaTrueVertexB of the interaction that created this AnaTrueParticleB.
Float_t PositionStart[4]
The reconstructed start position of the particle.
bool IsRelevantRecObjectForSystematic(const AnaEventC &event, AnaRecObjectC *recObj, SystId_h systId, Int_t branch) const
Is this track relevant for a given systematic (prior to selection, call when initializing the event...
void InitializeEvent(AnaEventC &event)
Fill the EventBox with the objects needed by this selection.
bool IsRelevantTrueObjectForSystematic(const AnaEventC &event, AnaTrueObjectC *trueObj, SystId_h systId, Int_t branch) const
Is this true track relevant for a given systematic (prior to selection, call when initializing the ev...
void DefineDetectorFV()
Define the detector Fiducial Volume in which this selection is applied.
void DefineSteps()
Define all steps in the selection.
Leading tracks with good quality in FGD1.
bool CheckRedoSelection(const AnaEventC &event, const ToyBoxB &PreviousToyBox, Int_t &redoFromStep)
bool IsRelevantSystematic(const AnaEventC &event, const ToyBoxB &box, SystId_h systId, Int_t branch) const
Is this systematic relevant for this selection.
AnaTrackB * HMNtrack
For storing the highest momentum negative track.
bool Apply(AnaEventC &event, ToyBoxB &box) const
AnaEventSummaryC * Summary
A summary of the event with high level quantities.
Find the Vertex. For the moment it's just the Star position of the HM track.
AnaTrueParticleB * GetTrueParticle() const
Return a casted version of the AnaTrueObject associated.
A cut on event quality. Requires good beam and ND280 data quality flags.
void Initialize()
Initialize this selection: defines the steps and the detectorFV.