|
ACTS
Experiment-independent tracking
|
The implemented method is based on the conformal map transformation.
It estimates the full free track parameters, i.e. (x, y, z, t, dx, dy, dz, q/p) at the bottom space point. The magnetic field (which can be along any direction) is also necessary for the momentum estimation.
It resembles the method used in ATLAS for the track parameters estimated from seed, i.e. the function InDet::SiTrackMaker_xk::getAtaPlane here: https://acode-browser.usatlas.bnl.gov/lxr/source/athena/InnerGeometry/InDetRecTools/SiTrackMakerTool_xk/src/SiTrackMaker_xk.cxx
Classes | |
| struct | Acts::EstimateTrackParamCovarianceConfig |
| Configuration for the estimation of the covariance matrix of the track parameters with estimateTrackParamCovariance. More... | |
Functions | |
| BoundMatrix | Acts::estimateTrackParamCovariance (const EstimateTrackParamCovarianceConfig &config, const BoundVector ¶ms, bool hasTime) |
| Estimate the covariance matrix of the given track parameters based on the provided configuration. | |
| Result< BoundVector > | Acts::estimateTrackParamsFromSeed (const GeometryContext &gctx, const Surface &surface, const Vector3 &sp0, double t0, const Vector3 &sp1, const Vector3 &sp2, const Vector3 &bField) |
| Estimate bound track parameters from three space points. | |
| FreeVector | Acts::estimateTrackParamsFromSeed (const Vector3 &sp0, double t0, const Vector3 &sp1, const Vector3 &sp2, const Vector3 &bField, Vector3 *tangent0=nullptr, Vector3 *tangent1=nullptr, Vector3 *tangent2=nullptr) |
| Estimate free track parameters from three space points. | |
| Result< FreeVector > | Acts::estimateTrackParamsFromSpacePoints (std::span< const Vector3 > spacePoints, const Vector3 &bField, double t0=0, std::size_t geometricRefineIterations=0, std::span< const double > weights={}, std::size_t referenceIndex=0) |
| Estimate free track parameters from an ordered set of N >= 3 space points. | |
| BoundMatrix Acts::estimateTrackParamCovariance | ( | const EstimateTrackParamCovarianceConfig & | config, |
| const BoundVector & | params, | ||
| bool | hasTime ) |
Estimate the covariance matrix of the given track parameters based on the provided configuration.
The assumption is that we can model the uncertainty of the track parameters as a diagonal matrix with the provided initial sigmas. The inflation factors are used to inflate the initial variances based on the provided configuration. The uncertainty of q/p is estimated based on the relative uncertainty of the q/pt and the theta uncertainty.
| config | is the configuration for the estimation |
| params | is the track parameters |
| hasTime | is true if the track parameters have time |
| Result< BoundVector > Acts::estimateTrackParamsFromSeed | ( | const GeometryContext & | gctx, |
| const Surface & | surface, | ||
| const Vector3 & | sp0, | ||
| double | t0, | ||
| const Vector3 & | sp1, | ||
| const Vector3 & | sp2, | ||
| const Vector3 & | bField ) |
Estimate bound track parameters from three space points.
| gctx | is the geometry context |
| surface | is the surface of the bottom space point. The estimated bound track parameters will be represented at this surface. |
| sp0 | is the bottom space point |
| t0 | is the time of the bottom space point |
| sp1 | is the middle space point |
| sp2 | is the top space point |
| bField | is the magnetic field vector |
| FreeVector Acts::estimateTrackParamsFromSeed | ( | const Vector3 & | sp0, |
| double | t0, | ||
| const Vector3 & | sp1, | ||
| const Vector3 & | sp2, | ||
| const Vector3 & | bField, | ||
| Vector3 * | tangent0 = nullptr, | ||
| Vector3 * | tangent1 = nullptr, | ||
| Vector3 * | tangent2 = nullptr ) |
Estimate free track parameters from three space points.
Optionally estimates the tangents at the three space points from helix fit. This can be used as an input for the strip space point calibration, which requires the track tangents at each space point as input.
| sp0 | is the bottom space point |
| t0 | is the time of the bottom space point |
| sp1 | is the middle space point |
| sp2 | is the top space point |
| bField | is the magnetic field vector |
| tangent0 | is the output tangent at the bottom space point |
| tangent1 | is the output tangent at the middle space point |
| tangent2 | is the output tangent at the top space point |
| Result< FreeVector > Acts::estimateTrackParamsFromSpacePoints | ( | std::span< const Vector3 > | spacePoints, |
| const Vector3 & | bField, | ||
| double | t0 = 0, | ||
| std::size_t | geometricRefineIterations = 0, | ||
| std::span< const double > | weights = {}, | ||
| std::size_t | referenceIndex = 0 ) |
Estimate free track parameters from an ordered set of N >= 3 space points.
Least-squares generalization of estimateTrackParamsFromSeed. A Taubin circle fit transverse to the field, optionally refined geometrically, and a linear fit of the field coordinate against the transverse arc length. Points are taken in track order and are not sorted.
The parameters are expressed at spacePoints[referenceIndex], by default the first one. The fit itself does not depend on that choice: every point contributes to the same helix, and the reference only selects where it is evaluated. Reporting at a point deeper in the detector lets a downstream track finder start where the hit density, and with it the combinatorics, is lower, at the cost of a longer extrapolation back to the beam line.
A vanishing curvature degenerates to a line and only the direction is estimated. Without a field q/p stays zero.
Weights are relative (e.g. inverse-variance) factors on every fit stage. An empty span means uniform, a non-empty one must match spacePoints in size.
| spacePoints | the ordered global space point positions |
| bField | the homogeneous magnetic field vector |
| t0 | the time assigned to the reference point (eFreeTime) |
| geometricRefineIterations | number of Gauss-Newton refinement iterations on top of the algebraic circle fit (0 disables it) |
| weights | optional per-point weights for all fit stages (empty span = uniform) |
| referenceIndex | index of the space point the parameters are expressed at; must be a valid index into spacePoints |