BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
TrkSimpTraj Class Referenceabstract

#include <TrkSimpTraj.h>

Inheritance diagram for TrkSimpTraj:

Public Member Functions

 TrkSimpTraj (const HepVector &params, const HepSymMatrix &cov, const double startRange=-99999., const double endRange=99999., const HepPoint3D &refpoint=_theOrigin)
 TrkSimpTraj (const TrkParams &params, const double startRange=-99999., const double endRange=99999., const HepPoint3D &refpoint=_theOrigin)
virtual ~TrkSimpTraj ()
virtual TrkSimpTrajclone () const =0
TrkParamsparameters ()
const TrkParamsparameters () const
virtual const TrkSimpTrajlocalTrajectory (double fltLen, double &localFlt) const
const HepPoint3DreferencePoint () const
virtual void print (std::ostream &os) const
virtual void printAll (std::ostream &os) const
virtual int nPar () const
void changePoint (const HepPoint3D &newpoint, double &fltlen)
void setPoint (const HepPoint3D &newpoint)
TrkSimpTrajinvert ()
virtual void invertParams (TrkParams *newparams, std::vector< bool > &flags) const =0
virtual TranslateParams paramFunction () const =0
virtual void visitAccept (TrkVisitor *vis) const =0
bool operator== (const TrkSimpTraj &) const
 TrkSimpTraj (const HepVector &params, const HepSymMatrix &cov, const double startRange=-99999., const double endRange=99999., const HepPoint3D &refpoint=_theOrigin)
 TrkSimpTraj (const TrkParams &params, const double startRange=-99999., const double endRange=99999., const HepPoint3D &refpoint=_theOrigin)
virtual ~TrkSimpTraj ()
virtual TrkSimpTrajclone () const =0
TrkParamsparameters ()
const TrkParamsparameters () const
virtual const TrkSimpTrajlocalTrajectory (double fltLen, double &localFlt) const
const HepPoint3DreferencePoint () const
virtual void print (std::ostream &os) const
virtual void printAll (std::ostream &os) const
virtual int nPar () const
void changePoint (const HepPoint3D &newpoint, double &fltlen)
void setPoint (const HepPoint3D &newpoint)
TrkSimpTrajinvert ()
virtual void invertParams (TrkParams *newparams, std::vector< bool > &flags) const =0
virtual TranslateParams paramFunction () const =0
virtual void visitAccept (TrkVisitor *vis) const =0
bool operator== (const TrkSimpTraj &) const
 TrkSimpTraj (const HepVector &params, const HepSymMatrix &cov, const double startRange=-99999., const double endRange=99999., const HepPoint3D &refpoint=_theOrigin)
 TrkSimpTraj (const TrkParams &params, const double startRange=-99999., const double endRange=99999., const HepPoint3D &refpoint=_theOrigin)
virtual ~TrkSimpTraj ()
virtual TrkSimpTrajclone () const =0
TrkParamsparameters ()
const TrkParamsparameters () const
virtual const TrkSimpTrajlocalTrajectory (double fltLen, double &localFlt) const
const HepPoint3DreferencePoint () const
virtual void print (std::ostream &os) const
virtual void printAll (std::ostream &os) const
virtual int nPar () const
void changePoint (const HepPoint3D &newpoint, double &fltlen)
void setPoint (const HepPoint3D &newpoint)
TrkSimpTrajinvert ()
virtual void invertParams (TrkParams *newparams, std::vector< bool > &flags) const =0
virtual TranslateParams paramFunction () const =0
virtual void visitAccept (TrkVisitor *vis) const =0
bool operator== (const TrkSimpTraj &) const
Public Member Functions inherited from TrkDifTraj
 TrkDifTraj (const double lowlim=-99999., const double hilim=99999.)
virtual ~TrkDifTraj ()
virtual void getDFInfo (double fltLen, DifPoint &pos, DifVector &direction, DifVector &delDirect) const =0
virtual void getDFInfo2 (double fltLen, DifPoint &pos, DifVector &direction) const
 TrkDifTraj (const double lowlim=-99999., const double hilim=99999.)
virtual ~TrkDifTraj ()
virtual void getDFInfo (double fltLen, DifPoint &pos, DifVector &direction, DifVector &delDirect) const =0
virtual void getDFInfo2 (double fltLen, DifPoint &pos, DifVector &direction) const
 TrkDifTraj (const double lowlim=-99999., const double hilim=99999.)
virtual ~TrkDifTraj ()
virtual void getDFInfo (double fltLen, DifPoint &pos, DifVector &direction, DifVector &delDirect) const =0
virtual void getDFInfo2 (double fltLen, DifPoint &pos, DifVector &direction) const
Public Member Functions inherited from Trajectory
 Trajectory (double lowlim, double hilim)
virtual ~Trajectory ()
virtual HepPoint3D position (double) const =0
virtual Hep3Vector direction (double) const =0
virtual Hep3Vector delDirect (double) const =0
virtual double curvature (double) 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
double distTo0thError (double s, double tol, int pathDir) const
virtual double distTo1stError (double s, double tol, int pathDir) const =0
virtual double distTo2ndError (double s, double tol, int pathDir) const =0
bool validFlightDistance (double f, double tolerance=0.0) const
virtual void setFlightRange (double newrange[2])
double lowRange () const
double hiRange () const
double range () const
 Trajectory (double lowlim, double hilim)
virtual ~Trajectory ()
virtual HepPoint3D position (double) const =0
virtual Hep3Vector direction (double) const =0
virtual Hep3Vector delDirect (double) const =0
virtual double curvature (double) 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
double distTo0thError (double s, double tol, int pathDir) const
virtual double distTo1stError (double s, double tol, int pathDir) const =0
virtual double distTo2ndError (double s, double tol, int pathDir) const =0
bool validFlightDistance (double f, double tolerance=0.0) const
virtual void setFlightRange (double newrange[2])
double lowRange () const
double hiRange () const
double range () const
 Trajectory (double lowlim, double hilim)
virtual ~Trajectory ()
virtual HepPoint3D position (double) const =0
virtual Hep3Vector direction (double) const =0
virtual Hep3Vector delDirect (double) const =0
virtual double curvature (double) 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
double distTo0thError (double s, double tol, int pathDir) const
virtual double distTo1stError (double s, double tol, int pathDir) const =0
virtual double distTo2ndError (double s, double tol, int pathDir) const =0
bool validFlightDistance (double f, double tolerance=0.0) const
virtual void setFlightRange (double newrange[2])
double lowRange () const
double hiRange () const
double range () const
Public Member Functions inherited from TrkKalDeriv
virtual HepMatrix derivDeflect (double fltlen, deflectDirection idir) const =0
virtual HepMatrix derivDisplace (double fltlen, deflectDirection idir) const =0
virtual HepMatrix derivPFract (double fltlen) const =0
virtual HepMatrix derivDeflect (double fltlen, deflectDirection idir) const =0
virtual HepMatrix derivDisplace (double fltlen, deflectDirection idir) const =0
virtual HepMatrix derivPFract (double fltlen) const =0
virtual HepMatrix derivDeflect (double fltlen, deflectDirection idir) const =0
virtual HepMatrix derivDisplace (double fltlen, deflectDirection idir) const =0
virtual HepMatrix derivPFract (double fltlen) const =0

Static Public Attributes

static HepPoint3D _theOrigin

Protected Attributes

TrkParams _dtparams
HepPoint3D _refpoint
Protected Attributes inherited from Trajectory
double flightrange [2]

Additional Inherited Members

Protected Member Functions inherited from Trajectory
Trajectoryoperator= (const Trajectory &)
Trajectoryoperator= (const Trajectory &)
Trajectoryoperator= (const Trajectory &)

Detailed Description

Constructor & Destructor Documentation

◆ TrkSimpTraj() [1/6]

TrkSimpTraj::TrkSimpTraj ( const HepVector & params,
const HepSymMatrix & cov,
const double startRange = -99999.,
const double endRange = 99999.,
const HepPoint3D & refpoint = _theOrigin )

◆ TrkSimpTraj() [2/6]

TrkSimpTraj::TrkSimpTraj ( const TrkParams & params,
const double startRange = -99999.,
const double endRange = 99999.,
const HepPoint3D & refpoint = _theOrigin )

Definition at line 39 of file TrkSimpTraj.cxx.

41 : //----------------------------------------------------------------------------
42 TrkDifTraj( lowlim, hilim )
43 , _dtparams( params )
44 , _refpoint( refpoint ) {
45 ;
46}

◆ ~TrkSimpTraj() [1/3]

TrkSimpTraj::~TrkSimpTraj ( )
virtual

Definition at line 56 of file TrkSimpTraj.cxx.

58{}

◆ TrkSimpTraj() [3/6]

TrkSimpTraj::TrkSimpTraj ( const HepVector & params,
const HepSymMatrix & cov,
const double startRange = -99999.,
const double endRange = 99999.,
const HepPoint3D & refpoint = _theOrigin )

◆ TrkSimpTraj() [4/6]

TrkSimpTraj::TrkSimpTraj ( const TrkParams & params,
const double startRange = -99999.,
const double endRange = 99999.,
const HepPoint3D & refpoint = _theOrigin )

◆ ~TrkSimpTraj() [2/3]

virtual TrkSimpTraj::~TrkSimpTraj ( )
virtual

◆ TrkSimpTraj() [5/6]

TrkSimpTraj::TrkSimpTraj ( const HepVector & params,
const HepSymMatrix & cov,
const double startRange = -99999.,
const double endRange = 99999.,
const HepPoint3D & refpoint = _theOrigin )

◆ TrkSimpTraj() [6/6]

TrkSimpTraj::TrkSimpTraj ( const TrkParams & params,
const double startRange = -99999.,
const double endRange = 99999.,
const HepPoint3D & refpoint = _theOrigin )

◆ ~TrkSimpTraj() [3/3]

virtual TrkSimpTraj::~TrkSimpTraj ( )
virtual

Member Function Documentation

◆ changePoint() [1/3]

void TrkSimpTraj::changePoint ( const HepPoint3D & newpoint,
double & fltlen )

Definition at line 71 of file TrkSimpTraj.cxx.

71 {
72 //----------------------------------------------------------------------------
73 if ( newpoint != _refpoint )
74 {
75 // find POCA to the new point
76 TrkPocaXY endpoca( *this, fltlen, newpoint );
77 if ( endpoca.status().failure() )
78 {
79 std::cout << "ErrMsg(error)"
80 << "poca failure changing reference point" << std::endl;
81 return;
82 }
83 else
84 {
85 // update flight length
86 fltlen = endpoca.flt1();
87 // make a symmatrix from the covariance: temporary kludge
88 int nrow = parameters()->covariance().num_row();
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 ) =
93 parameters()->covariance().fast( irow + 1, icol + 1 );
94 // Get the translation function
96 // Use it on the SimpTraj parameters
97 pfunc( _refpoint, newpoint, parameters()->parameter(), cov, _dtparams.parameter(), cov,
98 fltlen );
99 // put back the covariance
100 _dtparams.covariance() = cov;
101 _refpoint = newpoint;
102 // update the flight range to correspond to the same range in space as before
103 double newrange[2];
104 newrange[0] = lowRange() - fltlen;
105 newrange[1] = hiRange() - fltlen;
106 setFlightRange( newrange );
107 }
108 }
109 return;
110}
void(* TranslateParams)(const HepPoint3D &oldpoint, const HepPoint3D &newpoint, const HepVector &oldpar, const HepSymMatrix &oldcov, HepVector &newpar, HepSymMatrix &newcov, double fltlen)
virtual void setFlightRange(double newrange[2])
virtual TranslateParams paramFunction() const =0

◆ changePoint() [2/3]

void TrkSimpTraj::changePoint ( const HepPoint3D & newpoint,
double & fltlen )

◆ changePoint() [3/3]

void TrkSimpTraj::changePoint ( const HepPoint3D & newpoint,
double & fltlen )

◆ clone() [1/3]

◆ clone() [2/3]

virtual TrkSimpTraj * TrkSimpTraj::clone ( ) const
pure virtual

◆ clone() [3/3]

virtual TrkSimpTraj * TrkSimpTraj::clone ( ) const
pure virtual

◆ invert() [1/3]

TrkSimpTraj & TrkSimpTraj::invert ( )

Definition at line 128 of file TrkSimpTraj.cxx.

128 {
129 // Invert parameters
130 std::vector<bool> flags( parameters()->nPar(), false );
131 invertParams( parameters(), flags );
132 // loop over parameters and invert covariance matrix
133 for ( int iparam = 0; iparam < parameters()->nPar(); iparam++ )
134 {
135 bool iinvert = flags[iparam];
136 // do covariance cross-terms too
137 for ( int jparam = iparam + 1; jparam < parameters()->nPar(); jparam++ )
138 {
139 bool jinvert = flags[jparam];
140 if ( ( iinvert && !jinvert ) || ( !iinvert && jinvert ) )
141 {
142 // cross-terms change sign
143 parameters()->covariance()[iparam][jparam] *= -1.0;
144 }
145 }
146 }
147 // invert the flightlength
148 double range[2];
149 range[0] = -hiRange();
150 range[1] = -lowRange();
152 // done
153 return *this;
154}
virtual void invertParams(TrkParams *newparams, std::vector< bool > &flags) const =0

◆ invert() [2/3]

TrkSimpTraj & TrkSimpTraj::invert ( )

◆ invert() [3/3]

TrkSimpTraj & TrkSimpTraj::invert ( )

◆ invertParams() [1/3]

virtual void TrkSimpTraj::invertParams ( TrkParams * newparams,
std::vector< bool > & flags ) const
pure virtual

◆ invertParams() [2/3]

virtual void TrkSimpTraj::invertParams ( TrkParams * newparams,
std::vector< bool > & flags ) const
pure virtual

◆ invertParams() [3/3]

virtual void TrkSimpTraj::invertParams ( TrkParams * newparams,
std::vector< bool > & flags ) const
pure virtual

◆ localTrajectory() [1/3]

const TrkSimpTraj * TrkSimpTraj::localTrajectory ( double fltLen,
double & localFlt ) const
virtual

Implements TrkDifTraj.

Definition at line 61 of file TrkSimpTraj.cxx.

61 {
62 //----------------------------------------------------------------------------
63 localFlt = fltLen;
64 return this;
65}

◆ localTrajectory() [2/3]

virtual const TrkSimpTraj * TrkSimpTraj::localTrajectory ( double fltLen,
double & localFlt ) const
virtual

Implements TrkDifTraj.

◆ localTrajectory() [3/3]

virtual const TrkSimpTraj * TrkSimpTraj::localTrajectory ( double fltLen,
double & localFlt ) const
virtual

Implements TrkDifTraj.

◆ nPar() [1/3]

virtual int TrkSimpTraj::nPar ( ) const
inlinevirtual

◆ nPar() [2/3]

virtual int TrkSimpTraj::nPar ( ) const
inlinevirtual

◆ nPar() [3/3]

virtual int TrkSimpTraj::nPar ( ) const
inlinevirtual

◆ operator==() [1/3]

bool TrkSimpTraj::operator== ( const TrkSimpTraj & x) const

Definition at line 156 of file TrkSimpTraj.cxx.

156 {
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 )
164 {
165 if ( m[i] != n[i] ) return false;
166 }
167 return _refpoint == x._refpoint;
168}
const Int_t n
Double_t x[10]
double mp

◆ operator==() [2/3]

bool TrkSimpTraj::operator== ( const TrkSimpTraj & ) const

◆ operator==() [3/3]

bool TrkSimpTraj::operator== ( const TrkSimpTraj & ) const

◆ parameters() [1/6]

◆ parameters() [2/6]

TrkParams * TrkSimpTraj::parameters ( )
inline

◆ parameters() [3/6]

TrkParams * TrkSimpTraj::parameters ( )
inline

◆ parameters() [4/6]

const TrkParams * TrkSimpTraj::parameters ( ) const
inline

◆ parameters() [5/6]

const TrkParams * TrkSimpTraj::parameters ( ) const
inline

◆ parameters() [6/6]

const TrkParams * TrkSimpTraj::parameters ( ) const
inline

◆ paramFunction() [1/3]

virtual TranslateParams TrkSimpTraj::paramFunction ( ) const
pure virtual

◆ paramFunction() [2/3]

virtual TranslateParams TrkSimpTraj::paramFunction ( ) const
pure virtual

◆ paramFunction() [3/3]

virtual TranslateParams TrkSimpTraj::paramFunction ( ) const
pure virtual

◆ print() [1/3]

virtual void TrkSimpTraj::print ( std::ostream & os) const
virtual

Reimplemented from Trajectory.

Reimplemented in HelixTraj, HelixTraj, and HelixTraj.

◆ print() [2/3]

virtual void TrkSimpTraj::print ( std::ostream & os) const
virtual

Reimplemented from Trajectory.

Reimplemented in HelixTraj, HelixTraj, and HelixTraj.

◆ print() [3/3]

virtual void TrkSimpTraj::print ( std::ostream & os) const
virtual

Reimplemented from Trajectory.

Reimplemented in HelixTraj, HelixTraj, and HelixTraj.

◆ printAll() [1/3]

virtual void TrkSimpTraj::printAll ( std::ostream & os) const
virtual

Reimplemented from Trajectory.

Reimplemented in HelixTraj, HelixTraj, and HelixTraj.

◆ printAll() [2/3]

virtual void TrkSimpTraj::printAll ( std::ostream & os) const
virtual

Reimplemented from Trajectory.

Reimplemented in HelixTraj, HelixTraj, and HelixTraj.

◆ printAll() [3/3]

virtual void TrkSimpTraj::printAll ( std::ostream & os) const
virtual

Reimplemented from Trajectory.

Reimplemented in HelixTraj, HelixTraj, and HelixTraj.

◆ referencePoint() [1/3]

◆ referencePoint() [2/3]

const HepPoint3D & TrkSimpTraj::referencePoint ( ) const
inline

◆ referencePoint() [3/3]

const HepPoint3D & TrkSimpTraj::referencePoint ( ) const
inline

◆ setPoint() [1/3]

void TrkSimpTraj::setPoint ( const HepPoint3D & newpoint)
inline

Definition at line 87 of file InstallArea/x86_64-el9-gcc13-dbg/include/TrkBase/TrkSimpTraj.h.

87{ _refpoint = newpoint; }

◆ setPoint() [2/3]

void TrkSimpTraj::setPoint ( const HepPoint3D & newpoint)
inline

Definition at line 87 of file InstallArea/x86_64-el9-gcc13-opt/include/TrkBase/TrkSimpTraj.h.

87{ _refpoint = newpoint; }

◆ setPoint() [3/3]

void TrkSimpTraj::setPoint ( const HepPoint3D & newpoint)
inline

Definition at line 87 of file Reconstruction/MdcPatRec/TrkBase/include/TrkBase/TrkSimpTraj.h.

87{ _refpoint = newpoint; }

◆ visitAccept() [1/3]

virtual void TrkSimpTraj::visitAccept ( TrkVisitor * vis) const
pure virtual

◆ visitAccept() [2/3]

virtual void TrkSimpTraj::visitAccept ( TrkVisitor * vis) const
pure virtual

◆ visitAccept() [3/3]

virtual void TrkSimpTraj::visitAccept ( TrkVisitor * vis) const
pure virtual

Member Data Documentation

◆ _dtparams

◆ _refpoint

◆ _theOrigin


The documentation for this class was generated from the following files: