]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ANALYSIS/AliAODv0.h
Added preprocessor conditionals to support ROOT > 5.11.2.
[u/mrichter/AliRoot.git] / ANALYSIS / AliAODv0.h
CommitLineData
d77fd7b3 1#ifndef ALIAODV0_H
2#define ALIAODV0_H
3
4/* Copyright(c) 2004-2005, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7//-------------------------------------------------------------------------
8// Implementation of the Analysis Oriented Data (AOD) V0 vertex class
d77fd7b3 9// Origin: B.Hippolyte, IReS, hippolyt@in2p3.fr
10// G.Van Buren, BNL, gene@bnl.gov (original STAR MuDsts)
2d8e3807 11// Purpose: Having observables for physics available for V0s
d77fd7b3 12//-------------------------------------------------------------------------
13
14#include <TObject.h>
a98dba45 15#include <TDatabasePDG.h>
16
17#define MASS(PID) TDatabasePDG::Instance()->GetParticle((PID))->Mass()
18#define MASS2(PID) MASS((PID))*MASS((PID))
d77fd7b3 19
20class AliESD;
21class AliESDVertex;
22class AliESDv0;
23class AliESDtrack;
24
25
26class AliAODv0 : public TObject {
27
28public:
29 AliAODv0();
2d8e3807 30 AliAODv0(AliESDv0 *rV0Vertex, AliESD *rEvent);
31 void Fill(AliESDv0 *rV0Vertex, AliESD *rEvent);
32 void ResetV0();
d77fd7b3 33
2d8e3807 34 Double_t DecayVertexV0X() const;
35 Double_t DecayVertexV0Y() const;
36 Double_t DecayVertexV0Z() const;
a98dba45 37
38 Double_t DecayLengthV0() const;
d77fd7b3 39
2d8e3807 40 Double_t DcaV0Daughters() const;
41 Double_t DcaV0ToPrimVertex() const;
42 Double_t DcaPosToPrimVertex() const;
43 Double_t DcaNegToPrimVertex() const;
44
45 Double_t MomPosX() const;
46 Double_t MomPosY() const;
47 Double_t MomPosZ() const;
48 Double_t MomNegX() const;
49 Double_t MomNegY() const;
50 Double_t MomNegZ() const;
51
52 Int_t KeyPos() const;
53 Int_t KeyNeg() const;
54
55 Double_t Chi2V0() const;
56
57 Double_t MomV0X() const;
58 Double_t MomV0Y() const;
59 Double_t MomV0Z() const;
60
61 Double_t Ptot2Pos() const;
62 Double_t Ptot2Neg() const;
63 Double_t Ptot2V0() const;
64 Double_t Pt2V0() const;
65 Double_t MomPosAlongV0() const;
66 Double_t MomNegAlongV0() const;
67 Double_t AlphaV0() const;
68 Double_t PtArmV0() const;
a98dba45 69 Double_t EPosProton() const;
70 Double_t ENegProton() const;
71 Double_t EPosPion() const;
72 Double_t ENegPion() const;
73 Double_t ELambda() const;
74 Double_t EK0Short() const;
75 Double_t MassLambda() const;
76 Double_t MassAntiLambda() const;
77 Double_t MassK0Short() const;
78 Double_t RapK0Short() const;
79 Double_t RapLambda() const;
80
d77fd7b3 81
82protected:
2d8e3807 83 Double_t fDecayVertexV0X; // decay vertex of V0 along X
84 Double_t fDecayVertexV0Y; // decay vertex of V0 along Y
85 Double_t fDecayVertexV0Z; // decay vertex of V0 along Z
86 Double_t fDcaV0Daughters; // dca between V0 daughters
87 Double_t fDcaV0ToPrimVertex; // dca of V0 to primary vertex
88 Double_t fDcaPosToPrimVertex; // dca of pos daughter to primary vertex
89 Double_t fDcaNegToPrimVertex; // dca of pos daughter to primary vertex
90 Double_t fMomPosX; // momemtum of pos daughter along X
91 Double_t fMomPosY; // momemtum of pos daughter along Y
92 Double_t fMomPosZ; // momemtum of pos daughter along Z
93 Double_t fMomNegX; // momemtum of neg daughter along X
94 Double_t fMomNegY; // momemtum of neg daughter along Y
95 Double_t fMomNegZ; // momemtum of neg daughter along Z
96
97 Int_t fKeyPos; // track key/index to pos daughter
98 Int_t fKeyNeg; // track key/index to neg daughter
99
100 Double_t fChi2; // main quality variable of V0
101 AliESD *fEvent; // pointer to current event
102
103 ClassDef(AliAODv0,1)
d77fd7b3 104};
105
2d8e3807 106inline Double_t AliAODv0::DecayVertexV0X() const {return fDecayVertexV0X;}
107inline Double_t AliAODv0::DecayVertexV0Y() const {return fDecayVertexV0Y;}
108inline Double_t AliAODv0::DecayVertexV0Z() const {return fDecayVertexV0Z;}
d77fd7b3 109
a98dba45 110inline Double_t AliAODv0::DecayLengthV0() const {
111 if (fEvent&&fEvent->GetVertex()){
112 Double_t tPrimaryVertexPosition[3];
113 fEvent->GetVertex()->GetXYZ(tPrimaryVertexPosition);
114 return ::sqrt(::pow(DecayVertexV0X() - tPrimaryVertexPosition[0],2) +
115 ::pow(DecayVertexV0Y() - tPrimaryVertexPosition[1],2) +
116 ::pow(DecayVertexV0Z() - tPrimaryVertexPosition[2],2));
117 }
118 return 0.;
119}
120
2d8e3807 121inline Double_t AliAODv0::DcaV0Daughters() const {return fDcaV0Daughters;}
122inline Double_t AliAODv0::DcaV0ToPrimVertex() const {return fDcaV0ToPrimVertex;}
123inline Double_t AliAODv0::DcaPosToPrimVertex() const {return fDcaPosToPrimVertex;}
124inline Double_t AliAODv0::DcaNegToPrimVertex() const {return fDcaNegToPrimVertex;}
d77fd7b3 125
2d8e3807 126inline Double_t AliAODv0::MomPosX() const {return fMomPosX;}
127inline Double_t AliAODv0::MomPosY() const {return fMomPosY;}
128inline Double_t AliAODv0::MomPosZ() const {return fMomPosZ;}
129inline Double_t AliAODv0::MomNegX() const {return fMomNegX;}
130inline Double_t AliAODv0::MomNegY() const {return fMomNegY;}
131inline Double_t AliAODv0::MomNegZ() const {return fMomNegZ;}
d77fd7b3 132
2d8e3807 133inline Int_t AliAODv0::KeyPos() const {return fKeyPos;}
134inline Int_t AliAODv0::KeyNeg() const {return fKeyNeg;}
d77fd7b3 135
2d8e3807 136inline Double_t AliAODv0::Chi2V0() const {return fChi2;}
d77fd7b3 137
2d8e3807 138inline Double_t AliAODv0::MomV0X() const {return MomPosX()+MomNegX();}
139inline Double_t AliAODv0::MomV0Y() const {return MomPosY()+MomNegY();}
140inline Double_t AliAODv0::MomV0Z() const {return MomPosZ()+MomNegZ();}
d77fd7b3 141
2d8e3807 142inline Double_t AliAODv0::Ptot2Pos() const {
143 return (::pow(MomPosX(),2) + ::pow(MomPosY(),2) + ::pow(MomPosZ(),2) );
d77fd7b3 144}
2d8e3807 145inline Double_t AliAODv0::Ptot2Neg() const {
146 return (::pow(MomNegX(),2) + ::pow(MomNegY(),2) + ::pow(MomNegZ(),2) );
d77fd7b3 147}
2d8e3807 148inline Double_t AliAODv0::Pt2V0() const {
149 return (::pow(MomV0X(),2) + ::pow(MomV0Y(),2) );
d77fd7b3 150}
151
2d8e3807 152inline Double_t AliAODv0::Ptot2V0() const {return ( Pt2V0() + ::pow(MomV0Z(),2) );}
d77fd7b3 153
2d8e3807 154inline Double_t AliAODv0::MomPosAlongV0() const {
155 Double_t lPtot2V0 = Ptot2V0();
156 if (lPtot2V0)
157 return (MomPosX()*MomV0X() +
158 MomPosY()*MomV0Y() +
159 MomPosZ()*MomV0Z()) / ::sqrt(lPtot2V0);
d77fd7b3 160 return 0.;
161}
162
2d8e3807 163inline Double_t AliAODv0::MomNegAlongV0() const {
164 Double_t lPtot2V0 = Ptot2V0();
165 if (lPtot2V0)
166 return (MomNegX()*MomV0X() +
167 MomNegY()*MomV0Y() +
168 MomNegZ()*MomV0Z()) / ::sqrt(lPtot2V0);
d77fd7b3 169 return 0.;
170}
171
2d8e3807 172inline Double_t AliAODv0::AlphaV0() const {
d77fd7b3 173 return 1.-(2./(1.+(MomPosAlongV0()/MomNegAlongV0())));
174}
2d8e3807 175inline Double_t AliAODv0::PtArmV0() const {
d77fd7b3 176 return ::sqrt(Ptot2Pos()-MomPosAlongV0()*MomPosAlongV0());
177}
178
a98dba45 179inline Double_t AliAODv0::EPosProton() const {
180 return ::sqrt(Ptot2Pos()+MASS2("proton"));
181}
182
183inline Double_t AliAODv0::ENegProton() const {
184 return ::sqrt(Ptot2Neg()+MASS2("antiproton"));
185}
186
187inline Double_t AliAODv0::EPosPion() const {
188 return ::sqrt(Ptot2Pos()+MASS2("pi+"));
189}
190
191inline Double_t AliAODv0::ENegPion() const {
192 return ::sqrt(Ptot2Neg()+MASS2("pi-"));
193}
194
195inline Double_t AliAODv0::ELambda() const {
196 return ::sqrt(Ptot2V0()+MASS2("Lambda0"));
197}
198
199inline Double_t AliAODv0::EK0Short() const {
200 return ::sqrt(Ptot2V0()+MASS2("K_S0"));
201}
202
203inline Double_t AliAODv0::MassLambda() const {
204 return ::sqrt(::pow(EPosProton()+ENegPion(),2)-Ptot2V0());
205}
206
207inline Double_t AliAODv0::MassAntiLambda() const {
208 return ::sqrt(::pow(ENegProton()+EPosPion(),2)-Ptot2V0());
209}
210
211inline Double_t AliAODv0::MassK0Short() const {
212 return ::sqrt(::pow(EPosPion()+ENegPion(),2)-Ptot2V0());
213}
214
215inline Double_t AliAODv0::RapK0Short() const {
216 Double_t ek0 = EK0Short();
217 Double_t mMomV0Z = MomV0Z();
218 return 0.5*::log((ek0+mMomV0Z)/(ek0-mMomV0Z));
219}
220
221inline Double_t AliAODv0::RapLambda() const {
222 Double_t eLambda = ELambda();
223 Double_t mMomV0Z = MomV0Z();
224 return 0.5*::log((eLambda+mMomV0Z)/(eLambda-mMomV0Z));
225}
226
d77fd7b3 227#endif
228
229