HighLAND
antiNumuCCSelection.hxx
1 #ifndef antiNumuCCSelection_h
2 #define antiNumuCCSelection_h
3 
4 #include "SelectionBase.hxx"
5 #include "numuCCSelection.hxx"
6 
8  public:
9  antiNumuCCSelection(bool forceBreak=true);
10  virtual ~antiNumuCCSelection(){}
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::kFGD1AntiNuMuCC;}
18  bool IsRelevantRecObjectForSystematic(const AnaEventC& event, AnaRecObjectC* recObj, SystId_h systId, Int_t branch) const;
19  bool IsRelevantRecObjectForSystematicInToy(const AnaEventC&, const ToyBoxB&, AnaRecObjectC*, SystId_h systId, Int_t branch=0) const;
20  bool IsRelevantTrueObjectForSystematic(const AnaEventC& event, AnaTrueObjectC* trueObj, SystId_h systId, Int_t branch) const;
21  bool IsRelevantTrueObjectForSystematicInToy(const AnaEventC&, const ToyBoxB&, AnaTrueObjectC*, SystId_h systId, Int_t branch=0) const;
22  bool IsRelevantSystematic(const AnaEventC& event, const ToyBoxB& box, SystId_h systId, Int_t branch) const;
23  void InitializeEvent(AnaEventC& event);
24  bool CheckRedoSelection(const AnaEventC& event, const ToyBoxB& PreviousToyBox, Int_t& redoFromStep);
25 
26  protected:
27  numuCCSelection _numuCCSelection;
28 
29  Int_t _MuonPIDCutIndex;
30  Int_t _MuonPIDStepIndex;
31  Int_t _FindLeadingTracksStepIndex;
32  Int_t _TotalMultiplicityCutIndex;
33 };
34 
36  public:
37  using StepBase::Apply;
38  bool Apply(AnaEventC& event, ToyBoxB& box) const;
40 };
41 
43  public:
44  using StepBase::Apply;
45  bool Apply(AnaEventC& event, ToyBoxB& box) const;
47 };
48 
49 class AntiMuonPIDCut: public StepBase{
50  public:
51  using StepBase::Apply;
52  bool Apply(AnaEventC& event, ToyBoxB& box) const;
53  StepBase* MakeClone(){return new AntiMuonPIDCut();}
54 };
55 
56 /// Leading tracks with good quality in FGD1
58  public:
59  using StepBase::Apply;
60  bool Apply(AnaEventC& event, ToyBoxB& box) const;
62 };
63 
64 #endif
void InitializeEvent(AnaEventC &event)
Fill the EventBox with the objects needed by 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 IsRelevantTrueObjectForSystematicInToy(const AnaEventC &, const ToyBoxB &, AnaTrueObjectC *, SystId_h systId, Int_t branch=0) const
Is this true track relevant for a given systematic (after selection, called for each toy) ...
ToyBoxB * MakeToyBox()
Create the appropriate type of box.
Leading tracks with good quality in FGD1.
StepBase * MakeClone()
MANDATORY FUNCTIONS !!!
StepBase * MakeClone()
MANDATORY FUNCTIONS !!!
bool CheckRedoSelection(const AnaEventC &event, const ToyBoxB &PreviousToyBox, Int_t &redoFromStep)
virtual bool Apply(AnaEventC &event, ToyBoxB &box) const
Definition: StepBase.hxx:46
bool Apply(AnaEventC &event, bool &redo)
Apply all steps in the 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.
void DefineDetectorFV()
Define the detector Fiducial Volume in which this selection is applied.
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...
bool IsRelevantRecObjectForSystematicInToy(const AnaEventC &, const ToyBoxB &, AnaRecObjectC *, SystId_h systId, Int_t branch=0) const
Is this track relevant for a given systematic (after selection, called for each toy) ...
void DefineSteps()
Define all steps in the selection.
ToyBoxB ** PreviousToyBox
Array of pointers to the PreviousToyBox (for each event)