00001 00010 #ifndef StV0MuDst_hh 00011 #define StV0MuDst_hh 00012 #include "StV0I.hh" 00013 #include "StStrangeMuDst.hh" 00014 00015 class StVertex; 00016 class StV0Vertex; 00017 00018 class StV0MuDst : public StStrangeMuDst, public virtual StV0I { 00019 friend class StMuMomentumShiftMaker; 00020 00021 public: 00022 StV0MuDst(); 00023 ~StV0MuDst(); 00024 StV0MuDst(StV0Vertex*,StStrangeEvMuDst*); 00025 void Fill(StV0Vertex*,StStrangeEvMuDst*); 00026 00027 Float_t decayVertexV0X() const; // Coordinates of decay vertex 00028 Float_t decayVertexV0Y() const; 00029 Float_t decayVertexV0Z() const; 00030 Float_t dcaV0Daughters() const; // DCA of v0 daughters at decay vertex 00031 Float_t dcaV0ToPrimVertex() const; // DCA of v0 to primary vertex 00032 Float_t dcaPosToPrimVertex() const; // DCA of pos v0 daughter to pri vertex 00033 Float_t dcaNegToPrimVertex() const; // DCA of neg v0 daughter to pri vertex 00034 Float_t momPosX() const; // Momentum components of pos. daughter 00035 Float_t momPosY() const; 00036 Float_t momPosZ() const; 00037 Float_t momNegX() const; // Momentum components of neg. daughter 00038 Float_t momNegY() const; 00039 Float_t momNegZ() const; 00040 StTrackTopologyMap& topologyMapPos(); 00041 StTrackTopologyMap& topologyMapNeg(); 00042 Int_t keyPos() const; // Track id v0 daughters 00043 Int_t keyNeg() const; // Track id v0 daughters 00044 00045 Float_t momV0X() const; // Momentum components of V0 00046 Float_t momV0Y() const; 00047 Float_t momV0Z() const; 00048 00049 Float_t chi2V0() const; // Chi square of V0 00050 Float_t clV0() const; // Confidence level of V0 00051 Float_t chi2Pos() const; // Chi square of pos. daughter 00052 Float_t clPos() const; // Confidence level of pos. daughter 00053 Float_t chi2Neg() const; // Chi square of neg. daughter 00054 Float_t clNeg() const; // Confidence level of neg. daughter 00055 void setPosBad(); // Set the pos. daughter as bad 00056 void setNegBad(); // Set the neg. daughter as bad 00057 Long_t detectorIdV0(); // Detector ID for V0 Vertex 00058 virtual Long_t detectorIdPars();// Detector ID for pars used in V0 finder 00059 Float_t dedxPos() const; // dE/dX of pos. daughter 00060 Float_t dedxNeg() const; // dE/dX of neg. daughter 00061 Float_t errDedxPos() const; // Error on mean of dE/dX of pos. daughter 00062 Float_t errDedxNeg() const; // Error on mean of dE/dX of neg. daughter 00063 UShort_t numDedxPos() const; // Number of dE/dX points for pos. daughter 00064 UShort_t numDedxNeg() const; // Number of dE/dX points for neg. daughter 00065 Float_t lenDedxPos() const; // Length of dE/dX track of pos. daughter 00066 Float_t lenDedxNeg() const; // Length of dE/dX track of neg. daughter 00067 00068 protected: 00069 00070 Float_t mDecayVertexV0X; // These are written out 00071 Float_t mDecayVertexV0Y; 00072 Float_t mDecayVertexV0Z; 00073 Float_t mDcaV0Daughters; 00074 Float_t mDcaV0ToPrimVertex; 00075 Float_t mDcaPosToPrimVertex; 00076 Float_t mDcaNegToPrimVertex; 00077 Float_t mMomPosX; 00078 Float_t mMomPosY; 00079 Float_t mMomPosZ; 00080 Float_t mMomNegX; 00081 Float_t mMomNegY; 00082 Float_t mMomNegZ; 00083 00084 Int_t mKeyPos; 00085 Int_t mKeyNeg; 00086 00087 StTrackTopologyMap mTopologyMapPos; 00088 StTrackTopologyMap mTopologyMapNeg; 00089 00090 Float_t mChi2V0; 00091 Float_t mClV0; 00092 Float_t mChi2Pos; 00093 Float_t mClPos; 00094 Float_t mChi2Neg; 00095 Float_t mClNeg; 00096 00097 Long_t detectorIdTrack(StTrackTopologyMap&); 00098 00099 Float_t mDedxPos; 00100 Float_t mDedxNeg; 00101 Float_t mErrDedxPos; 00102 Float_t mErrDedxNeg; 00103 UShort_t mNumDedxPos; 00104 UShort_t mNumDedxNeg; 00105 00106 ClassDef(StV0MuDst,7) 00107 }; 00108 00109 inline StV0MuDst::StV0MuDst(StV0Vertex* v1,StStrangeEvMuDst* e1) : StV0I() 00110 { Fill(v1,e1); } 00111 inline Float_t StV0MuDst::decayVertexV0X() const { return mDecayVertexV0X; } 00112 inline Float_t StV0MuDst::decayVertexV0Y() const { return mDecayVertexV0Y; } 00113 inline Float_t StV0MuDst::decayVertexV0Z() const { return mDecayVertexV0Z; } 00114 inline Float_t StV0MuDst::dcaV0Daughters() const 00115 { return mDcaV0Daughters; } 00116 inline Float_t StV0MuDst::dcaV0ToPrimVertex() const 00117 { return mDcaV0ToPrimVertex; } 00118 inline Float_t StV0MuDst::dcaPosToPrimVertex() const 00119 { return mDcaPosToPrimVertex; } 00120 inline Float_t StV0MuDst::dcaNegToPrimVertex() const 00121 { return mDcaNegToPrimVertex; } 00122 inline Float_t StV0MuDst::momPosX() const { return mMomPosX; } 00123 inline Float_t StV0MuDst::momPosY() const { return mMomPosY; } 00124 inline Float_t StV0MuDst::momPosZ() const { return mMomPosZ; } 00125 inline Float_t StV0MuDst::momNegX() const { return mMomNegX; } 00126 inline Float_t StV0MuDst::momNegY() const { return mMomNegY; } 00127 inline Float_t StV0MuDst::momNegZ() const { return mMomNegZ; } 00128 inline StTrackTopologyMap& StV0MuDst::topologyMapPos() 00129 { return mTopologyMapPos; } 00130 inline StTrackTopologyMap& StV0MuDst::topologyMapNeg() 00131 { return mTopologyMapNeg; } 00132 inline Int_t StV0MuDst::keyPos() const { return mKeyPos; } 00133 inline Int_t StV0MuDst::keyNeg() const { return mKeyNeg; } 00134 inline Float_t StV0MuDst::momV0X() const { return mMomPosX + mMomNegX; } 00135 inline Float_t StV0MuDst::momV0Y() const { return mMomPosY + mMomNegY; } 00136 inline Float_t StV0MuDst::momV0Z() const { return mMomPosZ + mMomNegZ; } 00137 inline Float_t StV0MuDst::chi2V0() const { return mChi2V0; } 00138 inline Float_t StV0MuDst::clV0() const { return mClV0; } 00139 inline Float_t StV0MuDst::chi2Pos() const { return mChi2Pos; } 00140 inline Float_t StV0MuDst::clPos() const { return mClPos; } 00141 inline Float_t StV0MuDst::chi2Neg() const { return mChi2Neg; } 00142 inline Float_t StV0MuDst::clNeg() const { return mClNeg; } 00143 inline void StV0MuDst::setPosBad() { mChi2Pos = -TMath::Abs(mChi2Pos); } 00144 inline void StV0MuDst::setNegBad() { mChi2Neg = -TMath::Abs(mChi2Neg); } 00145 inline Float_t StV0MuDst::dedxPos() const { return mDedxPos; } 00146 inline Float_t StV0MuDst::dedxNeg() const { return mDedxNeg; } 00147 inline Float_t StV0MuDst::errDedxPos() const { return mErrDedxPos; } 00148 inline Float_t StV0MuDst::errDedxNeg() const { return mErrDedxNeg; } 00149 inline UShort_t StV0MuDst::numDedxPos() const { return (mNumDedxPos%100); } 00150 inline UShort_t StV0MuDst::numDedxNeg() const { return (mNumDedxNeg%100); } 00151 inline Float_t StV0MuDst::lenDedxPos() const { return (mNumDedxPos/100); } 00152 inline Float_t StV0MuDst::lenDedxNeg() const { return (mNumDedxNeg/100); } 00153 #endif 00154 00155 00156 /*********************************************************************** 00157 * $Id: StV0MuDst.hh,v 3.11 2011/05/27 18:25:32 genevb Exp $ 00158 * $Log: StV0MuDst.hh,v $ 00159 * Revision 3.11 2011/05/27 18:25:32 genevb 00160 * Propagate StTrack::key => Int_t to other codes 00161 * 00162 * Revision 3.10 2008/07/11 16:23:09 genevb 00163 * bad() won't work unless chi2 allows to return negative values 00164 * 00165 * Revision 3.9 2008/07/10 16:16:55 genevb 00166 * Allow for marking of bad tracks -> bad secondary vertices 00167 * 00168 * Revision 3.8 2005/03/17 05:02:20 genevb 00169 * Add StMuMomentumShiftMaker friend 00170 * 00171 * Revision 3.7 2003/10/20 17:20:18 perev 00172 * Change the order of inheritance and increased version numbers 00173 * 00174 * Revision 3.6 2003/05/30 21:20:20 genevb 00175 * doxygen savvy, encoding of FTPC mults, change virtual funcs 00176 * 00177 * Revision 3.5 2001/11/05 23:41:07 genevb 00178 * Add more dEdx, B field info, careful of changes to TTree unrolling 00179 * 00180 * Revision 3.4 2001/05/04 20:15:15 genevb 00181 * Common interfaces and reorganization of components, add MC event info 00182 * 00183 * Revision 3.3 2000/08/24 20:29:00 genevb 00184 * Fixed a typo 00185 * 00186 * Revision 3.2 2000/08/24 20:02:59 genevb 00187 * Fixed a typo 00188 * 00189 * Revision 3.1 2000/08/10 01:16:24 genevb 00190 * Added number of dedx points 00191 * 00192 * Revision 3.0 2000/07/14 12:56:50 genevb 00193 * Revision 3 has event multiplicities and dedx information for vertex tracks 00194 * 00195 * Revision 2.0 2000/06/02 22:11:54 genevb 00196 * New version of Strangeness micro DST package 00197 * 00198 * Revision 1.4 2000/03/31 03:20:24 jones 00199 * Added topology map to V0/Xi; access funcs for each data member 00200 * 00201 * Revision 1.3 2000/03/29 20:52:13 genevb 00202 * Added StKinkMuDst, replaced arrays 00203 * 00204 * Revision 1.2 2000/03/29 14:42:40 genevb 00205 * Removed StV0MiniMiniDst 00206 * 00207 * Revision 1.1 2000/03/29 03:10:08 genevb 00208 * Introduction of Strangeness Micro DST package 00209 * 00210 ***********************************************************************/
1.5.9