]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/EventMixing/AliMixEventCutObj.h
Martin Valas fast mixing classes.
[u/mrichter/AliRoot.git] / ANALYSIS / EventMixing / AliMixEventCutObj.h
1 //
2 // Class AliMixEventCutObj
3 //
4 // AliMixEventCutObj object contains information about one cut on for event mixing
5 // used by AliMixEventPool class
6 //
7 // authors: 
8 //          Martin Vala (martin.vala@cern.ch)
9 //
10
11 #ifndef ALIMIXEVENTCUTOBJ_H
12 #define ALIMIXEVENTCUTOBJ_H
13
14 #include <TObject.h>
15 class AliVEvent;
16 class AliAODEvent;
17 class AliESDEvent;
18 class AliMixEventCutObj : public TObject
19 {
20 public:
21   enum EEPAxis_t {kMultiplicity=0, kZVertex=1, kNumberV0s=2, kNumberTracklets=3, kAllEventAxis=4};
22     
23     AliMixEventCutObj(EEPAxis_t type=kMultiplicity,Float_t min=0,Float_t max=0, Float_t step=0);
24     AliMixEventCutObj(const AliMixEventCutObj& obj);
25     virtual ~AliMixEventCutObj() {;}
26
27     virtual void Print(const Option_t *) const;
28     void PrintCurrentInterval();
29     void Reset();
30     void AddStep();
31
32     Bool_t      HasMore() const;
33
34     Int_t       GetNumberOfBins() const;
35     Float_t     GetMin() const { return fCurrentVal;}
36     Float_t     GetMax() const { return fCurrentVal+fCutStep-fCutSmallVal;}
37     Float_t     GetStep() const { return fCutStep;}
38     Short_t     GetType() const {return fCutType;}
39     Int_t       GetBinNumber(Float_t num) const;
40     Int_t       GetIndex(AliVEvent*ev);
41     Int_t       GetIndex(AliESDEvent*ev);
42     Int_t       GetIndex(AliAODEvent*ev);
43     const char *GetNameOfCut(Short_t index) const;
44     
45 private:
46     Short_t     fCutType;       // cut type
47     Float_t     fCutMin;        // cut min
48     Float_t     fCutMax;        // cut max
49     Float_t     fCutStep;       // cut step
50     Float_t     fCutSmallVal;   // small value
51
52     Float_t     fCurrentVal;    // current value
53     Bool_t      fNoMore;        // flag for no more bins
54
55     AliMixEventCutObj& operator=(const AliMixEventCutObj& ) { return *this;}
56
57     ClassDef(AliMixEventCutObj, 1)
58 };
59
60 #endif