47 #include "StXiMuDst.hh"
48 #include "StXiVertex.h"
50 #include "StTrackFitTraits.h"
51 #include "StStrangeEvMuDst.hh"
52 #include "StDedxPidTraits.h"
53 #include "phys_constants.h"
54 #include "SystemOfUnits.h"
55 #include "StPhysicalHelixD.hh"
68 StV0MuDst::Fill(v0Vertex, event);
73 mCharge = (Int_t) (xiVertex->chargeOfBachelor());
74 mDecayVertexXiX = xiVertex->position().x();
75 mDecayVertexXiY = xiVertex->position().y();
76 mDecayVertexXiZ = xiVertex->position().z();
77 mDcaXiDaughters = xiVertex->dcaDaughters();
78 mDcaBachelorToPrimVertex = xiVertex->dcaBachelorToPrimaryVertex();
79 mDcaXiToPrimVertex = xiVertex->dcaParentToPrimaryVertex();
80 mMomBachelorX = xiVertex->momentumOfBachelor().x();
81 mMomBachelorY = xiVertex->momentumOfBachelor().y();
82 mMomBachelorZ = xiVertex->momentumOfBachelor().z();
83 mChi2Xi = xiVertex->chiSquared();
84 mClXi = xiVertex->probChiSquared();
86 StTrack* trk = xiVertex->bachelor();
87 mKeyBachelor = trk->key();
88 mTopologyMapBachelor = trk->topologyMap();
89 mChi2Bachelor = trk->fitTraits().chi2(0);
90 mClBachelor = trk->fitTraits().chi2(1);
95 StPtrVecTrackPidTraits pidBachelor = trk->pidTraits(kTpcId);
96 for (UInt_t i=0; i<pidBachelor.size(); i++) {
98 if (pid->method() == kTruncatedMeanId) {
99 mDedxBachelor = pid->mean();
100 mErrDedxBachelor = pid->errorOnMean();
101 mNumDedxBachelor = pid->numberOfPoints() + (100*((int) (pid->length())));
107 StXiMuDst::~StXiMuDst() {
112 detectorIdTrack(mTopologyMapBachelor));
119 void StXiMuDst::setXiHelix() {
122 double curvature = TMath::Abs(bcharge)*C_D_CURVATURE/pt;
123 double dip = TMath::ATan(
momXiZ()/pt);
124 int h = ((bcharge > 0) ? -1 : 1);
125 double phase = TMath::ATan2(momXiY(),momXiX()) - (h*TMath::PiOver2());
126 temp3VD.setX(mDecayVertexXiX);
127 temp3VD.setY(mDecayVertexXiY);
128 temp3VD.setZ(mDecayVertexXiZ);
139 temp3VD.setX(mEvent->primaryVertexX());
140 temp3VD.setY(mEvent->primaryVertexY());
144 temp3VD = XiHelix.momentumAt(XiHelix.
pathLength(temp3VD),
146 return TVector3(temp3VD.x(),temp3VD.y(),temp3VD.z());
void setParameters(double c, double dip, double phase, const StThreeVector< double > &o, int h)
starting point
Long_t detectorIdXi()
Detector ID for Xi vertex.
Float_t momXiZ()
Momentum components of Xi/Omega at decay vertex.
Float_t magneticField() const
Magnetic field.
Long_t detectorIdV0()
Detector ID for V0 Vertex.
pair< double, double > pathLength(double r) const
path length at given r (cylindrical r)
Float_t ptXi()
Transverse momentum of Xi/Omega.
TVector3 momXiAtPrimVertex()
Momentum of Xi/Omega at primary vertex.
virtual Long_t detectorIdPars()
Detector ID for pars used in V0 finder.
Float_t primaryVertexZ() const
Primary vtx position coordinates.
void setBachelorBad()
Set the bachelor as bad.