Cut Property enum moved to BaseCut -> Not to pollute global name space
[u/mrichter/AliRoot.git] / ANALYSIS / AliEventCut.h
1 #ifndef ALIEVENTCUT_H
2 #define ALIEVENTCUT_H
3 //________________________________
4 ///////////////////////////////////////////////////////////
5 //
6 // class AliEventCut
7 //
8 // Event cut. It has list of base event cuts. 
9 // Each of base event cut checks only one property.
10 // Logical base cuts also exists that point to other base cuts.
11 // Using them one can build complicated cut with binary tree structure
12 //
13 ///////////////////////////////////////////////////////////
14
15 #include <TObject.h>
16 #include <TObjArray.h>
17 #include "AliEventBaseCut.h"
18
19 class AliAOD;
20 enum AliEventBaseCut::EEventCutProperty;
21
22 class AliEventCut: public TObject
23 {
24   public: 
25     AliEventCut();
26     AliEventCut(const AliEventCut& in);
27     virtual ~AliEventCut();
28     
29     virtual Bool_t Rejected(AliAOD* aod) const;//returns kTRUE if rejected
30     void           AddBasePartCut(AliEventBaseCut* ebcut);
31
32     void           SetNChargedRange(Int_t min,Int_t max, Double_t etamin = -10.0,Double_t etamax = 10.0);
33     
34   protected:
35     AliEventBaseCut* FindCut(AliEventBaseCut::EEventCutProperty prop);
36     
37     TObjArray fBaseCuts;
38   private:
39     ClassDef(AliEventCut,1)
40 };
41
42 class AliEventEmptyCut: public TObject
43 {
44   public: 
45     AliEventEmptyCut(){}
46     virtual ~AliEventEmptyCut(){}
47     
48     Bool_t Rejected(AliAOD* /*aod*/) const {return kFALSE;}//always accept
49     
50   protected:
51   private:
52     ClassDef(AliEventEmptyCut,1)
53 };
54
55 #endif