1 ///////////////////////////////////////////////////////////////////////////
3 // AliFemtoXi: special type of particle desling with the specifics //
4 // of the Xi type of particle //
6 ///////////////////////////////////////////////////////////////////////////
10 #include "AliFemtoVector.h" //same as in AliFemtoTrack.h
11 #include "AliFemtoV0.h"
14 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
15 #include "StStrangeMuDstMaker/StXiMuDst.h"
19 class AliFemtoXi : public AliFemtoV0 {
23 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
24 AliFemtoXi(StXiMuDst&); // from strangeness Xi micro dst structure
27 virtual ~AliFemtoXi(){/* no-op */}
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
43 int TpcHitsBac() const; // Number of TPC hits on bac. daughter
44 unsigned long TrackTopologyMapBac(unsigned int i) const;
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
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);
83 void SettpcHitsBac(const int& word);
85 void SetTrackTopologyMapBac(unsigned int word, const unsigned long& m);
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);
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
121 unsigned int fTopologyMapBachelor[2]; // TPC topology map for the bachelor
122 unsigned short fKeyBachelor; // Unique key for the bachelor
124 int fTpcHitsBac; // Number of TPC hits for bachelor
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
131 float fDedxBachelor; // dEdx for bachelor
132 unsigned short fNufDedxBachelor; // dEdx for bachelor
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
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
154 unsigned short fKeyBac; // Key of bac. track
157 inline float AliFemtoXi::DecayLengthXi() const { return fDecayLengthXi; }
158 inline AliFemtoThreeVector AliFemtoXi::DecayVertexXi() const { return fDecayVertexXi; }
159 inline float AliFemtoXi::DecayVertexXiX() const { return fDecayVertexXi.x(); }
160 inline float AliFemtoXi::DecayVertexXiY() const { return fDecayVertexXi.y(); }
161 inline float AliFemtoXi::DecayVertexXiZ() const { return fDecayVertexXi.z(); }
162 inline float AliFemtoXi::DcaXiDaughters() const { return fDcaXiDaughters; }
163 inline float AliFemtoXi::DcaXiToPrimVertex() const { return fDcaXiToPrimVertex; }
164 inline float AliFemtoXi::DcaBacToPrimVertex() const { return fDcaBachelorToPrimVertex; }
165 inline AliFemtoThreeVector AliFemtoXi::MomBac() const { return fMomBachelor; }
166 inline float AliFemtoXi::MomBacX() const { return fMomBachelor.x(); }
167 inline float AliFemtoXi::MomBacY() const { return fMomBachelor.y(); }
168 inline float AliFemtoXi::MomBacZ() const { return fMomBachelor.z(); }
169 inline AliFemtoThreeVector AliFemtoXi::MomXi() const { return fMomXi; }
170 inline float AliFemtoXi::MomXiX() const { return fMomXi.x(); }
171 inline float AliFemtoXi::MomXiY() const { return fMomXi.y(); }
172 inline float AliFemtoXi::MomXiZ() const { return fMomXi.z(); }
173 inline float AliFemtoXi::AlphaXi() const { return fAlphaXi; }
174 inline float AliFemtoXi::PtArmXi() const {return fPtArmXi;}
175 inline float AliFemtoXi::EXi() const {return fEXi;}
176 inline float AliFemtoXi::EOmega() const {return fEOmega;}
177 inline float AliFemtoXi::EBacPion() const {return fEBacPion;}
178 inline float AliFemtoXi::EBacKaon() const {return fEBacKaon;}
179 inline float AliFemtoXi::MassXi() const {return fMassXi;}
180 inline float AliFemtoXi::MassOmega() const {return fMassOmega;}
181 inline float AliFemtoXi::RapXi() const {return fRapXi;}
182 inline float AliFemtoXi::RapOmega() const {return fRapOmega;}
183 inline float AliFemtoXi::CTauXi() const {return fCTauXi;}
184 inline float AliFemtoXi::CTauOmega() const {return fCTauOmega;}
185 inline float AliFemtoXi::PtXi() const {return fPtXi;}
186 inline float AliFemtoXi::PtotXi() const {return fPtotXi;}
187 inline float AliFemtoXi::PtBac() const {return fPtBac;}
188 inline float AliFemtoXi::PtotBac() const {return fPtotBac;}
189 inline int AliFemtoXi::TpcHitsBac() const
190 { return fTpcHitsBac; }
191 inline float AliFemtoXi::DedxBac() const {return fDedxBachelor;}
193 inline unsigned long AliFemtoXi::TrackTopologyMapBac(unsigned int word) const { return fTopologyMapBachelor[word]; }
194 inline unsigned short AliFemtoXi::IdBac() const { return fKeyBac; }
195 inline unsigned short AliFemtoXi::KeyBac() const { return fKeyBac; }
197 inline void AliFemtoXi::SetdecayLengthXi(const float x){ fDecayLengthXi= x;}
198 inline void AliFemtoXi::SetdecayVertexXiX(const float x){ fDecayVertexXi.SetX(x);}
199 inline void AliFemtoXi::SetdecayVertexXiY(const float x){ fDecayVertexXi.SetY(x);}
200 inline void AliFemtoXi::SetdecayVertexXiZ(const float x){ fDecayVertexXi.SetZ(x);}
201 inline void AliFemtoXi::SetdecayVertexXi(const AliFemtoThreeVector v){ fDecayVertexXi = v; }
202 inline void AliFemtoXi::SetdcaXiDaughters(const float x){fDcaXiDaughters= x;}
203 inline void AliFemtoXi::SetdcaXiToPrimVertex(const float x){fDcaXiToPrimVertex= x;}
204 inline void AliFemtoXi::SetdcaBacToPrimVertex(const float x){ fDcaBachelorToPrimVertex = x;}
205 inline void AliFemtoXi::SetmomBac(const AliFemtoThreeVector v){fMomBachelor = v; }
206 inline void AliFemtoXi::SetmomBacX(const float x){fMomBachelor.SetX(x);}
207 inline void AliFemtoXi::SetmomBacY(const float x){fMomBachelor.SetY(x);}
208 inline void AliFemtoXi::SetmomBacZ(const float x){fMomBachelor.SetZ(x);}
209 inline void AliFemtoXi::SetTrackTopologyMapBac(unsigned int word, const unsigned long& m){fTopologyMapBachelor[word]=m;}
210 inline void AliFemtoXi::SetmomXi(AliFemtoThreeVector v){fMomXi= v; }
211 inline void AliFemtoXi::SetmomXiX(const float x){fMomXi.SetX(x);}
212 inline void AliFemtoXi::SetmomXiY(const float x){fMomXi.SetY(x);}
213 inline void AliFemtoXi::SetmomXiZ(const float x){fMomXi.SetZ(x);}
215 inline void AliFemtoXi::SetalphaXi( float x){fAlphaXi= x;}
216 inline void AliFemtoXi::SetptArmXi( float x){fPtArmXi = x;}
217 inline void AliFemtoXi::SeteXi( float x){fEXi= x;}
218 inline void AliFemtoXi::SeteOmega( float x){fEOmega= x;}
219 inline void AliFemtoXi::SeteBacPion( float x){fEBacPion= x;}
220 inline void AliFemtoXi::SeteBacKaon( float x){fEBacKaon= x;}
221 inline void AliFemtoXi::SetmassXi( float x){fMassXi = x;}
222 inline void AliFemtoXi::SetmassOmega( float x){fMassOmega= x;}
223 inline void AliFemtoXi::SetrapXi( float x){fRapXi= x;}
224 inline void AliFemtoXi::SetrapOmega( float x){fRapOmega = x;}
225 inline void AliFemtoXi::SetcTauXi( float x){fCTauXi = x;}
226 inline void AliFemtoXi::SetcTauOmega( float x){fCTauOmega = x;}
227 inline void AliFemtoXi::SetptXi( float x){fPtXi = x;}
228 inline void AliFemtoXi::SetptotXi( float x){fPtotXi = x;}
229 inline void AliFemtoXi::SetptBac( float x){fPtBac = x;}
230 inline void AliFemtoXi::SetptotBac( float x){fPtotBac = x;}
231 inline void AliFemtoXi::SetidBac(const unsigned short& s){ fKeyBac= s;}
232 inline void AliFemtoXi::SetkeyBac(const unsigned short& s){ fKeyBac= s;}
233 inline void AliFemtoXi::SettpcHitsBac(const int& i){fTpcHitsBac=i;}
234 inline void AliFemtoXi::SetdedxBac(float x){fDedxBachelor=x;}
239 /***********************************************************************
242 * Revision 1.1.2.1 2007/10/05 09:38:17 akisiel
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
248 * Revision 1.2 2007/05/03 09:42:29 akisiel
249 * Fixing Effective C++ warnings
251 * Revision 1.1.1.1 2007/04/25 15:38:41 panos
252 * Importing the HBT code dir
254 * Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
255 * First version on CVS
257 * Revision 1.3 2003/09/02 17:58:33 perev
258 * gcc 3.2 updates + WarnOff
260 * Revision 1.2 2001/12/05 15:10:33 laue
261 * Boris' updates (mainly access functions)
264 ***********************************************************************/