]>
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 | ||
58 | TParticle *GetMCParticle(AliStack *fMCStack); | |
59 | TParticle *GetPositiveMCDaughter(AliStack *fMCStack){return GetMCDaughter(fMCStack,0);}; | |
60 | TParticle *GetNegativeMCDaughter(AliStack *fMCStack){return GetMCDaughter(fMCStack,1);}; | |
61 | TParticle *GetMCDaughter(AliStack *fMCStack,Int_t label); | |
62 | ||
63 | // V0Index | |
3b77b2d1 | 64 | Int_t GetV0Index() const {return fV0Index;} |
65 | void SetV0Index(Int_t index) {fV0Index=index;} | |
2eedd4ed | 66 | |
67 | // Conversion Point | |
68 | void SetConversionPoint(Double_t convpoint[3]){fConversionPoint[0]=convpoint[0];fConversionPoint[1]=convpoint[1];fConversionPoint[2]=convpoint[2];} | |
69 | void GetConversionPoint(Double_t convpoint[3]){convpoint[0]=fConversionPoint[0];convpoint[1]=fConversionPoint[1];convpoint[2]=fConversionPoint[2];} | |
3b77b2d1 | 70 | Double_t GetConversionRadius() const {return TMath::Sqrt(fConversionPoint[0]*fConversionPoint[0]+fConversionPoint[1]*fConversionPoint[1]);} |
71 | Double_t GetConversionX() const {return fConversionPoint[0];} | |
72 | Double_t GetConversionY() const {return fConversionPoint[1];} | |
73 | Double_t GetConversionZ() const {return fConversionPoint[2];} | |
2eedd4ed | 74 | |
75 | // Armenteros Qt Alpha | |
76 | void GetArmenterosQtAlpha(Double_t qtalpha[2]){qtalpha[0]=fArmenteros[0];qtalpha[1]=fArmenteros[1];} | |
3b77b2d1 | 77 | Double_t GetArmenterosQt() const {return fArmenteros[0];} |
78 | Double_t GetArmenterosAlpha() const {return fArmenteros[1];} | |
2eedd4ed | 79 | |
80 | // virtual functions to be implemented in KF/AOD classes | |
81 | ||
82 | virtual Double_t GetPhotonMass() const = 0; | |
83 | virtual Double_t GetPhotonPt()const = 0; | |
84 | virtual Double_t GetPhotonP() const = 0; | |
85 | virtual Double_t GetPhotonEta() const = 0; | |
69b05e50 | 86 | virtual Double_t GetPhotonPhi() const =0; |
3b77b2d1 | 87 | virtual Double_t GetPx() const = 0; |
88 | virtual Double_t GetPy() const = 0; | |
89 | virtual Double_t GetPz() const = 0; | |
90 | ||
91 | ||
92 | Float_t GetMass() const { return fIMass; } | |
93 | void SetMass( Float_t mass) { fIMass = mass; } | |
2eedd4ed | 94 | |
95 | ||
96 | protected: | |
97 | ||
98 | Int_t fLabel[2]; // Electron/Positron Track Label | |
99 | Int_t fV0Index; // Index of the V0 | |
100 | Int_t fMCLabel[2]; // Electron/Positron MC Label | |
101 | Float_t fChi2perNDF; // Chi2perNDF | |
102 | Double_t fArmenteros[2]; // Armenteros Paramters | |
2eedd4ed | 103 | Double_t fConversionPoint[3]; // Conversion Point |
104 | Bool_t fTagged; // Is it tagged as decay pion (only for gammas) | |
3b77b2d1 | 105 | Float_t fIMass; |
106 | ||
2eedd4ed | 107 | |
3b77b2d1 | 108 | ClassDef(AliConversionPhotonBase,2); |
2eedd4ed | 109 | }; |
110 | ||
111 | ||
112 | #endif | |
113 | ||
114 | ||
115 |