Belle II Software
release-08-01-10
|
GBL trajectory. More...
#include <GblTrajectory.h>
Public Member Functions | |
GblTrajectory (const std::vector< GblPoint > &aPointList, bool flagCurv=true, bool flagU1dir=true, bool flagU2dir=true) | |
Create new (simple) trajectory from list of points. More... | |
GblTrajectory (const std::vector< GblPoint > &aPointList, unsigned int aLabel, const TMatrixDSym &aSeed, bool flagCurv=true, bool flagU1dir=true, bool flagU2dir=true) | |
Create new (simple) trajectory from list of points with external seed. More... | |
GblTrajectory (const std::vector< std::pair< std::vector< GblPoint >, TMatrixD > > &aPointaAndTransList) | |
Create new composed trajectory from list of points and transformations. More... | |
GblTrajectory (const std::vector< std::pair< std::vector< GblPoint >, TMatrixD > > &aPointaAndTransList, const TMatrixD &extDerivatives, const TVectorD &extMeasurements, const TVectorD &extPrecisions) | |
Create new composed trajectory from list of points and transformations with (independent) external measurements. More... | |
GblTrajectory (const std::vector< std::pair< std::vector< GblPoint >, TMatrixD > > &aPointaAndTransList, const TMatrixD &extDerivatives, const TVectorD &extMeasurements, const TMatrixDSym &extPrecisions) | |
Create new composed trajectory from list of points and transformations with (correlated) external measurements. More... | |
bool | isValid () const |
Retrieve validity of trajectory. | |
unsigned int | getNumPoints () const |
Retrieve number of point from trajectory. | |
unsigned int | getResults (int aSignedLabel, TVectorD &localPar, TMatrixDSym &localCov) const |
Get fit results at point. More... | |
unsigned int | getMeasResults (unsigned int aLabel, unsigned int &numRes, TVectorD &aResiduals, TVectorD &aMeasErrors, TVectorD &aResErrors, TVectorD &aDownWeights) |
Get residuals from fit at point for measurement. More... | |
unsigned int | getScatResults (unsigned int aLabel, unsigned int &numRes, TVectorD &aResiduals, TVectorD &aMeasErrors, TVectorD &aResErrors, TVectorD &aDownWeights) |
Get (kink) residuals from fit at point for scatterer. More... | |
unsigned int | getLabels (std::vector< unsigned int > &aLabelList) |
Get (list of) labels of points on (simple) valid trajectory. More... | |
unsigned int | getLabels (std::vector< std::vector< unsigned int > > &aLabelList) |
Get (list of lists of) labels of points on (composed) valid trajectory. More... | |
unsigned int | fit (double &Chi2, int &Ndf, double &lostWeight, std::string optionList="") |
Perform fit of (valid) trajectory. More... | |
void | milleOut (MilleBinary &aMille) |
Write valid trajectory to Millepede-II binary file. | |
void | printTrajectory (unsigned int level=0) |
Print GblTrajectory. More... | |
void | printPoints (unsigned int level=0) |
Print GblPoints on trajectory. More... | |
void | printData () |
Print GblData blocks for trajectory. | |
std::vector< GblData > | getData () |
Private Member Functions | |
std::pair< std::vector< unsigned int >, TMatrixD > | getJacobian (int aSignedLabel) const |
Get jacobian for transformation from fit to track parameters at point. More... | |
void | getFitToLocalJacobian (std::vector< unsigned int > &anIndex, SMatrix55 &aJacobian, const GblPoint &aPoint, unsigned int measDim, unsigned int nJacobian=1) const |
Get (part of) jacobian for transformation from (trajectory) fit to track parameters at point. More... | |
void | getFitToKinkJacobian (std::vector< unsigned int > &anIndex, SMatrix27 &aJacobian, const GblPoint &aPoint) const |
Get jacobian for transformation from (trajectory) fit to kink parameters at point. More... | |
void | construct () |
Construct trajectory from list of points. More... | |
void | defineOffsets () |
Define offsets from list of points. More... | |
void | calcJacobians () |
Calculate Jacobians to previous/next scatterer from point to point ones. | |
void | prepare () |
Prepare fit for simple or composed trajectory. More... | |
void | buildLinearEquationSystem () |
Build linear equation system from data (blocks). | |
void | predict () |
Calculate predictions for all points. | |
double | downWeight (unsigned int aMethod) |
Down-weight all points. More... | |
void | getResAndErr (unsigned int aData, double &aResidual, double &aMeadsError, double &aResError, double &aDownWeight) |
Get residual and errors from data block. More... | |
Private Attributes | |
unsigned int | numAllPoints |
Number of all points on trajectory. | |
std::vector< unsigned int > | numPoints |
Number of points on (sub)trajectory. | |
unsigned int | numTrajectories |
Number of trajectories (in composed trajectory) | |
unsigned int | numOffsets |
Number of (points with) offsets on trajectory. | |
unsigned int | numInnerTrans |
Number of inner transformations to external parameters. | |
unsigned int | numCurvature |
Number of curvature parameters (0 or 1) or external parameters. | |
unsigned int | numParameters |
Number of fit parameters. | |
unsigned int | numLocals |
Total number of (additional) local parameters. | |
unsigned int | numMeasurements |
Total number of measurements. | |
unsigned int | externalPoint |
Label of external point (or 0) | |
bool | constructOK |
Trajectory has been successfully constructed (ready for fit/output) | |
bool | fitOK |
Trajectory has been successfully fitted (results are valid) | |
std::vector< unsigned int > | theDimension |
List of active dimensions (0=u1, 1=u2) in fit. | |
std::vector< std::vector< GblPoint > > | thePoints |
(list of) List of points on trajectory | |
std::vector< GblData > | theData |
List of data blocks. | |
std::vector< unsigned int > | measDataIndex |
mapping points to data blocks from measurements | |
std::vector< unsigned int > | scatDataIndex |
mapping points to data blocks from scatterers | |
TMatrixDSym | externalSeed |
Precision (inverse covariance matrix) of external seed. | |
std::vector< TMatrixD > | innerTransformations |
Transformations at innermost points of. | |
TMatrixD | externalDerivatives |
TVectorD | externalMeasurements |
TVectorD | externalPrecisions |
VVector | theVector |
Vector of linear equation system. | |
BorderedBandMatrix | theMatrix |
(Bordered band) matrix of linear equation system | |
GBL trajectory.
List of GblPoints ordered by arc length. Can be fitted and optionally written to MP-II binary file.
Definition at line 48 of file GblTrajectory.h.
|
explicit |
Create new (simple) trajectory from list of points.
Curved trajectory in space (default) or without curvature (q/p) or in one plane (u-direction) only.
[in] | aPointList | List of points |
[in] | flagCurv | Use q/p |
[in] | flagU1dir | Use in u1 direction |
[in] | flagU2dir | Use in u2 direction |
Definition at line 147 of file GblTrajectory.cc.
GblTrajectory | ( | const std::vector< GblPoint > & | aPointList, |
unsigned int | aLabel, | ||
const TMatrixDSym & | aSeed, | ||
bool | flagCurv = true , |
||
bool | flagU1dir = true , |
||
bool | flagU2dir = true |
||
) |
Create new (simple) trajectory from list of points with external seed.
Curved trajectory in space (default) or without curvature (q/p) or in one plane (u-direction) only.
[in] | aPointList | List of points |
[in] | aLabel | (Signed) label of point for external seed (<0: in front, >0: after point, slope changes at scatterer!) |
[in] | aSeed | Precision matrix of external seed |
[in] | flagCurv | Use q/p |
[in] | flagU1dir | Use in u1 direction |
[in] | flagU2dir | Use in u2 direction |
Definition at line 175 of file GblTrajectory.cc.
|
explicit |
Create new composed trajectory from list of points and transformations.
Composed of curved trajectory in space.
[in] | aPointsAndTransList | List containing pairs with list of points and transformation (at inner (first) point) |
Definition at line 198 of file GblTrajectory.cc.
GblTrajectory | ( | const std::vector< std::pair< std::vector< GblPoint >, TMatrixD > > & | aPointsAndTransList, |
const TMatrixD & | extDerivatives, | ||
const TVectorD & | extMeasurements, | ||
const TVectorD & | extPrecisions | ||
) |
Create new composed trajectory from list of points and transformations with (independent) external measurements.
Composed of curved trajectory in space.
[in] | aPointsAndTransList | List containing pairs with list of points and transformation (at inner (first) point) |
[in] | extDerivatives | Derivatives of external measurements vs external parameters |
[in] | extMeasurements | External measurements (residuals) |
[in] | extPrecisions | Precision of external measurements |
Definition at line 224 of file GblTrajectory.cc.
GblTrajectory | ( | const std::vector< std::pair< std::vector< GblPoint >, TMatrixD > > & | aPointsAndTransList, |
const TMatrixD & | extDerivatives, | ||
const TVectorD & | extMeasurements, | ||
const TMatrixDSym & | extPrecisions | ||
) |
Create new composed trajectory from list of points and transformations with (correlated) external measurements.
Composed of curved trajectory in space.
[in] | aPointsAndTransList | List containing pairs with list of points and transformation (at inner (first) point) |
[in] | extDerivatives | Derivatives of external measurements vs external parameters |
[in] | extMeasurements | External measurements (residuals) |
[in] | extPrecisions | Precision of external measurements |
Definition at line 254 of file GblTrajectory.cc.
|
private |
Construct trajectory from list of points.
Trajectory is prepared for fit or output to binary file, may consists of sub-trajectories.
Definition at line 302 of file GblTrajectory.cc.
|
private |
Define offsets from list of points.
Define offsets at points with scatterers and first and last point. All other points need interpolation from adjacent points with offsets.
Definition at line 344 of file GblTrajectory.cc.
|
private |
Down-weight all points.
[in] | aMethod | M-estimator (1: Tukey, 2:Huber, 3:Cauchy) |
Definition at line 1022 of file GblTrajectory.cc.
unsigned int fit | ( | double & | Chi2, |
int & | Ndf, | ||
double & | lostWeight, | ||
std::string | optionList = "" |
||
) |
Perform fit of (valid) trajectory.
Optionally iterate for outlier down-weighting. Fit may fail due to singular or not positive definite matrices (internal exceptions 1-3).
[out] | Chi2 | Chi2 sum (corrected for down-weighting) |
[out] | Ndf | Number of degrees of freedom |
[out] | lostWeight | Sum of weights lost due to down-weighting |
[in] | optionList | Iterations for down-weighting (One character per iteration: t,h,c (or T,H,C) for Tukey, Huber or Cauchy function) |
Definition at line 1043 of file GblTrajectory.cc.
|
private |
Get jacobian for transformation from (trajectory) fit to kink parameters at point.
Jacobian broken lines (q/p,..,u_i-1,u_i,u_i+1..) to kink (du') parameters.
[out] | anIndex | List of fit parameters with non zero derivatives |
[out] | aJacobian | Corresponding transformation matrix |
[in] | aPoint | Point to use |
Definition at line 583 of file GblTrajectory.cc.
|
private |
Get (part of) jacobian for transformation from (trajectory) fit to track parameters at point.
Jacobian broken lines (q/p,..,u_i,u_i+1..) to local (q/p,u',u) parameters.
[out] | anIndex | List of fit parameters with non zero derivatives |
[out] | aJacobian | Corresponding transformation matrix |
[in] | aPoint | Point to use |
[in] | measDim | Dimension of 'measurement' (<=2: calculate only offset part, >2: complete matrix) |
[in] | nJacobian | Direction (0: to previous offset, 1: to next offset) |
Definition at line 488 of file GblTrajectory.cc.
|
private |
Get jacobian for transformation from fit to track parameters at point.
Jacobian broken lines (q/p,..,u_i,u_i+1..) to track (q/p,u',u) parameters including additional local parameters.
[in] | aSignedLabel | (Signed) label of point for external seed (<0: in front, >0: after point, slope changes at scatterer!) |
Definition at line 412 of file GblTrajectory.cc.
unsigned int getLabels | ( | std::vector< std::vector< unsigned int > > & | aLabelList | ) |
Get (list of lists of) labels of points on (composed) valid trajectory.
[out] | aLabelList | List of of lists of labels |
Definition at line 729 of file GblTrajectory.cc.
unsigned int getLabels | ( | std::vector< unsigned int > & | aLabelList | ) |
Get (list of) labels of points on (simple) valid trajectory.
[out] | aLabelList | List of labels (aLabelList[i] = i+1) |
Definition at line 711 of file GblTrajectory.cc.
unsigned int getMeasResults | ( | unsigned int | aLabel, |
unsigned int & | numData, | ||
TVectorD & | aResiduals, | ||
TVectorD & | aMeasErrors, | ||
TVectorD & | aResErrors, | ||
TVectorD & | aDownWeights | ||
) |
Get residuals from fit at point for measurement.
Get (diagonalized) residual, error of measurement and residual and down-weighting factor for measurement at point
[in] | aLabel | Label of point on trajectory |
[out] | numData | Number of data blocks from measurement at point |
[out] | aResiduals | Measurements-Predictions |
[out] | aMeasErrors | Errors of Measurements |
[out] | aResErrors | Errors of Residuals (including correlations from track fit) |
[out] | aDownWeights | Down-Weighting factors |
Definition at line 661 of file GblTrajectory.cc.
|
private |
Get residual and errors from data block.
Get residual, error of measurement and residual and down-weighting factor for (single) data block
[in] | aData | Label of data block |
[out] | aResidual | Measurement-Prediction |
[out] | aMeasError | Error of Measurement |
[out] | aResError | Error of Residual (including correlations from track fit) |
[out] | aDownWeight | Down-Weighting factor |
Definition at line 756 of file GblTrajectory.cc.
unsigned int getResults | ( | int | aSignedLabel, |
TVectorD & | localPar, | ||
TMatrixDSym & | localCov | ||
) | const |
Get fit results at point.
Get corrections and covariance matrix for local track and additional parameters in forward or backward direction.
The point is identified by its label (1..number(points)), the sign distinguishes the backward (facing previous point) and forward 'side' (facing next point). For scatterers the track direction may change in between.
[in] | aSignedLabel | (Signed) label of point on trajectory (<0: in front, >0: after point, slope changes at scatterer!) |
[out] | localPar | Corrections for local parameters |
[out] | localCov | Covariance for local parameters |
Definition at line 631 of file GblTrajectory.cc.
unsigned int getScatResults | ( | unsigned int | aLabel, |
unsigned int & | numData, | ||
TVectorD & | aResiduals, | ||
TVectorD & | aMeasErrors, | ||
TVectorD & | aResErrors, | ||
TVectorD & | aDownWeights | ||
) |
Get (kink) residuals from fit at point for scatterer.
Get (diagonalized) residual, error of measurement and residual and down-weighting factor for scatterering kinks at point
[in] | aLabel | Label of point on trajectory |
[out] | numData | Number of data blocks from scatterer at point |
[out] | aResiduals | (kink)Measurements-(kink)Predictions |
[out] | aMeasErrors | Errors of (kink)Measurements |
[out] | aResErrors | Errors of Residuals (including correlations from track fit) |
[out] | aDownWeights | Down-Weighting factors |
Definition at line 690 of file GblTrajectory.cc.
|
private |
Prepare fit for simple or composed trajectory.
Generate data (blocks) from measurements, kinks, external seed and measurements.
Definition at line 797 of file GblTrajectory.cc.
void printPoints | ( | unsigned int | level = 0 | ) |
Print GblPoints on trajectory.
[in] | level | print level (0: minimum, >0: more) |
Definition at line 1183 of file GblTrajectory.cc.
void printTrajectory | ( | unsigned int | level = 0 | ) |
Print GblTrajectory.
[in] | level | print level (0: minimum, >0: more) |
Definition at line 1117 of file GblTrajectory.cc.