#include <TrkSimpTraj.h>
Inheritance diagram for TrkSimpTraj:
Public Member Functions | |
void | changePoint (const HepPoint3D &newpoint, double &fltlen) |
void | changePoint (const HepPoint3D &newpoint, double &fltlen) |
virtual TrkSimpTraj * | clone () const =0 |
virtual TrkSimpTraj * | clone () const =0 |
virtual double | curvature (double) const =0 |
virtual double | curvature (double) const =0 |
virtual Hep3Vector | delDirect (double) const =0 |
virtual Hep3Vector | delDirect (double) const =0 |
virtual HepMatrix | derivDeflect (double fltlen, deflectDirection idir) const =0 |
virtual HepMatrix | derivDeflect (double fltlen, deflectDirection idir) const =0 |
virtual HepMatrix | derivDisplace (double fltlen, deflectDirection idir) const =0 |
virtual HepMatrix | derivDisplace (double fltlen, deflectDirection idir) const =0 |
virtual HepMatrix | derivPFract (double fltlen) const =0 |
virtual HepMatrix | derivPFract (double fltlen) const =0 |
virtual Hep3Vector | direction (double) const =0 |
virtual Hep3Vector | direction (double) const =0 |
double | distTo0thError (double s, double tol, int pathDir) const |
double | distTo0thError (double s, double tol, int pathDir) const |
virtual double | distTo1stError (double s, double tol, int pathDir) const =0 |
virtual double | distTo1stError (double s, double tol, int pathDir) const =0 |
virtual double | distTo2ndError (double s, double tol, int pathDir) const =0 |
virtual double | distTo2ndError (double s, double tol, int pathDir) const =0 |
virtual void | getDFInfo (double fltLen, DifPoint &pos, DifVector &direction, DifVector &delDirect) const =0 |
virtual void | getDFInfo (double fltLen, DifPoint &pos, DifVector &direction, DifVector &delDirect) const =0 |
virtual void | getDFInfo2 (double fltLen, DifPoint &pos, DifVector &direction) const |
virtual void | getDFInfo2 (double fltLen, DifPoint &pos, DifVector &direction) const |
virtual void | getInfo (double fltLen, HepPoint3D &pos, Hep3Vector &direction, Hep3Vector &delDirect) const =0 |
virtual void | getInfo (double fltLen, HepPoint3D &pos, Hep3Vector &direction) const =0 |
virtual void | getInfo (double fltLen, HepPoint3D &pos, Hep3Vector &direction, Hep3Vector &delDirect) const =0 |
virtual void | getInfo (double fltLen, HepPoint3D &pos, Hep3Vector &direction) const =0 |
double | hiRange () const |
double | hiRange () const |
TrkSimpTraj & | invert () |
TrkSimpTraj & | invert () |
virtual void | invertParams (TrkParams *newparams, std::vector< bool > &flags) const =0 |
virtual void | invertParams (TrkParams *newparams, std::vector< bool > &flags) const =0 |
virtual const TrkSimpTraj * | localTrajectory (double fltLen, double &localFlt) const |
virtual const TrkSimpTraj * | localTrajectory (double fltLen, double &localFlt) const |
double | lowRange () const |
double | lowRange () const |
virtual int | nPar () const |
virtual int | nPar () const |
bool | operator== (const TrkSimpTraj &) const |
bool | operator== (const TrkSimpTraj &) const |
const TrkParams * | parameters () const |
TrkParams * | parameters () |
const TrkParams * | parameters () const |
TrkParams * | parameters () |
virtual TranslateParams | paramFunction () const =0 |
virtual TranslateParams | paramFunction () const =0 |
virtual HepPoint3D | position (double) const =0 |
virtual HepPoint3D | position (double) const =0 |
virtual void | print (std::ostream &os) const |
virtual void | print (std::ostream &os) const |
virtual void | printAll (std::ostream &os) const |
virtual void | printAll (std::ostream &os) const |
double | range () const |
double | range () const |
const HepPoint3D & | referencePoint () const |
const HepPoint3D & | referencePoint () const |
virtual void | setFlightRange (double newrange[2]) |
virtual void | setFlightRange (double newrange[2]) |
void | setPoint (const HepPoint3D &newpoint) |
void | setPoint (const HepPoint3D &newpoint) |
TrkSimpTraj (const TrkParams ¶ms, const double startRange=-99999., const double endRange=99999., const HepPoint3D &refpoint=_theOrigin) | |
TrkSimpTraj (const HepVector ¶ms, const HepSymMatrix &cov, const double startRange=-99999., const double endRange=99999., const HepPoint3D &refpoint=_theOrigin) | |
TrkSimpTraj (const TrkParams ¶ms, const double startRange=-99999., const double endRange=99999., const HepPoint3D &refpoint=_theOrigin) | |
TrkSimpTraj (const HepVector ¶ms, const HepSymMatrix &cov, const double startRange=-99999., const double endRange=99999., const HepPoint3D &refpoint=_theOrigin) | |
bool | validFlightDistance (double f, double tolerance=0.0) const |
bool | validFlightDistance (double f, double tolerance=0.0) const |
virtual void | visitAccept (TrkVisitor *vis) const =0 |
virtual void | visitAccept (TrkVisitor *vis) const =0 |
virtual | ~TrkSimpTraj () |
virtual | ~TrkSimpTraj () |
Static Public Attributes | |
HepPoint3D | _theOrigin |
Protected Attributes | |
TrkParams | _dtparams |
HepPoint3D | _refpoint |
double | flightrange [2] |
Private Member Functions | |
TrkSimpTraj & | operator= (const TrkSimpTraj &) |
TrkSimpTraj & | operator= (const TrkSimpTraj &) |
TrkSimpTraj (const TrkSimpTraj &) | |
TrkSimpTraj (const TrkSimpTraj &) |
|
00032 : 00033 //---------------------------------------------------------------------------- 00034 TrkDifTraj(lowlim, hilim),_dtparams(params, cov),_refpoint(refpoint) 00035 {;}
|
|
00039 : 00040 //---------------------------------------------------------------------------- 00041 TrkDifTraj(lowlim, hilim),_dtparams(params),_refpoint(refpoint) 00042 {;}
|
|
00055 { }
|
|
00045 : 00046 //---------------------------------------------------------------------------- 00047 TrkDifTraj(other.lowRange(),other.hiRange()), 00048 _dtparams(other._dtparams), 00049 _refpoint(other._refpoint) 00050 {}
|
|
|
|
|
|
|
|
|
|
|
|
00070 { 00071 //---------------------------------------------------------------------------- 00072 if(newpoint != _refpoint){ 00073 // find POCA to the new point 00074 TrkPocaXY endpoca(*this,fltlen,newpoint); 00075 if(endpoca.status().failure()){ 00076 std::cout<<"ErrMsg(error)" << "poca failure changing reference point" << std::endl; 00077 return; 00078 } else { 00079 // update flight length 00080 fltlen = endpoca.flt1(); 00081 // make a symmatrix from the covariance: temporary kludge 00082 int nrow = parameters()->covariance().num_row(); 00083 HepSymMatrix cov(nrow); 00084 for(int irow=0;irow<nrow;irow++) 00085 for(int icol=0;icol<=irow;icol++) 00086 cov.fast(irow+1,icol+1) = parameters()->covariance().fast(irow+1,icol+1); 00087 // Get the translation function 00088 TranslateParams pfunc = paramFunction(); 00089 // Use it on the SimpTraj parameters 00090 pfunc(_refpoint,newpoint, 00091 parameters()->parameter(),cov, 00092 _dtparams.parameter(),cov, 00093 fltlen); 00094 // put back the covariance 00095 _dtparams.covariance() = cov; 00096 _refpoint = newpoint; 00097 // update the flight range to correspond to the same range in space as before 00098 double newrange[2]; 00099 newrange[0] = lowRange() - fltlen; 00100 newrange[1] = hiRange() - fltlen; 00101 setFlightRange(newrange); 00102 } 00103 } 00104 return; 00105 }
|
|
Implements Trajectory. Implemented in HelixTraj, NeutTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implements Trajectory. Implemented in HelixTraj, NeutTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
|
|
00052 {
00053 return fabs(tolerance);
00054 }
|
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Reimplemented in HelixTraj, TrkDifPieceTraj, TrkCircleTraj, HelixTraj, TrkDifPieceTraj, and TrkCircleTraj. |
|
Reimplemented in HelixTraj, TrkDifPieceTraj, TrkCircleTraj, HelixTraj, TrkDifPieceTraj, and TrkCircleTraj. 00025 { 00026 // Slow default implementation. Override in subclasses where speed matters 00027 DifVector dummy; 00028 getDFInfo(fltLen, pos, direction, dummy); 00029 }
|
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
|
|
00092 {return flightrange[1];}
|
|
|
|
Reimplemented in NeutTraj, and NeutTraj. 00129 { 00130 // Invert parameters 00131 std::vector<bool> flags(parameters()->nPar(),false); 00132 invertParams(parameters(), flags); 00133 // loop over parameters and invert covariance matrix 00134 for(int iparam=0;iparam<parameters()->nPar();iparam++){ 00135 bool iinvert = flags[iparam]; 00136 // do covariance cross-terms too 00137 for(int jparam=iparam+1;jparam<parameters()->nPar();jparam++){ 00138 bool jinvert = flags[jparam]; 00139 if( (iinvert && !jinvert) || (!iinvert && jinvert) ) { 00140 // cross-terms change sign 00141 parameters()->covariance()[iparam][jparam] *= -1.0; 00142 } 00143 } 00144 } 00145 // invert the flightlength 00146 double range[2]; 00147 range[0] = -hiRange(); 00148 range[1] = -lowRange(); 00149 setFlightRange(range); 00150 // done 00151 return *this; 00152 }
|
|
Implemented in HelixTraj, NeutTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in HelixTraj, NeutTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implements TrkDifTraj. |
|
Implements TrkDifTraj. 00059 { 00060 //---------------------------------------------------------------------------- 00061 localFlt = fltLen; 00062 return this; 00063 }
|
|
|
|
00091 {return flightrange[0];}
|
|
Reimplemented in HelixTraj, NeutTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkCircleTraj, and TrkDifLineTraj. 00088 {return parameters()->nPar();}
|
|
Reimplemented in HelixTraj, NeutTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkCircleTraj, and TrkDifLineTraj. 00088 {return parameters()->nPar();}
|
|
|
|
|
|
|
|
00157 { 00158 if (lowRange()!=x.lowRange() || hiRange()!=x.hiRange()) return false; 00159 const HepVector &m=_dtparams.parameter(); 00160 unsigned int mp=m.num_row(); 00161 const HepVector &n=x._dtparams.parameter(); 00162 unsigned int np=n.num_row(); 00163 if (np!=mp) return false; 00164 for(unsigned i=0;i<np;++i){ 00165 if(m[i] != n[i]) return false; 00166 } 00167 return _refpoint==x._refpoint; 00168 }
|
|
00081 {return &_dtparams;}
|
|
00080 {return &_dtparams;}
|
|
00081 {return &_dtparams;}
|
|
00080 {return &_dtparams;}
|
|
Implemented in HelixTraj, NeutTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in HelixTraj, NeutTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, TrkDifLineTraj, MdcSagTraj, HelixTraj, NeutTraj, TrkDifPieceTraj, TrkLineTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Reimplemented from Trajectory. |
|
Reimplemented from Trajectory. Reimplemented in HelixTraj, and HelixTraj. 00119 { 00120 //---------------------------------------------------------------------------- 00121 os << "Simple "; 00122 Trajectory::print(os); 00123 }
|
|
Reimplemented from Trajectory. |
|
Reimplemented from Trajectory. Reimplemented in HelixTraj, and HelixTraj. 00108 { 00109 //---------------------------------------------------------------------------- 00110 os << "Simple "; 00111 Trajectory::printAll(os); 00112 os << "SimpTraj parameter vector = " 00113 << _dtparams.parameter(); 00114 os << " and covariance matrix = " 00115 << _dtparams.covariance(); 00116 }
|
|
|
|
|
|
00084 {return _refpoint;}
|
|
00084 {return _refpoint;}
|
|
Reimplemented in TrkDifPieceTraj, and TrkDifPieceTraj. |
|
Reimplemented in TrkDifPieceTraj, and TrkDifPieceTraj. 00058 { 00059 if (newrange[1] >= newrange[0]) { 00060 flightrange[0] = newrange[0]; 00061 flightrange[1] = newrange[1]; 00062 } else { 00063 std::cout<<"ErrMsg(error) "<< "Invalid Trajectory range requested." << std::endl; 00064 flightrange[0] = newrange[1]; 00065 flightrange[1] = newrange[0]; 00066 } 00067 }
|
|
00096 {_refpoint = newpoint;}
|
|
00096 {_refpoint = newpoint;}
|
|
|
|
00088 { 00089 return f >= flightrange[0]-tol && f <= flightrange[1]+tol; 00090 }
|
|
Implemented in HelixTraj, NeutTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
Implemented in HelixTraj, NeutTraj, TrkCircleTraj, TrkDifLineTraj, HelixTraj, NeutTraj, TrkCircleTraj, and TrkDifLineTraj. |
|
|
|
|
|
|
|
|