Template Class SingleFreeTrackParameters

Class Documentation

template<class charge_t>
class Acts::SingleFreeTrackParameters

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

Parameters and covariance matrix are stored using the free parametrization defined in

enum FreeIndices.
Template Parameters
  • charge_t: Helper type to interpret the particle charge

Public Types

using CovarianceMatrix = FreeSymMatrix
using ParametersVector = FreeVector
using Scalar = FreeScalar

Public Functions

SingleFreeTrackParameters(const ParametersVector &params, Scalar q, std::optional<CovarianceMatrix> cov = std::nullopt)

Construct from a parameters vector and 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
  • params: Free parameters vector

  • q: Particle charge

  • cov: Free parameters covariance matrix

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

Construct from a parameters vector.

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

Parameters
  • params: Free parameters vector

  • cov: Free parameters covariance matrix

Template Parameters
  • T: Internal helper template be able to check charge type

SingleFreeTrackParameters(const Vector4D &pos4, Scalar phi, Scalar theta, Scalar p, Scalar q, std::optional<CovarianceMatrix> cov = std::nullopt)

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

Parameters
  • pos4: Track position/time four-vector

  • phi: Transverse track direction angle

  • theta: Longitudinal track direction angle

  • p: Absolute momentum

  • q: Particle charge

  • cov: Free parameters covariance matrix

template<typename T = charge_t, std::enable_if_t<std::is_default_constructible_v<T>, int> = 0>
SingleFreeTrackParameters(const Vector4D &pos4, Scalar phi, Scalar theta, Scalar qOverP, std::optional<CovarianceMatrix> cov = std::nullopt)

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

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

Parameters
  • pos4: Track position/time four-vector

  • phi: Transverse track direction angle

  • theta: Longitudinal track direction angle

  • qOverP: Charge-over-momentum-like parameter

  • cov: Free 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

Space-time position four-vector.

template<FreeIndices kIndex>
Scalar get() const

Access a single parameter value indentified by its index.

Template Parameters
  • kIndex: Track parameter index

Vector3D momentum() const

Momentum three-vector.

ParametersVector parameters() const

Parameters vector.

Vector3D position() const

Spatial position three-vector.

Scalar time() const

Time coordinate.

Scalar transverseMomentum() const

Transverse momentum.

template<FreeIndices 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.