HighLAND
antiNumuCCMultiTrackFGD2Selection.hxx
1 #ifndef antiNumuCCMultiTrackFGD2Selection_h
2 #define antiNumuCCMultiTrackFGD2Selection_h
3 
4 #include "SelectionBase.hxx"
5 #include "antiNumuCCFGD2Selection.hxx"
6 #include "antiNumuCCMultiTrackSelection.hxx"
7 
9  public:
10  antiNumuCCMultiTrackFGD2Selection(bool forceBreak=true);
12 
13  //---- These are mandatory functions
14  void DefineSteps();
15  void DefineDetectorFV();
16  ToyBoxB* MakeToyBox() {return new ToyBoxTracker();}
17  bool FillEventSummary(AnaEventC& event, Int_t allCutsPassed[]);
18  SampleId::SampleEnum GetSampleEnum(){return SampleId::kFGD2AntiNuMuCC1Track;}
19  bool IsRelevantRecObjectForSystematic(const AnaEventC& event, AnaRecObjectC* recObj, SystId_h systId, Int_t branch) const;
20  bool IsRelevantTrueObjectForSystematic(const AnaEventC& event, AnaTrueObjectC* trueObj, SystId_h systId, Int_t branch) const;
21  bool IsRelevantSystematic(const AnaEventC& event, const ToyBoxB& box, SystId_h systId, Int_t branch) const;
22  void InitializeEvent(AnaEventC& event);
23  bool CheckRedoSelection(const AnaEventC& event, const ToyBoxB& PreviousToyBox, Int_t& redoFromStep);
24 
25 protected:
26 
27  antiNumuCCFGD2Selection _antiNumuCCFGD2Selection;
28  antiNumuCCMultiTrackSelection _antiNumuCCMultiTrackSelection;
29 
30 };
31 
33 public:
34  using StepBase::Apply;
35  bool Apply(AnaEventC& event, ToyBoxB& box) const;
37 };
38 
40  public:
41  using StepBase::Apply;
42  bool Apply(AnaEventC& event, ToyBoxB& box) const;
44 };
45 
47  public:
48  using StepBase::Apply;
49  bool Apply(AnaEventC& event, ToyBoxB& box) const;
51 };
52 #endif
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 InitializeEvent(AnaEventC &event)
Fill the EventBox with the objects needed by this selection.
StepBase * MakeClone()
MANDATORY FUNCTIONS !!!
bool IsRelevantSystematic(const AnaEventC &event, const ToyBoxB &box, SystId_h systId, Int_t branch) const
Is this systematic relevant for this selection.
bool CheckRedoSelection(const AnaEventC &event, const ToyBoxB &PreviousToyBox, Int_t &redoFromStep)
void DefineDetectorFV()
Define the detector Fiducial Volume in which this selection is applied.
virtual bool Apply(AnaEventC &event, ToyBoxB &box) const
Definition: StepBase.hxx:46
void DefineSteps()
Define all steps in the selection.
bool Apply(AnaEventC &event, bool &redo)
Apply all steps in the selection.
ToyBoxB * MakeToyBox()
Create the appropriate type of box.
ToyBoxB ** PreviousToyBox
Array of pointers to the PreviousToyBox (for each event)
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...