00001
00010 #ifndef StXiMuDst_hh
00011 #define StXiMuDst_hh
00012 #include "StV0MuDst.hh"
00013 #include "StXiI.hh"
00014
00015 class StXiVertex;
00016 #include "StPhysicalHelixD.hh"
00017
00018 class StXiMuDst : public StV0MuDst, public virtual StXiI {
00019 friend class StMuMomentumShiftMaker;
00020
00021 public:
00022 StXiMuDst();
00023 ~StXiMuDst();
00024 StXiMuDst(StXiVertex* x1,StV0Vertex* v1,StStrangeEvMuDst* e1);
00025 void Fill(StXiVertex*,StV0Vertex*,StStrangeEvMuDst*);
00026
00027 Int_t charge() const;
00028 Float_t decayVertexXiX() const;
00029 Float_t decayVertexXiY() const;
00030 Float_t decayVertexXiZ() const;
00031 virtual Float_t decayLengthV0() const;
00032 Float_t dcaXiDaughters() const;
00033 Float_t dcaBachelorToPrimVertex() const;
00034 Float_t dcaXiToPrimVertex() const;
00035 Float_t momBachelorX() const;
00036 Float_t momBachelorY() const;
00037 Float_t momBachelorZ() const;
00038 Int_t keyBachelor() const;
00039 StTrackTopologyMap& topologyMapBachelor();
00040
00041 TVector3 momXi();
00042 Float_t momXiX();
00043 Float_t momXiY();
00044 Float_t momXiZ();
00045
00046 TVector3 momXiAtPrimVertex();
00047 Float_t momXiAtPrimVertexX();
00048 Float_t momXiAtPrimVertexY();
00049 Float_t momXiAtPrimVertexZ();
00050
00051 Float_t chi2Xi() const;
00052 Float_t clXi() const;
00053 Float_t chi2Bachelor() const;
00054 Float_t clBachelor() const;
00055 void setBachelorBad();
00056 Long_t detectorIdXi();
00057 virtual Long_t detectorIdPars();
00058 Float_t dedxBachelor() const;
00059 Float_t errDedxBachelor() const;
00060 UShort_t numDedxBachelor() const;
00061 Float_t lenDedxBachelor() const;
00062
00063 StPhysicalHelixD& helixXi();
00064
00065 protected:
00066 Int_t mCharge;
00067 Float_t mDecayVertexXiX;
00068 Float_t mDecayVertexXiY;
00069 Float_t mDecayVertexXiZ;
00070
00071 Float_t mDcaXiDaughters;
00072 Float_t mDcaBachelorToPrimVertex;
00073 Float_t mDcaXiToPrimVertex;
00074 Float_t mMomBachelorX;
00075 Float_t mMomBachelorY;
00076 Float_t mMomBachelorZ;
00077
00078 Int_t mKeyBachelor;
00079
00080 StTrackTopologyMap mTopologyMapBachelor;
00081
00082 Float_t mChi2Xi;
00083 Float_t mClXi;
00084 Float_t mChi2Bachelor;
00085 Float_t mClBachelor;
00086
00087 void FillXi(StXiVertex*);
00088 void setXiHelix();
00089
00090 Float_t mDedxBachelor;
00091 Float_t mErrDedxBachelor;
00092 UShort_t mNumDedxBachelor;
00093
00094 ClassDef(StXiMuDst,8)
00095 };
00096
00097 inline StXiMuDst::StXiMuDst(StXiVertex* x1,StV0Vertex* v1,StStrangeEvMuDst* e1):
00098 StXiI(), StV0MuDst(v1,e1)
00099 { FillXi(x1); }
00100
00101 inline Int_t StXiMuDst::charge() const
00102 { return mCharge; }
00103 inline Float_t StXiMuDst::decayVertexXiX() const { return mDecayVertexXiX; }
00104 inline Float_t StXiMuDst::decayVertexXiY() const { return mDecayVertexXiY; }
00105 inline Float_t StXiMuDst::decayVertexXiZ() const { return mDecayVertexXiZ; }
00106 inline Float_t StXiMuDst::decayLengthV0() const { return StXiI::decayLengthV0(); }
00107 inline Float_t StXiMuDst::dcaXiDaughters() const
00108 { return mDcaXiDaughters; }
00109 inline Float_t StXiMuDst::dcaXiToPrimVertex() const
00110 { return mDcaXiToPrimVertex; }
00111 inline Float_t StXiMuDst::dcaBachelorToPrimVertex() const
00112 { return mDcaBachelorToPrimVertex; }
00113 inline Float_t StXiMuDst::momBachelorX() const { return mMomBachelorX; }
00114 inline Float_t StXiMuDst::momBachelorY() const { return mMomBachelorY; }
00115 inline Float_t StXiMuDst::momBachelorZ() const { return mMomBachelorZ; }
00116 inline TVector3 StXiMuDst::momXi()
00117 {return TVector3(momXiX(), momXiY(), momXiZ());}
00118 inline Float_t StXiMuDst::momXiX() { return mMomBachelorX + momV0X(); }
00119 inline Float_t StXiMuDst::momXiY() { return mMomBachelorY + momV0Y(); }
00120 inline Float_t StXiMuDst::momXiZ() { return mMomBachelorZ + momV0Z(); }
00121 inline Float_t StXiMuDst::momXiAtPrimVertexX() { return momXiAtPrimVertex().X(); }
00122 inline Float_t StXiMuDst::momXiAtPrimVertexY() { return momXiAtPrimVertex().Y(); }
00123 inline Float_t StXiMuDst::momXiAtPrimVertexZ() { return momXiAtPrimVertex().Z(); }
00124 inline Int_t StXiMuDst::keyBachelor() const { return mKeyBachelor; }
00125 inline StTrackTopologyMap& StXiMuDst::topologyMapBachelor()
00126 { return mTopologyMapBachelor; }
00127 inline Float_t StXiMuDst::chi2Xi() const { return mChi2Xi; }
00128 inline Float_t StXiMuDst::clXi() const { return mClXi; }
00129 inline Float_t StXiMuDst::chi2Bachelor() const { return mChi2Bachelor; }
00130 inline Float_t StXiMuDst::clBachelor() const { return mClBachelor; }
00131 inline void StXiMuDst::setBachelorBad() { mChi2Bachelor = -TMath::Abs(mChi2Bachelor); }
00132 inline Float_t StXiMuDst::dedxBachelor() const { return mDedxBachelor; }
00133 inline Float_t StXiMuDst::errDedxBachelor() const { return mErrDedxBachelor; }
00134 inline UShort_t StXiMuDst::numDedxBachelor() const
00135 { return (mNumDedxBachelor%100); }
00136 inline Float_t StXiMuDst::lenDedxBachelor() const
00137 { return (mNumDedxBachelor/100); }
00138
00139 #endif
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200