]>
Commit | Line | Data |
---|---|---|
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 | |
9 | // | |
10 | // Origin: B.Hippolyte, IReS, hippolyt@in2p3.fr | |
11 | // G.Van Buren, BNL, gene@bnl.gov (original STAR MuDsts) | |
12 | //------------------------------------------------------------------------- | |
13 | ||
14 | #include <TObject.h> | |
15 | #include <TPDGCode.h> | |
16 | ||
17 | class AliESD; | |
18 | class AliESDVertex; | |
19 | class AliESDv0; | |
20 | class AliESDtrack; | |
21 | ||
22 | ||
23 | class AliAODv0 : public TObject { | |
24 | ||
25 | public: | |
26 | AliAODv0(); | |
27 | AliAODv0(AliESDv0*,AliESD*); | |
28 | void Fill(AliESDv0*,AliESD*); | |
29 | void ResetV0(); | |
30 | ||
31 | Double_t decayVertexV0X() const; | |
32 | Double_t decayVertexV0Y() const; | |
33 | Double_t decayVertexV0Z() const; | |
34 | ||
35 | Double_t dcaV0Daughters() const; | |
36 | Double_t dcaV0ToPrimVertex() const; | |
37 | Double_t dcaPosToPrimVertex() const; | |
38 | Double_t dcaNegToPrimVertex() const; | |
39 | ||
40 | Double_t momPosX() const; | |
41 | Double_t momPosY() const; | |
42 | Double_t momPosZ() const; | |
43 | Double_t momNegX() const; | |
44 | Double_t momNegY() const; | |
45 | Double_t momNegZ() const; | |
46 | ||
47 | Int_t keyPos() const; | |
48 | Int_t keyNeg() const; | |
49 | ||
50 | Double_t chi2V0() const; | |
51 | ||
52 | // Following Need to be moved to Base Class | |
53 | Double_t momV0X(); | |
54 | Double_t momV0Y(); | |
55 | Double_t momV0Z(); | |
56 | ||
57 | Double_t Ptot2Pos(); | |
58 | Double_t Ptot2Neg(); | |
59 | Double_t Ptot2V0(); | |
60 | Double_t Pt2V0(); | |
61 | Double_t MomPosAlongV0(); | |
62 | Double_t MomNegAlongV0(); | |
63 | Double_t alphaV0(); | |
64 | Double_t ptArmV0(); | |
65 | // Above Need to be moved to Base Class | |
66 | ||
67 | ||
68 | protected: | |
69 | Double_t fDecayVertexV0X; | |
70 | Double_t fDecayVertexV0Y; | |
71 | Double_t fDecayVertexV0Z; | |
72 | Double_t fDcaV0Daughters; | |
73 | Double_t fDcaV0ToPrimVertex; | |
74 | Double_t fDcaPosToPrimVertex; | |
75 | Double_t fDcaNegToPrimVertex; | |
76 | Double_t fMomPosX; | |
77 | Double_t fMomPosY; | |
78 | Double_t fMomPosZ; | |
79 | Double_t fMomNegX; | |
80 | Double_t fMomNegY; | |
81 | Double_t fMomNegZ; | |
82 | ||
83 | Int_t fKeyPos; | |
84 | Int_t fKeyNeg; | |
85 | ||
86 | Double_t fChi2; | |
87 | AliESD *fEvent; | |
88 | ||
89 | ClassDef(AliAODv0,1) // AOD V0 vertex | |
90 | }; | |
91 | ||
92 | inline Double_t AliAODv0::decayVertexV0X() const {return fDecayVertexV0X;} | |
93 | inline Double_t AliAODv0::decayVertexV0Y() const {return fDecayVertexV0Y;} | |
94 | inline Double_t AliAODv0::decayVertexV0Z() const {return fDecayVertexV0Z;} | |
95 | ||
96 | inline Double_t AliAODv0::dcaV0Daughters() const {return fDcaV0Daughters;} | |
97 | inline Double_t AliAODv0::dcaV0ToPrimVertex() const {return fDcaV0ToPrimVertex;} | |
98 | inline Double_t AliAODv0::dcaPosToPrimVertex() const {return fDcaPosToPrimVertex;} | |
99 | inline Double_t AliAODv0::dcaNegToPrimVertex() const {return fDcaNegToPrimVertex;} | |
100 | ||
101 | inline Double_t AliAODv0::momPosX() const {return fMomPosX;} | |
102 | inline Double_t AliAODv0::momPosY() const {return fMomPosY;} | |
103 | inline Double_t AliAODv0::momPosZ() const {return fMomPosZ;} | |
104 | inline Double_t AliAODv0::momNegX() const {return fMomNegX;} | |
105 | inline Double_t AliAODv0::momNegY() const {return fMomNegY;} | |
106 | inline Double_t AliAODv0::momNegZ() const {return fMomNegZ;} | |
107 | ||
108 | inline Int_t AliAODv0::keyPos() const {return fKeyPos;} | |
109 | inline Int_t AliAODv0::keyNeg() const {return fKeyNeg;} | |
110 | ||
111 | inline Double_t AliAODv0::chi2V0() const {return fChi2;} | |
112 | ||
113 | // Following Need to be moved to Base Class | |
114 | inline Double_t AliAODv0::momV0X(){return momPosX()+momNegX();} | |
115 | inline Double_t AliAODv0::momV0Y(){return momPosY()+momNegY();} | |
116 | inline Double_t AliAODv0::momV0Z(){return momPosZ()+momNegZ();} | |
117 | ||
118 | inline Double_t AliAODv0::Ptot2Pos(){ | |
119 | return (::pow(momPosX(),2) + ::pow(momPosY(),2) + ::pow(momPosZ(),2) ); | |
120 | } | |
121 | inline Double_t AliAODv0::Ptot2Neg(){ | |
122 | return (::pow(momNegX(),2) + ::pow(momNegY(),2) + ::pow(momNegZ(),2) ); | |
123 | } | |
124 | inline Double_t AliAODv0::Pt2V0(){ | |
125 | return (::pow(momV0X(),2) + ::pow(momV0Y(),2) ); | |
126 | } | |
127 | ||
128 | inline Double_t AliAODv0::Ptot2V0(){return ( Pt2V0() + ::pow(momV0Z(),2) );} | |
129 | ||
130 | inline Double_t AliAODv0::MomPosAlongV0(){ | |
131 | Double_t mPtot2V0 = Ptot2V0(); | |
132 | if (mPtot2V0) | |
133 | return (momPosX()*momV0X() + | |
134 | momPosY()*momV0Y() + | |
135 | momPosZ()*momV0Z()) / ::sqrt(mPtot2V0); | |
136 | return 0.; | |
137 | } | |
138 | ||
139 | inline Double_t AliAODv0::MomNegAlongV0(){ | |
140 | Double_t mPtot2V0 = Ptot2V0(); | |
141 | if (mPtot2V0) | |
142 | return (momNegX()*momV0X() + | |
143 | momNegY()*momV0Y() + | |
144 | momNegZ()*momV0Z()) / ::sqrt(mPtot2V0); | |
145 | return 0.; | |
146 | } | |
147 | ||
148 | inline Double_t AliAODv0::alphaV0(){ | |
149 | return 1.-(2./(1.+(MomPosAlongV0()/MomNegAlongV0()))); | |
150 | } | |
151 | inline Double_t AliAODv0::ptArmV0(){ | |
152 | return ::sqrt(Ptot2Pos()-MomPosAlongV0()*MomPosAlongV0()); | |
153 | } | |
154 | ||
155 | // Above Need to be moved to Base Class | |
156 | ||
157 | #endif | |
158 | ||
159 |