1 #ifndef ALIEVENTBASECUT_H
2 #define ALIEVENTBASECUT_H
3 //________________________________
4 ///////////////////////////////////////////////////////////
6 // class AliEventBaseCut
8 // Base class for cauts that checks only one event property
10 // Piotr.Skowronski@cern.ch
12 ///////////////////////////////////////////////////////////
18 enum EEventCutProperty
27 class AliEventBaseCut: public TObject
31 AliEventBaseCut(Double_t min,Double_t max, EEventCutProperty prop = kNone);
32 virtual ~AliEventBaseCut(){}
33 virtual Bool_t Rejected(AliAOD* aod) const;//returns kTRUE if rejected
34 virtual void SetRange(Double_t min, Double_t max){fMin = min; fMax = max;}
36 virtual EEventCutProperty GetProperty()const{return fProperty;}
39 virtual Double_t GetValue(AliAOD* aod) const = 0;
41 Double_t fMin;//Minimum value
42 Double_t fMax;//Maximum value
43 EEventCutProperty fProperty;//Defines the type of the cut - used by the setters cut
46 ClassDef(AliEventBaseCut,1)
49 /************************************************************/
51 class AliPrimVertexXCut: public AliEventBaseCut
54 AliPrimVertexXCut():AliEventBaseCut(0,0,kPrimVertexXCut){}
55 AliPrimVertexXCut(Double_t min,Double_t max):AliEventBaseCut(min,max,kPrimVertexXCut){}
56 virtual ~AliPrimVertexXCut(){}
58 Double_t GetValue(AliAOD* aod) const;
61 ClassDef(AliPrimVertexXCut,1)
63 /************************************************************/
65 class AliPrimVertexYCut: public AliEventBaseCut
68 AliPrimVertexYCut():AliEventBaseCut(0,0,kPrimVertexYCut){}
69 AliPrimVertexYCut(Double_t min,Double_t max):AliEventBaseCut(min,max,kPrimVertexYCut){}
70 virtual ~AliPrimVertexYCut(){}
73 Double_t GetValue(AliAOD* aod) const;
76 ClassDef(AliPrimVertexYCut,1)
78 /************************************************************/
80 class AliPrimVertexZCut: public AliEventBaseCut
83 AliPrimVertexZCut():AliEventBaseCut(0,0,kPrimVertexZCut){}
84 AliPrimVertexZCut(Double_t min,Double_t max):AliEventBaseCut(min,max,kPrimVertexZCut){}
85 virtual ~AliPrimVertexZCut(){}
87 Double_t GetValue(AliAOD* aod) const;
90 ClassDef(AliPrimVertexZCut,1)
94 /************************************************************/
96 class AliNChargedCut: public AliEventBaseCut
99 AliNChargedCut():AliEventBaseCut(0,0,kNChargedCut){}
100 AliNChargedCut(Double_t min, Double_t max, Double_t etamin = -10.0, Double_t etamax = 10.0):
101 AliEventBaseCut(min,max,kNChargedCut),fEtaMin(etamin),fEtaMax(etamax){}
102 virtual ~AliNChargedCut(){}
104 void SetEtaRange(Double_t min,Double_t max){fEtaMin = min;fEtaMax = max;}
106 Double_t GetValue(AliAOD* aod) const;
107 Double_t fEtaMin;//Defines max of eta range where mult is caclulated
108 Double_t fEtaMax;//Defines min of eta range where mult is caclulated
111 ClassDef(AliNChargedCut,1)