]>
Commit | Line | Data |
---|---|---|
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 | #include "AliMCEvent.h" | |
10 | #include "AliESDEvent.h" | |
11 | #include "AliKFParticle.h" | |
12 | #include "TParticle.h" | |
13 | #include <vector> | |
14 | #include "AliESDpid.h" | |
15 | #include "TF1.h" | |
16 | #include "TRandom3.h" | |
17 | #include "AliPID.h" | |
18 | #include "AliESDtrack.h" | |
19 | #include "AliKFVertex.h" | |
20 | #include "AliMCEventHandler.h" | |
21 | #include "AliESDtrackCuts.h" | |
22 | #include "AliGenCocktailEventHeader.h" | |
23 | #include "TList.h" | |
24 | ||
25 | ||
26 | using namespace std; | |
27 | ||
28 | class AliConversionPhotonBase { | |
29 | ||
30 | public: | |
31 | ||
32 | //Constructors | |
33 | AliConversionPhotonBase(); | |
34 | ||
35 | //Copy Constructor | |
36 | AliConversionPhotonBase(const AliConversionPhotonBase & g); | |
37 | //assignment operator | |
38 | AliConversionPhotonBase & operator = (const AliConversionPhotonBase & g); | |
39 | ||
40 | //Destructor | |
41 | virtual ~AliConversionPhotonBase(); | |
42 | ||
43 | ///Set the tag for decay meson | |
44 | void SetTag( Bool_t tagged ) { fTagged = tagged; } | |
45 | Bool_t IsTagged(){return fTagged;} | |
46 | ||
47 | //Get the Chi2 of particle | |
48 | void SetChi2perNDF(Float_t chi2) {fChi2perNDF = chi2;} | |
49 | Float_t GetChi2perNDF() const {return fChi2perNDF;} | |
50 | ||
51 | ||
52 | ///Track labels | |
53 | void SetLabelPositive(Int_t label){fLabel[0] = label;} | |
54 | void SetLabelNegative(Int_t label){fLabel[1] = label;} | |
55 | void SetTrackLabels(Int_t label1, Int_t label2){fLabel[0] = label1; fLabel[1] = label2;} | |
56 | Int_t GetTrackLabelPositive() const{return fLabel[0];} | |
57 | Int_t GetTrackLabelNegative() const {return fLabel[1];} | |
58 | Int_t GetTrackLabel(Int_t i) const {return fLabel[i];} | |
59 | virtual Int_t GetLabel(Int_t i) const { return GetTrackLabel(i); }; | |
60 | virtual Int_t GetLabel1() const { return GetTrackLabelPositive(); }; | |
61 | virtual Int_t GetLabel2() const { return GetTrackLabelNegative(); }; | |
62 | ||
63 | // MC Label | |
64 | ||
65 | void SetMCLabel(Int_t* label){fMCLabel[0]=label[0];fMCLabel[1]=label[1];} | |
66 | void SetMCLabelPositive(Int_t label){fMCLabel[0]=label;} | |
67 | void SetMCLabelNegative(Int_t label){fMCLabel[1]=label;} | |
68 | Int_t GetMCLabel(Int_t i) const{return fMCLabel[i];} | |
69 | Int_t GetMCLabelPositive() const{return fMCLabel[0];} | |
70 | Int_t GetMCLabelNegative() const{return fMCLabel[1];} | |
71 | Int_t GetMCParticleLabel(AliStack *fMCStack); | |
72 | ||
73 | // GetMCParticle | |
74 | ||
75 | Bool_t IsTruePhoton(AliStack *fMCStack); | |
76 | TParticle *GetMCParticle(AliStack *fMCStack); | |
77 | TParticle *GetPositiveMCDaughter(AliStack *fMCStack){return GetMCDaughter(fMCStack,0);}; | |
78 | TParticle *GetNegativeMCDaughter(AliStack *fMCStack){return GetMCDaughter(fMCStack,1);}; | |
79 | TParticle *GetMCDaughter(AliStack *fMCStack,Int_t label); | |
80 | ||
81 | // V0Index | |
82 | Int_t GetV0Index() const {return fV0Index;} | |
83 | void SetV0Index(Int_t index) {fV0Index=index;} | |
84 | ||
85 | // Conversion Point | |
86 | void SetConversionPoint(Double_t convpoint[3]){fConversionPoint[0]=convpoint[0];fConversionPoint[1]=convpoint[1];fConversionPoint[2]=convpoint[2];} | |
87 | void GetConversionPoint(Double_t convpoint[3]){convpoint[0]=fConversionPoint[0];convpoint[1]=fConversionPoint[1];convpoint[2]=fConversionPoint[2];} | |
88 | Double_t GetConversionRadius() const {return TMath::Sqrt(fConversionPoint[0]*fConversionPoint[0]+fConversionPoint[1]*fConversionPoint[1]);} | |
89 | Double_t GetConversionX() const {return fConversionPoint[0];} | |
90 | Double_t GetConversionY() const {return fConversionPoint[1];} | |
91 | Double_t GetConversionZ() const {return fConversionPoint[2];} | |
92 | void GetDistanceOfClossetApproachToPrimVtx(const AliVVertex* primVertex, Float_t * dca); | |
93 | void DeterminePhotonQuality(AliVTrack* negTrack, AliVTrack* posTrack); | |
94 | UChar_t GetPhotonQuality() const {return fQuality;} | |
95 | // Armenteros Qt Alpha | |
96 | void GetArmenterosQtAlpha(Double_t qtalpha[2]){qtalpha[0]=fArmenteros[0];qtalpha[1]=fArmenteros[1];} | |
97 | Double_t GetArmenterosQt() const {return fArmenteros[0];} | |
98 | Double_t GetArmenterosAlpha() const {return fArmenteros[1];} | |
99 | ||
100 | // virtual functions to be implemented in KF/AOD classes | |
101 | ||
102 | virtual Double_t GetPhotonMass() const = 0; | |
103 | virtual Double_t GetPhotonPt()const = 0; | |
104 | virtual Double_t GetPhotonP() const = 0; | |
105 | virtual Double_t GetPhotonEta() const = 0; | |
106 | virtual Double_t GetPhotonPhi() const =0; | |
107 | // virtual Double_t GetPhotonTheta() const =0; | |
108 | virtual Double_t GetPx() const = 0; | |
109 | virtual Double_t GetPy() const = 0; | |
110 | virtual Double_t GetPz() const = 0; | |
111 | ||
112 | ||
113 | Float_t GetMass() const { return fIMass; } | |
114 | void SetMass( Float_t mass) { fIMass = mass; } | |
115 | ||
116 | Float_t GetPsiPair() const {return fPsiPair;} | |
117 | void SetPsiPair(Float_t PsiPair){fPsiPair=PsiPair;} | |
118 | ||
119 | ||
120 | protected: | |
121 | ||
122 | Int_t fLabel[2]; // Electron/Positron Track Label | |
123 | Int_t fV0Index; // Index of the V0 | |
124 | Int_t fMCLabel[2]; // Electron/Positron MC Label | |
125 | Float_t fChi2perNDF; // Chi2perNDF | |
126 | Double_t fArmenteros[2]; // Armenteros Paramters | |
127 | Double_t fConversionPoint[3]; // Conversion Point | |
128 | Bool_t fTagged; // Is it tagged as decay pion (only for gammas) | |
129 | Float_t fIMass; // Invariant Mass of dilepton pair | |
130 | Float_t fPsiPair; // Psi Pair Value | |
131 | UChar_t fQuality; //Photon Quality: | |
132 | //0: garbage, | |
133 | //1: both tracks TPC only, | |
134 | //2: 1 track TPC only | |
135 | //3: both tracks more than 1 ITS cluster | |
136 | ClassDef(AliConversionPhotonBase,5); | |
137 | }; | |
138 | ||
139 | ||
140 | #endif | |
141 | ||
142 | ||
143 |