Point on trajectory. More...
#include <GblPoint.h>
Public Member Functions | |
void | addGlobals (const std::vector< int > &aLabels, const TMatrixD &aDerivatives) |
Add global derivatives to a point. More... | |
void | addLocals (const TMatrixD &aDerivatives) |
Add local derivatives to a point. More... | |
void | addMeasurement (const TMatrixD &aProjection, const TVectorD &aResiduals, const TVectorD &aPrecision, double minPrecision=0.) |
Add a measurement to a point. More... | |
void | addMeasurement (const TMatrixD &aProjection, const TVectorD &aResiduals, const TMatrixDSym &aPrecision, double minPrecision=0.) |
Add a measurement to a point. More... | |
void | addMeasurement (const TVectorD &aResiduals, const TVectorD &aPrecision, double minPrecision=0.) |
Add a measurement to a point. More... | |
void | addMeasurement (const TVectorD &aResiduals, const TMatrixDSym &aPrecision, double minPrecision=0.) |
Add a measurement to a point. More... | |
void | addNextJacobian (const SMatrix55 &aJac) |
Define jacobian to next scatterer (by GBLTrajectory constructor) More... | |
void | addPrevJacobian (const SMatrix55 &aJac) |
Define jacobian to previous scatterer (by GBLTrajectory constructor) More... | |
void | addScatterer (const TVectorD &aResiduals, const TVectorD &aPrecision) |
Add a (thin) scatterer to a point. More... | |
void | addScatterer (const TVectorD &aResiduals, const TMatrixDSym &aPrecision) |
Add a (thin) scatterer to a point. More... | |
GblPoint (const TMatrixD &aJacobian) | |
Create a point. More... | |
GblPoint (const SMatrix55 &aJacobian) | |
void | getDerivatives (int aDirection, SMatrix22 &matW, SMatrix22 &matWJ, SVector2 &vecWd) const |
Retrieve derivatives of local track model. More... | |
const TMatrixD & | getGlobalDerivatives () const |
Retrieve global derivatives from a point. More... | |
std::vector< int > | getGlobalLabels () const |
Retrieve global derivatives labels from a point. More... | |
unsigned int | getLabel () const |
Retrieve label of point. More... | |
const TMatrixD & | getLocalDerivatives () const |
Retrieve local derivatives from a point. More... | |
void | getMeasTransformation (TMatrixD &aTransformation) const |
Get measurement transformation (from diagonalization). More... | |
void | getMeasurement (SMatrix55 &aProjection, SVector5 &aResiduals, SVector5 &aPrecision) const |
Retrieve measurement of a point. More... | |
unsigned int | getNumGlobals () const |
Retrieve number of global derivatives from a point. More... | |
unsigned int | getNumLocals () const |
Retrieve number of local derivatives from a point. More... | |
int | getOffset () const |
Retrieve offset for point. More... | |
const SMatrix55 & | getP2pJacobian () const |
Retrieve point-to-(previous)point jacobian. More... | |
void | getScatterer (SMatrix22 &aTransformation, SVector2 &aResiduals, SVector2 &aPrecision) const |
Retrieve scatterer of a point. More... | |
void | getScatTransformation (TMatrixD &aTransformation) const |
Get scatterer transformation (from diagonalization). More... | |
unsigned int | hasMeasurement () const |
Check for measurement at a point. More... | |
bool | hasScatterer () const |
Check for scatterer at a point. More... | |
void | printPoint (unsigned int level=0) const |
Print GblPoint. More... | |
void | setLabel (unsigned int aLabel) |
Define label of point (by GBLTrajectory constructor) More... | |
void | setOffset (int anOffset) |
Define offset for point (by GBLTrajectory constructor) More... | |
virtual | ~GblPoint () |
Private Attributes | |
TMatrixD | globalDerivatives |
Derivatives of measurement vs additional global (MP-II) parameters. More... | |
std::vector< int > | globalLabels |
Labels of global (MP-II) derivatives. More... | |
TMatrixD | localDerivatives |
Derivatives of measurement vs additional local (fit) parameters. More... | |
unsigned int | measDim |
Dimension of measurement (1-5), 0 indicates absence of measurement. More... | |
SVector5 | measPrecision |
Measurement precision (diagonal of inverse covariance matrix) More... | |
SMatrix55 | measProjection |
Projection from measurement to local system. More... | |
SVector5 | measResiduals |
Measurement residuals. More... | |
TMatrixD | measTransformation |
Transformation of diagonalization (of meas. precision matrix) More... | |
SMatrix55 | nextJacobian |
Jacobian to next scatterer (or last measurement) More... | |
SMatrix55 | p2pJacobian |
Point-to-point jacobian from previous point. More... | |
SMatrix55 | prevJacobian |
Jacobian to previous scatterer (or first measurement) More... | |
bool | scatFlag |
Scatterer present? More... | |
SVector2 | scatPrecision |
Scattering precision (diagonal of inverse covariance matrix) More... | |
SVector2 | scatResiduals |
Scattering residuals (initial kinks if iterating) More... | |
SMatrix22 | scatTransformation |
Transformation of diagonalization (of scat. precision matrix) More... | |
unsigned int | theLabel |
Label identifying point. More... | |
int | theOffset |
Offset number at point if not negative (else interpolation needed) More... | |
bool | transFlag |
Transformation exists? More... | |
Point on trajectory.
User supplied point on (initial) trajectory.
Must have jacobian for propagation from previous point. May have:
Definition at line 46 of file GblPoint.h.
gbl::GblPoint::GblPoint | ( | const TMatrixD & | aJacobian | ) |
Create a point.
Create point on (initial) trajectory. Needs transformation jacobian from previous point.
[in] | aJacobian | Transformation jacobian from previous point |
Definition at line 18 of file GblPoint.cc.
References i, j, and p2pJacobian.
gbl::GblPoint::GblPoint | ( | const SMatrix55 & | aJacobian | ) |
Definition at line 29 of file GblPoint.cc.
|
virtual |
Definition at line 35 of file GblPoint.cc.
void gbl::GblPoint::addGlobals | ( | const std::vector< int > & | aLabels, |
const TMatrixD & | aDerivatives | ||
) |
Add global derivatives to a point.
Point needs to have a measurement.
[in] | aLabels | Global derivatives labels |
[in] | aDerivatives | Global derivatives (matrix) |
Definition at line 298 of file GblPoint.cc.
References globalDerivatives, globalLabels, measDim, measTransformation, and transFlag.
Referenced by MillePedeAlignmentAlgorithm::addGlobalData().
void gbl::GblPoint::addLocals | ( | const TMatrixD & | aDerivatives | ) |
Add local derivatives to a point.
Point needs to have a measurement.
[in] | aDerivatives | Local derivatives (matrix) |
Definition at line 271 of file GblPoint.cc.
References localDerivatives, measDim, measTransformation, and transFlag.
void gbl::GblPoint::addMeasurement | ( | const TMatrixD & | aProjection, |
const TVectorD & | aResiduals, | ||
const TVectorD & | aPrecision, | ||
double | minPrecision = 0. |
||
) |
Add a measurement to a point.
Add measurement (in meas. system) with diagonal precision (inverse covariance) matrix. ((up to) 2D: position, 4D: slope+position, 5D: curvature+slope+position)
[in] | aProjection | Projection from local to measurement system |
[in] | aResiduals | Measurement residuals |
[in] | aPrecision | Measurement precision (diagonal) |
[in] | minPrecision | Minimal precision to accept measurement |
Definition at line 47 of file GblPoint.cc.
References i, j, measDim, measPrecision, measProjection, and measResiduals.
Referenced by ReferenceTrajectory::addMaterialEffectsCurvlinGbl(), and ReferenceTrajectory::addMaterialEffectsLocalGbl().
void gbl::GblPoint::addMeasurement | ( | const TMatrixD & | aProjection, |
const TVectorD & | aResiduals, | ||
const TMatrixDSym & | aPrecision, | ||
double | minPrecision = 0. |
||
) |
Add a measurement to a point.
Add measurement (in meas. system) with arbitrary precision (inverse covariance) matrix. Will be diagonalized. ((up to) 2D: position, 4D: slope+position, 5D: curvature+slope+position)
[in] | aProjection | Projection from local to measurement system |
[in] | aResiduals | Measurement residuals |
[in] | aPrecision | Measurement precision (matrix) |
[in] | minPrecision | Minimal precision to accept measurement |
Definition at line 72 of file GblPoint.cc.
References i, j, measDim, measPrecision, measProjection, measResiduals, measTransformation, and transFlag.
void gbl::GblPoint::addMeasurement | ( | const TVectorD & | aResiduals, |
const TVectorD & | aPrecision, | ||
double | minPrecision = 0. |
||
) |
Add a measurement to a point.
Add measurement in local system with diagonal precision (inverse covariance) matrix. ((up to) 2D: position, 4D: slope+position, 5D: curvature+slope+position)
[in] | aResiduals | Measurement residuals |
[in] | aPrecision | Measurement precision (diagonal) |
[in] | minPrecision | Minimal precision to accept measurement |
Definition at line 103 of file GblPoint.cc.
References i, measDim, measPrecision, measProjection, and measResiduals.
void gbl::GblPoint::addMeasurement | ( | const TVectorD & | aResiduals, |
const TMatrixDSym & | aPrecision, | ||
double | minPrecision = 0. |
||
) |
Add a measurement to a point.
Add measurement in local system with arbitrary precision (inverse covariance) matrix. Will be diagonalized. ((up to) 2D: position, 4D: slope+position, 5D: curvature+slope+position)
[in] | aResiduals | Measurement residuals |
[in] | aPrecision | Measurement precision (matrix) |
[in] | minPrecision | Minimal precision to accept measurement |
Definition at line 124 of file GblPoint.cc.
References i, j, measDim, measPrecision, measProjection, measResiduals, measTransformation, and transFlag.
void gbl::GblPoint::addNextJacobian | ( | const SMatrix55 & | aJac | ) |
Define jacobian to next scatterer (by GBLTrajectory constructor)
[in] | aJac | Jacobian |
Definition at line 379 of file GblPoint.cc.
References nextJacobian.
Referenced by gbl::GblTrajectory::calcJacobians().
void gbl::GblPoint::addPrevJacobian | ( | const SMatrix55 & | aJac | ) |
Define jacobian to previous scatterer (by GBLTrajectory constructor)
[in] | aJac | Jacobian |
Definition at line 362 of file GblPoint.cc.
References prevJacobian.
void gbl::GblPoint::addScatterer | ( | const TVectorD & | aResiduals, |
const TVectorD & | aPrecision | ||
) |
Add a (thin) scatterer to a point.
Add scatterer with diagonal precision (inverse covariance) matrix. Changes local track direction.
[in] | aResiduals | Scatterer residuals |
[in] | aPrecision | Scatterer precision (diagonal of inverse covariance matrix) |
Definition at line 188 of file GblPoint.cc.
References scatFlag, scatPrecision, scatResiduals, and scatTransformation.
Referenced by ReferenceTrajectory::addMaterialEffectsCurvlinGbl(), and ReferenceTrajectory::addMaterialEffectsLocalGbl().
void gbl::GblPoint::addScatterer | ( | const TVectorD & | aResiduals, |
const TMatrixDSym & | aPrecision | ||
) |
Add a (thin) scatterer to a point.
Add scatterer with arbitrary precision (inverse covariance) matrix. Will be diagonalized. Changes local track direction.
The precision matrix for the local slopes is defined by the angular scattering error theta_0 and the scalar products c_1, c_2 of the offset directions in the local frame with the track direction:
(1 - c_1*c_1 - c_2*c_2) | 1 - c_1*c_1 - c_1*c_2 | P = ----------------------- * | | theta_0*theta_0 | - c_1*c_2 1 - c_2*c_2 |
[in] | aResiduals | Scatterer residuals |
[in] | aPrecision | Scatterer precision (matrix) |
Definition at line 214 of file GblPoint.cc.
References i, j, scatFlag, scatPrecision, scatResiduals, and scatTransformation.
void gbl::GblPoint::getDerivatives | ( | int | aDirection, |
SMatrix22 & | matW, | ||
SMatrix22 & | matWJ, | ||
SVector2 & | vecWd | ||
) | const |
Retrieve derivatives of local track model.
Linearized track model: F_u(q/p,u',u) = J*u + S*u' + d*q/p, W is inverse of S, negated for backward propagation.
[in] | aDirection | Propagation direction (>0 forward, else backward) |
[out] | matW | W |
[out] | matWJ | W*J |
[out] | vecWd | W*d |
std::overflow_error | : matrix S is singular. |
Definition at line 393 of file GblPoint.cc.
References gather_cfg::cout, nextJacobian, and prevJacobian.
Referenced by gbl::GblTrajectory::getFitToKinkJacobian(), and gbl::GblTrajectory::getFitToLocalJacobian().
const TMatrixD & gbl::GblPoint::getGlobalDerivatives | ( | ) | const |
Retrieve global derivatives from a point.
Definition at line 323 of file GblPoint.cc.
References globalDerivatives.
std::vector< int > gbl::GblPoint::getGlobalLabels | ( | ) | const |
Retrieve global derivatives labels from a point.
Definition at line 318 of file GblPoint.cc.
References globalLabels.
unsigned int gbl::GblPoint::getLabel | ( | ) | const |
const TMatrixD & gbl::GblPoint::getLocalDerivatives | ( | ) | const |
Retrieve local derivatives from a point.
Definition at line 288 of file GblPoint.cc.
References localDerivatives.
void gbl::GblPoint::getMeasTransformation | ( | TMatrixD & | aTransformation | ) | const |
Get measurement transformation (from diagonalization).
[out] | aTransformation | Transformation matrix |
Definition at line 171 of file GblPoint.cc.
References measDim, measTransformation, and transFlag.
void gbl::GblPoint::getMeasurement | ( | SMatrix55 & | aProjection, |
SVector5 & | aResiduals, | ||
SVector5 & | aPrecision | ||
) | const |
Retrieve measurement of a point.
[out] | aProjection | Projection from (diagonalized) measurement to local system |
[out] | aResiduals | Measurement residuals |
[out] | aPrecision | Measurement precision (diagonal) |
Definition at line 160 of file GblPoint.cc.
References measPrecision, measProjection, and measResiduals.
unsigned int gbl::GblPoint::getNumGlobals | ( | ) | const |
Retrieve number of global derivatives from a point.
Definition at line 313 of file GblPoint.cc.
References globalDerivatives.
unsigned int gbl::GblPoint::getNumLocals | ( | ) | const |
Retrieve number of local derivatives from a point.
Definition at line 283 of file GblPoint.cc.
References localDerivatives.
int gbl::GblPoint::getOffset | ( | ) | const |
Retrieve offset for point.
Definition at line 349 of file GblPoint.cc.
References theOffset.
Referenced by gbl::GblTrajectory::getFitToKinkJacobian(), and gbl::GblTrajectory::getFitToLocalJacobian().
const SMatrix55 & gbl::GblPoint::getP2pJacobian | ( | ) | const |
Retrieve point-to-(previous)point jacobian.
Definition at line 354 of file GblPoint.cc.
References p2pJacobian.
Referenced by gbl::GblTrajectory::calcJacobians().
void gbl::GblPoint::getScatterer | ( | SMatrix22 & | aTransformation, |
SVector2 & | aResiduals, | ||
SVector2 & | aPrecision | ||
) | const |
Retrieve scatterer of a point.
[out] | aTransformation | Scatterer transformation from diagonalization |
[out] | aResiduals | Scatterer residuals |
[out] | aPrecision | Scatterer precision (diagonal) |
Definition at line 242 of file GblPoint.cc.
References scatPrecision, scatResiduals, and scatTransformation.
void gbl::GblPoint::getScatTransformation | ( | TMatrixD & | aTransformation | ) | const |
Get scatterer transformation (from diagonalization).
[out] | aTransformation | Transformation matrix |
Definition at line 253 of file GblPoint.cc.
References i, j, scatFlag, and scatTransformation.
unsigned int gbl::GblPoint::hasMeasurement | ( | ) | const |
Check for measurement at a point.
Get dimension of measurement (0 = none).
Definition at line 150 of file GblPoint.cc.
References measDim.
bool gbl::GblPoint::hasScatterer | ( | ) | const |
void gbl::GblPoint::printPoint | ( | unsigned int | level = 0 | ) | const |
Print GblPoint.
[in] | level | print level (0: minimum, >0: more) |
Definition at line 425 of file GblPoint.cc.
References gather_cfg::cout, globalDerivatives, globalLabels, i, localDerivatives, measDim, measPrecision, measProjection, measResiduals, nextJacobian, p2pJacobian, prevJacobian, scatFlag, scatPrecision, scatResiduals, theLabel, theOffset, and transFlag.
void gbl::GblPoint::setLabel | ( | unsigned int | aLabel | ) |
Define label of point (by GBLTrajectory constructor)
[in] | aLabel | Label identifying point |
Definition at line 331 of file GblPoint.cc.
References theLabel.
Referenced by SequenceTypes.DummyModule::__init__(), SequenceTypes.DummyBooleanModule::__init__(), and Vispa.Gui.FindDialog.FindDialog::reset().
void gbl::GblPoint::setOffset | ( | int | anOffset | ) |
Define offset for point (by GBLTrajectory constructor)
[in] | anOffset | Offset number |
Definition at line 344 of file GblPoint.cc.
References theOffset.
|
private |
Derivatives of measurement vs additional global (MP-II) parameters.
Definition at line 107 of file GblPoint.h.
Referenced by addGlobals(), getGlobalDerivatives(), getNumGlobals(), and printPoint().
|
private |
Labels of global (MP-II) derivatives.
Definition at line 106 of file GblPoint.h.
Referenced by addGlobals(), getGlobalLabels(), and printPoint().
|
private |
Derivatives of measurement vs additional local (fit) parameters.
Definition at line 105 of file GblPoint.h.
Referenced by addLocals(), getLocalDerivatives(), getNumLocals(), and printPoint().
|
private |
Dimension of measurement (1-5), 0 indicates absence of measurement.
Definition at line 95 of file GblPoint.h.
Referenced by addGlobals(), addLocals(), addMeasurement(), getMeasTransformation(), hasMeasurement(), and printPoint().
|
private |
Measurement precision (diagonal of inverse covariance matrix)
Definition at line 98 of file GblPoint.h.
Referenced by addMeasurement(), getMeasurement(), and printPoint().
|
private |
Projection from measurement to local system.
Definition at line 96 of file GblPoint.h.
Referenced by addMeasurement(), getMeasurement(), and printPoint().
|
private |
Measurement residuals.
Definition at line 97 of file GblPoint.h.
Referenced by addMeasurement(), getMeasurement(), and printPoint().
|
private |
Transformation of diagonalization (of meas. precision matrix)
Definition at line 100 of file GblPoint.h.
Referenced by addGlobals(), addLocals(), addMeasurement(), and getMeasTransformation().
|
private |
Jacobian to next scatterer (or last measurement)
Definition at line 94 of file GblPoint.h.
Referenced by addNextJacobian(), getDerivatives(), and printPoint().
|
private |
Point-to-point jacobian from previous point.
Definition at line 92 of file GblPoint.h.
Referenced by GblPoint(), getP2pJacobian(), and printPoint().
|
private |
Jacobian to previous scatterer (or first measurement)
Definition at line 93 of file GblPoint.h.
Referenced by addPrevJacobian(), getDerivatives(), and printPoint().
|
private |
Scatterer present?
Definition at line 101 of file GblPoint.h.
Referenced by addScatterer(), getScatTransformation(), hasScatterer(), and printPoint().
|
private |
Scattering precision (diagonal of inverse covariance matrix)
Definition at line 104 of file GblPoint.h.
Referenced by addScatterer(), getScatterer(), and printPoint().
|
private |
Scattering residuals (initial kinks if iterating)
Definition at line 103 of file GblPoint.h.
Referenced by addScatterer(), getScatterer(), and printPoint().
|
private |
Transformation of diagonalization (of scat. precision matrix)
Definition at line 102 of file GblPoint.h.
Referenced by addScatterer(), getScatterer(), and getScatTransformation().
|
private |
Label identifying point.
Definition at line 90 of file GblPoint.h.
Referenced by getLabel(), printPoint(), and setLabel().
|
private |
Offset number at point if not negative (else interpolation needed)
Definition at line 91 of file GblPoint.h.
Referenced by getOffset(), printPoint(), and setOffset().
|
private |
Transformation exists?
Definition at line 99 of file GblPoint.h.
Referenced by addGlobals(), addLocals(), addMeasurement(), getMeasTransformation(), and printPoint().