ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Estimate track parameters from seed

Detailed Description

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 &params, bool hasTime)
 Estimate the covariance matrix of the given track parameters based on the provided configuration.
Result< BoundVectorActs::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< FreeVectorActs::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.

Function Documentation

◆ estimateTrackParamCovariance()

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.

Parameters
configis the configuration for the estimation
paramsis the track parameters
hasTimeis true if the track parameters have time
Returns
the covariance matrix of the track parameters

◆ estimateTrackParamsFromSeed() [1/2]

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.

Parameters
gctxis the geometry context
surfaceis the surface of the bottom space point. The estimated bound track parameters will be represented at this surface.
sp0is the bottom space point
t0is the time of the bottom space point
sp1is the middle space point
sp2is the top space point
bFieldis the magnetic field vector
Returns
bound parameters

◆ estimateTrackParamsFromSeed() [2/2]

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.

Parameters
sp0is the bottom space point
t0is the time of the bottom space point
sp1is the middle space point
sp2is the top space point
bFieldis the magnetic field vector
tangent0is the output tangent at the bottom space point
tangent1is the output tangent at the middle space point
tangent2is the output tangent at the top space point
Returns
the free parameters

◆ estimateTrackParamsFromSpacePoints()

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.

Parameters
spacePointsthe ordered global space point positions
bFieldthe homogeneous magnetic field vector
t0the time assigned to the reference point (eFreeTime)
geometricRefineIterationsnumber of Gauss-Newton refinement iterations on top of the algebraic circle fit (0 disables it)
weightsoptional per-point weights for all fit stages (empty span = uniform)
referenceIndexindex of the space point the parameters are expressed at; must be a valid index into spacePoints
Returns
the free parameters at the reference point, or an error