]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnValue.h
Added some new values used for checking outputs
[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
15 class AliRsnPairDef;
16 class AliRsnMother;
17
18 class AliRsnValue : public TNamed
19 {
20   public:
21
22     enum EValueType
23     {
24       kTrack1P,
25       kTrack2P,
26       kTrack1Pt,
27       kTrack2Pt,
28       kTrack1Px,
29       kTrack1Py,
30       kTrack1Pz,
31       kTrack2Px,
32       kTrack2Py,
33       kTrack2Pz,
34       kPairInvMass,
35       kPairInvMassMC,
36       kPairInvMassRes,
37       kPairPt,
38       kPairEta,
39       kPairMt,
40       kPairY,
41       kPairPhi,
42       kPairPhiMC,
43       kPairPtRatio,
44       kPairCosThetaStar,
45       kPairCosThetaStar1,
46       kPairCosThetaStar2,
47       kPairCosThetaStarMC1,
48       kPairCosThetaStarMC2,
49       kAngleToLeading,
50       kLeadingPt,
51       kQInv,
52       kEventMult,
53       kValueTypes
54     };
55
56     AliRsnValue();
57     AliRsnValue(const char *name, EValueType type, Int_t n = 0, Double_t min = 0.0, Double_t max = 0.0);
58     AliRsnValue(const char *name, EValueType type, Double_t min, Double_t max, Double_t step);
59     AliRsnValue(const char *name, EValueType type, Int_t n, Double_t *array);
60     AliRsnValue(const AliRsnValue& copy) : TNamed(copy),fValue(copy.fValue),fType(copy.fType),fArray(copy.fArray) {}
61     AliRsnValue& operator=(const AliRsnValue& copy) {SetName(copy.GetName());fType=copy.fType;fValue=copy.fValue;fArray=copy.fArray;return (*this);}
62     virtual ~AliRsnValue() { }
63     
64     TArrayD     GetArray() const {return fArray;}
65     Double_t    GetValue() const {return fValue;}
66     EValueType  GetValueType() {return fType;}
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 * const mother, AliRsnPairDef * const pairDef, AliRsnEvent * const event);
77     virtual Bool_t  Eval(AliRsnDaughter * const daughter, AliRsnEvent * const event);
78     virtual void    Print(Option_t *option = "") const;
79
80   protected:
81   
82     Double_t   fValue;   // computed value
83   
84   private:
85
86     EValueType fType;    // value type
87     TArrayD    fArray;   // array of bins (when necessary)
88     
89     // ROOT dictionary
90     ClassDef(AliRsnValue, 1)
91 };
92
93 #endif