4#include "TrkBase/TrkCompTrk.h"
5#include "TrkBase/TrkSimpTraj.h"
6#include "TrkBase/HelixTraj.h"
7#include "TrkBase/NeutTraj.h"
8#include "TrkBase/NeutParams.h"
9#include "TrkBase/TrkMomCalculator.h"
12#include "ProxyDict/IfdStrKey.h"
13#include "BField/BField.h"
14#include "TrkBase/TrkExchangePar.h"
15#include "TrkBase/TrkPoca.h"
16#include "MdcRecoUtil/BesPointErr.h"
17#include "MdcRecoUtil/BesVectorErr.h"
18#include "MdcRecoUtil/DifPoint.h"
19#include "MdcRecoUtil/DifVector.h"
20#include "MdcRecoUtil/DifIndepPar.h"
21#include "TrkBase/TrkHelixUtils.h"
22#include "MdcGeom/BesAngle.h"
30 const HepMatrix& xpCov,
32 _chisq(chisq),_nDof(nDof) {
62 if (&right ==
this)
return *
this;
183 if(_charge==-1 || _charge==1) {
184 ostr <<
"Charged Particle -> Helix Trajectory" << endl;
187 ostr <<
" d0=" << theTraj.
d0() << endl;
188 ostr <<
" z0=" << theTraj.
z0() << endl;
189 ostr <<
" omega=" << theTraj.
omega() << endl;
190 ostr <<
" tanDip=" << theTraj.
tanDip() << endl;
193 ostr <<
"Neutral Particle -> NeutTraj" << endl;
196 ostr <<
" d0=" << theTraj.
params().
d0() << endl;
197 ostr <<
" z0=" << theTraj.
params().
z0() << endl;
198 ostr <<
" p=" << theTraj.
params().
p() << endl;
199 ostr <<
" tanDip=" << theTraj.
params().
tanDip() << endl;
218 HepMatrix& xpCov)
const
228 HepSymMatrix& xxWeight,
229 HepSymMatrix& ppWeight,
230 HepMatrix& xpWeight)
const
234 pos,mom,xxWeight,ppWeight,xpWeight);
242 HepSymMatrix& xxWeight,
243 HepSymMatrix& ppWeight,
244 HepMatrix& xpWeight)
const
HepSymMatrix & covariance()
const DifIndepPar * indepPar() const
HepSymMatrix errorMatrix(const HepSymMatrix &e) const
virtual Trajectory * clone() const =0
virtual HepPoint3D position(double) const =0
virtual Hep3Vector direction(double) const =0
double endValidRange() const
const TrkCompTrk & operator=(const TrkCompTrk &right)
double startValidRange() const
virtual HepMatrix posmomCov(double fltL) const
BesVectorErr momentumErr(double fltL) const
BesVectorErr directionErr(double fltL) const
virtual void printAll(std::ostream &) const
virtual void getAllCovs(double fltL, HepSymMatrix &xxCov, HepSymMatrix &ppCov, HepMatrix &xpCov) const
double pt(double fltL=0.) const
Hep3Vector direction(double fltL) const
Hep3Vector momentum(double fltL=0.) const
virtual void getAllWeights(double fltL, HepVector &pos, HepVector &mom, HepSymMatrix &xxWeight, HepSymMatrix &ppWeight, HepMatrix &xpWeight) const
const BField & bField() const
BesPointErr positionErr(double fltL) const
TrkCompTrk(const BesPointErr &pos, const BesVectorErr &mom, const HepMatrix &xpCov, int charge, double chisq, int nDoF, const BField *bf)
const TrkDifTraj & traj() const
virtual void print(std::ostream &) const
HepPoint3D position(double fltL) const
virtual void getDFInfo2(double fltLen, DifPoint &pos, DifVector &direction) const
const HepVector & params() const
const HepSymMatrix & covariance() const
static NeutParams lineFromMomErr(const BesPointErr &vertex, const BesVectorErr &p, const HepMatrix &cxp, double sign, const BField &)
static TrkExchangePar helixFromMomErr(const BesPointErr &vertex, const BesVectorErr &p, const HepMatrix &cxp, double sign, const BField &)
static void getAllWeights(const TrkSimpTraj &, const BField &, double fltlen, HepVector &pos, HepVector &mom, HepSymMatrix &xxWeight, HepSymMatrix &ppWeight, HepMatrix &xpWeight)
static void getAllCovs(const TrkSimpTraj &, const BField &, double fltlen, HepSymMatrix &xxCov, HepSymMatrix &ppCov, HepMatrix &xpCov)
static HepMatrix posmomCov(const TrkSimpTraj &, const BField &, double fltlen)
static BesVectorErr errMom(const TrkSimpTraj &, const BField &, double fltlen)
static Hep3Vector vecMom(const TrkSimpTraj &, const BField &, double fltlen)
static double ptMom(const TrkSimpTraj &, const BField &, double fltlen)