17#include "TrkBase/TrkSimpTraj.h"
18#include "CLHEP/Matrix/SymMatrix.h"
19#include "MdcGeom/BesAngle.h"
20#include "MdcGeom/Constants.h"
21#include "TrkBase/TrkParams.h"
22#include "TrkBase/TrkPocaXY.h"
31 const double lowlim,
const double hilim,
const HepPoint3D& refpoint )
51 TrkDifTraj( other.lowRange(), other.hiRange() )
52 , _dtparams( other._dtparams )
53 , _refpoint( other._refpoint ) {}
76 TrkPocaXY endpoca( *
this, fltlen, newpoint );
79 std::cout <<
"ErrMsg(error)"
80 <<
"poca failure changing reference point" << std::endl;
86 fltlen = endpoca.
flt1();
89 HepSymMatrix cov( nrow );
90 for (
int irow = 0; irow < nrow; irow++ )
91 for (
int icol = 0; icol <= irow; icol++ )
92 cov.fast( irow + 1, icol + 1 ) =
105 newrange[1] =
hiRange() - fltlen;
135 bool iinvert = flags[iparam];
137 for (
int jparam = iparam + 1; jparam <
parameters()->
nPar(); jparam++ )
139 bool jinvert = flags[jparam];
140 if ( ( iinvert && !jinvert ) || ( !iinvert && jinvert ) )
157 if (
lowRange() != x.lowRange() ||
hiRange() != x.hiRange() )
return false;
158 const HepVector& m =
_dtparams.parameter();
159 unsigned int mp = m.num_row();
160 const HepVector&
n = x._dtparams.parameter();
161 unsigned int np =
n.num_row();
162 if ( np !=
mp )
return false;
163 for (
unsigned i = 0; i < np; ++i )
165 if ( m[i] !=
n[i] )
return false;
HepGeom::Point3D< double > HepPoint3D
HepGeom::Point3D< double > HepPoint3D
void(* TranslateParams)(const HepPoint3D &oldpoint, const HepPoint3D &newpoint, const HepVector &oldpar, const HepSymMatrix &oldcov, HepVector &newpar, HepSymMatrix &newcov, double fltlen)
virtual void print(std::ostream &os) const
virtual void setFlightRange(double newrange[2])
virtual void printAll(std::ostream &os) const
TrkDifTraj(const double lowlim=-99999., const double hilim=99999.)
HepSymMatrix & covariance()
const TrkErrCode & status() const
virtual TranslateParams paramFunction() const =0
TrkSimpTraj(const HepVector ¶ms, const HepSymMatrix &cov, const double startRange=-99999., const double endRange=99999., const HepPoint3D &refpoint=_theOrigin)
bool operator==(const TrkSimpTraj &) const
void changePoint(const HepPoint3D &newpoint, double &fltlen)
virtual void print(std::ostream &os) const
virtual void printAll(std::ostream &os) const
virtual const TrkSimpTraj * localTrajectory(double fltLen, double &localFlt) const
virtual void invertParams(TrkParams *newparams, std::vector< bool > &flags) const =0
static HepPoint3D _theOrigin