FairRoot/PandaRoot
Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
genfit::RKTrackRep Class Reference

AbsTrackRep with 5D track parameterization in plane coordinates: (q/p, u', v', u, v) More...

#include <RKTrackRep.h>

Inheritance diagram for genfit::RKTrackRep:
genfit::AbsTrackRep

Public Member Functions

 RKTrackRep ()
 
 RKTrackRep (int pdgCode, char propDir=0)
 
virtual ~RKTrackRep ()
 
virtual AbsTrackRepclone () const
 Clone the trackRep. More...
 
virtual double extrapolateToPlane (StateOnPlane &state, const SharedPlanePtr &plane, bool stopAtBoundary=false, bool calcJacobianNoise=false) const
 Extrapolates the state to plane, and returns the extrapolation length and, via reference, the extrapolated state. More...
 
virtual double extrapolateToLine (StateOnPlane &state, const TVector3 &linePoint, const TVector3 &lineDirection, bool stopAtBoundary=false, bool calcJacobianNoise=false) const
 Extrapolates the state to the POCA to a line, and returns the extrapolation length and, via reference, the extrapolated state. More...
 
virtual double extrapolateToPoint (StateOnPlane &state, const TVector3 &point, bool stopAtBoundary=false, bool calcJacobianNoise=false) const
 Extrapolates the state to the POCA to a point, and returns the extrapolation length and, via reference, the extrapolated state. More...
 
virtual double extrapolateToPoint (StateOnPlane &state, const TVector3 &point, const TMatrixDSym &G, bool stopAtBoundary=false, bool calcJacobianNoise=false) const
 Extrapolates the state to the POCA to a point in the metric of G, and returns the extrapolation length and, via reference, the extrapolated state. More...
 
virtual double extrapolateToCylinder (StateOnPlane &state, double radius, const TVector3 &linePoint=TVector3(0., 0., 0.), const TVector3 &lineDirection=TVector3(0., 0., 1.), bool stopAtBoundary=false, bool calcJacobianNoise=false) const
 Extrapolates the state to the cylinder surface, and returns the extrapolation length and, via reference, the extrapolated state. More...
 
virtual double extrapolateToSphere (StateOnPlane &state, double radius, const TVector3 &point=TVector3(0., 0., 0.), bool stopAtBoundary=false, bool calcJacobianNoise=false) const
 Extrapolates the state to the sphere surface, and returns the extrapolation length and, via reference, the extrapolated state. More...
 
virtual double extrapolateBy (StateOnPlane &state, double step, bool stopAtBoundary=false, bool calcJacobianNoise=false) const
 Extrapolates the state by step (cm) and returns the extrapolation length and, via reference, the extrapolated state. More...
 
unsigned int getDim () const
 Get the dimension of the state vector used by the track representation. More...
 
virtual TVector3 getPos (const StateOnPlane &state) const
 Get the cartesian position of a state. More...
 
virtual TVector3 getMom (const StateOnPlane &state) const
 Get the cartesian momentum vector of a state. More...
 
virtual void getPosMom (const StateOnPlane &state, TVector3 &pos, TVector3 &mom) const
 Get cartesian position and momentum vector of a state. More...
 
virtual double getMomMag (const StateOnPlane &state) const
 get the magnitude of the momentum in GeV. More...
 
virtual double getMomVar (const MeasuredStateOnPlane &state) const
 get the variance of the absolute value of the momentum . More...
 
virtual TMatrixDSym get6DCov (const MeasuredStateOnPlane &state) const
 Get the 6D covariance. More...
 
virtual void getPosMomCov (const MeasuredStateOnPlane &state, TVector3 &pos, TVector3 &mom, TMatrixDSym &cov) const
 Translates MeasuredStateOnPlane into 3D position, momentum and 6x6 covariance. More...
 
virtual double getCharge (const StateOnPlane &state) const
 Get the (fitted) charge of a state. This is not always equal the pdg charge (e.g. if the charge sign was flipped during the fit). More...
 
virtual double getQop (const StateOnPlane &state) const
 Get charge over momentum. More...
 
double getSpu (const StateOnPlane &state) const
 
double getTime (const StateOnPlane &state) const
 Get the time corresponding to the StateOnPlane. Extrapolation. More...
 
virtual void getForwardJacobianAndNoise (TMatrixD &jacobian, TMatrixDSym &noise, TVectorD &deltaState) const
 Get the jacobian and noise matrix of the last extrapolation. More...
 
virtual void getBackwardJacobianAndNoise (TMatrixD &jacobian, TMatrixDSym &noise, TVectorD &deltaState) const
 Get the jacobian and noise matrix of the last extrapolation if it would have been done in opposite direction. More...
 
std::vector< genfit::MatStepgetSteps () const
 Get stepsizes and material properties of crossed materials of the last extrapolation. More...
 
virtual double getRadiationLenght () const
 Get the accumulated X/X0 (path / radiation length) of the material crossed in the last extrapolation. More...
 
virtual void setPosMom (StateOnPlane &state, const TVector3 &pos, const TVector3 &mom) const
 Set position and momentum of state. More...
 
virtual void setPosMom (StateOnPlane &state, const TVectorD &state6) const
 Set position and momentum of state. More...
 
virtual void setPosMomErr (MeasuredStateOnPlane &state, const TVector3 &pos, const TVector3 &mom, const TVector3 &posErr, const TVector3 &momErr) const
 Set position and momentum and error of state. More...
 
virtual void setPosMomCov (MeasuredStateOnPlane &state, const TVector3 &pos, const TVector3 &mom, const TMatrixDSym &cov6x6) const
 Set position, momentum and covariance of state. More...
 
virtual void setPosMomCov (MeasuredStateOnPlane &state, const TVectorD &state6, const TMatrixDSym &cov6x6) const
 Set position, momentum and covariance of state. More...
 
virtual void setChargeSign (StateOnPlane &state, double charge) const
 Set the sign of the charge according to charge. More...
 
virtual void setQop (StateOnPlane &state, double qop) const
 Set charge/momentum. More...
 
void setSpu (StateOnPlane &state, double spu) const
 
void setTime (StateOnPlane &state, double time) const
 Set time at which the state was defined. More...
 
double RKPropagate (M1x7 &state7, M7x7 *jacobian, M1x3 &SA, double S, bool varField=true, bool calcOnlyLastRowOfJ=false) const
 The actual Runge Kutta propagation. More...
 
virtual bool isSameType (const AbsTrackRep *other)
 check if other is of same type (e.g. RKTrackRep). More...
 
virtual bool isSame (const AbsTrackRep *other)
 check if other is of same type (e.g. RKTrackRep) and has same pdg code. More...
 
virtual double extrapolateToLine (StateOnPlane &state, const TVector3 &point1, const TVector3 &point2, TVector3 &poca, TVector3 &dirInPoca, TVector3 &poca_onwire, bool stopAtBoundary=false, bool calcJacobianNoise=false) const
 Resembles the interface of GFAbsTrackRep in old versions of genfit. More...
 
double extrapolateToMeasurement (StateOnPlane &state, const AbsMeasurement *measurement, bool stopAtBoundary=false, bool calcJacobianNoise=false) const
 extrapolate to an AbsMeasurement More...
 
TVector3 getDir (const StateOnPlane &state) const
 Get the direction vector of a state. More...
 
void getPosDir (const StateOnPlane &state, TVector3 &pos, TVector3 &dir) const
 Get cartesian position and direction vector of a state. More...
 
virtual TVectorD get6DState (const StateOnPlane &state) const
 Get the 6D state vector (x, y, z, p_x, p_y, p_z). More...
 
virtual void get6DStateCov (const MeasuredStateOnPlane &state, TVectorD &stateVec, TMatrixDSym &cov) const
 Translates MeasuredStateOnPlane into 6D state vector (x, y, z, p_x, p_y, p_z) and 6x6 covariance. More...
 
int getPDG () const
 Get the pdg code. More...
 
double getPDGCharge () const
 Get the charge of the particle of the pdg code. More...
 
double getMass (const StateOnPlane &state) const
 Get tha particle mass in GeV/c^2. More...
 
char getPropDir () const
 Get propagation direction. (-1, 0, 1) -> (backward, auto, forward). More...
 
void calcJacobianNumerically (const genfit::StateOnPlane &origState, const genfit::SharedPlanePtr destPlane, TMatrixD &jacobian) const
 Calculate Jacobian of transportation numerically. Slow but accurate. Can be used to validate (semi)analytic calculations. More...
 
bool switchPDGSign ()
 try to multiply pdg code with -1. (Switch from particle to anti-particle and vice versa). More...
 
void setPropDir (int dir)
 Set propagation direction. (-1, 0, 1) -> (backward, auto, forward). More...
 
void switchPropDir ()
 Switch propagation direction. Has no effect if propDir_ is set to 0. More...
 
virtual void setDebugLvl (unsigned int lvl=1)
 
virtual void Print (const Option_t *="") const
 

Protected Attributes

int pdgCode_
 Particle code. More...
 
char propDir_
 propagation direction (-1, 0, 1) -> (backward, auto, forward) More...
 
unsigned int debugLvl_
 

Private Member Functions

void initArrays () const
 
virtual double extrapToPoint (StateOnPlane &state, const TVector3 &point, const TMatrixDSym *G=NULL, bool stopAtBoundary=false, bool calcJacobianNoise=false) const
 
void getState7 (const StateOnPlane &state, M1x7 &state7) const
 
void getState5 (StateOnPlane &state, const M1x7 &state7) const
 
void transformPM7 (const MeasuredStateOnPlane &state, M7x7 &out7x7) const
 
void calcJ_pM_5x7 (M5x7 &J_pM, const TVector3 &U, const TVector3 &V, const M1x3 &pTilde, double spu) const
 
void transformPM6 (const MeasuredStateOnPlane &state, M6x6 &out6x6) const
 
void transformM7P (const M7x7 &in7x7, const M1x7 &state7, MeasuredStateOnPlane &state) const
 
void calcJ_Mp_7x5 (M7x5 &J_Mp, const TVector3 &U, const TVector3 &V, const TVector3 &W, const M1x3 &A) const
 
void calcForwardJacobianAndNoise (const M1x7 &startState7, const DetPlane &startPlane, const M1x7 &destState7, const DetPlane &destPlane) const
 
void transformM6P (const M6x6 &in6x6, const M1x7 &state7, MeasuredStateOnPlane &state) const
 
bool RKutta (const M1x4 &SU, const DetPlane &plane, double charge, double mass, M1x7 &state7, M7x7 *jacobianT, M1x7 *J_MMT_unprojected_lastRow, double &coveredDistance, double &flightTime, bool &checkJacProj, M7x7 &noiseProjection, StepLimits &limits, bool onlyOneStep=false, bool calcOnlyLastRowOfJ=false) const
 Propagates the particle through the magnetic field. More...
 
double estimateStep (const M1x7 &state7, const M1x4 &SU, const DetPlane &plane, const double &charge, double &relMomLoss, StepLimits &limits) const
 
TVector3 pocaOnLine (const TVector3 &linePoint, const TVector3 &lineDirection, const TVector3 &point) const
 
double Extrap (const DetPlane &startPlane, const DetPlane &destPlane, double charge, double mass, bool &isAtBoundary, M1x7 &state7, double &flightTime, bool fillExtrapSteps, TMatrixDSym *cov=nullptr, bool onlyOneStep=false, bool stopAtBoundary=false, double maxStep=1.E99) const
 Handles propagation and material effects. More...
 
void checkCache (const StateOnPlane &state, const SharedPlanePtr *plane) const
 
double momMag (const M1x7 &state7) const
 

Private Attributes

StateOnPlane lastStartState_
 
StateOnPlane lastEndState_
 state where the last extrapolation has started More...
 
std::vector< RKStepRKSteps_
 state where the last extrapolation has ended More...
 
int RKStepsFXStart_
 RungeKutta steps made in the last extrapolation. More...
 
int RKStepsFXStop_
 
std::vector< ExtrapStepExtrapSteps_
 
TMatrixD fJacobian_
 steps made in Extrap during last extrapolation More...
 
TMatrixDSym fNoise_
 
bool useCache_
 
unsigned int cachePos_
 use cached RKSteps_ for extrapolation More...
 
StepLimits limits_
 
M7x7 noiseArray_
 
M7x7 noiseProjection_
 noise matrix of the last extrapolation More...
 
M7x7 J_MMT_
 

Detailed Description

AbsTrackRep with 5D track parameterization in plane coordinates: (q/p, u', v', u, v)

q/p is charge over momentum. u' and v' are direction tangents. u and v are positions on a DetPlane.

Definition at line 70 of file genfit2/trackReps/include/RKTrackRep.h.

Constructor & Destructor Documentation

genfit::RKTrackRep::RKTrackRep ( )

Referenced by clone().

genfit::RKTrackRep::RKTrackRep ( int  pdgCode,
char  propDir = 0 
)
virtual genfit::RKTrackRep::~RKTrackRep ( )
virtual

Member Function Documentation

void genfit::RKTrackRep::calcForwardJacobianAndNoise ( const M1x7 startState7,
const DetPlane startPlane,
const M1x7 destState7,
const DetPlane destPlane 
) const
private
void genfit::RKTrackRep::calcJ_Mp_7x5 ( M7x5 J_Mp,
const TVector3 &  U,
const TVector3 &  V,
const TVector3 &  W,
const M1x3 A 
) const
private
void genfit::RKTrackRep::calcJ_pM_5x7 ( M5x7 J_pM,
const TVector3 &  U,
const TVector3 &  V,
const M1x3 pTilde,
double  spu 
) const
private
void genfit::AbsTrackRep::calcJacobianNumerically ( const genfit::StateOnPlane origState,
const genfit::SharedPlanePtr  destPlane,
TMatrixD jacobian 
) const
inherited

Calculate Jacobian of transportation numerically. Slow but accurate. Can be used to validate (semi)analytic calculations.

void genfit::RKTrackRep::checkCache ( const StateOnPlane state,
const SharedPlanePtr plane 
) const
private
virtual AbsTrackRep* genfit::RKTrackRep::clone ( ) const
inlinevirtual

Clone the trackRep.

Implements genfit::AbsTrackRep.

Definition at line 80 of file genfit2/trackReps/include/RKTrackRep.h.

References RKTrackRep().

80 {return new RKTrackRep(*this);}
double genfit::RKTrackRep::estimateStep ( const M1x7 state7,
const M1x4 SU,
const DetPlane plane,
const double &  charge,
double &  relMomLoss,
StepLimits limits 
) const
private
double genfit::RKTrackRep::Extrap ( const DetPlane startPlane,
const DetPlane destPlane,
double  charge,
double  mass,
bool &  isAtBoundary,
M1x7 state7,
double &  flightTime,
bool  fillExtrapSteps,
TMatrixDSym *  cov = nullptr,
bool  onlyOneStep = false,
bool  stopAtBoundary = false,
double  maxStep = 1.E99 
) const
private

Handles propagation and material effects.

extrapolateToPlane(), extrapolateToPoint() and extrapolateToLine() etc. call this function. Extrap() needs a plane as an argument, hence extrapolateToPoint() and extrapolateToLine() create virtual detector planes. In this function, RKutta() is called and the resulting points and point paths are filtered so that the direction doesn't change and tiny steps are filtered out. After the propagation the material effects are called via the MaterialEffects singleton. Extrap() will loop until the plane is reached, unless the propagation fails or the maximum number of iterations is exceeded.

virtual double genfit::RKTrackRep::extrapolateBy ( StateOnPlane state,
double  step,
bool  stopAtBoundary = false,
bool  calcJacobianNoise = false 
) const
virtual

Extrapolates the state by step (cm) and returns the extrapolation length and, via reference, the extrapolated state.

If stopAtBoundary is true, the extrapolation stops as soon as a material boundary is encountered.

If state has a covariance, jacobian and noise matrices will be calculated and the covariance will be propagated. If state has no covariance, jacobian and noise will only be calculated if calcJacobianNoise == true.

Implements genfit::AbsTrackRep.

virtual double genfit::RKTrackRep::extrapolateToCylinder ( StateOnPlane state,
double  radius,
const TVector3 &  linePoint = TVector3(0., 0., 0.),
const TVector3 &  lineDirection = TVector3(0., 0., 1.),
bool  stopAtBoundary = false,
bool  calcJacobianNoise = false 
) const
virtual

Extrapolates the state to the cylinder surface, and returns the extrapolation length and, via reference, the extrapolated state.

If stopAtBoundary is true, the extrapolation stops as soon as a material boundary is encountered.

If state has a covariance, jacobian and noise matrices will be calculated and the covariance will be propagated. If state has no covariance, jacobian and noise will only be calculated if calcJacobianNoise == true.

Implements genfit::AbsTrackRep.

virtual double genfit::RKTrackRep::extrapolateToLine ( StateOnPlane state,
const TVector3 &  linePoint,
const TVector3 &  lineDirection,
bool  stopAtBoundary = false,
bool  calcJacobianNoise = false 
) const
virtual

Extrapolates the state to the POCA to a line, and returns the extrapolation length and, via reference, the extrapolated state.

If stopAtBoundary is true, the extrapolation stops as soon as a material boundary is encountered.

If state has a covariance, jacobian and noise matrices will be calculated and the covariance will be propagated. If state has no covariance, jacobian and noise will only be calculated if calcJacobianNoise == true.

Implements genfit::AbsTrackRep.

virtual double genfit::AbsTrackRep::extrapolateToLine ( StateOnPlane state,
const TVector3 &  point1,
const TVector3 &  point2,
TVector3 &  poca,
TVector3 &  dirInPoca,
TVector3 &  poca_onwire,
bool  stopAtBoundary = false,
bool  calcJacobianNoise = false 
) const
inlinevirtualinherited

Resembles the interface of GFAbsTrackRep in old versions of genfit.

This interface to extrapolateToLine is intended to resemble the interface of GFAbsTrackRep in old versions of genfit and is implemented by default via the preceding function.

If stopAtBoundary is true, the extrapolation stops as soon as a material boundary is encountered.

If state has a covariance, jacobian and noise matrices will be calculated and the covariance will be propagated. If state has no covariance, jacobian and noise will only be calculated if calcJacobianNoise == true.

Definition at line 120 of file AbsTrackRep.h.

References genfit::AbsTrackRep::extrapolateToLine(), genfit::AbsTrackRep::getMom(), and genfit::AbsTrackRep::getPos().

127  {
128  TVector3 wireDir(point2 - point1);
129  wireDir.Unit();
130  double retval = this->extrapolateToLine(state, point1, wireDir, stopAtBoundary, calcJacobianNoise);
131  poca = this->getPos(state);
132  dirInPoca = this->getMom(state);
133  dirInPoca.Unit();
134 
135  poca_onwire = point1 + wireDir*((poca - point1)*wireDir);
136 
137  return retval;
138  }
virtual TVector3 getPos(const StateOnPlane &state) const =0
Get the cartesian position of a state.
virtual TVector3 getMom(const StateOnPlane &state) const =0
Get the cartesian momentum vector of a state.
virtual double extrapolateToLine(StateOnPlane &state, const TVector3 &linePoint, const TVector3 &lineDirection, bool stopAtBoundary=false, bool calcJacobianNoise=false) const =0
Extrapolates the state to the POCA to a line, and returns the extrapolation length and...
double genfit::AbsTrackRep::extrapolateToMeasurement ( StateOnPlane state,
const AbsMeasurement measurement,
bool  stopAtBoundary = false,
bool  calcJacobianNoise = false 
) const
inherited
virtual double genfit::RKTrackRep::extrapolateToPlane ( StateOnPlane state,
const SharedPlanePtr plane,
bool  stopAtBoundary = false,
bool  calcJacobianNoise = false 
) const
virtual

Extrapolates the state to plane, and returns the extrapolation length and, via reference, the extrapolated state.

If stopAtBoundary is true, the extrapolation stops as soon as a material boundary is encountered.

If state has a covariance, jacobian and noise matrices will be calculated and the covariance will be propagated. If state has no covariance, jacobian and noise will only be calculated if calcJacobianNoise == true.

Implements genfit::AbsTrackRep.

virtual double genfit::RKTrackRep::extrapolateToPoint ( StateOnPlane state,
const TVector3 &  point,
bool  stopAtBoundary = false,
bool  calcJacobianNoise = false 
) const
inlinevirtual

Extrapolates the state to the POCA to a point, and returns the extrapolation length and, via reference, the extrapolated state.

If stopAtBoundary is true, the extrapolation stops as soon as a material boundary is encountered.

If state has a covariance, jacobian and noise matrices will be calculated and the covariance will be propagated. If state has no covariance, jacobian and noise will only be calculated if calcJacobianNoise == true.

Implements genfit::AbsTrackRep.

Definition at line 95 of file genfit2/trackReps/include/RKTrackRep.h.

References extrapToPoint().

98  {
99  return extrapToPoint(state, point, NULL, stopAtBoundary, calcJacobianNoise);
100  }
virtual double extrapToPoint(StateOnPlane &state, const TVector3 &point, const TMatrixDSym *G=NULL, bool stopAtBoundary=false, bool calcJacobianNoise=false) const
PndSdsMCPoint * point
Definition: anaLmdCluster.C:72
virtual double genfit::RKTrackRep::extrapolateToPoint ( StateOnPlane state,
const TVector3 &  point,
const TMatrixDSym &  G,
bool  stopAtBoundary = false,
bool  calcJacobianNoise = false 
) const
inlinevirtual

Extrapolates the state to the POCA to a point in the metric of G, and returns the extrapolation length and, via reference, the extrapolated state.

If stopAtBoundary is true, the extrapolation stops as soon as a material boundary is encountered.

If state has a covariance, jacobian and noise matrices will be calculated and the covariance will be propagated. If state has no covariance, jacobian and noise will only be calculated if calcJacobianNoise == true.

Implements genfit::AbsTrackRep.

Definition at line 102 of file genfit2/trackReps/include/RKTrackRep.h.

References extrapToPoint().

106  {
107  return extrapToPoint(state, point, &G, stopAtBoundary, calcJacobianNoise);
108  }
virtual double extrapToPoint(StateOnPlane &state, const TVector3 &point, const TMatrixDSym *G=NULL, bool stopAtBoundary=false, bool calcJacobianNoise=false) const
PndSdsMCPoint * point
Definition: anaLmdCluster.C:72
virtual double genfit::RKTrackRep::extrapolateToSphere ( StateOnPlane state,
double  radius,
const TVector3 &  point = TVector3(0., 0., 0.),
bool  stopAtBoundary = false,
bool  calcJacobianNoise = false 
) const
virtual

Extrapolates the state to the sphere surface, and returns the extrapolation length and, via reference, the extrapolated state.

If stopAtBoundary is true, the extrapolation stops as soon as a material boundary is encountered.

If state has a covariance, jacobian and noise matrices will be calculated and the covariance will be propagated. If state has no covariance, jacobian and noise will only be calculated if calcJacobianNoise == true.

Implements genfit::AbsTrackRep.

virtual double genfit::RKTrackRep::extrapToPoint ( StateOnPlane state,
const TVector3 &  point,
const TMatrixDSym *  G = NULL,
bool  stopAtBoundary = false,
bool  calcJacobianNoise = false 
) const
privatevirtual

Referenced by extrapolateToPoint().

virtual TMatrixDSym genfit::RKTrackRep::get6DCov ( const MeasuredStateOnPlane state) const
virtual

Get the 6D covariance.

Implements genfit::AbsTrackRep.

virtual TVectorD genfit::AbsTrackRep::get6DState ( const StateOnPlane state) const
virtualinherited

Get the 6D state vector (x, y, z, p_x, p_y, p_z).

Referenced by genfit::StateOnPlane::get6DState().

virtual void genfit::AbsTrackRep::get6DStateCov ( const MeasuredStateOnPlane state,
TVectorD &  stateVec,
TMatrixDSym &  cov 
) const
virtualinherited

Translates MeasuredStateOnPlane into 6D state vector (x, y, z, p_x, p_y, p_z) and 6x6 covariance.

Referenced by genfit::MeasuredStateOnPlane::get6DStateCov().

virtual void genfit::RKTrackRep::getBackwardJacobianAndNoise ( TMatrixD jacobian,
TMatrixDSym &  noise,
TVectorD &  deltaState 
) const
virtual

Get the jacobian and noise matrix of the last extrapolation if it would have been done in opposite direction.

Implements genfit::AbsTrackRep.

virtual double genfit::RKTrackRep::getCharge ( const StateOnPlane state) const
virtual

Get the (fitted) charge of a state. This is not always equal the pdg charge (e.g. if the charge sign was flipped during the fit).

Implements genfit::AbsTrackRep.

unsigned int genfit::RKTrackRep::getDim ( ) const
inlinevirtual

Get the dimension of the state vector used by the track representation.

Implements genfit::AbsTrackRep.

Definition at line 129 of file genfit2/trackReps/include/RKTrackRep.h.

129 {return 5;}
TVector3 genfit::AbsTrackRep::getDir ( const StateOnPlane state) const
inlineinherited

Get the direction vector of a state.

Definition at line 230 of file AbsTrackRep.h.

References genfit::AbsTrackRep::getMom().

Referenced by genfit::StateOnPlane::getDir().

230 {return getMom(state).Unit();}
virtual TVector3 getMom(const StateOnPlane &state) const =0
Get the cartesian momentum vector of a state.
virtual void genfit::RKTrackRep::getForwardJacobianAndNoise ( TMatrixD jacobian,
TMatrixDSym &  noise,
TVectorD &  deltaState 
) const
virtual

Get the jacobian and noise matrix of the last extrapolation.

Implements genfit::AbsTrackRep.

double genfit::AbsTrackRep::getMass ( const StateOnPlane state) const
inherited

Get tha particle mass in GeV/c^2.

Referenced by genfit::StateOnPlane::getMass().

virtual TVector3 genfit::RKTrackRep::getMom ( const StateOnPlane state) const
virtual

Get the cartesian momentum vector of a state.

Implements genfit::AbsTrackRep.

virtual double genfit::RKTrackRep::getMomMag ( const StateOnPlane state) const
virtual

get the magnitude of the momentum in GeV.

Implements genfit::AbsTrackRep.

virtual double genfit::RKTrackRep::getMomVar ( const MeasuredStateOnPlane state) const
virtual

get the variance of the absolute value of the momentum .

Implements genfit::AbsTrackRep.

int genfit::AbsTrackRep::getPDG ( ) const
inlineinherited

Get the pdg code.

Definition at line 256 of file AbsTrackRep.h.

References genfit::AbsTrackRep::pdgCode_.

Referenced by genfit::StateOnPlane::getPDG().

256 {return pdgCode_;}
int pdgCode_
Particle code.
Definition: AbsTrackRep.h:348
double genfit::AbsTrackRep::getPDGCharge ( ) const
inherited

Get the charge of the particle of the pdg code.

virtual TVector3 genfit::RKTrackRep::getPos ( const StateOnPlane state) const
virtual

Get the cartesian position of a state.

Implements genfit::AbsTrackRep.

void genfit::AbsTrackRep::getPosDir ( const StateOnPlane state,
TVector3 &  pos,
TVector3 &  dir 
) const
inlineinherited

Get cartesian position and direction vector of a state.

Definition at line 236 of file AbsTrackRep.h.

References genfit::AbsTrackRep::getPosMom().

Referenced by genfit::StateOnPlane::getPosDir().

236 {getPosMom(state, pos, dir); dir.SetMag(1.);}
TVector3 pos
virtual void getPosMom(const StateOnPlane &state, TVector3 &pos, TVector3 &mom) const =0
Get cartesian position and momentum vector of a state.
virtual void genfit::RKTrackRep::getPosMom ( const StateOnPlane state,
TVector3 &  pos,
TVector3 &  mom 
) const
virtual

Get cartesian position and momentum vector of a state.

Implements genfit::AbsTrackRep.

virtual void genfit::RKTrackRep::getPosMomCov ( const MeasuredStateOnPlane state,
TVector3 &  pos,
TVector3 &  mom,
TMatrixDSym &  cov 
) const
virtual

Translates MeasuredStateOnPlane into 3D position, momentum and 6x6 covariance.

Implements genfit::AbsTrackRep.

char genfit::AbsTrackRep::getPropDir ( ) const
inlineinherited

Get propagation direction. (-1, 0, 1) -> (backward, auto, forward).

Definition at line 272 of file AbsTrackRep.h.

References genfit::AbsTrackRep::propDir_.

272 {return propDir_;}
char propDir_
propagation direction (-1, 0, 1) -&gt; (backward, auto, forward)
Definition: AbsTrackRep.h:350
virtual double genfit::RKTrackRep::getQop ( const StateOnPlane state) const
inlinevirtual

Get charge over momentum.

Implements genfit::AbsTrackRep.

Definition at line 142 of file genfit2/trackReps/include/RKTrackRep.h.

References genfit::StateOnPlane::getState().

142 {return state.getState()(0);}
virtual double genfit::RKTrackRep::getRadiationLenght ( ) const
virtual

Get the accumulated X/X0 (path / radiation length) of the material crossed in the last extrapolation.

Implements genfit::AbsTrackRep.

double genfit::RKTrackRep::getSpu ( const StateOnPlane state) const
void genfit::RKTrackRep::getState5 ( StateOnPlane state,
const M1x7 state7 
) const
private
void genfit::RKTrackRep::getState7 ( const StateOnPlane state,
M1x7 state7 
) const
private
std::vector<genfit::MatStep> genfit::RKTrackRep::getSteps ( ) const
virtual

Get stepsizes and material properties of crossed materials of the last extrapolation.

Implements genfit::AbsTrackRep.

double genfit::RKTrackRep::getTime ( const StateOnPlane ) const
virtual

Get the time corresponding to the StateOnPlane. Extrapolation.

Implements genfit::AbsTrackRep.

void genfit::RKTrackRep::initArrays ( ) const
private
virtual bool genfit::RKTrackRep::isSame ( const AbsTrackRep other)
virtual

check if other is of same type (e.g. RKTrackRep) and has same pdg code.

Implements genfit::AbsTrackRep.

virtual bool genfit::RKTrackRep::isSameType ( const AbsTrackRep other)
virtual

check if other is of same type (e.g. RKTrackRep).

Implements genfit::AbsTrackRep.

double genfit::RKTrackRep::momMag ( const M1x7 state7) const
private
TVector3 genfit::RKTrackRep::pocaOnLine ( const TVector3 &  linePoint,
const TVector3 &  lineDirection,
const TVector3 &  point 
) const
private
virtual void genfit::AbsTrackRep::Print ( const Option_t *  = "") const
virtualinherited
double genfit::RKTrackRep::RKPropagate ( M1x7 state7,
M7x7 jacobian,
M1x3 SA,
double  S,
bool  varField = true,
bool  calcOnlyLastRowOfJ = false 
) const

The actual Runge Kutta propagation.

propagate state7 with step S. Fills SA (Start directions derivatives dA/S). If jacobian is NULL, only the state is propagated, otherwise also the 7x7 jacobian is calculated. If varField is false, the magnetic field will only be evaluated at the starting position. The return value is an estimation on how good the extrapolation is, and it is usually fine if it is > 1. It gives a suggestion how you must scale S so that the quality will be sufficient.

bool genfit::RKTrackRep::RKutta ( const M1x4 SU,
const DetPlane plane,
double  charge,
double  mass,
M1x7 state7,
M7x7 jacobianT,
M1x7 J_MMT_unprojected_lastRow,
double &  coveredDistance,
double &  flightTime,
bool &  checkJacProj,
M7x7 noiseProjection,
StepLimits limits,
bool  onlyOneStep = false,
bool  calcOnlyLastRowOfJ = false 
) const
private

Propagates the particle through the magnetic field.

If the propagation is successful and the plane is reached, the function returns true. Propagated state and the jacobian of the extrapolation are written to state7 and jacobianT. The jacobian is only calculated if jacobianT != NULL. In the main loop of the Runge Kutta algorithm, the estimateStep() is called and may reduce the estimated stepsize so that a maximum momentum loss will not be exceeded, and stop at material boundaries. If this is the case, RKutta() will only propagate the reduced distance and then return. This is to ensure that material effects, which are calculated after the propagation, are taken into account properly.

virtual void genfit::RKTrackRep::setChargeSign ( StateOnPlane state,
double  charge 
) const
virtual

Set the sign of the charge according to charge.

Implements genfit::AbsTrackRep.

virtual void genfit::AbsTrackRep::setDebugLvl ( unsigned int  lvl = 1)
inlinevirtualinherited

Definition at line 335 of file AbsTrackRep.h.

References genfit::AbsTrackRep::debugLvl_.

335 {debugLvl_ = lvl;}
unsigned int debugLvl_
Definition: AbsTrackRep.h:352
virtual void genfit::RKTrackRep::setPosMom ( StateOnPlane state,
const TVector3 &  pos,
const TVector3 &  mom 
) const
virtual

Set position and momentum of state.

Implements genfit::AbsTrackRep.

virtual void genfit::RKTrackRep::setPosMom ( StateOnPlane state,
const TVectorD &  state6 
) const
virtual

Set position and momentum of state.

Implements genfit::AbsTrackRep.

virtual void genfit::RKTrackRep::setPosMomCov ( MeasuredStateOnPlane state,
const TVector3 &  pos,
const TVector3 &  mom,
const TMatrixDSym &  cov6x6 
) const
virtual

Set position, momentum and covariance of state.

Implements genfit::AbsTrackRep.

virtual void genfit::RKTrackRep::setPosMomCov ( MeasuredStateOnPlane state,
const TVectorD &  state6,
const TMatrixDSym &  cov6x6 
) const
virtual

Set position, momentum and covariance of state.

Implements genfit::AbsTrackRep.

virtual void genfit::RKTrackRep::setPosMomErr ( MeasuredStateOnPlane state,
const TVector3 &  pos,
const TVector3 &  mom,
const TVector3 &  posErr,
const TVector3 &  momErr 
) const
virtual

Set position and momentum and error of state.

Implements genfit::AbsTrackRep.

void genfit::AbsTrackRep::setPropDir ( int  dir)
inlineinherited

Set propagation direction. (-1, 0, 1) -> (backward, auto, forward).

Definition at line 320 of file AbsTrackRep.h.

References genfit::AbsTrackRep::propDir_.

320  {
321  if (dir>0) propDir_ = 1;
322  else if (dir<0) propDir_ = -1;
323  else propDir_ = 0;
324  };
char propDir_
propagation direction (-1, 0, 1) -&gt; (backward, auto, forward)
Definition: AbsTrackRep.h:350
virtual void genfit::RKTrackRep::setQop ( StateOnPlane state,
double  qop 
) const
inlinevirtual

Set charge/momentum.

Implements genfit::AbsTrackRep.

Definition at line 161 of file genfit2/trackReps/include/RKTrackRep.h.

References genfit::StateOnPlane::getState().

161 {state.getState()(0) = qop;}
void genfit::RKTrackRep::setSpu ( StateOnPlane state,
double  spu 
) const
void genfit::RKTrackRep::setTime ( StateOnPlane state,
double  time 
) const
virtual

Set time at which the state was defined.

Implements genfit::AbsTrackRep.

bool genfit::AbsTrackRep::switchPDGSign ( )
inherited

try to multiply pdg code with -1. (Switch from particle to anti-particle and vice versa).

void genfit::AbsTrackRep::switchPropDir ( )
inlineinherited

Switch propagation direction. Has no effect if propDir_ is set to 0.

Definition at line 327 of file AbsTrackRep.h.

References genfit::AbsTrackRep::propDir_.

327 {propDir_ = -1*propDir_;}
char propDir_
propagation direction (-1, 0, 1) -&gt; (backward, auto, forward)
Definition: AbsTrackRep.h:350
void genfit::RKTrackRep::transformM6P ( const M6x6 in6x6,
const M1x7 state7,
MeasuredStateOnPlane state 
) const
private
void genfit::RKTrackRep::transformM7P ( const M7x7 in7x7,
const M1x7 state7,
MeasuredStateOnPlane state 
) const
private
void genfit::RKTrackRep::transformPM6 ( const MeasuredStateOnPlane state,
M6x6 out6x6 
) const
private
void genfit::RKTrackRep::transformPM7 ( const MeasuredStateOnPlane state,
M7x7 out7x7 
) const
private

Member Data Documentation

unsigned int genfit::RKTrackRep::cachePos_
mutableprivate

use cached RKSteps_ for extrapolation

Definition at line 292 of file genfit2/trackReps/include/RKTrackRep.h.

unsigned int genfit::AbsTrackRep::debugLvl_
protectedinherited

Definition at line 352 of file AbsTrackRep.h.

Referenced by genfit::AbsTrackRep::setDebugLvl().

std::vector<ExtrapStep> genfit::RKTrackRep::ExtrapSteps_
mutableprivate

Definition at line 286 of file genfit2/trackReps/include/RKTrackRep.h.

TMatrixD genfit::RKTrackRep::fJacobian_
mutableprivate

steps made in Extrap during last extrapolation

Definition at line 288 of file genfit2/trackReps/include/RKTrackRep.h.

TMatrixDSym genfit::RKTrackRep::fNoise_
mutableprivate

Definition at line 289 of file genfit2/trackReps/include/RKTrackRep.h.

M7x7 genfit::RKTrackRep::J_MMT_
mutableprivate

Definition at line 299 of file genfit2/trackReps/include/RKTrackRep.h.

StateOnPlane genfit::RKTrackRep::lastEndState_
mutableprivate

state where the last extrapolation has started

Definition at line 282 of file genfit2/trackReps/include/RKTrackRep.h.

StateOnPlane genfit::RKTrackRep::lastStartState_
mutableprivate

Definition at line 281 of file genfit2/trackReps/include/RKTrackRep.h.

StepLimits genfit::RKTrackRep::limits_
mutableprivate

Definition at line 296 of file genfit2/trackReps/include/RKTrackRep.h.

M7x7 genfit::RKTrackRep::noiseArray_
mutableprivate

Definition at line 297 of file genfit2/trackReps/include/RKTrackRep.h.

M7x7 genfit::RKTrackRep::noiseProjection_
mutableprivate

noise matrix of the last extrapolation

Definition at line 298 of file genfit2/trackReps/include/RKTrackRep.h.

int genfit::AbsTrackRep::pdgCode_
protectedinherited

Particle code.

Definition at line 348 of file AbsTrackRep.h.

Referenced by genfit::AbsTrackRep::getPDG().

char genfit::AbsTrackRep::propDir_
protectedinherited

propagation direction (-1, 0, 1) -> (backward, auto, forward)

Definition at line 350 of file AbsTrackRep.h.

Referenced by genfit::AbsTrackRep::getPropDir(), genfit::AbsTrackRep::setPropDir(), and genfit::AbsTrackRep::switchPropDir().

std::vector<RKStep> genfit::RKTrackRep::RKSteps_
mutableprivate

state where the last extrapolation has ended

Definition at line 283 of file genfit2/trackReps/include/RKTrackRep.h.

int genfit::RKTrackRep::RKStepsFXStart_
mutableprivate

RungeKutta steps made in the last extrapolation.

Definition at line 284 of file genfit2/trackReps/include/RKTrackRep.h.

int genfit::RKTrackRep::RKStepsFXStop_
mutableprivate

Definition at line 285 of file genfit2/trackReps/include/RKTrackRep.h.

bool genfit::RKTrackRep::useCache_
mutableprivate

Definition at line 291 of file genfit2/trackReps/include/RKTrackRep.h.


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