]>
Commit | Line | Data |
---|---|---|
2eedd4ed | 1 | #ifndef ALICONVERSIONPHOTONBASE_H |
2 | #define ALICONVERSIONPHOTONBASE_H | |
3 | ||
4 | #include "TMath.h" | |
5 | #include "TParticle.h" | |
6 | #include "AliStack.h" | |
7 | #include "AliLog.h" | |
8 | #include "TObject.h" | |
9 | ||
10 | using namespace std; | |
11 | ||
12 | class AliConversionPhotonBase { | |
13 | ||
14 | public: | |
15 | ||
16 | //Constructors | |
17 | AliConversionPhotonBase(); | |
18 | ||
19 | //Copy Constructor | |
20 | AliConversionPhotonBase(const AliConversionPhotonBase & g); | |
21 | //assignment operator | |
22 | AliConversionPhotonBase & operator = (const AliConversionPhotonBase & g); | |
23 | ||
24 | //Destructor | |
25 | virtual ~AliConversionPhotonBase(); | |
26 | ||
27 | ///Set the tag for decay meson | |
28 | void SetTag( Bool_t tagged ) { fTagged = tagged; } | |
29 | Bool_t IsTagged(){return fTagged;} | |
30 | ||
31 | //Get the Chi2 of particle | |
32 | void SetChi2perNDF(Float_t chi2) {fChi2perNDF = chi2;} | |
33 | Float_t GetChi2perNDF() const {return fChi2perNDF;} | |
34 | ||
35 | ///Track labels | |
36 | void SetLabelPositive(Int_t label){fLabel[0] = label;} | |
37 | void SetLabelNegative(Int_t label){fLabel[1] = label;} | |
38 | void SetTrackLabels(Int_t label1, Int_t label2){fLabel[0] = label1; fLabel[1] = label2;} | |
39 | Int_t GetTrackLabelPositive() const{return fLabel[0];} | |
40 | Int_t GetTrackLabelNegative() const {return fLabel[1];} | |
41 | Int_t GetTrackLabel(Int_t i) const {return fLabel[i];} | |
3b77b2d1 | 42 | virtual Int_t GetLabel(Int_t i) const { return GetTrackLabel(i); }; |
43 | virtual Int_t GetLabel1() const { return GetTrackLabelPositive(); }; | |
44 | virtual Int_t GetLabel2() const { return GetTrackLabelNegative(); }; | |
2eedd4ed | 45 | |
46 | // MC Label | |
47 | ||
48 | void SetMCLabel(Int_t* label){fMCLabel[0]=label[0];fMCLabel[1]=label[1];} | |
49 | void SetMCLabelPositive(Int_t label){fMCLabel[0]=label;} | |
50 | void SetMCLabelNegative(Int_t label){fMCLabel[1]=label;} | |
51 | Int_t GetMCLabel(Int_t i) const{return fMCLabel[i];} | |
52 | Int_t GetMCLabelPositive() const{return fMCLabel[0];} | |
53 | Int_t GetMCLabelNegative() const{return fMCLabel[1];} | |
54 | Int_t GetMCParticleLabel(AliStack *fMCStack); | |
55 | ||
56 | // GetMCParticle | |
57 | ||
92efd725 | 58 | Bool_t IsTruePhoton(AliStack *fMCStack); |
2eedd4ed | 59 | TParticle *GetMCParticle(AliStack *fMCStack); |
60 | TParticle *GetPositiveMCDaughter(AliStack *fMCStack){return GetMCDaughter(fMCStack,0);}; | |
61 | TParticle *GetNegativeMCDaughter(AliStack *fMCStack){return GetMCDaughter(fMCStack,1);}; | |
62 | TParticle *GetMCDaughter(AliStack *fMCStack,Int_t label); | |
63 | ||
64 | // V0Index | |
3b77b2d1 | 65 | Int_t GetV0Index() const {return fV0Index;} |
66 | void SetV0Index(Int_t index) {fV0Index=index;} | |
2eedd4ed | 67 | |
68 | // Conversion Point | |
69 | void SetConversionPoint(Double_t convpoint[3]){fConversionPoint[0]=convpoint[0];fConversionPoint[1]=convpoint[1];fConversionPoint[2]=convpoint[2];} | |
70 | void GetConversionPoint(Double_t convpoint[3]){convpoint[0]=fConversionPoint[0];convpoint[1]=fConversionPoint[1];convpoint[2]=fConversionPoint[2];} | |
3b77b2d1 | 71 | Double_t GetConversionRadius() const {return TMath::Sqrt(fConversionPoint[0]*fConversionPoint[0]+fConversionPoint[1]*fConversionPoint[1]);} |
72 | Double_t GetConversionX() const {return fConversionPoint[0];} | |
73 | Double_t GetConversionY() const {return fConversionPoint[1];} | |
74 | Double_t GetConversionZ() const {return fConversionPoint[2];} | |
2eedd4ed | 75 | |
76 | // Armenteros Qt Alpha | |
77 | void GetArmenterosQtAlpha(Double_t qtalpha[2]){qtalpha[0]=fArmenteros[0];qtalpha[1]=fArmenteros[1];} | |
3b77b2d1 | 78 | Double_t GetArmenterosQt() const {return fArmenteros[0];} |
79 | Double_t GetArmenterosAlpha() const {return fArmenteros[1];} | |
2eedd4ed | 80 | |
81 | // virtual functions to be implemented in KF/AOD classes | |
82 | ||
83 | virtual Double_t GetPhotonMass() const = 0; | |
84 | virtual Double_t GetPhotonPt()const = 0; | |
85 | virtual Double_t GetPhotonP() const = 0; | |
86 | virtual Double_t GetPhotonEta() const = 0; | |
69b05e50 | 87 | virtual Double_t GetPhotonPhi() const =0; |
3b77b2d1 | 88 | virtual Double_t GetPx() const = 0; |
89 | virtual Double_t GetPy() const = 0; | |
90 | virtual Double_t GetPz() const = 0; | |
91 | ||
92 | ||
93 | Float_t GetMass() const { return fIMass; } | |
94 | void SetMass( Float_t mass) { fIMass = mass; } | |
2eedd4ed | 95 | |
92efd725 | 96 | Float_t GetPsiPair() const {return fPsiPair;} |
97 | void SetPsiPair(Float_t PsiPair){fPsiPair=PsiPair;} | |
2eedd4ed | 98 | |
99 | protected: | |
100 | ||
101 | Int_t fLabel[2]; // Electron/Positron Track Label | |
102 | Int_t fV0Index; // Index of the V0 | |
103 | Int_t fMCLabel[2]; // Electron/Positron MC Label | |
104 | Float_t fChi2perNDF; // Chi2perNDF | |
105 | Double_t fArmenteros[2]; // Armenteros Paramters | |
2eedd4ed | 106 | Double_t fConversionPoint[3]; // Conversion Point |
107 | Bool_t fTagged; // Is it tagged as decay pion (only for gammas) | |
92efd725 | 108 | Float_t fIMass; // Invariant Mass of dilepton pair |
109 | Float_t fPsiPair; // Psi Pair Value | |
3b77b2d1 | 110 | |
92efd725 | 111 | ClassDef(AliConversionPhotonBase,3); |
2eedd4ed | 112 | }; |
113 | ||
114 | ||
115 | #endif | |
116 | ||
117 | ||
118 |