StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StHbtXi.hh
1 /***********************************************************************
2  *
3  * StHbtXi.hh,v 1.0 1999/09/07
4  *
5  * Authors: Frank Laue
6  *
7  ***********************************************************************
8  *
9  * Description: Xi class with members copied from StXihbtXi.hh
10  *
11  ***********************************************************************/
12 #ifndef StHbtXi_hh
13 #define StHbtXi_hh
14 
15 #include "Stiostream.h"
16 #include "StHbtMaker/Infrastructure/StHbtVector.hh" //same as in StHbtTrack.hh
17 #include "StHbtMaker/Infrastructure/StHbtV0.hh"
18 
19 #ifdef __ROOT__
20 #include "StStrangeMuDstMaker/StXiMuDst.hh"
21 #endif
22 
23 class StHbtTTreeEvent;
24 class StHbtTTreeXi;
25 
26 class StHbtXi : public StHbtV0 {
27 public:
28  StHbtXi(){/* no-op */}
29 #ifdef __ROOT__
30  StHbtXi(StXiMuDst&); // from strangeness Xi micro dst structure
31  StHbtXi(const StHbtTTreeEvent*, const StHbtTTreeXi*);
32 #endif
33  ~StHbtXi(){/* no-op */}
34 
35  void UpdateXi();
36  float decayLengthXi() const; // 3-d decay distance
37  StHbtThreeVector decayVertexXi() const; // Coordinates of decay vertex
38  float decayVertexXiX() const; // Coordinates of decay vertex
39  float decayVertexXiY() const; // Coordinates of decay vertex
40  float decayVertexXiZ() const; // Coordinates of decay vertex
41  float dcaXiDaughters() const; // DCA of xi daughters at decay vertex
42  float dcaXiToPrimVertex() const; // DCA of xi to primary vertex
43  float dcaBacToPrimVertex() const; // DCA of bachelor xi daughter to pri vertex
44  StHbtThreeVector momBac() const; // Momentum components of bac. daughter
45  float momBacX() const; // Momentum components of bac. daughter
46  float momBacY() const; // Momentum components of bac. daughter
47  float momBacZ() const; // Momentum components of bac. daughter
48 
49  int tpcHitsBac() const; // Number of TPC hits on bac. daughter
50  unsigned long trackTopologyMapBac(unsigned int) const;
51 
52  StHbtThreeVector momXi() const ; // Momentum components of Xi
53  float momXiX() const ; // Momentum components of Xi
54  float momXiY() const ; // Momentum components of Xi
55  float momXiZ() const ; // Momentum components of Xi
56  float alphaXi() const ; // Armenteros-Podolanski variable
57  float ptArmXi() const ; // Armenteros-Podolanski variable
58  float eXi() const ; // Energy assuming xi hypothesis
59  float eOmega() const ; // Energy assuming omega hypothesis
60  float eBacKaon() const ; // Energy of bac. daughter assuming kaon
61  float eBacPion() const ; // Energy of bac. daughter assuming pion
62  float massXi() const ; // Mass assuming Xi hypothesis
63  float massOmega() const ; // Mass assuming Omega hypothesis
64  float rapXi() const ; // Rapidity assuming (anti) xi
65  float rapOmega() const ; // Rapidity assuming (anti) omega
66  float cTauXi() const ; // Lifetime (ctau) const assuming (anti) xi
67  float cTauOmega() const ; // Lifetime (ctau) const assuming (anti) omega
68  float ptXi() const ; // Transverse momentum
69  float ptotXi() const ; // Total momentum
70  float ptBac() const ; // Transverse momentum of bac. daughter
71  float ptotBac() const ; // Total momentum of bac. daughter
72  float dedxBac() const; // dedx of Bac track
73  unsigned short idBac() const; // Id of bac. track
74  unsigned short keyBac() const; // Id of bac. track
75 
76  void SetdecayLengthXi(const float);
77  void SetdecayVertexXi(const StHbtThreeVector);
78  void SetdecayVertexXiX(const float);
79  void SetdecayVertexXiY(const float);
80  void SetdecayVertexXiZ(const float);
81  void SetdcaXiDaughters(const float);
82  void SetdcaXiToPrimVertex(const float);
83  void SetdcaBacToPrimVertex(const float);
84  void SetmomBac(const StHbtThreeVector);
85  void SetmomBacX(const float);
86  void SetmomBacY(const float);
87  void SetmomBacZ(const float);
88 
89  void SettpcHitsBac(const int&);
90 
91  void SetTrackTopologyMapBac(unsigned int, const unsigned long&);
92 
93  void SetmomXi( StHbtThreeVector);
94  void SetmomXiX( float);
95  void SetmomXiY( float);
96  void SetmomXiZ( float);
97  void SetalphaXi( float);
98  void SetptArmXi( float);
99  void SeteXi( float);
100  void SeteOmega( float);
101  void SeteBacPion( float);
102  void SeteBacKaon( float);
103  void SetmassXi( float);
104  void SetmassOmega( float);
105  void SetrapXi( float);
106  void SetrapOmega( float);
107  void SetcTauXi( float);
108  void SetcTauOmega( float);
109  void SetptXi( float);
110  void SetptotXi( float);
111  void SetptBac( float);
112  void SetptotBac( float);
113  void SetidBac(const unsigned short&);
114  void SetdedxBac(float);
115  void SetkeyBac(const unsigned short&);
116 
117 // friend ostream& operator<<(ostream& out, StHbtXi& v0);
118 // friend istream& operator>>(istream& in, StHbtXi& v0);
119 
120  friend class StHbtIOBinary;
121  friend class StHbtTTreeXi;
122 
123 protected:
124  int mCharge;
125  float mDecayLengthXi;
126  StHbtThreeVector mDecayVertexXi;
127  float mDcaXiDaughters;
128  float mDcaXiToPrimVertex;
129  float mDcaBachelorToPrimVertex;
130  StHbtThreeVector mMomBachelor;
131 
132  unsigned int mTopologyMapBachelor[2];
133  unsigned short mKeyBachelor;
134 
135  int mTpcHitsBac;
136 
137  float mChi2Xi;
138  float mClXi;
139  float mChi2Bachelor;
140  float mClBachelor;
141 
142  float mDedxBachelor;
143  unsigned short mNumDedxBachelor;
144 
145  // the following variables are not in the persistent version and can be calculated via UpdateXi();
146  StHbtThreeVector mMomXi;
147  float mAlphaXi;
148  float mPtArmXi;
149 
150  float mEXi;
151  float mEOmega;
152  float mEBacPion;
153  float mEBacKaon;
154  float mMassXi;
155  float mMassOmega;
156  float mRapXi;
157  float mRapOmega;
158  float mCTauXi;
159  float mCTauOmega;
160  float mPtXi;
161  float mPtotXi;
162  float mPtBac;
163  float mPtotBac;
164 
165  unsigned short mKeyBac;
166 };
167 
168 inline float StHbtXi::decayLengthXi() const { return mDecayLengthXi; }
169 inline StHbtThreeVector StHbtXi::decayVertexXi() const { return mDecayVertexXi; }
170 inline float StHbtXi::decayVertexXiX() const { return mDecayVertexXi.x(); }
171 inline float StHbtXi::decayVertexXiY() const { return mDecayVertexXi.y(); }
172 inline float StHbtXi::decayVertexXiZ() const { return mDecayVertexXi.z(); }
173 inline float StHbtXi::dcaXiDaughters() const { return mDcaXiDaughters; }
174 inline float StHbtXi::dcaXiToPrimVertex() const { return mDcaXiToPrimVertex; }
175 inline float StHbtXi::dcaBacToPrimVertex() const { return mDcaBachelorToPrimVertex; }
176 inline StHbtThreeVector StHbtXi::momBac() const { return mMomBachelor; }
177 inline float StHbtXi::momBacX() const { return mMomBachelor.x(); }
178 inline float StHbtXi::momBacY() const { return mMomBachelor.y(); }
179 inline float StHbtXi::momBacZ() const { return mMomBachelor.z(); }
180 inline StHbtThreeVector StHbtXi::momXi() const { return mMomXi; }
181 inline float StHbtXi::momXiX() const { return mMomXi.x(); }
182 inline float StHbtXi::momXiY() const { return mMomXi.y(); }
183 inline float StHbtXi::momXiZ() const { return mMomXi.z(); }
184 inline float StHbtXi::alphaXi() const { return mAlphaXi; }
185 inline float StHbtXi::ptArmXi() const {return mPtArmXi;}
186 inline float StHbtXi::eXi() const {return mEXi;}
187 inline float StHbtXi::eOmega() const {return mEOmega;}
188 inline float StHbtXi::eBacPion() const {return mEBacPion;}
189 inline float StHbtXi::eBacKaon() const {return mEBacKaon;}
190 inline float StHbtXi::massXi() const {return mMassXi;}
191 inline float StHbtXi::massOmega() const {return mMassOmega;}
192 inline float StHbtXi::rapXi() const {return mRapXi;}
193 inline float StHbtXi::rapOmega() const {return mRapOmega;}
194 inline float StHbtXi::cTauXi() const {return mCTauXi;}
195 inline float StHbtXi::cTauOmega() const {return mCTauOmega;}
196 inline float StHbtXi::ptXi() const {return mPtXi;}
197 inline float StHbtXi::ptotXi() const {return mPtotXi;}
198 inline float StHbtXi::ptBac() const {return mPtBac;}
199 inline float StHbtXi::ptotBac() const {return mPtotBac;}
200 inline int StHbtXi::tpcHitsBac() const
201  { return mTpcHitsBac; }
202 inline float StHbtXi::dedxBac() const {return mDedxBachelor;}
203 
204 inline unsigned long StHbtXi::trackTopologyMapBac(unsigned int word) const { return mTopologyMapBachelor[word]; }
205 inline unsigned short StHbtXi::idBac() const { return mKeyBac; };
206 inline unsigned short StHbtXi::keyBac() const { return mKeyBac; }
207 
208 inline void StHbtXi::SetdecayLengthXi(const float x){ mDecayLengthXi= x;}
209 inline void StHbtXi::SetdecayVertexXiX(const float x){ mDecayVertexXi.setX(x);}
210 inline void StHbtXi::SetdecayVertexXiY(const float x){ mDecayVertexXi.setY(x);}
211 inline void StHbtXi::SetdecayVertexXiZ(const float x){ mDecayVertexXi.setZ(x);}
212 inline void StHbtXi::SetdecayVertexXi(const StHbtThreeVector v){ mDecayVertexXi = v; }
213 inline void StHbtXi::SetdcaXiDaughters(const float x){mDcaXiDaughters= x;}
214 inline void StHbtXi::SetdcaXiToPrimVertex(const float x){mDcaXiToPrimVertex= x;}
215 inline void StHbtXi::SetdcaBacToPrimVertex(const float x){ mDcaBachelorToPrimVertex = x;}
216 inline void StHbtXi::SetmomBac(const StHbtThreeVector v){mMomBachelor = v; }
217 inline void StHbtXi::SetmomBacX(const float x){mMomBachelor.setX(x);}
218 inline void StHbtXi::SetmomBacY(const float x){mMomBachelor.setY(x);}
219 inline void StHbtXi::SetmomBacZ(const float x){mMomBachelor.setZ(x);}
220 inline void StHbtXi::SetTrackTopologyMapBac(unsigned int word, const unsigned long& m){mTopologyMapBachelor[word]=m;}
221 inline void StHbtXi::SetmomXi(StHbtThreeVector v){mMomXi= v; }
222 inline void StHbtXi::SetmomXiX(const float x){mMomXi.setX(x);}
223 inline void StHbtXi::SetmomXiY(const float x){mMomXi.setY(x);}
224 inline void StHbtXi::SetmomXiZ(const float x){mMomXi.setZ(x);}
225 
226 inline void StHbtXi::SetalphaXi( float x){mAlphaXi= x;}
227 inline void StHbtXi::SetptArmXi( float x){mPtArmXi = x;}
228 inline void StHbtXi::SeteXi( float x){mEXi= x;}
229 inline void StHbtXi::SeteOmega( float x){mEOmega= x;}
230 inline void StHbtXi::SeteBacPion( float x){mEBacPion= x;}
231 inline void StHbtXi::SeteBacKaon( float x){mEBacKaon= x;}
232 inline void StHbtXi::SetmassXi( float x){mMassXi = x;}
233 inline void StHbtXi::SetmassOmega( float x){mMassOmega= x;}
234 inline void StHbtXi::SetrapXi( float x){mRapXi= x;}
235 inline void StHbtXi::SetrapOmega( float x){mRapOmega = x;}
236 inline void StHbtXi::SetcTauXi( float x){mCTauXi = x;}
237 inline void StHbtXi::SetcTauOmega( float x){mCTauOmega = x;}
238 inline void StHbtXi::SetptXi( float x){mPtXi = x;}
239 inline void StHbtXi::SetptotXi( float x){mPtotXi = x;}
240 inline void StHbtXi::SetptBac( float x){mPtBac = x;}
241 inline void StHbtXi::SetptotBac( float x){mPtotBac = x;}
242 inline void StHbtXi::SetidBac(const unsigned short& s){ mKeyBac= s;}
243 inline void StHbtXi::SetkeyBac(const unsigned short& s){ mKeyBac= s;}
244 inline void StHbtXi::SettpcHitsBac(const int& i){mTpcHitsBac=i;}
245 inline void StHbtXi::SetdedxBac(float x){mDedxBachelor=x;}
246 
247 #endif
248 
249 
250 /***********************************************************************
251  *
252  * $Log: StHbtXi.hh,v $
253  * Revision 1.3 2003/09/02 17:58:33 perev
254  * gcc 3.2 updates + WarnOff
255  *
256  * Revision 1.2 2001/12/05 15:10:33 laue
257  * Boris' updates (mainly access functions)
258  *
259  *
260  ***********************************************************************/
261 
262 
263 
264 
265 
266 
267 
268 
269 
270 
271 
272 
273 
274 
275 
276