]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoV0.cxx
Fixing Effective C++ warnings
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / Infrastructure / AliFemtoV0.cxx
CommitLineData
67427ff7 1#include "AliFemtoV0.h"
2#include "phys_constants.h"
3
4// -----------------------------------------------------------------------
0215f606 5AliFemtoV0::AliFemtoV0():
6 fDecayLengthV0(0), fDecayVertexV0(0), fPrimaryVertex(0),
7 fDcaV0Daughters(0), fDcaV0ToPrimVertex(0),
8 fDcaPosToPrimVertex(0), fDcaNegToPrimVertex(0),
9 fMomPos(0), fMomNeg(0),
10 fTpcHitsPos(0), fTpcHitsNeg(0),
11 fChi2V0(0), fClV0(0), fChi2Pos(0), fClPos(0), fChi2Neg(0), fClNeg(0),
12 fDedxPos(0), fErrDedxPos(0), fLenDedxPos(0),
13 fDedxNeg(0), fErrDedxNeg(0), fLenDedxNeg(0),
14 fNufDedxPos(0), fNufDedxNeg(0),
15 fHelixPos(), fHelixNeg(),
16 fMomV0(0),
17 fAlphaV0(0), fPtArmV0(0),
18 fELambda(0), fEK0Short(0),
19 fEPosProton(0), fEPosPion(0),
20 fENegProton(0), fENegPion(0),
21 fMassLambda(0), fMassAntiLambda(0),
22 fMassK0Short(0), fRapLambda(0),
23 fRapK0Short(0), fCTauLambda(0),
24 fCTauK0Short(0), fPtV0(0), fPtotV0(0),
25 fPtPos(0), fPtotPos(0),
26 fPtNeg(0), fPtotNeg(0),
27 fKeyNeg(0), fKeyPos(0),
28 fHiddenInfo(0) /***/
29{ /* no-op */}
30// -----------------------------------------------------------------------
31AliFemtoV0::AliFemtoV0(const AliFemtoV0& v) :
32 fDecayLengthV0(0), fDecayVertexV0(0), fPrimaryVertex(0),
33 fDcaV0Daughters(0), fDcaV0ToPrimVertex(0),
34 fDcaPosToPrimVertex(0), fDcaNegToPrimVertex(0),
35 fMomPos(0), fMomNeg(0),
36 fTpcHitsPos(0), fTpcHitsNeg(0),
37 fChi2V0(0), fClV0(0), fChi2Pos(0), fClPos(0), fChi2Neg(0), fClNeg(0),
38 fDedxPos(0), fErrDedxPos(0), fLenDedxPos(0),
39 fDedxNeg(0), fErrDedxNeg(0), fLenDedxNeg(0),
40 fNufDedxPos(0), fNufDedxNeg(0),
41 fHelixPos(), fHelixNeg(),
42 fMomV0(0),
43 fAlphaV0(0), fPtArmV0(0),
44 fELambda(0), fEK0Short(0),
45 fEPosProton(0), fEPosPion(0),
46 fENegProton(0), fENegPion(0),
47 fMassLambda(0), fMassAntiLambda(0),
48 fMassK0Short(0), fRapLambda(0),
49 fRapK0Short(0), fCTauLambda(0),
50 fCTauK0Short(0), fPtV0(0), fPtotV0(0),
51 fPtPos(0), fPtotPos(0),
52 fPtNeg(0), fPtotNeg(0),
53 fKeyNeg(0), fKeyPos(0),
54 fHiddenInfo(0) /***/
55{ // copy constructor
67427ff7 56 fDecayLengthV0 = v.fDecayLengthV0;
57 fDecayVertexV0 = v.fDecayVertexV0;
58 fDcaV0Daughters = v.fDcaV0Daughters;
59 fDcaV0ToPrimVertex = v.fDcaV0ToPrimVertex;
60 fDcaPosToPrimVertex = v.fDcaPosToPrimVertex;
61 fDcaNegToPrimVertex = v.fDcaNegToPrimVertex;
62 fMomPos = v.fMomPos;
63 fMomNeg = v.fMomNeg;
64
65 fTrackTopologyMapPos[0] = v.fTrackTopologyMapPos[0];
66 fTrackTopologyMapPos[1] = v.fTrackTopologyMapPos[1];
67 fTrackTopologyMapNeg[0] = v.fTrackTopologyMapNeg[0];
68 fTrackTopologyMapNeg[1] = v.fTrackTopologyMapNeg[1];
69
70 fKeyPos = v.fKeyPos;
71 fKeyNeg = v.fKeyNeg;
72
73 fTpcHitsPos = v.fTpcHitsPos;
74 fTpcHitsNeg = v.fTpcHitsNeg;
75
76 fChi2V0 = v.fChi2V0;
77 fClV0 = v.fClV0;
78 fChi2Pos = v.fChi2Pos;
79 fClPos = v.fClPos;
80 fChi2Neg = v.fChi2Neg;
81 fClNeg = v.fClNeg;
82 fDedxPos = v.fDedxPos;
83 fErrDedxPos = v.fErrDedxPos;//Gael 04Fev2002
84 fLenDedxPos = v.fLenDedxPos;//Gael 04Fev2002
85 fDedxNeg = v.fDedxNeg;
86 fErrDedxNeg = v.fErrDedxNeg;//Gael 04Fev2002
87 fLenDedxNeg = v.fLenDedxNeg;//Gael 04Fev2002
88
89 fNufDedxPos = v.fNufDedxPos;
90 fNufDedxNeg = v.fNufDedxNeg;
91
92 fHelixPos = v.fHelixPos;// Gael 12 Sept
93 fHelixNeg = v.fHelixNeg;// Gael 12 Sept
94 fHiddenInfo = v.fHiddenInfo? v.fHiddenInfo->clone() : 0;// GR 11 DEC 02
95 UpdateV0();
96}
0215f606 97AliFemtoV0& AliFemtoV0::operator=(const AliFemtoV0& aV0)
98{
99 if (this == &aV0)
100 return *this;
101 fDecayLengthV0 = aV0.fDecayLengthV0;
102 fDecayVertexV0 = aV0.fDecayVertexV0;
103 fDcaV0Daughters = aV0.fDcaV0Daughters;
104 fDcaV0ToPrimVertex = aV0.fDcaV0ToPrimVertex;
105 fDcaPosToPrimVertex = aV0.fDcaPosToPrimVertex;
106 fDcaNegToPrimVertex = aV0.fDcaNegToPrimVertex;
107 fMomPos = aV0.fMomPos;
108 fMomNeg = aV0.fMomNeg;
109
110 fTrackTopologyMapPos[0] = aV0.fTrackTopologyMapPos[0];
111 fTrackTopologyMapPos[1] = aV0.fTrackTopologyMapPos[1];
112 fTrackTopologyMapNeg[0] = aV0.fTrackTopologyMapNeg[0];
113 fTrackTopologyMapNeg[1] = aV0.fTrackTopologyMapNeg[1];
114
115 fKeyPos = aV0.fKeyPos;
116 fKeyNeg = aV0.fKeyNeg;
117
118 fTpcHitsPos = aV0.fTpcHitsPos;
119 fTpcHitsNeg = aV0.fTpcHitsNeg;
120
121 fChi2V0 = aV0.fChi2V0;
122 fClV0 = aV0.fClV0;
123 fChi2Pos = aV0.fChi2Pos;
124 fClPos = aV0.fClPos;
125 fChi2Neg = aV0.fChi2Neg;
126 fClNeg = aV0.fClNeg;
127 fDedxPos = aV0.fDedxPos;
128 fErrDedxPos = aV0.fErrDedxPos;//Gael 04Fev2002
129 fLenDedxPos = aV0.fLenDedxPos;//Gael 04Fev2002
130 fDedxNeg = aV0.fDedxNeg;
131 fErrDedxNeg = aV0.fErrDedxNeg;//Gael 04Fev2002
132 fLenDedxNeg = aV0.fLenDedxNeg;//Gael 04Fev2002
133
134 fNufDedxPos = aV0.fNufDedxPos;
135 fNufDedxNeg = aV0.fNufDedxNeg;
136
137 fHelixPos = aV0.fHelixPos;// Gael 12 Sept
138 fHelixNeg = aV0.fHelixNeg;// Gael 12 Sept
139 if (fHiddenInfo) delete fHiddenInfo;
140 fHiddenInfo = aV0.fHiddenInfo? aV0.fHiddenInfo->clone() : 0;// GR 11 DEC 02
141 UpdateV0();
142
143 return *this;
144}
145
67427ff7 146// -----------------------------------------------------------------------
147void AliFemtoV0::UpdateV0(){
148 //Calc. derived memebers of the v0 class
149 float MomNegAlongV0, MomPosAlongV0;
150
151 fMomV0 = fMomPos + fMomNeg;
152 fPtV0 = fMomV0.perp();
153 fPtotV0 = fMomV0.mag();
154 fPtPos = fMomPos.perp();
155 fPtotPos= fMomPos.mag();
156 fPtNeg = fMomNeg.perp();
157 fPtotNeg= fMomNeg.mag();
158 fELambda= ::sqrt(fPtotV0*fPtotV0+M_LAMBDA*M_LAMBDA);
159 fEK0Short= ::sqrt(fPtotV0*fPtotV0+M_KAON_0_SHORT*M_KAON_0_SHORT);
160 fEPosProton = ::sqrt(fPtotPos*fPtotPos+M_PROTON*M_PROTON);
161 fENegProton = ::sqrt(fPtotNeg*fPtotNeg+M_PROTON*M_PROTON);
162 fEPosPion = ::sqrt(fPtotPos*fPtotPos+M_PION_PLUS*M_PION_PLUS);
163 fENegPion = ::sqrt(fPtotNeg*fPtotNeg+M_PION_MINUS*M_PION_MINUS);
164
165 MomNegAlongV0 = fMomNeg*fMomV0 / ::sqrt(::pow(fPtotV0,2));
166 MomPosAlongV0 = fMomPos*fMomV0 / ::sqrt(::pow(fPtotV0,2));
167
168 fAlphaV0 = (MomPosAlongV0-MomNegAlongV0)/(MomPosAlongV0+MomNegAlongV0);
169 fPtArmV0 = ::sqrt(fPtotPos*fPtotPos - MomPosAlongV0*MomPosAlongV0);
170 fMassLambda = ::sqrt(::pow(fEPosProton+fENegPion,2)-::pow(fPtotV0,2));
171 fMassAntiLambda = ::sqrt(::pow(fENegProton+fEPosPion,2)-::pow(fPtotV0,2));
172 fMassK0Short = ::sqrt(::pow(fENegPion+fEPosPion,2)-::pow(fPtotV0,2));
173
174 fRapLambda = 0.5*::log( (fELambda+fMomV0.z()) / (fELambda-fMomV0.z()) );
175 fCTauLambda = M_LAMBDA*(fDecayLengthV0) / ::sqrt( ::pow((double)fMomV0.mag(),2.) );
176
177 fRapK0Short = 0.5*::log( (fEK0Short+fMomV0.z()) / (fEK0Short-fMomV0.z()) );
178 fCTauK0Short = M_KAON_0_SHORT*(fDecayLengthV0) / ::sqrt( ::pow((double)fMomV0.mag(),2.) );
179
180}
181// -----------------------------------------------------------------------
182#ifndef __NO_STAR_DEPENDENCE_ALLOWED__
183#ifdef __ROOT__
184#include "StStrangeMuDstMaker/StV0MuDst.h"
185AliFemtoV0::AliFemtoV0( StV0MuDst& v){ // from strangess micro dst structure
186 fDecayLengthV0 = v.decayLengthV0();
187 fDecayVertexV0 = AliFemtoThreeVector( v.decayVertexV0X(), v.decayVertexV0Y(), v.decayVertexV0Z() );
188 fDcaV0Daughters = v.dcaV0Daughters();
189 fDcaV0ToPrimVertex = v.dcaV0ToPrimVertex();
190 fDcaPosToPrimVertex = v.dcaPosToPrimVertex();
191 fDcaNegToPrimVertex = v.dcaNegToPrimVertex();
192 fMomPos = AliFemtoThreeVector( v.momPosX(), v.momPosY(), v.momPosZ() );
193 fMomNeg = AliFemtoThreeVector( v.momNegX(), v.momNegY(), v.momNegZ() );
194#ifdef STHBTDEBUG
195 cout << " hist pos ";
196 cout << v.topologyMapPos().numberOfHits(kTpcId);
197 cout << " hist neg ";
198 cout << v.topologyMapNeg().numberOfHits(kTpcId) << endl;
199#endif
200 fTpcHitsPos = ( v.topologyMapPos().numberOfHits(kTpcId) );
201 fTpcHitsNeg = ( v.topologyMapNeg().numberOfHits(kTpcId) );
202 fTrackTopologyMapPos[0] = ( v.topologyMapPos().data(0) );
203 fTrackTopologyMapPos[1] = ( v.topologyMapPos().data(1) );
204 fTrackTopologyMapNeg[0] = ( v.topologyMapNeg().data(0) );
205 fTrackTopologyMapNeg[1] = ( v.topologyMapNeg().data(1) );
206 fKeyPos = v.keyPos();
207 fKeyNeg = v.keyNeg();
208 fChi2V0 = v.chi2V0();
209 fClV0 = v.clV0();
210 fChi2Pos = v.chi2Pos();
211 fClPos = v.clPos();
212 fChi2Neg = v.chi2Neg();
213 fClNeg = v.clNeg();
214 fDedxPos = v.dedxPos();
215 fErrDedxPos = v.errDedxPos();//Gael 04Fev2002
216 fLenDedxPos = v.lenDedxPos();//Gael 04Fev2002
217 fDedxNeg = v.dedxNeg();
218 fErrDedxNeg = v.errDedxNeg();//Gael 04Fev2002
219 fLenDedxNeg = v.lenDedxNeg();//Gael 04Fev2002
220 fNufDedxPos = v.nufDedxPos();
221 fNufDedxNeg = v.nufDedxNeg();
222 fHiddenInfo = 0;//GR 11 DEC 02
223
224#ifdef STHBTDEBUG
225 cout << " keyPos " << v.keyPos() << endl;
226 cout << " keyNeg " << v.keyNeg() << endl;
227#endif
228 fMomV0 = AliFemtoThreeVector( v.momV0X(), v.momV0Y(), v.momV0Z() );
229#ifdef STHBTDEBUG
230 cout << " alpha ";
231 cout << v.alphaV0();
232 cout << " ptArm ";
233 cout << v.ptArmV0() << endl;
234#endif
235 fAlphaV0 = v.alphaV0();
236 fPtArmV0 = v.ptArmV0();
237 fELambda = v.eLambda();
238 fEK0Short = v.eK0Short();
239 fEPosProton = v.ePosProton();
240 fEPosPion = v.ePosPion();
241 fENegPion = v.eNegPion();
242 fENegProton = v.eNegProton();
243 fMassLambda = v.massLambda();
244 fMassAntiLambda = v.massAntiLambda();
245 fMassK0Short = v.massK0Short();
246 fRapLambda = v.rapLambda();
247 fRapK0Short = v.rapK0Short();
248 fCTauLambda = v.cTauLambda();
249 fCTauK0Short = v.cTauK0Short();
250 fPtV0 = v.ptV0();
251 fPtotV0 = v.ptotV0();
252 fPtPos = v.ptPos();
253 fPtotPos = v.ptotPos();
254 fDedxPos = v.dedxPos();
255 fPtNeg = v.ptNeg();
256 fPtotNeg = v.ptotNeg();
257 fDedxNeg = v.dedxNeg();
258}
259#endif // __ROOT__
260#endif // __NO_STAR_DEPENDENCE_ALLOWED__
261
262
263
264void AliFemtoV0::SetHelixPos(const AliFmPhysicalHelixD& h){fHelixPos = h;}// Gael 12 Sept 02
265const AliFmPhysicalHelixD& AliFemtoV0::HelixPos() const {return fHelixPos;}// Gael 12 Sept 02
266void AliFemtoV0::SetHelixNeg(const AliFmPhysicalHelixD& h){fHelixNeg = h;}// Gael 12 Sept 02
267const AliFmPhysicalHelixD& AliFemtoV0::HelixNeg() const {return fHelixNeg;}// Gael 12 Sept 02
268
269void AliFemtoV0::SetHiddenInfo(AliFemtoHiddenInfo* aHiddenInfo) {fHiddenInfo=aHiddenInfo;}
270bool AliFemtoV0::ValidHiddenInfo() const { if (fHiddenInfo) return true; else return false; }
271AliFemtoHiddenInfo* AliFemtoV0::getHiddenInfo() const {return fHiddenInfo;}
272