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 class AliEventBaseCut: public TObject
21 enum EEventCutProperty {
22 kPrimVertexXCut,kPrimVertexYCut,kPrimVertexZCut,
27 AliEventBaseCut(Double_t min,Double_t max, EEventCutProperty prop = kNone);
28 virtual ~AliEventBaseCut(){}
29 virtual Bool_t Rejected(AliAOD* aod) const;//returns kTRUE if rejected
30 virtual void SetRange(Double_t min, Double_t max){fMin = min; fMax = max;}
32 virtual EEventCutProperty GetProperty()const{return fProperty;}
35 virtual Double_t GetValue(AliAOD* aod) const = 0;
37 Double_t fMin;//Minimum value
38 Double_t fMax;//Maximum value
39 EEventCutProperty fProperty;//Defines the type of the cut - used by the setters cut
42 ClassDef(AliEventBaseCut,1)
45 /************************************************************/
47 class AliPrimVertexXCut: public AliEventBaseCut
50 AliPrimVertexXCut():AliEventBaseCut(0,0,kPrimVertexXCut){}
51 AliPrimVertexXCut(Double_t min,Double_t max):AliEventBaseCut(min,max,kPrimVertexXCut){}
52 virtual ~AliPrimVertexXCut(){}
54 Double_t GetValue(AliAOD* aod) const;
57 ClassDef(AliPrimVertexXCut,1)
59 /************************************************************/
61 class AliPrimVertexYCut: public AliEventBaseCut
64 AliPrimVertexYCut():AliEventBaseCut(0,0,kPrimVertexYCut){}
65 AliPrimVertexYCut(Double_t min,Double_t max):AliEventBaseCut(min,max,kPrimVertexYCut){}
66 virtual ~AliPrimVertexYCut(){}
69 Double_t GetValue(AliAOD* aod) const;
72 ClassDef(AliPrimVertexYCut,1)
74 /************************************************************/
76 class AliPrimVertexZCut: public AliEventBaseCut
79 AliPrimVertexZCut():AliEventBaseCut(0,0,kPrimVertexZCut){}
80 AliPrimVertexZCut(Double_t min,Double_t max):AliEventBaseCut(min,max,kPrimVertexZCut){}
81 virtual ~AliPrimVertexZCut(){}
83 Double_t GetValue(AliAOD* aod) const;
86 ClassDef(AliPrimVertexZCut,1)
90 /************************************************************/
92 class AliNChargedCut: public AliEventBaseCut
95 AliNChargedCut():AliEventBaseCut(0,0,kNChargedCut),fEtaMin(-10.0),fEtaMax(10.0){}
96 AliNChargedCut(Int_t min, Int_t max, Double_t etamin = -10.0, Double_t etamax = 10.0):
97 AliEventBaseCut(min,max,kNChargedCut),fEtaMin(etamin),fEtaMax(etamax){}
98 virtual ~AliNChargedCut(){}
100 void SetEtaRange(Double_t min,Double_t max){fEtaMin = min;fEtaMax = max;}
102 Double_t GetValue(AliAOD* aod) const;
103 Double_t fEtaMin;//Defines max of eta range where mult is caclulated
104 Double_t fEtaMax;//Defines min of eta range where mult is caclulated
107 ClassDef(AliNChargedCut,1)