]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ANALYSIS/AliAODv0.h
Preparing the code for the CDC. A new library MDCFilter is created. It contains the...
[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
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
17class AliESD;
18class AliESDVertex;
19class AliESDv0;
20class AliESDtrack;
21
22
23class AliAODv0 : public TObject {
24
25public:
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
68protected:
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
92inline Double_t AliAODv0::decayVertexV0X() const {return fDecayVertexV0X;}
93inline Double_t AliAODv0::decayVertexV0Y() const {return fDecayVertexV0Y;}
94inline Double_t AliAODv0::decayVertexV0Z() const {return fDecayVertexV0Z;}
95
96inline Double_t AliAODv0::dcaV0Daughters() const {return fDcaV0Daughters;}
97inline Double_t AliAODv0::dcaV0ToPrimVertex() const {return fDcaV0ToPrimVertex;}
98inline Double_t AliAODv0::dcaPosToPrimVertex() const {return fDcaPosToPrimVertex;}
99inline Double_t AliAODv0::dcaNegToPrimVertex() const {return fDcaNegToPrimVertex;}
100
101inline Double_t AliAODv0::momPosX() const {return fMomPosX;}
102inline Double_t AliAODv0::momPosY() const {return fMomPosY;}
103inline Double_t AliAODv0::momPosZ() const {return fMomPosZ;}
104inline Double_t AliAODv0::momNegX() const {return fMomNegX;}
105inline Double_t AliAODv0::momNegY() const {return fMomNegY;}
106inline Double_t AliAODv0::momNegZ() const {return fMomNegZ;}
107
108inline Int_t AliAODv0::keyPos() const {return fKeyPos;}
109inline Int_t AliAODv0::keyNeg() const {return fKeyNeg;}
110
111inline Double_t AliAODv0::chi2V0() const {return fChi2;}
112
113// Following Need to be moved to Base Class
114inline Double_t AliAODv0::momV0X(){return momPosX()+momNegX();}
115inline Double_t AliAODv0::momV0Y(){return momPosY()+momNegY();}
116inline Double_t AliAODv0::momV0Z(){return momPosZ()+momNegZ();}
117
118inline Double_t AliAODv0::Ptot2Pos(){
119 return (::pow(momPosX(),2) + ::pow(momPosY(),2) + ::pow(momPosZ(),2) );
120}
121inline Double_t AliAODv0::Ptot2Neg(){
122 return (::pow(momNegX(),2) + ::pow(momNegY(),2) + ::pow(momNegZ(),2) );
123}
124inline Double_t AliAODv0::Pt2V0(){
125 return (::pow(momV0X(),2) + ::pow(momV0Y(),2) );
126}
127
128inline Double_t AliAODv0::Ptot2V0(){return ( Pt2V0() + ::pow(momV0Z(),2) );}
129
130inline 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
139inline 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
148inline Double_t AliAODv0::alphaV0(){
149 return 1.-(2./(1.+(MomPosAlongV0()/MomNegAlongV0())));
150}
151inline 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