Lines getting the matched track moved to a method in AliCalorimeterUtils. Lines copie...
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoXi.h
CommitLineData
d0e92d9a 1///////////////////////////////////////////////////////////////////////////
2// //
3// AliFemtoXi: special type of particle desling with the specifics //
4// of the Xi type of particle //
5// //
6///////////////////////////////////////////////////////////////////////////
7#ifndef ALIFEMTOXI_H
8#define ALIFEMTOXI_H
9
10#include "AliFemtoVector.h" //same as in AliFemtoTrack.h
11#include "AliFemtoV0.h"
12
13#ifdef __ROOT__
14#ifndef __NO_STAR_DEPENDENCE_ALLOWED__
15#include "StStrangeMuDstMaker/StXiMuDst.h"
16#endif
17#endif
18
19class AliFemtoXi : public AliFemtoV0 {
20public:
21 AliFemtoXi();
22#ifdef __ROOT__
23#ifndef __NO_STAR_DEPENDENCE_ALLOWED__
24 AliFemtoXi(StXiMuDst&); // from strangeness Xi micro dst structure
25#endif
26#endif
27 virtual ~AliFemtoXi(){/* no-op */}
28
29 void UpdateXi();
30 float DecayLengthXi() const; // 3-d decay distance
31 AliFemtoThreeVector DecayVertexXi() const; // Coordinates of decay vertex
32 float DecayVertexXiX() const; // Coordinates of decay vertex
33 float DecayVertexXiY() const; // Coordinates of decay vertex
34 float DecayVertexXiZ() const; // Coordinates of decay vertex
35 float DcaXiDaughters() const; // DCA of xi daughters at decay vertex
36 float DcaXiToPrimVertex() const; // DCA of xi to primary vertex
37 float DcaBacToPrimVertex() const; // DCA of bachelor xi daughter to pri vertex
38 AliFemtoThreeVector MomBac() const; // Momentum components of bac. daughter
39 float MomBacX() const; // Momentum components of bac. daughter
40 float MomBacY() const; // Momentum components of bac. daughter
41 float MomBacZ() const; // Momentum components of bac. daughter
42
43 int TpcHitsBac() const; // Number of TPC hits on bac. daughter
44 unsigned long TrackTopologyMapBac(unsigned int i) const;
45
46 AliFemtoThreeVector MomXi() const ; // Momentum components of Xi
47 float MomXiX() const ; // Momentum components of Xi
48 float MomXiY() const ; // Momentum components of Xi
49 float MomXiZ() const ; // Momentum components of Xi
50 float AlphaXi() const ; // Armenteros-Podolanski variable
51 float PtArmXi() const ; // Armenteros-Podolanski variable
52 float EXi() const ; // Energy assuming xi hypothesis
53 float EOmega() const ; // Energy assuming omega hypothesis
54 float EBacKaon() const ; // Energy of bac. daughter assuming kaon
55 float EBacPion() const ; // Energy of bac. daughter assuming pion
56 float MassXi() const ; // Mass assuming Xi hypothesis
57 float MassOmega() const ; // Mass assuming Omega hypothesis
58 float RapXi() const ; // Rapidity assuming (anti) xi
59 float RapOmega() const ; // Rapidity assuming (anti) omega
60 float CTauXi() const ; // Lifetime (ctau) const assuming (anti) xi
61 float CTauOmega() const ; // Lifetime (ctau) const assuming (anti) omega
62 float PtXi() const ; // Transverse momentum
63 float PtotXi() const ; // Total momentum
64 float PtBac() const ; // Transverse momentum of bac. daughter
65 float PtotBac() const ; // Total momentum of bac. daughter
66 float DedxBac() const; // dedx of Bac track
67 unsigned short IdBac() const; // Id of bac. track
68 unsigned short KeyBac() const; // Id of bac. track
69
70 void SetdecayLengthXi(const float x);
71 void SetdecayVertexXi(const AliFemtoThreeVector v);
72 void SetdecayVertexXiX(const float x);
73 void SetdecayVertexXiY(const float x);
74 void SetdecayVertexXiZ(const float x);
75 void SetdcaXiDaughters(const float x);
76 void SetdcaXiToPrimVertex(const float x);
77 void SetdcaBacToPrimVertex(const float x);
78 void SetmomBac(const AliFemtoThreeVector v);
79 void SetmomBacX(const float x);
80 void SetmomBacY(const float x);
81 void SetmomBacZ(const float x);
82
83 void SettpcHitsBac(const int& word);
84
85 void SetTrackTopologyMapBac(unsigned int word, const unsigned long& m);
86
87 void SetmomXi( AliFemtoThreeVector v);
88 void SetmomXiX( float x);
89 void SetmomXiY( float x);
90 void SetmomXiZ( float x);
91 void SetalphaXi( float x);
92 void SetptArmXi( float x);
93 void SeteXi( float x);
94 void SeteOmega( float x);
95 void SeteBacPion( float x);
96 void SeteBacKaon( float x);
97 void SetmassXi( float x);
98 void SetmassOmega( float x);
99 void SetrapXi( float x);
100 void SetrapOmega( float x);
101 void SetcTauXi( float x);
102 void SetcTauOmega( float x);
103 void SetptXi( float x);
104 void SetptotXi( float x);
105 void SetptBac( float x);
106 void SetptotBac( float x);
107 void SetidBac(const unsigned short& s);
108 void SetdedxBac(float x);
109 void SetkeyBac(const unsigned short& s);
110
111
112protected:
113 int fCharge; // Charge
114 float fDecayLengthXi; // Decay Length of th Xi
115 AliFemtoThreeVector fDecayVertexXi; // Xi decay vertex location
116 float fDcaXiDaughters; // Dca of Xi daughters
117 float fDcaXiToPrimVertex; // Dca of Xi to primary vertex
118 float fDcaBachelorToPrimVertex; // Dca of bachelor to primary vertex
119 AliFemtoThreeVector fMomBachelor; // Momentum of the bachelor
120
121 unsigned int fTopologyMapBachelor[2]; // TPC topology map for the bachelor
122 unsigned short fKeyBachelor; // Unique key for the bachelor
123
124 int fTpcHitsBac; // Number of TPC hits for bachelor
125
126 float fChi2Xi; // Fit quality for Xi
127 float fClXi; // Confidence level for Xi
128 float fChi2Bachelor; // Fit quality for bachelor
129 float fClBachelor; // Confidence level for bachelor
130
131 float fDedxBachelor; // dEdx for bachelor
132 unsigned short fNufDedxBachelor; // dEdx for bachelor
133
134 // the following variables are not in the persistent version and can be calculated via UpdateXi();
135 AliFemtoThreeVector fMomXi; // Momentum of the Xi
136 float fAlphaXi; // Armenteros-Podolanski variable
137 float fPtArmXi; // Armenteros-Podolanski variable
138
139 float fEXi; // Energy assuming xi hypothesis
140 float fEOmega; // Energy assuming omega hypothesis
141 float fEBacPion; // Energy of bac. daughter assuming kaon
142 float fEBacKaon; // Energy of bac. daughter assuming pion
143 float fMassXi; // Mass assuming Xi hypothesis
144 float fMassOmega; // Mass assuming Omega hypothesis
145 float fRapXi; // Rapidity assuming (anti) xi
146 float fRapOmega; // Rapidity assuming (anti) omega
147 float fCTauXi; // Lifetime (ctau) const assuming (anti) xi
148 float fCTauOmega; // Lifetime (ctau) const assuming (anti) omega
149 float fPtXi; // Transverse momentum
150 float fPtotXi; // Total momentum
151 float fPtBac; // Transverse momentum of bac. daughter
152 float fPtotBac; // Total momentum of bac. daughter
153
154 unsigned short fKeyBac; // Key of bac. track
155};
156
157inline float AliFemtoXi::DecayLengthXi() const { return fDecayLengthXi; }
158inline AliFemtoThreeVector AliFemtoXi::DecayVertexXi() const { return fDecayVertexXi; }
159inline float AliFemtoXi::DecayVertexXiX() const { return fDecayVertexXi.x(); }
160inline float AliFemtoXi::DecayVertexXiY() const { return fDecayVertexXi.y(); }
161inline float AliFemtoXi::DecayVertexXiZ() const { return fDecayVertexXi.z(); }
162inline float AliFemtoXi::DcaXiDaughters() const { return fDcaXiDaughters; }
163inline float AliFemtoXi::DcaXiToPrimVertex() const { return fDcaXiToPrimVertex; }
164inline float AliFemtoXi::DcaBacToPrimVertex() const { return fDcaBachelorToPrimVertex; }
165inline AliFemtoThreeVector AliFemtoXi::MomBac() const { return fMomBachelor; }
166inline float AliFemtoXi::MomBacX() const { return fMomBachelor.x(); }
167inline float AliFemtoXi::MomBacY() const { return fMomBachelor.y(); }
168inline float AliFemtoXi::MomBacZ() const { return fMomBachelor.z(); }
169inline AliFemtoThreeVector AliFemtoXi::MomXi() const { return fMomXi; }
170inline float AliFemtoXi::MomXiX() const { return fMomXi.x(); }
171inline float AliFemtoXi::MomXiY() const { return fMomXi.y(); }
172inline float AliFemtoXi::MomXiZ() const { return fMomXi.z(); }
173inline float AliFemtoXi::AlphaXi() const { return fAlphaXi; }
174inline float AliFemtoXi::PtArmXi() const {return fPtArmXi;}
175inline float AliFemtoXi::EXi() const {return fEXi;}
176inline float AliFemtoXi::EOmega() const {return fEOmega;}
177inline float AliFemtoXi::EBacPion() const {return fEBacPion;}
178inline float AliFemtoXi::EBacKaon() const {return fEBacKaon;}
179inline float AliFemtoXi::MassXi() const {return fMassXi;}
180inline float AliFemtoXi::MassOmega() const {return fMassOmega;}
181inline float AliFemtoXi::RapXi() const {return fRapXi;}
182inline float AliFemtoXi::RapOmega() const {return fRapOmega;}
183inline float AliFemtoXi::CTauXi() const {return fCTauXi;}
184inline float AliFemtoXi::CTauOmega() const {return fCTauOmega;}
185inline float AliFemtoXi::PtXi() const {return fPtXi;}
186inline float AliFemtoXi::PtotXi() const {return fPtotXi;}
187inline float AliFemtoXi::PtBac() const {return fPtBac;}
188inline float AliFemtoXi::PtotBac() const {return fPtotBac;}
189inline int AliFemtoXi::TpcHitsBac() const
190 { return fTpcHitsBac; }
191inline float AliFemtoXi::DedxBac() const {return fDedxBachelor;}
192
193inline unsigned long AliFemtoXi::TrackTopologyMapBac(unsigned int word) const { return fTopologyMapBachelor[word]; }
ea77036b 194inline unsigned short AliFemtoXi::IdBac() const { return fKeyBac; }
d0e92d9a 195inline unsigned short AliFemtoXi::KeyBac() const { return fKeyBac; }
196
197inline void AliFemtoXi::SetdecayLengthXi(const float x){ fDecayLengthXi= x;}
a19edcc9 198inline void AliFemtoXi::SetdecayVertexXiX(const float x){ fDecayVertexXi.SetX(x);}
199inline void AliFemtoXi::SetdecayVertexXiY(const float x){ fDecayVertexXi.SetY(x);}
200inline void AliFemtoXi::SetdecayVertexXiZ(const float x){ fDecayVertexXi.SetZ(x);}
d0e92d9a 201inline void AliFemtoXi::SetdecayVertexXi(const AliFemtoThreeVector v){ fDecayVertexXi = v; }
202inline void AliFemtoXi::SetdcaXiDaughters(const float x){fDcaXiDaughters= x;}
203inline void AliFemtoXi::SetdcaXiToPrimVertex(const float x){fDcaXiToPrimVertex= x;}
204inline void AliFemtoXi::SetdcaBacToPrimVertex(const float x){ fDcaBachelorToPrimVertex = x;}
205inline void AliFemtoXi::SetmomBac(const AliFemtoThreeVector v){fMomBachelor = v; }
a19edcc9 206inline void AliFemtoXi::SetmomBacX(const float x){fMomBachelor.SetX(x);}
207inline void AliFemtoXi::SetmomBacY(const float x){fMomBachelor.SetY(x);}
208inline void AliFemtoXi::SetmomBacZ(const float x){fMomBachelor.SetZ(x);}
d0e92d9a 209inline void AliFemtoXi::SetTrackTopologyMapBac(unsigned int word, const unsigned long& m){fTopologyMapBachelor[word]=m;}
210inline void AliFemtoXi::SetmomXi(AliFemtoThreeVector v){fMomXi= v; }
a19edcc9 211inline void AliFemtoXi::SetmomXiX(const float x){fMomXi.SetX(x);}
212inline void AliFemtoXi::SetmomXiY(const float x){fMomXi.SetY(x);}
213inline void AliFemtoXi::SetmomXiZ(const float x){fMomXi.SetZ(x);}
d0e92d9a 214
215inline void AliFemtoXi::SetalphaXi( float x){fAlphaXi= x;}
216inline void AliFemtoXi::SetptArmXi( float x){fPtArmXi = x;}
217inline void AliFemtoXi::SeteXi( float x){fEXi= x;}
218inline void AliFemtoXi::SeteOmega( float x){fEOmega= x;}
219inline void AliFemtoXi::SeteBacPion( float x){fEBacPion= x;}
220inline void AliFemtoXi::SeteBacKaon( float x){fEBacKaon= x;}
221inline void AliFemtoXi::SetmassXi( float x){fMassXi = x;}
222inline void AliFemtoXi::SetmassOmega( float x){fMassOmega= x;}
223inline void AliFemtoXi::SetrapXi( float x){fRapXi= x;}
224inline void AliFemtoXi::SetrapOmega( float x){fRapOmega = x;}
225inline void AliFemtoXi::SetcTauXi( float x){fCTauXi = x;}
226inline void AliFemtoXi::SetcTauOmega( float x){fCTauOmega = x;}
227inline void AliFemtoXi::SetptXi( float x){fPtXi = x;}
228inline void AliFemtoXi::SetptotXi( float x){fPtotXi = x;}
229inline void AliFemtoXi::SetptBac( float x){fPtBac = x;}
230inline void AliFemtoXi::SetptotBac( float x){fPtotBac = x;}
231inline void AliFemtoXi::SetidBac(const unsigned short& s){ fKeyBac= s;}
232inline void AliFemtoXi::SetkeyBac(const unsigned short& s){ fKeyBac= s;}
233inline void AliFemtoXi::SettpcHitsBac(const int& i){fTpcHitsBac=i;}
234inline void AliFemtoXi::SetdedxBac(float x){fDedxBachelor=x;}
235
236#endif
237
238
239/***********************************************************************
240 *
241 * $Log$
ea77036b 242 * Revision 1.1.2.1 2007/10/05 09:38:17 akisiel
243 * Fix stray colons
244 *
245 * Revision 1.1 2007/05/16 10:22:12 akisiel
246 * Making the directory structure of AliFemto flat. All files go into one common directory
247 *
d0e92d9a 248 * Revision 1.2 2007/05/03 09:42:29 akisiel
249 * Fixing Effective C++ warnings
250 *
251 * Revision 1.1.1.1 2007/04/25 15:38:41 panos
252 * Importing the HBT code dir
253 *
254 * Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
255 * First version on CVS
256 *
257 * Revision 1.3 2003/09/02 17:58:33 perev
258 * gcc 3.2 updates + WarnOff
259 *
260 * Revision 1.2 2001/12/05 15:10:33 laue
261 * Boris' updates (mainly access functions)
262 *
263 *
264 ***********************************************************************/
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280