]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/AliEventCut.h
VZERO volumes now placed in common mother.
[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 // Author: Piotr.Skowronski@cern.ch
13 ///////////////////////////////////////////////////////////
14
15 #include <TObject.h>
16 #include <TObjArray.h>
17 #include "AliEventBaseCut.h"
18
19 class AliAOD;
20
21 class AliEventCut: public TObject
22 {
23   public: 
24     AliEventCut();
25     AliEventCut(const AliEventCut& in);
26     virtual ~AliEventCut();
27     
28     virtual Bool_t Rejected(AliAOD* aod) const;//returns kTRUE if rejected
29     void           AddBasePartCut(AliEventBaseCut* ebcut);
30
31     void           SetNChargedRange(Int_t min,Int_t max, Double_t etamin = -10.0,Double_t etamax = 10.0);
32     void           SetVertexXRange(Double_t min, Double_t max);
33     void           SetVertexYRange(Double_t min, Double_t max);
34     void           SetVertexZRange(Double_t min, Double_t max);
35     
36   protected:
37     AliEventBaseCut* FindCut(AliEventBaseCut::EEventCutProperty prop);
38     
39     TObjArray fBaseCuts; // Array of cuts
40   private:
41     ClassDef(AliEventCut,1)
42 };
43
44 class AliEventEmptyCut: public TObject
45 {
46   public: 
47     AliEventEmptyCut(){}
48     virtual ~AliEventEmptyCut(){}
49     
50     Bool_t Rejected(AliAOD* /*aod*/) const {return kFALSE;}//always accept
51     
52   protected:
53   private:
54     ClassDef(AliEventEmptyCut,1)
55 };
56
57 #endif