]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnValue.h
fixed sig.segv
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnValue.h
1 //
2 // Class AliRsnValue
3 //
4 // Definition of a single value which can be computed
5 // from any of the defined input objects implemented
6 // in the resonance package.
7 //
8
9 #ifndef ALIRSNVALUE_H
10 #define ALIRSNVALUE_H
11
12 #include "TNamed.h"
13 #include "TArrayD.h"
14 #include "AliESDtrackCuts.h"
15
16 class AliRsnPairDef;
17 class AliRsnMother;
18
19 class AliRsnValue : public TNamed
20 {
21   public:
22
23     enum EValueType
24     {
25       kTrack1P,
26       kTrack2P,
27       kTrack1Pt,
28       kTrack2Pt,
29       kTrack1Px,
30       kTrack1Py,
31       kTrack1Pz,
32       kTrack2Px,
33       kTrack2Py,
34       kTrack2Pz,
35       kPairInvMass,
36       kPairInvMassMC,
37       kPairInvMassRes,
38       kPairPt,
39       kPairEta,
40       kPairMt,
41       kPairY,
42       kPairPhi,
43       kPairPhiMC,
44       kPairPtRatio,
45       kPairDipAngle,
46       kPairCosThetaStar,
47       kAngleToLeading,
48       kLeadingPt,
49       kQInv,
50       kEventMult,
51       kEventMultESDCuts,
52       kValueTypes
53     };
54
55     AliRsnValue();
56     AliRsnValue(const char *name, EValueType type, Int_t n = 0, Double_t min = 0.0, Double_t max = 0.0);
57     AliRsnValue(const char *name, EValueType type, Double_t min, Double_t max, Double_t step);
58     AliRsnValue(const char *name, EValueType type, Int_t n, Double_t *array);
59     AliRsnValue(const AliRsnValue& copy);
60     AliRsnValue& operator=(const AliRsnValue& copy);
61     virtual ~AliRsnValue() { }
62     
63     TArrayD                GetArray() const {return fArray;}
64     Double_t               GetValue() const {return fValue;}
65     EValueType             GetValueType() const {return fType;}
66     const AliESDtrackCuts* GetCuts() const {return &fESDCuts;}
67
68     void        SetValueType(EValueType type) {fType = type;}
69     void        SetBins(Int_t n, Double_t min, Double_t max);
70     void        SetBins(Double_t min, Double_t max, Double_t step);
71     void        SetBins(Int_t n, Double_t *array);
72     void        Set(EValueType type, Int_t n = 0, Double_t min = 0.0, Double_t max = 0.0) {fType = type; SetBins(n, min, max);}
73     void        Set(EValueType type, Double_t min, Double_t max, Double_t step) {fType = type; SetBins(min, max, step);}
74     void        Set(EValueType type, Int_t n, Double_t *array) {fType = type; SetBins(n, array);}
75     
76     virtual Bool_t  Eval(AliRsnMother *mother, AliRsnPairDef *pairDef, AliRsnEvent *event);
77     virtual Bool_t  Eval(AliRsnDaughter *daughter, AliRsnEvent *event);
78     virtual void    Print(Option_t *option = "") const;
79
80   protected:
81   
82     Double_t        fValue;   // computed value
83     EValueType      fType;    // value type
84     TArrayD         fArray;   // array of bins (when necessary)
85     AliESDtrackCuts fESDCuts; // ESD track cuts used for a way to compute multiplicity
86     
87     // ROOT dictionary
88     ClassDef(AliRsnValue, 1)
89 };
90
91 #endif