42010074ba443419dada141651cecafff727b329
[u/mrichter/AliRoot.git] / ANALYSIS / AliBaseEventCut.h
1 #ifndef ALIBASEEVENTCUT_H
2 #define ALIBASEEVENTCUT_H
3 //________________________________
4 ///////////////////////////////////////////////////////////
5 //
6 // class AliBaseEventCut
7 //
8 // Base class for cauts that checks only one event property
9 //
10 // Piotr.Skowronski@cern.ch
11 //
12 ///////////////////////////////////////////////////////////
13
14 #include "TObject.h"
15
16 class AliAOD;
17
18 enum AliEventCutProperty
19  {
20    kPrimVertexXCut,
21    kPrimVertexYCut,
22    kPrimVertexZCut,
23    kNChargedCut
24  };
25
26 class AliBaseEventCut: public TObject
27 {
28   public: 
29     AliBaseEventCut();
30     AliBaseEventCut(Double_t min,Double_t max);
31     virtual ~AliBaseEventCut(){}
32     
33     virtual Bool_t Pass(AliAOD* aod) const;//returns kTRUE if rejected
34   protected:
35     virtual Double_t GetValue(AliAOD* aod) const = 0;
36     
37     Double_t fMin;//Minimum value
38     Double_t fMax;//Maximum value
39   private:
40     ClassDef(AliBaseEventCut,1)
41 };
42
43 /************************************************************/
44
45 class AliPrimVertexXCut: public AliBaseEventCut
46 {
47  public: 
48    AliPrimVertexXCut(){}
49    AliPrimVertexXCut(Double_t min,Double_t max):AliBaseEventCut(min,max){}
50    virtual ~AliPrimVertexXCut(){}
51  protected:
52    Double_t GetValue(AliAOD* aod) const;
53    
54  private:
55    ClassDef(AliPrimVertexXCut,1)
56 };
57 /************************************************************/
58
59 class AliPrimVertexYCut: public AliBaseEventCut
60 {
61  public: 
62    AliPrimVertexYCut(){}
63    AliPrimVertexYCut(Double_t min,Double_t max):AliBaseEventCut(min,max){}
64    virtual ~AliPrimVertexYCut(){}
65    
66  protected:
67    Double_t GetValue(AliAOD* aod) const;
68    
69  private:
70    ClassDef(AliPrimVertexYCut,1)
71 };
72 /************************************************************/
73
74 class AliPrimVertexZCut: public AliBaseEventCut
75 {
76  public: 
77    AliPrimVertexZCut(){}
78    AliPrimVertexZCut(Double_t min,Double_t max):AliBaseEventCut(min,max){}
79    virtual ~AliPrimVertexZCut(){}
80  protected:
81    Double_t GetValue(AliAOD* aod) const;
82    
83  private:
84    ClassDef(AliPrimVertexZCut,1)
85 };
86
87
88 /************************************************************/
89
90 class AliNChargedCut: public AliBaseEventCut
91 {
92  public: 
93    AliNChargedCut(){}
94    AliNChargedCut(Double_t min, Double_t max, Double_t etamin = -10.0, Double_t etamax = 10.0):
95        AliBaseEventCut(min,max),fEtaMin(etamin),fEtaMax(etamax){}
96    virtual ~AliNChargedCut(){}
97  protected:
98    Double_t GetValue(AliAOD* aod) const;
99    Double_t fEtaMin;//Defines max of eta range where mult is caclulated
100    Double_t fEtaMax;//Defines min of eta range where mult is caclulated
101    
102  private:
103    ClassDef(AliNChargedCut,1)
104 };
105
106
107 #endif