EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LSLTrackRep Class Reference

a local straight line track representation More...

#include <EicRoot/blob/master/GenfitTools/trackrep/LSLtrackRep/LSLTrackRep.h>

+ Inheritance diagram for LSLTrackRep:
+ Collaboration diagram for LSLTrackRep:

Public Member Functions

 LSLTrackRep ()
 
 LSLTrackRep (double z, double x, double y, double dxdz, double dydz, double invp, double sigx, double sigy, double sigdxdz, double sigdydz, double siginvp, GFAbsBField *field)
 
 LSLTrackRep (const LSLTrackRep &rep)
 
virtual ~LSLTrackRep ()
 
virtual GFAbsTrackRepclone () const
 
virtual GFAbsTrackRepprototype () const
 
void init (const TVector3 &pos, double dxdz, double dydz, double invp, double sigx, double sigy, double sigdxdz, double sigdydz, double siginvp, GFAbsBField *field)
 
void SetBField (GFAbsBField *b)
 
void setData (const TMatrixT< double > &st, const GFDetPlane &pl, const TMatrixT< double > *cov=NULL)
 
void setRungeKuttaAcc (double acc)
 
void setRungeKuttaAdaptive (bool f)
 
virtual double extrapolate (const GFDetPlane &, TMatrixT< double > &statePred)
 returns the tracklength spanned in this extrapolation
 
virtual double extrapolate (const GFDetPlane &, TMatrixT< double > &statePred, TMatrixT< double > &covPred)
 Extrapolates the track to the given detectorplane.
 
virtual void extrapolateToPoint (const TVector3 &, TVector3 &poca, TVector3 &normVec)
 This method is to extrapolate the track to point of closest approach to a point in space.
 
virtual void stepalong (double h)
 
virtual TVector3 getPos (const GFDetPlane &)
 
virtual TVector3 getMom (const GFDetPlane &)
 
virtual void getPosMom (const GFDetPlane &, TVector3 &pos, TVector3 &mom)
 
virtual TVectorT< double > getGlobal ()
 
virtual TMatrixT< double > getGlobalCov ()
 
virtual double getCharge () const
 
virtual void switchDirection ()
 
- Public Member Functions inherited from GFAbsTrackRep
 GFAbsTrackRep ()
 
 GFAbsTrackRep (int)
 
virtual ~GFAbsTrackRep ()
 
virtual void extrapolateToLine (const TVector3 &point1, const TVector3 &point2, TVector3 &poca, TVector3 &normVec, TVector3 &poca_onwire)
 This method extrapolates to the point of closest approach to a line.
 
virtual double stepalong (double h, TVector3 &point, TVector3 &dir)
 make step of h cm along the track
 
double extrapolate (const GFDetPlane &plane)
 This changes the state and cov and plane of the rep.
 
unsigned int getDim () const
 returns dimension of state vector
 
virtual void Print (const Option_t *="") const
 
TMatrixT< double > getState () const
 
TMatrixT< double > getCov () const
 
double getStateElem (int i) const
 
double getCovElem (int i, int j) const
 
virtual void getPosMomCov (const GFDetPlane &pl, TVector3 &pos, TVector3 &mom, TMatrixT< double > &cov)
 method which gets position, momentum and 6x6 covariance matrix
 
virtual int getPDG ()
 method which gets pdg particle code
 
TVector3 getPos ()
 
TVector3 getMom ()
 
void getPosMomCov (TVector3 &pos, TVector3 &mom, TMatrixT< double > &c)
 
TMatrixT< double > getFirstState () const
 
TMatrixT< double > getFirstCov () const
 
GFDetPlane getFirstPlane () const
 
TMatrixT< double > getLastState () const
 
TMatrixT< double > getLastCov () const
 
GFDetPlane getLastPlane () const
 
double getChiSqu () const
 
double getForwardChiSqu () const
 
double getRedChiSqu () const
 returns chi2/ndf
 
double getPVal () const
 
unsigned int getNDF () const
 
double getXX0 () const
 X/X0 (total fraction of radiation length passed), cumulated during last extrapolation. The fitter has to reset XX0 via resetXX0()
 
virtual void setData (const TMatrixT< double > &st, const GFDetPlane &pl, const TMatrixT< double > *cov=NULL, const TMatrixT< double > *aux=NULL)
 Puts the track representation in a given state.
 
void setCov (const TMatrixT< double > &aCov)
 
void setFirstState (const TMatrixT< double > &aState)
 
void setFirstCov (const TMatrixT< double > &aCov)
 
void setFirstPlane (const GFDetPlane &aPlane)
 
void setLastState (const TMatrixT< double > &aState)
 
void setLastCov (const TMatrixT< double > &aCov)
 
void setLastPlane (const GFDetPlane &aPlane)
 
virtual void setPosMomCov (const TVector3 &pos, const TVector3 &mom, const TMatrixT< double > &cov)
 method which sets position, momentum and 6x6 covariance matrix
 
const GFDetPlanegetReferencePlane () const
 
void setChiSqu (double aChiSqu)
 
void setForwardChiSqu (double aChiSqu)
 
void setNDF (unsigned int n)
 
void addChiSqu (double aChiSqu)
 
void addForwardChiSqu (double aChiSqu)
 
void addNDF (unsigned int n)
 
void setStatusFlag (int _val)
 
bool setInverted (bool f=true)
 Deprecated. Should be removed soon.
 
bool getStatusFlag ()
 
virtual void reset ()
 
virtual bool hasAuxInfo ()
 See if the track representation has auxillary information stored.
 
virtual const TMatrixT< double > * getAuxInfo (const GFDetPlane &)
 Get auxillary information from the track representation.
 
void resetXX0 ()
 

Private Member Functions

void Jacobian (const GFDetPlane &pl, const TMatrixT< double > &statePred, TMatrixT< double > &jacResult)
 

Private Attributes

double s
 
double _acc
 
bool _adaptive
 
AbsNystromEQM_eqm
 

Friends

std::ostream & operator<< (std::ostream &s, const LSLTrackRep &me)
 

Additional Inherited Members

- Protected Attributes inherited from GFAbsTrackRep
unsigned int fDimension
 Dimensionality of track representation.
 
TMatrixT< double > fState
 The vector of track parameters.
 
TMatrixT< double > fCov
 The covariance matrix.
 
double fChiSqu
 chiSqu of the track fit
 
double fForwardChiSqu
 
unsigned int fNdf
 
int fStatusFlag
 status of track representation: 0 means everything's OK
 
bool fInverted
 specifies the direction of flight of the particle
 
TMatrixT< double > fFirstState
 state, cov and plane for first and last point in fit
 
TMatrixT< double > fFirstCov
 
TMatrixT< double > fLastState
 
TMatrixT< double > fLastCov
 
GFDetPlane fFirstPlane
 
GFDetPlane fLastPlane
 
GFDetPlane fRefPlane
 
double fXX0
 

Detailed Description

a local straight line track representation

The parameterization for the local straight line track representation is:

  • x (in global coordinates)
  • y (in global coordinates)
  • dx/dz
  • dy/dz
  • 1/p

The free parameter is z (in global coordinates)

The LSLTrackRep can only extrapolate to detector planes perpendicular to the z-axis and as such does not fulfill the general genfit criteria.

If no BField is specified through GFAbsBFieldIfc a constant field of B=(0,0,2T) is hardcoded.

LSLTrackRep uses a simple Nystrom-type integrator to extrapolate the track parameters in the BField.

Material effects are NOT taken into account.

Definition at line 63 of file LSLTrackRep.h.

View newest version in sPHENIX GitHub at line 63 of file LSLTrackRep.h

Constructor & Destructor Documentation

LSLTrackRep::LSLTrackRep ( )

Definition at line 32 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 32 of file LSLTrackRep.cxx

References _eqm, and GFAbsTrackRep::fRefPlane.

Referenced by clone(), and prototype().

+ Here is the caller graph for this function:

LSLTrackRep::LSLTrackRep ( double  z,
double  x,
double  y,
double  dxdz,
double  dydz,
double  invp,
double  sigx,
double  sigy,
double  sigdxdz,
double  sigdydz,
double  siginvp,
GFAbsBField field 
)

Definition at line 41 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 41 of file LSLTrackRep.cxx

References _eqm, GFAbsTrackRep::fCov, GFAbsTrackRep::fRefPlane, GFAbsTrackRep::fState, s, sigx, sigy, x, y, and z.

LSLTrackRep::LSLTrackRep ( const LSLTrackRep rep)

Definition at line 67 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 67 of file LSLTrackRep.cxx

References _acc, _adaptive, _eqm, and s.

LSLTrackRep::~LSLTrackRep ( )
virtual

Definition at line 77 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 77 of file LSLTrackRep.cxx

References _eqm.

Member Function Documentation

virtual GFAbsTrackRep* LSLTrackRep::clone ( ) const
inlinevirtual

Implements GFAbsTrackRep.

Definition at line 79 of file LSLTrackRep.h.

View newest version in sPHENIX GitHub at line 79 of file LSLTrackRep.h

References LSLTrackRep().

+ Here is the call graph for this function:

double LSLTrackRep::extrapolate ( const GFDetPlane plane,
TMatrixT< double > &  statePred 
)
virtual

returns the tracklength spanned in this extrapolation

There is a default implementation in GFAbsTrackRep.cxx which just drops the predicted covaraiance. If your trackrep has a way to extrapolate without giving a correct cov (that would be faster probably), please overwrite it. This method does NOT alter the state of the object!

Reimplemented from GFAbsTrackRep.

Definition at line 118 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 118 of file LSLTrackRep.cxx

References _acc, _adaptive, _eqm, GFAbsTrackRep::fDimension, GFAbsTrackRep::fState, GFDetPlane::getO(), Nystrom::propagate(), s, Nystrom::setAccuracy(), Nystrom::setAdaptive(), and Acts::UnitConstants::u.

Referenced by extrapolate(), extrapolateToPoint(), getMom(), getPos(), getPosMom(), and Jacobian().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double LSLTrackRep::extrapolate ( const GFDetPlane plane,
TMatrixT< double > &  statePred,
TMatrixT< double > &  covPred 
)
virtual

Extrapolates the track to the given detectorplane.

Results are put into statePred and covPred This method does NOT alter the state of the object!

Implements GFAbsTrackRep.

Definition at line 184 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 184 of file LSLTrackRep.cxx

References extrapolate(), GFAbsTrackRep::fCov, GFAbsTrackRep::fDimension, and Jacobian().

+ Here is the call graph for this function:

void LSLTrackRep::extrapolateToPoint ( const TVector3 &  point,
TVector3 &  poca,
TVector3 &  normVec 
)
virtual

This method is to extrapolate the track to point of closest approach to a point in space.

There is an empty implementation of this method in GFAbsTrackRep.cxx, which will just abort with an error message. One can overwrite this method if one wishes to implement a track representation, which should have this feature. An example of an experiment in which you would not need this feature would be track fitting (not so much vertexing) in an experiment with only planar trackers like silicons or planar wire chambers and such. An example where you would need it, would be a TPC where you have to fit the track to space points, or other drift chambers with complicated hit topology. This method does NOT alter the state of the object!

Reimplemented from GFAbsTrackRep.

Definition at line 202 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 202 of file LSLTrackRep.cxx

References Acts::Test::dim, extrapolate(), GFAbsTrackRep::getDim(), GFDetPlane::getO(), Acts::PrimitivesView3DTest::plane, GFDetPlane::setO(), GFDetPlane::setU(), and GFDetPlane::setV().

+ Here is the call graph for this function:

virtual double LSLTrackRep::getCharge ( ) const
inlinevirtual

Implements GFAbsTrackRep.

Definition at line 126 of file LSLTrackRep.h.

View newest version in sPHENIX GitHub at line 126 of file LSLTrackRep.h

References GFAbsTrackRep::fInverted, and GFAbsTrackRep::fState.

Referenced by getGlobalCov().

+ Here is the caller graph for this function:

TVectorT< double > LSLTrackRep::getGlobal ( )
virtual

Definition at line 296 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 296 of file LSLTrackRep.cxx

References GFAbsTrackRep::getMom(), GFAbsTrackRep::getPos(), charm_jet_coverage::mom, and pos().

+ Here is the call graph for this function:

TMatrixT< double > LSLTrackRep::getGlobalCov ( )
virtual

Definition at line 307 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 307 of file LSLTrackRep.cxx

References GFAbsTrackRep::fCov, GFAbsTrackRep::fState, getCharge(), Acts::IntegrationTest::L, and p.

+ Here is the call graph for this function:

TVector3 LSLTrackRep::getMom ( const GFDetPlane pl)
virtual

Implements GFAbsTrackRep.

Definition at line 261 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 261 of file LSLTrackRep.cxx

References extrapolate(), GFAbsTrackRep::fInverted, GFAbsTrackRep::fState, GFDetPlane::getO(), p, and z.

+ Here is the call graph for this function:

TVector3 LSLTrackRep::getPos ( const GFDetPlane pl)
virtual

Implements GFAbsTrackRep.

Definition at line 251 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 251 of file LSLTrackRep.cxx

References extrapolate(), GFAbsTrackRep::fState, GFDetPlane::getO(), p, and z.

+ Here is the call graph for this function:

void LSLTrackRep::getPosMom ( const GFDetPlane pl,
TVector3 &  pos,
TVector3 &  mom 
)
virtual

Implements GFAbsTrackRep.

Definition at line 279 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 279 of file LSLTrackRep.cxx

References extrapolate(), GFAbsTrackRep::fInverted, GFAbsTrackRep::fState, GFDetPlane::getO(), charm_jet_coverage::mom, p, and z.

+ Here is the call graph for this function:

void LSLTrackRep::init ( const TVector3 &  pos,
double  dxdz,
double  dydz,
double  invp,
double  sigx,
double  sigy,
double  sigdxdz,
double  sigdydz,
double  siginvp,
GFAbsBField field 
)

Definition at line 83 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 83 of file LSLTrackRep.cxx

References _eqm, GFAbsTrackRep::fCov, GFAbsTrackRep::fRefPlane, GFAbsTrackRep::fState, s, sigx, and sigy.

void LSLTrackRep::Jacobian ( const GFDetPlane pl,
const TMatrixT< double > &  statePred,
TMatrixT< double > &  jacResult 
)
private

Definition at line 227 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 227 of file LSLTrackRep.cxx

References Acts::UnitConstants::e, extrapolate(), GFAbsTrackRep::fState, and Acts::UnitConstants::h.

Referenced by extrapolate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual GFAbsTrackRep* LSLTrackRep::prototype ( ) const
inlinevirtual

Implements GFAbsTrackRep.

Definition at line 81 of file LSLTrackRep.h.

View newest version in sPHENIX GitHub at line 81 of file LSLTrackRep.h

References LSLTrackRep().

+ Here is the call graph for this function:

void LSLTrackRep::SetBField ( GFAbsBField b)

Definition at line 111 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 111 of file LSLTrackRep.cxx

References _eqm.

void LSLTrackRep::setData ( const TMatrixT< double > &  st,
const GFDetPlane pl,
const TMatrixT< double > *  cov = NULL 
)
inline

Definition at line 96 of file LSLTrackRep.h.

View newest version in sPHENIX GitHub at line 96 of file LSLTrackRep.h

References Acts::Test::cov, GFDetPlane::getO(), s, and GFAbsTrackRep::setData().

+ Here is the call graph for this function:

void LSLTrackRep::setRungeKuttaAcc ( double  acc)
inline

Definition at line 100 of file LSLTrackRep.h.

View newest version in sPHENIX GitHub at line 100 of file LSLTrackRep.h

References _acc.

void LSLTrackRep::setRungeKuttaAdaptive ( bool  f)
inline

Definition at line 101 of file LSLTrackRep.h.

View newest version in sPHENIX GitHub at line 101 of file LSLTrackRep.h

References _adaptive.

void LSLTrackRep::stepalong ( double  h)
virtual

Definition at line 219 of file LSLTrackRep.cxx.

View newest version in sPHENIX GitHub at line 219 of file LSLTrackRep.cxx

References GFAbsTrackRep::extrapolate(), GFAbsTrackRep::fRefPlane, GFDetPlane::getO(), and GFDetPlane::setO().

+ Here is the call graph for this function:

virtual void LSLTrackRep::switchDirection ( )
inlinevirtual

Implements GFAbsTrackRep.

Definition at line 129 of file LSLTrackRep.h.

View newest version in sPHENIX GitHub at line 129 of file LSLTrackRep.h

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  s,
const LSLTrackRep me 
)
friend

Member Data Documentation

double LSLTrackRep::_acc
private

Definition at line 143 of file LSLTrackRep.h.

View newest version in sPHENIX GitHub at line 143 of file LSLTrackRep.h

Referenced by extrapolate(), LSLTrackRep(), and setRungeKuttaAcc().

bool LSLTrackRep::_adaptive
private

Definition at line 144 of file LSLTrackRep.h.

View newest version in sPHENIX GitHub at line 144 of file LSLTrackRep.h

Referenced by extrapolate(), LSLTrackRep(), and setRungeKuttaAdaptive().

AbsNystromEQM* LSLTrackRep::_eqm
private

Definition at line 146 of file LSLTrackRep.h.

View newest version in sPHENIX GitHub at line 146 of file LSLTrackRep.h

Referenced by extrapolate(), init(), LSLTrackRep(), SetBField(), and ~LSLTrackRep().

double LSLTrackRep::s
private

Definition at line 129 of file LSLTrackRep.h.

View newest version in sPHENIX GitHub at line 129 of file LSLTrackRep.h

Referenced by extrapolate(), init(), LSLTrackRep(), and setData().


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