21#include "CLHEP/Matrix/SymMatrix.h"
31 const double lowlim,
const double hilim,
34 TrkDifTraj(lowlim, hilim),_dtparams(params, cov),_refpoint(refpoint)
38 const double lowlim,
const double hilim,
41 TrkDifTraj(lowlim, hilim),_dtparams(params),_refpoint(refpoint)
48 _dtparams(other._dtparams),
49 _refpoint(other._refpoint)
76 std::cout<<
"ErrMsg(error)" <<
"poca failure changing reference point" << std::endl;
80 fltlen = endpoca.
flt1();
83 HepSymMatrix cov(nrow);
84 for(
int irow=0;irow<nrow;irow++)
85 for(
int icol=0;icol<=irow;icol++)
100 newrange[1] =
hiRange() - fltlen;
112 os <<
"SimpTraj parameter vector = "
114 os <<
" and covariance matrix = "
135 bool iinvert = flags[iparam];
138 bool jinvert = flags[jparam];
139 if( (iinvert && !jinvert) || (!iinvert && jinvert) ) {
160 unsigned int mp=m.num_row();
161 const HepVector &
n=
x._dtparams.parameter();
162 unsigned int np=
n.num_row();
163 if (np!=
mp)
return false;
164 for(
unsigned i=0;i<np;++i){
165 if(m[i] !=
n[i])
return false;
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
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)
virtual void print(std::ostream &os) const
virtual void printAll(std::ostream &os) const
bool operator==(const TrkSimpTraj &) const
void changePoint(const HepPoint3D &newpoint, double &fltlen)
virtual const TrkSimpTraj * localTrajectory(double fltLen, double &localFlt) const
virtual void invertParams(TrkParams *newparams, std::vector< bool > &flags) const =0
static HepPoint3D _theOrigin
double precision pisqo6 parameter(pi=3.14159265358979d0, pisq=pi *pi, pisqo6=pisq/6d0) double precision zip