00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef StHbtXi_hh
00013 #define StHbtXi_hh
00014
00015 #include "Stiostream.h"
00016 #include "StHbtMaker/Infrastructure/StHbtVector.hh"
00017 #include "StHbtMaker/Infrastructure/StHbtV0.hh"
00018
00019 #ifdef __ROOT__
00020 #include "StStrangeMuDstMaker/StXiMuDst.hh"
00021 #endif
00022
00023 class StHbtTTreeEvent;
00024 class StHbtTTreeXi;
00025
00026 class StHbtXi : public StHbtV0 {
00027 public:
00028 StHbtXi(){}
00029 #ifdef __ROOT__
00030 StHbtXi(StXiMuDst&);
00031 StHbtXi(const StHbtTTreeEvent*, const StHbtTTreeXi*);
00032 #endif
00033 ~StHbtXi(){}
00034
00035 void UpdateXi();
00036 float decayLengthXi() const;
00037 StHbtThreeVector decayVertexXi() const;
00038 float decayVertexXiX() const;
00039 float decayVertexXiY() const;
00040 float decayVertexXiZ() const;
00041 float dcaXiDaughters() const;
00042 float dcaXiToPrimVertex() const;
00043 float dcaBacToPrimVertex() const;
00044 StHbtThreeVector momBac() const;
00045 float momBacX() const;
00046 float momBacY() const;
00047 float momBacZ() const;
00048
00049 int tpcHitsBac() const;
00050 unsigned long trackTopologyMapBac(unsigned int) const;
00051
00052 StHbtThreeVector momXi() const ;
00053 float momXiX() const ;
00054 float momXiY() const ;
00055 float momXiZ() const ;
00056 float alphaXi() const ;
00057 float ptArmXi() const ;
00058 float eXi() const ;
00059 float eOmega() const ;
00060 float eBacKaon() const ;
00061 float eBacPion() const ;
00062 float massXi() const ;
00063 float massOmega() const ;
00064 float rapXi() const ;
00065 float rapOmega() const ;
00066 float cTauXi() const ;
00067 float cTauOmega() const ;
00068 float ptXi() const ;
00069 float ptotXi() const ;
00070 float ptBac() const ;
00071 float ptotBac() const ;
00072 float dedxBac() const;
00073 unsigned short idBac() const;
00074 unsigned short keyBac() const;
00075
00076 void SetdecayLengthXi(const float);
00077 void SetdecayVertexXi(const StHbtThreeVector);
00078 void SetdecayVertexXiX(const float);
00079 void SetdecayVertexXiY(const float);
00080 void SetdecayVertexXiZ(const float);
00081 void SetdcaXiDaughters(const float);
00082 void SetdcaXiToPrimVertex(const float);
00083 void SetdcaBacToPrimVertex(const float);
00084 void SetmomBac(const StHbtThreeVector);
00085 void SetmomBacX(const float);
00086 void SetmomBacY(const float);
00087 void SetmomBacZ(const float);
00088
00089 void SettpcHitsBac(const int&);
00090
00091 void SetTrackTopologyMapBac(unsigned int, const unsigned long&);
00092
00093 void SetmomXi( StHbtThreeVector);
00094 void SetmomXiX( float);
00095 void SetmomXiY( float);
00096 void SetmomXiZ( float);
00097 void SetalphaXi( float);
00098 void SetptArmXi( float);
00099 void SeteXi( float);
00100 void SeteOmega( float);
00101 void SeteBacPion( float);
00102 void SeteBacKaon( float);
00103 void SetmassXi( float);
00104 void SetmassOmega( float);
00105 void SetrapXi( float);
00106 void SetrapOmega( float);
00107 void SetcTauXi( float);
00108 void SetcTauOmega( float);
00109 void SetptXi( float);
00110 void SetptotXi( float);
00111 void SetptBac( float);
00112 void SetptotBac( float);
00113 void SetidBac(const unsigned short&);
00114 void SetdedxBac(float);
00115 void SetkeyBac(const unsigned short&);
00116
00117
00118
00119
00120 friend class StHbtIOBinary;
00121 friend class StHbtTTreeXi;
00122
00123 protected:
00124 int mCharge;
00125 float mDecayLengthXi;
00126 StHbtThreeVector mDecayVertexXi;
00127 float mDcaXiDaughters;
00128 float mDcaXiToPrimVertex;
00129 float mDcaBachelorToPrimVertex;
00130 StHbtThreeVector mMomBachelor;
00131
00132 unsigned int mTopologyMapBachelor[2];
00133 unsigned short mKeyBachelor;
00134
00135 int mTpcHitsBac;
00136
00137 float mChi2Xi;
00138 float mClXi;
00139 float mChi2Bachelor;
00140 float mClBachelor;
00141
00142 float mDedxBachelor;
00143 unsigned short mNumDedxBachelor;
00144
00145
00146 StHbtThreeVector mMomXi;
00147 float mAlphaXi;
00148 float mPtArmXi;
00149
00150 float mEXi;
00151 float mEOmega;
00152 float mEBacPion;
00153 float mEBacKaon;
00154 float mMassXi;
00155 float mMassOmega;
00156 float mRapXi;
00157 float mRapOmega;
00158 float mCTauXi;
00159 float mCTauOmega;
00160 float mPtXi;
00161 float mPtotXi;
00162 float mPtBac;
00163 float mPtotBac;
00164
00165 unsigned short mKeyBac;
00166 };
00167
00168 inline float StHbtXi::decayLengthXi() const { return mDecayLengthXi; }
00169 inline StHbtThreeVector StHbtXi::decayVertexXi() const { return mDecayVertexXi; }
00170 inline float StHbtXi::decayVertexXiX() const { return mDecayVertexXi.x(); }
00171 inline float StHbtXi::decayVertexXiY() const { return mDecayVertexXi.y(); }
00172 inline float StHbtXi::decayVertexXiZ() const { return mDecayVertexXi.z(); }
00173 inline float StHbtXi::dcaXiDaughters() const { return mDcaXiDaughters; }
00174 inline float StHbtXi::dcaXiToPrimVertex() const { return mDcaXiToPrimVertex; }
00175 inline float StHbtXi::dcaBacToPrimVertex() const { return mDcaBachelorToPrimVertex; }
00176 inline StHbtThreeVector StHbtXi::momBac() const { return mMomBachelor; }
00177 inline float StHbtXi::momBacX() const { return mMomBachelor.x(); }
00178 inline float StHbtXi::momBacY() const { return mMomBachelor.y(); }
00179 inline float StHbtXi::momBacZ() const { return mMomBachelor.z(); }
00180 inline StHbtThreeVector StHbtXi::momXi() const { return mMomXi; }
00181 inline float StHbtXi::momXiX() const { return mMomXi.x(); }
00182 inline float StHbtXi::momXiY() const { return mMomXi.y(); }
00183 inline float StHbtXi::momXiZ() const { return mMomXi.z(); }
00184 inline float StHbtXi::alphaXi() const { return mAlphaXi; }
00185 inline float StHbtXi::ptArmXi() const {return mPtArmXi;}
00186 inline float StHbtXi::eXi() const {return mEXi;}
00187 inline float StHbtXi::eOmega() const {return mEOmega;}
00188 inline float StHbtXi::eBacPion() const {return mEBacPion;}
00189 inline float StHbtXi::eBacKaon() const {return mEBacKaon;}
00190 inline float StHbtXi::massXi() const {return mMassXi;}
00191 inline float StHbtXi::massOmega() const {return mMassOmega;}
00192 inline float StHbtXi::rapXi() const {return mRapXi;}
00193 inline float StHbtXi::rapOmega() const {return mRapOmega;}
00194 inline float StHbtXi::cTauXi() const {return mCTauXi;}
00195 inline float StHbtXi::cTauOmega() const {return mCTauOmega;}
00196 inline float StHbtXi::ptXi() const {return mPtXi;}
00197 inline float StHbtXi::ptotXi() const {return mPtotXi;}
00198 inline float StHbtXi::ptBac() const {return mPtBac;}
00199 inline float StHbtXi::ptotBac() const {return mPtotBac;}
00200 inline int StHbtXi::tpcHitsBac() const
00201 { return mTpcHitsBac; }
00202 inline float StHbtXi::dedxBac() const {return mDedxBachelor;}
00203
00204 inline unsigned long StHbtXi::trackTopologyMapBac(unsigned int word) const { return mTopologyMapBachelor[word]; }
00205 inline unsigned short StHbtXi::idBac() const { return mKeyBac; };
00206 inline unsigned short StHbtXi::keyBac() const { return mKeyBac; }
00207
00208 inline void StHbtXi::SetdecayLengthXi(const float x){ mDecayLengthXi= x;}
00209 inline void StHbtXi::SetdecayVertexXiX(const float x){ mDecayVertexXi.setX(x);}
00210 inline void StHbtXi::SetdecayVertexXiY(const float x){ mDecayVertexXi.setY(x);}
00211 inline void StHbtXi::SetdecayVertexXiZ(const float x){ mDecayVertexXi.setZ(x);}
00212 inline void StHbtXi::SetdecayVertexXi(const StHbtThreeVector v){ mDecayVertexXi = v; }
00213 inline void StHbtXi::SetdcaXiDaughters(const float x){mDcaXiDaughters= x;}
00214 inline void StHbtXi::SetdcaXiToPrimVertex(const float x){mDcaXiToPrimVertex= x;}
00215 inline void StHbtXi::SetdcaBacToPrimVertex(const float x){ mDcaBachelorToPrimVertex = x;}
00216 inline void StHbtXi::SetmomBac(const StHbtThreeVector v){mMomBachelor = v; }
00217 inline void StHbtXi::SetmomBacX(const float x){mMomBachelor.setX(x);}
00218 inline void StHbtXi::SetmomBacY(const float x){mMomBachelor.setY(x);}
00219 inline void StHbtXi::SetmomBacZ(const float x){mMomBachelor.setZ(x);}
00220 inline void StHbtXi::SetTrackTopologyMapBac(unsigned int word, const unsigned long& m){mTopologyMapBachelor[word]=m;}
00221 inline void StHbtXi::SetmomXi(StHbtThreeVector v){mMomXi= v; }
00222 inline void StHbtXi::SetmomXiX(const float x){mMomXi.setX(x);}
00223 inline void StHbtXi::SetmomXiY(const float x){mMomXi.setY(x);}
00224 inline void StHbtXi::SetmomXiZ(const float x){mMomXi.setZ(x);}
00225
00226 inline void StHbtXi::SetalphaXi( float x){mAlphaXi= x;}
00227 inline void StHbtXi::SetptArmXi( float x){mPtArmXi = x;}
00228 inline void StHbtXi::SeteXi( float x){mEXi= x;}
00229 inline void StHbtXi::SeteOmega( float x){mEOmega= x;}
00230 inline void StHbtXi::SeteBacPion( float x){mEBacPion= x;}
00231 inline void StHbtXi::SeteBacKaon( float x){mEBacKaon= x;}
00232 inline void StHbtXi::SetmassXi( float x){mMassXi = x;}
00233 inline void StHbtXi::SetmassOmega( float x){mMassOmega= x;}
00234 inline void StHbtXi::SetrapXi( float x){mRapXi= x;}
00235 inline void StHbtXi::SetrapOmega( float x){mRapOmega = x;}
00236 inline void StHbtXi::SetcTauXi( float x){mCTauXi = x;}
00237 inline void StHbtXi::SetcTauOmega( float x){mCTauOmega = x;}
00238 inline void StHbtXi::SetptXi( float x){mPtXi = x;}
00239 inline void StHbtXi::SetptotXi( float x){mPtotXi = x;}
00240 inline void StHbtXi::SetptBac( float x){mPtBac = x;}
00241 inline void StHbtXi::SetptotBac( float x){mPtotBac = x;}
00242 inline void StHbtXi::SetidBac(const unsigned short& s){ mKeyBac= s;}
00243 inline void StHbtXi::SetkeyBac(const unsigned short& s){ mKeyBac= s;}
00244 inline void StHbtXi::SettpcHitsBac(const int& i){mTpcHitsBac=i;}
00245 inline void StHbtXi::SetdedxBac(float x){mDedxBachelor=x;}
00246
00247 #endif
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276