HighLAND
antiNumuCCFGD2Selection.hxx
1 #ifndef antiNumuCCFGD2Selection_h
2 #define antiNumuCCFGD2Selection_h
3 
4 #include "antiNumuCCSelection.hxx"
5 #include "numuCCFGD2Selection.hxx"
6 
8  public:
9  antiNumuCCFGD2Selection(bool forceBreak=true);
10  virtual ~antiNumuCCFGD2Selection(){}
11 
12  //---- These are mandatory functions
13  void DefineSteps();
14  void DefineDetectorFV();
15  ToyBoxB* MakeToyBox(){return new ToyBoxTracker();}
16  bool FillEventSummary(AnaEventC& event, Int_t allCutsPassed[]);
17  SampleId::SampleEnum GetSampleEnum(){return SampleId::kFGD2AntiNuMuCC;}
18  bool IsRelevantRecObjectForSystematic(const AnaEventC& event, AnaRecObjectC* recObj, SystId_h systId, Int_t branch) const;
19  bool IsRelevantTrueObjectForSystematic(const AnaEventC& event, AnaTrueObjectC* trueObj, SystId_h systId, Int_t branch) const;
20  bool IsRelevantSystematic(const AnaEventC& event, const ToyBoxB& box, SystId_h systId, Int_t branch) const;
21  void InitializeEvent(AnaEventC& event);
22  bool CheckRedoSelection(const AnaEventC& event, const ToyBoxB& PreviousToyBox, Int_t& redoFromStep);
23 
24 protected:
25 
26  numuCCFGD2Selection _numuCCFGD2Selection;
27 
28 };
29 
31 public:
32 using StepBase::Apply;
33 bool Apply(AnaEventC& event, ToyBoxB& box) const;
35 };
36 
37 
39 public:
40 using StepBase::Apply;
41 bool Apply(AnaEventC& event, ToyBoxB& box) const;
43 };
44 
45 //class PositiveMultiplicityCut_antiNumuCCFGD2: public StepBase{
46 //public:
47 //using StepBase::Apply;
48 //bool Apply(AnaEventC& event, ToyBoxB& box) const;
49 //StepBase* MakeClone(){return new PositiveMultiplicityCut_antiNumuCCFGD2();}
50 //};
51 
52 //class AntiNuMuFGD2HighestMomentumTrack: public StepBase{
53 //public:
54 //using StepBase::Apply;
55 //bool Apply(AnaEventC& event, ToyBoxB& box) const;
56 //StepBase* MakeClone(){return new AntiNuMuFGD2HighestMomentumTrack();}
57 //};
58 
59 
60 //class AntiNuMuFGD2NegativeMuonVeto: public StepBase{
61 //public:
62 //using StepBase::Apply;
63 //bool Apply(AnaEventC& event, ToyBoxB& box) const;
64 //StepBase* MakeClone(){return new AntiNuMuFGD2NegativeMuonVeto();}
65 //};
66 
67 
68 //class AntiNuMuFGD2FGDLayer: public StepBase{
69 //public:
70 //using StepBase::Apply;
71 //bool Apply(AnaEventC& event, ToyBoxB& box) const;
72 //StepBase* MakeClone(){return new AntiNuMuFGD2FGDLayer();}
73 //};
74 
75 
76 //class AntiNuMuFGD2MuPlusMomentum: public StepBase{
77 //public:
78 //using StepBase::Apply;
79 //bool Apply(AnaEventC& event, ToyBoxB& box) const;
80 //StepBase* MakeClone(){return new AntiNuMuFGD2MuPlusMomentum();}
81 //};
82 
83 
84 
85 #endif
void DefineSteps()
Define all steps in the selection.
bool IsRelevantSystematic(const AnaEventC &event, const ToyBoxB &box, SystId_h systId, Int_t branch) const
Is this systematic relevant for this selection.
StepBase * MakeClone()
MANDATORY FUNCTIONS !!!
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...
bool CheckRedoSelection(const AnaEventC &event, const ToyBoxB &PreviousToyBox, Int_t &redoFromStep)
virtual bool Apply(AnaEventC &event, ToyBoxB &box) const
Definition: StepBase.hxx:46
void DefineDetectorFV()
Define the detector Fiducial Volume in which this selection is applied.
bool Apply(AnaEventC &event, bool &redo)
Apply all steps in the selection.
void InitializeEvent(AnaEventC &event)
Fill the EventBox with the objects needed by this selection.
ToyBoxB * MakeToyBox()
Create the appropriate type of box.
StepBase * MakeClone()
MANDATORY FUNCTIONS !!!
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...