Template Class SingleBoundTrackParameters

Inheritance Relationships

Derived Type

Class Documentation

template<class charge_t>
class Acts::SingleBoundTrackParameters

Track parameters bound to a reference surface for a single track.

This is intended as a user-facing data class that adds additional accessors and charge/momentum interpretation on top of the pure parameters vector. All parameters and their corresponding covariance matrix are stored in bound parametrization. The specific definition of the local spatial parameters is defined by the associated surface.

Template Parameters
  • charge_t: Helper type to interpret the particle charge/momentum

Note

This class holds shared ownership on its reference surface.

Subclassed by Acts::SingleCurvilinearTrackParameters< charge_t >

Public Types

using CovarianceMatrix = BoundSymMatrix
using ParametersVector = BoundVector
using Scalar = BoundScalar

Public Functions

SingleBoundTrackParameters(std::shared_ptr<const Surface> surface, const ParametersVector &params, Scalar q, std::optional<CovarianceMatrix> cov = std::nullopt)

Construct from a parameters vector on the surface and particle charge.

In principle, only the charge magnitude is needed her to allow unambigous extraction of the absolute momentum. The particle charge is required as an input here to be consistent with the other constructors below that that also take the charge as an input. The charge sign is only used in debug builds to check for consistency with the q/p parameter.

Parameters
  • surface: Reference surface the parameters are defined on

  • params: Bound parameters vector

  • q: Particle charge

  • cov: Bound parameters covariance matrix

template<typename T = charge_t, std::enable_if_t<std::is_default_constructible_v<T>, int> = 0>
SingleBoundTrackParameters(std::shared_ptr<const Surface> surface, const ParametersVector &params, std::optional<CovarianceMatrix> cov = std::nullopt)

Construct from a parameters vector on the surface.

This constructor is only available if there are no potential charge ambiguities, i.e. the charge type is default-constructible.

Parameters
  • surface: Reference surface the parameters are defined on

  • params: Bound parameters vector

  • cov: Bound parameters covariance matrix

SingleBoundTrackParameters(std::shared_ptr<const Surface> surface, const GeometryContext &geoCtx, const Vector4D &pos4, const Vector3D &dir, Scalar p, Scalar q, std::optional<CovarianceMatrix> cov = std::nullopt)

Construct from four-position, direction, absolute momentum, and charge.

Parameters
  • surface: Reference surface the parameters are defined on

  • geoCtx: Geometry context for the local-to-global transformation

  • pos4: Track position/time four-vector

  • dir: Track direction three-vector; normalization is ignored.

  • p: Absolute momentum

  • q: Particle charge

  • cov: Bound parameters covariance matrix

template<typename T = charge_t, std::enable_if_t<std::is_default_constructible_v<T>, int> = 0>
SingleBoundTrackParameters(std::shared_ptr<const Surface> surface, const GeometryContext &geoCtx, const Vector4D &pos4, const Vector3D &dir, Scalar qOverP, std::optional<CovarianceMatrix> cov = std::nullopt)

Construct from four-position, direction, and charge-over-momentum.

This constructor is only available if there are no potential charge ambiguities, i.e. the charge type is default-constructible. The position must be located on the surface.

Parameters
  • surface: Reference surface the parameters are defined on

  • geoCtx: Geometry context for the local-to-global transformation

  • pos4: Track position/time four-vector

  • dir: Track direction three-vector; normalization is ignored.

  • qOverP: Charge-over-momentum-like parameter

  • cov: Bound parameters covariance matrix

Scalar absoluteMomentum() const

Absolute momentum.

constexpr Scalar charge() const

Particle electric charge.

const std::optional<CovarianceMatrix> &covariance() const

Optional covariance matrix.

Vector4D fourPosition(const GeometryContext &geoCtx) const

Space-time position four-vector.

This uses the associated surface to transform the local position on the surface to globalcoordinates. This requires a geometry context to select the appropriate transformation and might be a computationally expensive operation.

Parameters
  • [in] geoCtx: Geometry context for the local-to-global transformation

template<BoundIndices kIndex>
Scalar get() const

Access a single parameter value indentified by its index.

Template Parameters
  • kIndex: Track parameter index

const FullBoundParameterSet &getParameterSet() const

Access the parameter set holding the parameters vector and covariance.

Vector3D momentum() const

Momentum three-vector.

ParametersVector parameters() const

Parameters vector.

Vector3D position(const GeometryContext &geoCtx) const

Spatial position three-vector.

This uses the associated surface to transform the local position on the surface to globalcoordinates. This requires a geometry context to select the appropriate transformation and might be a computationally expensive operation.

Parameters
  • [in] geoCtx: Geometry context for the local-to-global transformation

RotationMatrix3D referenceFrame(const GeometryContext &geoCtx) const

Reference frame in which the local error is defined.

For planar surfaces, this is the transformation local-to-global rotation matrix. For non-planar surfaces, it is the local-to-global rotation matrix of the tangential plane at the track position.

Parameters
  • [in] geoCtx: Geometry context for the local-to-global transformation

const Surface &referenceSurface() const

Reference surface onto which the parameters are bound.

Scalar time() const

Time coordinate.

Scalar transverseMomentum() const

Transverse momentum.

template<BoundIndices kIndex>
Scalar uncertainty() const

Access a single parameter uncertainty identified by its index.

Template Parameters
  • kIndex: Track parameter index

Return Value
  • zero: if the track parameters have no associated covariance

  • parameter: standard deviation if the covariance is available

Vector3D unitDirection() const

Unit direction three-vector, i.e. the normalized momentum three-vector.