SND@LHC Software
|
AbsTrackRep with 5D track parameterization in plane coordinates: (q/p, u', v', u, v) More...
#include <RKTrackRep.h>
Public Member Functions | |
RKTrackRep () | |
RKTrackRep (int pdgCode, char propDir=0) | |
virtual | ~RKTrackRep () |
virtual AbsTrackRep * | clone () const |
Clone the trackRep. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
unsigned int | getDim () const |
Get the dimension of the state vector used by the track representation. | |
virtual TVector3 | getPos (const StateOnPlane &state) const |
Get the cartesian position of a state. | |
virtual TVector3 | getMom (const StateOnPlane &state) const |
Get the cartesian momentum vector of a state. | |
virtual void | getPosMom (const StateOnPlane &state, TVector3 &pos, TVector3 &mom) const |
Get cartesian position and momentum vector of a state. | |
virtual double | getMomMag (const StateOnPlane &state) const |
get the magnitude of the momentum in GeV. | |
virtual double | getMomVar (const MeasuredStateOnPlane &state) const |
get the variance of the absolute value of the momentum . | |
virtual TMatrixDSym | get6DCov (const MeasuredStateOnPlane &state) const |
Get the 6D covariance. | |
virtual void | getPosMomCov (const MeasuredStateOnPlane &state, TVector3 &pos, TVector3 &mom, TMatrixDSym &cov) const |
Translates MeasuredStateOnPlane into 3D position, momentum and 6x6 covariance. | |
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). | |
virtual double | getQop (const StateOnPlane &state) const |
Get charge over momentum. | |
double | getSpu (const StateOnPlane &state) const |
virtual void | getForwardJacobianAndNoise (TMatrixD &jacobian, TMatrixDSym &noise, TVectorD &deltaState) const |
Get the jacobian and noise matrix of the last extrapolation. | |
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. | |
std::vector< genfit::MatStep > | getSteps () const |
Get stepsizes and material properties of crossed materials of the last extrapolation. | |
virtual double | getRadiationLenght () const |
Get the accumulated X/X0 (path / radiation length) of the material crossed in the last extrapolation. | |
virtual double | getTOF () const |
Get the time of flight [ns] of the last extrapolation. | |
virtual void | setPosMom (StateOnPlane &state, const TVector3 &pos, const TVector3 &mom) const |
Set position and momentum of state. | |
virtual void | setPosMom (StateOnPlane &state, const TVectorD &state6) const |
Set position and momentum of state. | |
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. | |
virtual void | setPosMomCov (MeasuredStateOnPlane &state, const TVector3 &pos, const TVector3 &mom, const TMatrixDSym &cov6x6) const |
Set position, momentum and covariance of state. | |
virtual void | setPosMomCov (MeasuredStateOnPlane &state, const TVectorD &state6, const TMatrixDSym &cov6x6) const |
Set position, momentum and covariance of state. | |
virtual void | setChargeSign (StateOnPlane &state, double charge) const |
Set the sign of the charge according to charge. | |
virtual void | setQop (StateOnPlane &state, double qop) const |
Set charge/momentum. | |
void | setSpu (StateOnPlane &state, double spu) const |
double | RKPropagate (M1x7 &state7, M7x7 *jacobian, M1x3 &SA, double S, bool varField=true, bool calcOnlyLastRowOfJ=false) const |
The actual Runge Kutta propagation. | |
virtual bool | isSameType (const AbsTrackRep *other) |
check if other is of same type (e.g. RKTrackRep). | |
virtual bool | isSame (const AbsTrackRep *other) |
check if other is of same type (e.g. RKTrackRep) and has same pdg code. | |
RKTrackRep () | |
RKTrackRep (int pdgCode, char propDir=0) | |
virtual | ~RKTrackRep () |
virtual AbsTrackRep * | clone () const |
Clone the trackRep. | |
SharedPlanePtr | makePlane (const TVector3 &o, const TVector3 &u, const TVector3 &v) |
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. | |
virtual double | extrapolateToPlane (StateOnPlane &state, const TVector3 &point, const TVector3 &dir, bool stopAtBoundary=false, bool calcJacobianNoise=false) const |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
unsigned int | getDim () const |
Get the dimension of the state vector used by the track representation. | |
virtual TVector3 | getPos (const StateOnPlane &state) const |
Get the cartesian position of a state. | |
virtual TVector3 | getMom (const StateOnPlane &state) const |
Get the cartesian momentum vector of a state. | |
virtual void | getPosMom (const StateOnPlane &state, TVector3 &pos, TVector3 &mom) const |
Get cartesian position and momentum vector of a state. | |
virtual double | getMomMag (const StateOnPlane &state) const |
get the magnitude of the momentum in GeV. | |
virtual double | getMomVar (const MeasuredStateOnPlane &state) const |
get the variance of the absolute value of the momentum . | |
virtual TMatrixDSym | get6DCov (const MeasuredStateOnPlane &state) const |
Get the 6D covariance. | |
virtual void | getPosMomCov (const MeasuredStateOnPlane &state, TVector3 &pos, TVector3 &mom, TMatrixDSym &cov) const |
Translates MeasuredStateOnPlane into 3D position, momentum and 6x6 covariance. | |
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). | |
virtual double | getQop (const StateOnPlane &state) const |
Get charge over momentum. | |
double | getSpu (const StateOnPlane &state) const |
virtual void | getForwardJacobianAndNoise (TMatrixD &jacobian, TMatrixDSym &noise, TVectorD &deltaState) const |
Get the jacobian and noise matrix of the last extrapolation. | |
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. | |
std::vector< genfit::MatStep > | getSteps () const |
Get stepsizes and material properties of crossed materials of the last extrapolation. | |
virtual double | getRadiationLenght () const |
Get the accumulated X/X0 (path / radiation length) of the material crossed in the last extrapolation. | |
virtual double | getTOF () const |
Get the time of flight [ns] of the last extrapolation. | |
virtual void | setPosMom (StateOnPlane &state, const TVector3 &pos, const TVector3 &mom) const |
Set position and momentum of state. | |
virtual void | setPosMom (StateOnPlane &state, const TVectorD &state6) const |
Set position and momentum of state. | |
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. | |
virtual void | setPosMomCov (MeasuredStateOnPlane &state, const TVector3 &pos, const TVector3 &mom, const TMatrixDSym &cov6x6) const |
Set position, momentum and covariance of state. | |
virtual void | setPosMomCov (MeasuredStateOnPlane &state, const TVectorD &state6, const TMatrixDSym &cov6x6) const |
Set position, momentum and covariance of state. | |
virtual void | setChargeSign (StateOnPlane &state, double charge) const |
Set the sign of the charge according to charge. | |
virtual void | setQop (StateOnPlane &state, double qop) const |
Set charge/momentum. | |
void | setSpu (StateOnPlane &state, double spu) const |
double | RKPropagate (M1x7 &state7, M7x7 *jacobian, M1x3 &SA, double S, bool varField=true, bool calcOnlyLastRowOfJ=false) const |
The actual Runge Kutta propagation. | |
virtual bool | isSameType (const AbsTrackRep *other) |
check if other is of same type (e.g. RKTrackRep). | |
virtual bool | isSame (const AbsTrackRep *other) |
check if other is of same type (e.g. RKTrackRep) and has same pdg code. | |
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, via reference, the extrapolated state. | |
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. | |
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, via reference, the extrapolated state. | |
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. | |
![]() | |
AbsTrackRep () | |
AbsTrackRep (int pdgCode, char propDir=0) | |
virtual | ~AbsTrackRep () |
double | extrapolateToMeasurement (StateOnPlane &state, const AbsMeasurement *measurement, bool stopAtBoundary=false, bool calcJacobianNoise=false) const |
extrapolate to an AbsMeasurement | |
TVector3 | getDir (const StateOnPlane &state) const |
Get the direction vector of a state. | |
void | getPosDir (const StateOnPlane &state, TVector3 &pos, TVector3 &dir) const |
Get cartesian position and direction vector of a state. | |
virtual TVectorD | get6DState (const StateOnPlane &state) const |
Get the 6D state vector (x, y, z, p_x, p_y, p_z). | |
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. | |
int | getPDG () const |
Get the pdg code. | |
double | getPDGCharge () const |
Get the charge of the particle of the pdg code. | |
double | getMass (const StateOnPlane &state) const |
Get tha particle mass in GeV/c^2. | |
char | getPropDir () const |
Get propagation direction. (-1, 0, 1) -> (backward, auto, forward). | |
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. | |
bool | switchPDGSign () |
try to multiply pdg code with -1. (Switch from particle to anti-particle and vice versa). | |
void | setPropDir (int dir) |
Set propagation direction. (-1, 0, 1) -> (backward, auto, forward). | |
void | switchPropDir () |
Switch propagation direction. Has no effect if propDir_ is set to 0. | |
virtual void | setDebugLvl (unsigned int lvl=1) |
virtual void | Print (const Option_t *="") const |
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, M1x7 &state7, M7x7 *jacobianT, double &coveredDistance, bool &checkJacProj, M7x7 &noiseProjection, StepLimits &limits, bool onlyOneStep=false, bool calcOnlyLastRowOfJ=false) const |
Propagates the particle through the magnetic field. | |
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, bool &isAtBoundary, M1x7 &state7, bool fillExtrapSteps, TMatrixDSym *cov=nullptr, bool onlyOneStep=false, bool stopAtBoundary=false, double maxStep=1.E99) const |
Handles propagation and material effects. | |
void | checkCache (const StateOnPlane &state, const SharedPlanePtr *plane) const |
double | momMag (const M1x7 &state7) const |
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, M1x7 &state7, M7x7 *jacobianT, double &coveredDistance, bool &checkJacProj, M7x7 &noiseProjection, StepLimits &limits, bool onlyOneStep=false, bool calcOnlyLastRowOfJ=false) const |
Propagates the particle through the magnetic field. | |
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, bool &isAtBoundary, M1x7 &state7, bool fillExtrapSteps, TMatrixDSym *cov=nullptr, bool onlyOneStep=false, bool stopAtBoundary=false, double maxStep=1.E99) const |
Handles propagation and material effects. | |
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 | |
std::vector< RKStep > | RKSteps_ |
state where the last extrapolation has ended | |
int | RKStepsFXStart_ |
RungeKutta steps made in the last extrapolation. | |
int | RKStepsFXStop_ |
std::vector< ExtrapStep > | ExtrapSteps_ |
TMatrixD | fJacobian_ |
steps made in Extrap during last extrapolation | |
TMatrixDSym | fNoise_ |
bool | useCache_ |
unsigned int | cachePos_ |
use cached RKSteps_ for extrapolation | |
StepLimits | limits_ |
M7x7 | noiseArray_ |
M7x7 | noiseProjection_ |
noise matrix of the last extrapolation | |
M7x7 | J_MMT_ |
Additional Inherited Members | |
![]() | |
AbsTrackRep (const AbsTrackRep &) | |
protect from calling copy c'tor from outside the class. Use clone() if you want a copy! | |
AbsTrackRep & | operator= (const AbsTrackRep &) |
protect from calling assignment operator from outside the class. Use clone() instead! | |
![]() | |
int | pdgCode_ |
Particle code. | |
char | propDir_ |
propagation direction (-1, 0, 1) -> (backward, auto, forward) | |
unsigned int | debugLvl_ |
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 RKTrackRep.h.
genfit::RKTrackRep::RKTrackRep | ( | ) |
Definition at line 45 of file RKTrackRep.cc.
genfit::RKTrackRep::RKTrackRep | ( | int | pdgCode, |
char | propDir = 0 |
||
) |
Definition at line 60 of file RKTrackRep.cc.
|
virtual |
Definition at line 75 of file RKTrackRep.cc.
genfit::RKTrackRep::RKTrackRep | ( | ) |
genfit::RKTrackRep::RKTrackRep | ( | int | pdgCode, |
char | propDir = 0 |
||
) |
|
virtual |
|
private |
Definition at line 774 of file RKTrackRep.cc.
|
private |
|
private |
Definition at line 1582 of file RKTrackRep.cc.
|
private |
|
private |
Definition at line 1452 of file RKTrackRep.cc.
|
private |
|
private |
Definition at line 2412 of file RKTrackRep.cc.
|
private |
|
inlinevirtual |
|
inlinevirtual |
|
private |
invalid: RKSteps_.back().state7_ = { state7[0], state7[1], state7[2], state7[3], state7[4], state7[5], state7[6] };
fNoMaterial
Definition at line 1963 of file RKTrackRep.cc.
|
private |
|
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.
fNoMaterial &&
Definition at line 2201 of file RKTrackRep.cc.
|
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 |
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.
Definition at line 579 of file RKTrackRep.cc.
|
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 |
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.
Definition at line 353 of file RKTrackRep.cc.
|
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 |
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.
Definition at line 150 of file RKTrackRep.cc.
|
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 |
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 |
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.
|
inlinevirtual |
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.
Reimplemented from genfit::AbsTrackRep.
Definition at line 120 of file AbsTrackRep.h.
|
inlinevirtual |
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.
Reimplemented from genfit::AbsTrackRep.
Definition at line 120 of file AbsTrackRep.h.
|
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.
Definition at line 97 of file RKTrackRep.cc.
|
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 |
Definition at line 84 of file RKTrackRep.cc.
|
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 RKTrackRep.h.
|
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 100 of file RKTrackRep.h.
|
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 RKTrackRep.h.
|
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 107 of file RKTrackRep.h.
|
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.
Definition at line 473 of file RKTrackRep.cc.
|
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.
|
privatevirtual |
Definition at line 246 of file RKTrackRep.cc.
|
privatevirtual |
|
virtual |
Get the 6D covariance.
Implements genfit::AbsTrackRep.
Definition at line 704 of file RKTrackRep.cc.
|
virtual |
Get the 6D covariance.
Implements genfit::AbsTrackRep.
|
virtual |
Get the jacobian and noise matrix of the last extrapolation if it would have been done in opposite direction.
Implements genfit::AbsTrackRep.
Definition at line 844 of file RKTrackRep.cc.
|
virtual |
Get the jacobian and noise matrix of the last extrapolation if it would have been done in opposite direction.
Implements genfit::AbsTrackRep.
|
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.
Definition at line 712 of file RKTrackRep.cc.
|
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.
|
inlinevirtual |
Get the dimension of the state vector used by the track representation.
Implements genfit::AbsTrackRep.
Definition at line 129 of file RKTrackRep.h.
|
inlinevirtual |
Get the dimension of the state vector used by the track representation.
Implements genfit::AbsTrackRep.
Definition at line 134 of file RKTrackRep.h.
|
virtual |
Get the jacobian and noise matrix of the last extrapolation.
Implements genfit::AbsTrackRep.
Definition at line 820 of file RKTrackRep.cc.
|
virtual |
Get the jacobian and noise matrix of the last extrapolation.
Implements genfit::AbsTrackRep.
|
virtual |
Get the cartesian momentum vector of a state.
Implements genfit::AbsTrackRep.
Definition at line 677 of file RKTrackRep.cc.
|
virtual |
Get the cartesian momentum vector of a state.
Implements genfit::AbsTrackRep.
|
virtual |
get the magnitude of the momentum in GeV.
Implements genfit::AbsTrackRep.
Definition at line 730 of file RKTrackRep.cc.
|
virtual |
get the magnitude of the momentum in GeV.
Implements genfit::AbsTrackRep.
|
virtual |
get the variance of the absolute value of the momentum .
Implements genfit::AbsTrackRep.
Definition at line 738 of file RKTrackRep.cc.
|
virtual |
get the variance of the absolute value of the momentum .
Implements genfit::AbsTrackRep.
|
virtual |
Get the cartesian position of a state.
Implements genfit::AbsTrackRep.
Definition at line 669 of file RKTrackRep.cc.
|
virtual |
Get the cartesian position of a state.
Implements genfit::AbsTrackRep.
|
virtual |
Get cartesian position and momentum vector of a state.
Implements genfit::AbsTrackRep.
Definition at line 687 of file RKTrackRep.cc.
|
virtual |
Get cartesian position and momentum vector of a state.
Implements genfit::AbsTrackRep.
|
virtual |
Translates MeasuredStateOnPlane into 3D position, momentum and 6x6 covariance.
Implements genfit::AbsTrackRep.
Definition at line 697 of file RKTrackRep.cc.
|
virtual |
Translates MeasuredStateOnPlane into 3D position, momentum and 6x6 covariance.
Implements genfit::AbsTrackRep.
|
inlinevirtual |
Get charge over momentum.
Implements genfit::AbsTrackRep.
Definition at line 142 of file RKTrackRep.h.
|
inlinevirtual |
Get charge over momentum.
Implements genfit::AbsTrackRep.
Definition at line 147 of file RKTrackRep.h.
|
virtual |
Get the accumulated X/X0 (path / radiation length) of the material crossed in the last extrapolation.
Implements genfit::AbsTrackRep.
Definition at line 905 of file RKTrackRep.cc.
|
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 |
Definition at line 758 of file RKTrackRep.cc.
double genfit::RKTrackRep::getSpu | ( | const StateOnPlane & | state | ) | const |
|
private |
Definition at line 1385 of file RKTrackRep.cc.
|
private |
|
private |
Definition at line 1351 of file RKTrackRep.cc.
|
private |
|
virtual |
Get stepsizes and material properties of crossed materials of the last extrapolation.
Implements genfit::AbsTrackRep.
Definition at line 885 of file RKTrackRep.cc.
|
virtual |
Get stepsizes and material properties of crossed materials of the last extrapolation.
Implements genfit::AbsTrackRep.
|
virtual |
Get the time of flight [ns] of the last extrapolation.
Implements genfit::AbsTrackRep.
Definition at line 924 of file RKTrackRep.cc.
|
virtual |
Get the time of flight [ns] of the last extrapolation.
Implements genfit::AbsTrackRep.
|
private |
Definition at line 1332 of file RKTrackRep.cc.
|
private |
|
virtual |
check if other is of same type (e.g. RKTrackRep) and has same pdg code.
Implements genfit::AbsTrackRep.
Definition at line 2502 of file RKTrackRep.cc.
|
virtual |
check if other is of same type (e.g. RKTrackRep) and has same pdg code.
Implements genfit::AbsTrackRep.
|
virtual |
check if other is of same type (e.g. RKTrackRep).
Implements genfit::AbsTrackRep.
Definition at line 2494 of file RKTrackRep.cc.
|
virtual |
check if other is of same type (e.g. RKTrackRep).
Implements genfit::AbsTrackRep.
SharedPlanePtr genfit::RKTrackRep::makePlane | ( | const TVector3 & | o, |
const TVector3 & | u, | ||
const TVector3 & | v | ||
) |
Definition at line 79 of file RKTrackRep.cc.
|
private |
Definition at line 2488 of file RKTrackRep.cc.
|
private |
|
private |
Definition at line 2189 of file RKTrackRep.cc.
|
private |
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.
Definition at line 1143 of file RKTrackRep.cc.
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.
|
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.
Definition at line 1705 of file RKTrackRep.cc.
|
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 |
Set the sign of the charge according to charge.
Implements genfit::AbsTrackRep.
Definition at line 1122 of file RKTrackRep.cc.
|
virtual |
Set the sign of the charge according to charge.
Implements genfit::AbsTrackRep.
|
virtual |
Set position and momentum of state.
Implements genfit::AbsTrackRep.
Definition at line 965 of file RKTrackRep.cc.
|
virtual |
Set position and momentum of state.
Implements genfit::AbsTrackRep.
|
virtual |
Set position and momentum of state.
Implements genfit::AbsTrackRep.
Definition at line 1027 of file RKTrackRep.cc.
|
virtual |
Set position and momentum of state.
Implements genfit::AbsTrackRep.
|
virtual |
Set position, momentum and covariance of state.
Implements genfit::AbsTrackRep.
Definition at line 1078 of file RKTrackRep.cc.
|
virtual |
Set position, momentum and covariance of state.
Implements genfit::AbsTrackRep.
|
virtual |
Set position, momentum and covariance of state.
Implements genfit::AbsTrackRep.
Definition at line 1096 of file RKTrackRep.cc.
|
virtual |
Set position, momentum and covariance of state.
Implements genfit::AbsTrackRep.
|
virtual |
Set position and momentum and error of state.
Implements genfit::AbsTrackRep.
Definition at line 1036 of file RKTrackRep.cc.
|
virtual |
Set position and momentum and error of state.
Implements genfit::AbsTrackRep.
|
inlinevirtual |
Set charge/momentum.
Implements genfit::AbsTrackRep.
Definition at line 163 of file RKTrackRep.h.
|
inlinevirtual |
Set charge/momentum.
Implements genfit::AbsTrackRep.
Definition at line 168 of file RKTrackRep.h.
void genfit::RKTrackRep::setSpu | ( | StateOnPlane & | state, |
double | spu | ||
) | const |
Definition at line 1136 of file RKTrackRep.cc.
void genfit::RKTrackRep::setSpu | ( | StateOnPlane & | state, |
double | spu | ||
) | const |
|
private |
Definition at line 1627 of file RKTrackRep.cc.
|
private |
|
private |
Definition at line 1559 of file RKTrackRep.cc.
|
private |
|
private |
Definition at line 1497 of file RKTrackRep.cc.
|
private |
|
private |
Definition at line 1425 of file RKTrackRep.cc.
|
private |
|
mutableprivate |
use cached RKSteps_ for extrapolation
Definition at line 288 of file RKTrackRep.h.
|
mutableprivate |
Definition at line 282 of file RKTrackRep.h.
|
mutableprivate |
steps made in Extrap during last extrapolation
Definition at line 284 of file RKTrackRep.h.
|
mutableprivate |
Definition at line 285 of file RKTrackRep.h.
|
mutableprivate |
Definition at line 295 of file RKTrackRep.h.
|
mutableprivate |
state where the last extrapolation has started
Definition at line 278 of file RKTrackRep.h.
|
mutableprivate |
Definition at line 277 of file RKTrackRep.h.
|
mutableprivate |
Definition at line 292 of file RKTrackRep.h.
|
mutableprivate |
Definition at line 293 of file RKTrackRep.h.
|
mutableprivate |
noise matrix of the last extrapolation
Definition at line 294 of file RKTrackRep.h.
|
mutableprivate |
state where the last extrapolation has ended
Definition at line 279 of file RKTrackRep.h.
|
mutableprivate |
RungeKutta steps made in the last extrapolation.
Definition at line 280 of file RKTrackRep.h.
|
mutableprivate |
Definition at line 281 of file RKTrackRep.h.
|
mutableprivate |
Definition at line 287 of file RKTrackRep.h.