Belle II Software
release-08-01-10
|
Abstract base class for a track representation. More...
#include <AbsTrackRep.h>
Public Member Functions | |
AbsTrackRep (int pdgCode, char propDir=0) | |
virtual AbsTrackRep * | clone () const =0 |
Clone the trackRep. | |
virtual double | extrapolateToPlane (StateOnPlane &state, const genfit::SharedPlanePtr &plane, bool stopAtBoundary=false, bool calcJacobianNoise=false) const =0 |
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 =0 |
Extrapolates the state to the POCA to a line, and returns the extrapolation length and, via reference, the extrapolated state. 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... | |
virtual double | extrapolateToPoint (StateOnPlane &state, const TVector3 &point, bool stopAtBoundary=false, bool calcJacobianNoise=false) const =0 |
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 =0 |
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 =0 |
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 =0 |
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 =0 |
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 =0 |
Extrapolates the state by step (cm) and returns the extrapolation length and, via reference, the extrapolated state. More... | |
double | extrapolateToMeasurement (StateOnPlane &state, const AbsMeasurement *measurement, bool stopAtBoundary=false, bool calcJacobianNoise=false) const |
extrapolate to an AbsMeasurement | |
virtual unsigned int | getDim () const =0 |
Get the dimension of the state vector used by the track representation. | |
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. | |
TVector3 | getDir (const StateOnPlane &state) const |
Get the direction vector of a state. | |
virtual void | getPosMom (const StateOnPlane &state, TVector3 &pos, TVector3 &mom) const =0 |
Get cartesian position and momentum 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 TMatrixDSym | get6DCov (const MeasuredStateOnPlane &state) const =0 |
Get the 6D covariance. | |
virtual void | getPosMomCov (const MeasuredStateOnPlane &state, TVector3 &pos, TVector3 &mom, TMatrixDSym &cov) const =0 |
Translates MeasuredStateOnPlane into 3D position, momentum and 6x6 covariance. | |
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. | |
virtual double | getMomMag (const StateOnPlane &state) const =0 |
get the magnitude of the momentum in GeV. | |
virtual double | getMomVar (const MeasuredStateOnPlane &state) const =0 |
get the variance of the absolute value of the momentum . | |
int | getPDG () const |
Get the pdg code. | |
double | getPDGCharge () const |
Get the charge of the particle of the pdg code. | |
virtual double | getCharge (const StateOnPlane &state) const =0 |
Get the (fitted) charge of a state. More... | |
virtual double | getQop (const StateOnPlane &state) const =0 |
Get charge over momentum. | |
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). | |
virtual void | getForwardJacobianAndNoise (TMatrixD &jacobian, TMatrixDSym &noise, TVectorD &deltaState) const =0 |
Get the jacobian and noise matrix of the last extrapolation. | |
virtual void | getBackwardJacobianAndNoise (TMatrixD &jacobian, TMatrixDSym &noise, TVectorD &deltaState) const =0 |
Get the jacobian and noise matrix of the last extrapolation if it would have been done in opposite direction. | |
virtual std::vector< genfit::MatStep > | getSteps () const =0 |
Get stepsizes and material properties of crossed materials of the last extrapolation. | |
virtual double | getRadiationLenght () const =0 |
Get the accumulated X/X0 (path / radiation length) of the material crossed in the last extrapolation. | |
virtual double | getTime (const StateOnPlane &) const =0 |
Get the time corresponding to the StateOnPlane. Extrapolation. | |
void | calcJacobianNumerically (const genfit::StateOnPlane &origState, const genfit::SharedPlanePtr destPlane, TMatrixD &jacobian) const |
Calculate Jacobian of transportation numerically. More... | |
bool | switchPDGSign () |
try to multiply pdg code with -1. (Switch from particle to anti-particle and vice versa). | |
virtual void | setPosMom (StateOnPlane &state, const TVector3 &pos, const TVector3 &mom) const =0 |
Set position and momentum of state. | |
virtual void | setPosMom (StateOnPlane &state, const TVectorD &state6) const =0 |
Set position and momentum of state. | |
virtual void | setPosMomErr (MeasuredStateOnPlane &state, const TVector3 &pos, const TVector3 &mom, const TVector3 &posErr, const TVector3 &momErr) const =0 |
Set position and momentum and error of state. | |
virtual void | setPosMomCov (MeasuredStateOnPlane &state, const TVector3 &pos, const TVector3 &mom, const TMatrixDSym &cov6x6) const =0 |
Set position, momentum and covariance of state. | |
virtual void | setPosMomCov (MeasuredStateOnPlane &state, const TVectorD &state6, const TMatrixDSym &cov6x6) const =0 |
Set position, momentum and covariance of state. | |
virtual void | setChargeSign (StateOnPlane &state, double charge) const =0 |
Set the sign of the charge according to charge. | |
virtual void | setQop (StateOnPlane &state, double qop) const =0 |
Set charge/momentum. | |
virtual void | setTime (StateOnPlane &state, double time) const =0 |
Set time at which the state was defined. | |
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 bool | isSameType (const AbsTrackRep *other)=0 |
check if other is of same type (e.g. RKTrackRep). | |
virtual bool | isSame (const AbsTrackRep *other)=0 |
check if other is of same type (e.g. RKTrackRep) and has same pdg code. | |
virtual void | setDebugLvl (unsigned int lvl=1) |
virtual void | Print (const Option_t *="") const |
Protected Member Functions | |
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! | |
Protected Attributes | |
int | pdgCode_ |
Particle code. | |
char | propDir_ |
propagation direction (-1, 0, 1) -> (backward, auto, forward) | |
unsigned int | debugLvl_ |
Abstract base class for a track representation.
Provides functionality to extrapolate a StateOnPlane to another DetPlane, to the POCA to a line or a point, or a cylinder or sphere. Defines a set of parameters describing the track. StateOnPlane objects are always defined with a track parameterization of a specific AbsTrackRep. The AbsTrackRep provides functionality to translate from the internal representation of a state into cartesian position and momentum (and covariance) and vice versa.
Definition at line 66 of file AbsTrackRep.h.
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.
Definition at line 105 of file AbsTrackRep.cc.
|
pure 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.
Implemented in RKTrackRep.
|
pure 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.
Implemented in RKTrackRep.
|
pure 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.
Implemented in RKTrackRep.
|
pure 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.
Implemented in RKTrackRep.
|
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.
Definition at line 120 of file AbsTrackRep.h.
|
pure 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.
Implemented in RKTrackRep.
|
pure virtual |
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.
Implemented in RKTrackRep.
|
pure virtual |
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.
Implemented in RKTrackRep.
|
pure 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.
Implemented in RKTrackRep.
|
pure 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).
Implemented in RKTrackRep, and MplTrackRep.