]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVENTMIX/AliMixEventCutObj.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / EVENTMIX / 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 #include <TString.h>
16
17 class AliVEvent;
18 class AliAODEvent;
19 class AliESDEvent;
20 class AliMixEventCutObj : public TObject {
21 public:
22    enum EEPAxis_t {kMultiplicity = 0, kZVertex = 1, kNumberV0s = 2, kNumberTracklets = 3, kCentrality = 4, kEventPlane = 5,
23                    kEventPlaneV0A=6 , kEventPlaneV0C=7 , kAllEventAxis = 8
24                   };
25
26    AliMixEventCutObj(AliMixEventCutObj::EEPAxis_t type = kMultiplicity, Float_t min = 0.0, Float_t max = 0.0, Float_t step = 1.0, const char *opt = "");
27    AliMixEventCutObj(const AliMixEventCutObj &obj);
28    AliMixEventCutObj &operator=(const AliMixEventCutObj &obj);
29
30    virtual void Print(const Option_t *) const;
31    void PrintCurrentInterval();
32    void PrintValues(AliVEvent *main, AliVEvent *mix);
33    void Reset();
34    void AddStep();
35
36    Bool_t      HasMore() const;
37
38    Int_t       GetNumberOfBins() const;
39    Float_t     GetCurrentMin() const { return fCurrentVal; }
40    Float_t     GetCurrentMax() const { return fCurrentVal + fCutStep - fCutSmallVal; }
41    Float_t     GetMin() const { return fCutMin; }
42    Float_t     GetMax() const { return fCutMax; }
43    Float_t     GetStep() const { return fCutStep; }
44    Short_t     GetType() const { return fCutType; }
45    Int_t       GetBinNumber(Float_t num) const;
46    Int_t       GetIndex(AliVEvent *ev);
47    Double_t    GetValue(AliVEvent *ev);
48    Double_t    GetValue(AliESDEvent *ev);
49    Double_t    GetValue(AliAODEvent *ev);
50
51    const char *GetCutName(Int_t index = -1) const;
52
53    void        SetCurrentValueToIndex(Int_t index);
54
55    Bool_t      IsValid();
56
57 private:
58    Int_t       fCutType;       // cut type
59    TString     fCutOpt;        // cut option string
60    Float_t     fCutMin;        // cut min
61    Float_t     fCutMax;        // cut max
62    Float_t     fCutStep;       // cut step
63    Float_t     fCutSmallVal;   // small value
64
65    Float_t     fCurrentVal;    // current value
66
67    ClassDef(AliMixEventCutObj, 3)
68 };
69
70 #endif