GENFIT
Rev:NoNumberAvailable
|
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. 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 | extrapolateToCone (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 cone 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::MatStep > | getSteps () 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... | |
![]() | |
AbsTrackRep () | |
AbsTrackRep (int pdgCode, char propDir=0) | |
virtual | ~AbsTrackRep () |
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 |
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< RKStep > | RKSteps_ |
state where the last extrapolation has ended More... | |
int | RKStepsFXStart_ |
RungeKutta steps made in the last extrapolation. More... | |
int | RKStepsFXStop_ |
std::vector< ExtrapStep > | ExtrapSteps_ |
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_ |
Additional Inherited Members | |
![]() | |
AbsTrackRep (const AbsTrackRep &) | |
protect from calling copy c'tor from outside the class. Use clone() if you want a copy! More... | |
AbsTrackRep & | operator= (const AbsTrackRep &) |
protect from calling assignment operator from outside the class. Use clone() instead! More... | |
![]() | |
int | pdgCode_ |
Particle code. More... | |
char | propDir_ |
propagation direction (-1, 0, 1) -> (backward, auto, forward) More... | |
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 71 of file RKTrackRep.h.
genfit::RKTrackRep::RKTrackRep | ( | ) |
genfit::RKTrackRep::RKTrackRep | ( | int | pdgCode, |
char | propDir = 0 |
||
) |
Definition at line 60 of file RKTrackRep.cc.
References initArrays().
|
virtual |
Definition at line 75 of file RKTrackRep.cc.
|
private |
Definition at line 931 of file RKTrackRep.cc.
References calcJ_Mp_7x5(), calcJ_pM_5x7(), genfit::AbsTrackRep::debugLvl_, genfit::debugOut, ExtrapSteps_, fJacobian_, fNoise_, genfit::DetPlane::getNormal(), genfit::DetPlane::getU(), genfit::DetPlane::getV(), genfit::RKTools::J_MpTxcov7xJ_Mp(), and genfit::RKTools::J_pMTTxJ_MMTTxJ_MpTT().
Referenced by Extrap().
|
private |
Definition at line 1725 of file RKTrackRep.cc.
References genfit::RKMatrix< nRows, nCols >::begin(), and genfit::RKMatrix< nRows, nCols >::end().
Referenced by calcForwardJacobianAndNoise(), and transformM7P().
|
private |
Definition at line 1595 of file RKTrackRep.cc.
References genfit::RKMatrix< nRows, nCols >::begin(), and genfit::RKMatrix< nRows, nCols >::end().
Referenced by calcForwardJacobianAndNoise(), and transformPM7().
|
private |
Definition at line 2630 of file RKTrackRep.cc.
References cachePos_, genfit::AbsTrackRep::debugLvl_, genfit::debugOut, ExtrapSteps_, genfit::StateOnPlane::getPlane(), getPos(), genfit::StateOnPlane::getRep(), genfit::StateOnPlane::getState(), initArrays(), lastEndState_, lastStartState_, MINSTEP, RKSteps_, RKStepsFXStart_, RKStepsFXStop_, genfit::Exception::setFatal(), genfit::StateOnPlane::setStatePlane(), and useCache_.
Referenced by extrapolateBy(), extrapolateToCone(), extrapolateToCylinder(), extrapolateToLine(), extrapolateToPlane(), extrapolateToSphere(), and extrapToPoint().
|
inlinevirtual |
Clone the trackRep.
Implements genfit::AbsTrackRep.
Definition at line 81 of file RKTrackRep.h.
References RKTrackRep().
|
private |
Definition at line 2126 of file RKTrackRep.cc.
References cachePos_, genfit::AbsTrackRep::debugLvl_, genfit::debugOut, genfit::MaterialEffects::getInstance(), genfit::StepLimits::getLimit(), genfit::StepLimits::getLimitSigned(), genfit::StepLimits::getLowestLimitSignedVal(), genfit::StepLimits::getLowestLimitVal(), genfit::StepLimits::getStepSign(), genfit::DetPlane::isFinite(), genfit::DetPlane::isInActive(), MINSTEP, genfit::AbsTrackRep::pdgCode_, genfit::StepLimits::Print(), genfit::AbsTrackRep::propDir_, genfit::StepLimits::removeLimit(), RKPropagate(), RKSteps_, RKStepsFXStop_, genfit::StepLimits::setLimit(), genfit::StepLimits::setStepSign(), genfit::MaterialEffects::stepper(), genfit::stp_fieldCurv, genfit::stp_plane, genfit::stp_sMax, and useCache_.
Referenced by RKutta().
|
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 2360 of file RKTrackRep.cc.
References genfit::RKMatrix< nRows, nCols >::begin(), calcForwardJacobianAndNoise(), genfit::AbsTrackRep::debugLvl_, genfit::debugOut, genfit::DetPlane::distance(), genfit::MaterialEffects::effects(), ExtrapSteps_, fJacobian_, fNoise_, genfit::MaterialEffects::getInstance(), genfit::StepLimits::getLowestLimit(), genfit::DetPlane::getNormal(), genfit::DetPlane::getO(), genfit::DetPlane::isInActive(), J_MMT_, limits_, MINSTEP, noiseArray_, noiseProjection_, genfit::RKTools::Np_N_NpT(), genfit::AbsTrackRep::pdgCode_, genfit::DetPlane::Print(), genfit::RKTools::printDim(), genfit::StepLimits::reset(), RKSteps_, RKStepsFXStart_, RKStepsFXStop_, RKutta(), genfit::Exception::setFatal(), genfit::StepLimits::setLimit(), genfit::stp_boundary, genfit::stp_plane, and genfit::stp_sMaxArg.
Referenced by extrapolateBy(), extrapolateToCone(), extrapolateToCylinder(), extrapolateToLine(), extrapolateToPlane(), extrapolateToSphere(), and extrapToPoint().
|
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 721 of file RKTrackRep.cc.
References checkCache(), genfit::AbsTrackRep::debugLvl_, genfit::debugOut, Extrap(), extrapolateToPlane(), genfit::StateOnPlane::getAuxInfo(), getCharge(), genfit::AbsTrackRep::getMass(), genfit::StateOnPlane::getPlane(), getState5(), getState7(), lastEndState_, MINSTEP, genfit::Exception::setFatal(), and genfit::StateOnPlane::setPlane().
|
virtual |
Extrapolates the state to the cone 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 476 of file RKTrackRep.cc.
References checkCache(), genfit::AbsTrackRep::debugLvl_, genfit::debugOut, Extrap(), extrapolateToPlane(), genfit::StateOnPlane::getAuxInfo(), getCharge(), genfit::AbsTrackRep::getMass(), genfit::StateOnPlane::getPlane(), getState5(), getState7(), lastEndState_, MINSTEP, genfit::Exception::setFatal(), and genfit::StateOnPlane::setPlane().
|
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 351 of file RKTrackRep.cc.
References checkCache(), genfit::AbsTrackRep::debugLvl_, genfit::debugOut, Extrap(), extrapolateToPlane(), genfit::StateOnPlane::getAuxInfo(), getCharge(), genfit::AbsTrackRep::getMass(), genfit::StateOnPlane::getPlane(), getState5(), getState7(), lastEndState_, MINSTEP, genfit::Exception::setFatal(), and genfit::StateOnPlane::setPlane().
|
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 135 of file RKTrackRep.cc.
References checkCache(), genfit::AbsTrackRep::debugLvl_, genfit::debugOut, Extrap(), extrapolateToPlane(), genfit::StateOnPlane::getAuxInfo(), getCharge(), genfit::AbsTrackRep::getMass(), genfit::StateOnPlane::getPlane(), getState5(), getState7(), lastEndState_, MINSTEP, pocaOnLine(), genfit::Exception::setFatal(), genfit::StateOnPlane::setPlane(), and genfit::DetPlane::setU().
|
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 80 of file RKTrackRep.cc.
References checkCache(), genfit::AbsTrackRep::debugLvl_, genfit::debugOut, Extrap(), getCharge(), genfit::AbsTrackRep::getMass(), genfit::StateOnPlane::getPlane(), getState5(), getState7(), getTime(), lastEndState_, genfit::StateOnPlane::setPlane(), and setTime().
Referenced by extrapolateBy(), extrapolateToCone(), extrapolateToCylinder(), extrapolateToLine(), extrapolateToSphere(), and extrapToPoint().
|
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 96 of file RKTrackRep.h.
References extrapToPoint().
|
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 103 of file RKTrackRep.h.
References extrapToPoint().
|
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 610 of file RKTrackRep.cc.
References checkCache(), genfit::AbsTrackRep::debugLvl_, genfit::debugOut, Extrap(), extrapolateToPlane(), genfit::StateOnPlane::getAuxInfo(), getCharge(), genfit::AbsTrackRep::getMass(), genfit::StateOnPlane::getPlane(), getState5(), getState7(), lastEndState_, MINSTEP, genfit::Exception::setFatal(), and genfit::StateOnPlane::setPlane().
|
privatevirtual |
Definition at line 235 of file RKTrackRep.cc.
References checkCache(), genfit::AbsTrackRep::debugLvl_, genfit::debugOut, Extrap(), extrapolateToPlane(), genfit::StateOnPlane::getAuxInfo(), getCharge(), genfit::AbsTrackRep::getMass(), genfit::StateOnPlane::getPlane(), getState5(), getState7(), lastEndState_, MINSTEP, genfit::Exception::setFatal(), genfit::DetPlane::setNormal(), and genfit::StateOnPlane::setPlane().
Referenced by extrapolateToPoint().
|
virtual |
Get the 6D covariance.
Implements genfit::AbsTrackRep.
Definition at line 851 of file RKTrackRep.cc.
References transformPM6().
|
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 1001 of file RKTrackRep.cc.
References genfit::AbsTrackRep::debugLvl_, genfit::debugOut, ExtrapSteps_, fJacobian_, fNoise_, genfit::StateOnPlane::getState(), lastEndState_, lastStartState_, and genfit::Exception::setFatal().
|
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 859 of file RKTrackRep.cc.
References genfit::AbsTrackRep::getPDGCharge(), genfit::StateOnPlane::getState(), and genfit::Exception::setFatal().
Referenced by extrapolateBy(), extrapolateToCone(), extrapolateToCylinder(), extrapolateToLine(), extrapolateToPlane(), extrapolateToSphere(), extrapToPoint(), getMom(), getMomMag(), getMomVar(), getPosMom(), setPosMom(), setPosMomErr(), transformM6P(), and transformPM6().
|
inlinevirtual |
Get the dimension of the state vector used by the track representation.
Implements genfit::AbsTrackRep.
Definition at line 138 of file RKTrackRep.h.
|
virtual |
Get the jacobian and noise matrix of the last extrapolation.
Implements genfit::AbsTrackRep.
Definition at line 977 of file RKTrackRep.cc.
References genfit::AbsTrackRep::debugLvl_, genfit::debugOut, fJacobian_, fNoise_, genfit::StateOnPlane::getState(), lastEndState_, and lastStartState_.
|
virtual |
Get the cartesian momentum vector of a state.
Implements genfit::AbsTrackRep.
Definition at line 824 of file RKTrackRep.cc.
References getCharge(), and getState7().
|
virtual |
get the magnitude of the momentum in GeV.
Implements genfit::AbsTrackRep.
Definition at line 877 of file RKTrackRep.cc.
References getCharge(), and genfit::StateOnPlane::getState().
|
virtual |
get the variance of the absolute value of the momentum .
Implements genfit::AbsTrackRep.
Definition at line 885 of file RKTrackRep.cc.
References getCharge(), genfit::MeasuredStateOnPlane::getCov(), genfit::StateOnPlane::getState(), and genfit::Exception::setFatal().
|
virtual |
Get the cartesian position of a state.
Implements genfit::AbsTrackRep.
Definition at line 816 of file RKTrackRep.cc.
References getState7().
Referenced by checkCache().
|
virtual |
Get cartesian position and momentum vector of a state.
Implements genfit::AbsTrackRep.
Definition at line 834 of file RKTrackRep.cc.
References getCharge(), and getState7().
Referenced by getPosMomCov().
|
virtual |
Translates MeasuredStateOnPlane into 3D position, momentum and 6x6 covariance.
Implements genfit::AbsTrackRep.
Definition at line 844 of file RKTrackRep.cc.
References getPosMom(), and transformPM6().
|
inlinevirtual |
Get charge over momentum.
Implements genfit::AbsTrackRep.
Definition at line 151 of file RKTrackRep.h.
References genfit::StateOnPlane::getState().
|
virtual |
Get the accumulated X/X0 (path / radiation length) of the material crossed in the last extrapolation.
Implements genfit::AbsTrackRep.
Definition at line 1061 of file RKTrackRep.cc.
References RKSteps_.
double genfit::RKTrackRep::getSpu | ( | const StateOnPlane & | state | ) | const |
Definition at line 905 of file RKTrackRep.cc.
References genfit::StateOnPlane::getAuxInfo(), and genfit::Exception::setFatal().
Referenced by getState7(), transformPM6(), and transformPM7().
|
private |
Definition at line 1531 of file RKTrackRep.cc.
References genfit::StateOnPlane::getPlane(), genfit::StateOnPlane::getState(), and setSpu().
Referenced by extrapolateBy(), extrapolateToCone(), extrapolateToCylinder(), extrapolateToLine(), extrapolateToPlane(), extrapolateToSphere(), extrapToPoint(), and setPosMom().
|
private |
Definition at line 1497 of file RKTrackRep.cc.
References genfit::StateOnPlane::getPlane(), getSpu(), genfit::StateOnPlane::getState(), and genfit::Exception::setFatal().
Referenced by extrapolateBy(), extrapolateToCone(), extrapolateToCylinder(), extrapolateToLine(), extrapolateToPlane(), extrapolateToSphere(), extrapToPoint(), getMom(), getPos(), getPosMom(), and setPosMomCov().
|
virtual |
Get stepsizes and material properties of crossed materials of the last extrapolation.
Implements genfit::AbsTrackRep.
Definition at line 1041 of file RKTrackRep.cc.
References RKSteps_.
|
virtual |
Get the time corresponding to the StateOnPlane. Extrapolation.
Implements genfit::AbsTrackRep.
Definition at line 921 of file RKTrackRep.cc.
References genfit::StateOnPlane::getAuxInfo().
Referenced by extrapolateToPlane().
|
private |
Definition at line 1478 of file RKTrackRep.cc.
References genfit::RKMatrix< nRows, nCols >::begin(), genfit::RKMatrix< nRows, nCols >::end(), ExtrapSteps_, fJacobian_, fNoise_, genfit::StateOnPlane::getAuxInfo(), J_MMT_, lastEndState_, lastStartState_, limits_, noiseArray_, noiseProjection_, genfit::StepLimits::reset(), and RKSteps_.
Referenced by checkCache(), and RKTrackRep().
|
virtual |
check if other is of same type (e.g. RKTrackRep) and has same pdg code.
Implements genfit::AbsTrackRep.
Definition at line 2720 of file RKTrackRep.cc.
References genfit::AbsTrackRep::getPDG(), and isSameType().
|
virtual |
check if other is of same type (e.g. RKTrackRep).
Implements genfit::AbsTrackRep.
Definition at line 2712 of file RKTrackRep.cc.
Referenced by isSame().
|
private |
Definition at line 2706 of file RKTrackRep.cc.
|
private |
Definition at line 2348 of file RKTrackRep.cc.
Referenced by extrapolateToLine().
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). This is a single Runge-Kutta step. 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 1272 of file RKTrackRep.cc.
References genfit::AbsTrackRep::debugLvl_, genfit::debugOut, genfit::FieldManager::getFieldVal(), and genfit::FieldManager::getInstance().
Referenced by estimateStep(), genfit::TGeoMaterialInterface::findNextBoundary(), RKutta(), and genfit::MaterialEffects::stepper().
|
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 1852 of file RKTrackRep.cc.
References genfit::RKMatrix< nRows, nCols >::begin(), genfit::AbsTrackRep::debugLvl_, genfit::debugOut, estimateStep(), genfit::StepLimits::getLowestLimit(), MINSTEP, genfit::DetPlane::Print(), genfit::StepLimits::removeLimit(), RKPropagate(), RKSteps_, RKStepsFXStop_, genfit::Exception::setFatal(), genfit::stp_boundary, genfit::stp_fieldCurv, genfit::stp_momLoss, and genfit::stp_plane.
Referenced by Extrap().
|
virtual |
Set the sign of the charge according to charge.
Implements genfit::AbsTrackRep.
Definition at line 1246 of file RKTrackRep.cc.
References genfit::StateOnPlane::getState(), and genfit::Exception::setFatal().
|
virtual |
Set position and momentum of state.
Implements genfit::AbsTrackRep.
Definition at line 1081 of file RKTrackRep.cc.
References genfit::StateOnPlane::getAuxInfo(), getCharge(), genfit::StateOnPlane::getPlane(), genfit::StateOnPlane::getRep(), genfit::StateOnPlane::getState(), getState5(), MINSTEP, genfit::Exception::setFatal(), genfit::StateOnPlane::setPlane(), and setSpu().
Referenced by setPosMom(), setPosMomCov(), and setPosMomErr().
|
virtual |
Set position and momentum of state.
Implements genfit::AbsTrackRep.
Definition at line 1151 of file RKTrackRep.cc.
References setPosMom().
|
virtual |
Set position, momentum and covariance of state.
Implements genfit::AbsTrackRep.
Definition at line 1202 of file RKTrackRep.cc.
References getState7(), setPosMom(), and transformM6P().
|
virtual |
Set position, momentum and covariance of state.
Implements genfit::AbsTrackRep.
Definition at line 1220 of file RKTrackRep.cc.
References getState7(), setPosMom(), and transformM6P().
|
virtual |
Set position and momentum and error of state.
Implements genfit::AbsTrackRep.
Definition at line 1160 of file RKTrackRep.cc.
References getCharge(), genfit::MeasuredStateOnPlane::getCov(), genfit::StateOnPlane::getPlane(), and setPosMom().
|
inlinevirtual |
Set charge/momentum.
Implements genfit::AbsTrackRep.
Definition at line 170 of file RKTrackRep.h.
References genfit::StateOnPlane::getState().
void genfit::RKTrackRep::setSpu | ( | StateOnPlane & | state, |
double | spu | ||
) | const |
Definition at line 1260 of file RKTrackRep.cc.
References genfit::StateOnPlane::getAuxInfo().
Referenced by getState5(), and setPosMom().
|
virtual |
Set time at which the state was defined.
Implements genfit::AbsTrackRep.
Definition at line 1265 of file RKTrackRep.cc.
References genfit::StateOnPlane::getAuxInfo().
Referenced by extrapolateToPlane().
|
private |
Definition at line 1770 of file RKTrackRep.cc.
References genfit::RKMatrix< nRows, nCols >::begin(), genfit::RKMatrix< nRows, nCols >::end(), getCharge(), genfit::MeasuredStateOnPlane::getCov(), genfit::StateOnPlane::getPlane(), and genfit::RKTools::J_MpTxcov6xJ_Mp().
Referenced by setPosMomCov().
|
private |
Definition at line 1702 of file RKTrackRep.cc.
References calcJ_Mp_7x5(), genfit::MeasuredStateOnPlane::getCov(), genfit::StateOnPlane::getPlane(), and genfit::RKTools::J_MpTxcov7xJ_Mp().
|
private |
Definition at line 1640 of file RKTrackRep.cc.
References genfit::RKMatrix< nRows, nCols >::begin(), genfit::RKMatrix< nRows, nCols >::end(), getCharge(), genfit::MeasuredStateOnPlane::getCov(), genfit::StateOnPlane::getPlane(), getSpu(), genfit::StateOnPlane::getState(), and genfit::RKTools::J_pMTxcov5xJ_pM().
Referenced by get6DCov(), and getPosMomCov().
|
private |
Definition at line 1568 of file RKTrackRep.cc.
References calcJ_pM_5x7(), genfit::MeasuredStateOnPlane::getCov(), genfit::StateOnPlane::getPlane(), getSpu(), genfit::StateOnPlane::getState(), and genfit::RKTools::J_pMTxcov5xJ_pM().
|
mutableprivate |
use cached RKSteps_ for extrapolation
Definition at line 302 of file RKTrackRep.h.
Referenced by checkCache(), and estimateStep().
|
mutableprivate |
Definition at line 296 of file RKTrackRep.h.
Referenced by calcForwardJacobianAndNoise(), checkCache(), Extrap(), getBackwardJacobianAndNoise(), and initArrays().
|
mutableprivate |
steps made in Extrap during last extrapolation
Definition at line 298 of file RKTrackRep.h.
Referenced by calcForwardJacobianAndNoise(), Extrap(), getBackwardJacobianAndNoise(), getForwardJacobianAndNoise(), and initArrays().
|
mutableprivate |
Definition at line 299 of file RKTrackRep.h.
Referenced by calcForwardJacobianAndNoise(), Extrap(), getBackwardJacobianAndNoise(), getForwardJacobianAndNoise(), and initArrays().
|
mutableprivate |
Definition at line 309 of file RKTrackRep.h.
Referenced by Extrap(), and initArrays().
|
mutableprivate |
state where the last extrapolation has started
Definition at line 292 of file RKTrackRep.h.
Referenced by checkCache(), extrapolateBy(), extrapolateToCone(), extrapolateToCylinder(), extrapolateToLine(), extrapolateToPlane(), extrapolateToSphere(), extrapToPoint(), getBackwardJacobianAndNoise(), getForwardJacobianAndNoise(), and initArrays().
|
mutableprivate |
Definition at line 291 of file RKTrackRep.h.
Referenced by checkCache(), getBackwardJacobianAndNoise(), getForwardJacobianAndNoise(), and initArrays().
|
mutableprivate |
Definition at line 306 of file RKTrackRep.h.
Referenced by Extrap(), and initArrays().
|
mutableprivate |
Definition at line 307 of file RKTrackRep.h.
Referenced by Extrap(), and initArrays().
|
mutableprivate |
noise matrix of the last extrapolation
Definition at line 308 of file RKTrackRep.h.
Referenced by Extrap(), and initArrays().
|
mutableprivate |
state where the last extrapolation has ended
Definition at line 293 of file RKTrackRep.h.
Referenced by checkCache(), estimateStep(), Extrap(), getRadiationLenght(), getSteps(), initArrays(), and RKutta().
|
mutableprivate |
RungeKutta steps made in the last extrapolation.
Definition at line 294 of file RKTrackRep.h.
Referenced by checkCache(), and Extrap().
|
mutableprivate |
Definition at line 295 of file RKTrackRep.h.
Referenced by checkCache(), estimateStep(), Extrap(), and RKutta().
|
mutableprivate |
Definition at line 301 of file RKTrackRep.h.
Referenced by checkCache(), and estimateStep().