Class Acts::SingleFreeTrackParameters¶
-
template<class charge_t>
class 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 = ActsScalar¶
Public Functions
-
inline SingleFreeTrackParameters(const ParametersVector ¶ms, Scalar q, std::optional<CovarianceMatrix> cov = std::nullopt)¶
Construct from a parameters vector 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>
inline SingleFreeTrackParameters(const ParametersVector ¶ms, 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
-
inline SingleFreeTrackParameters(const Vector4 &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>
inline SingleFreeTrackParameters(const Vector4 &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
-
SingleFreeTrackParameters() = delete¶
Parameters are not default constructible due to the charge type.
-
SingleFreeTrackParameters(const SingleFreeTrackParameters&) = default¶
-
SingleFreeTrackParameters(SingleFreeTrackParameters&&) = default¶
-
~SingleFreeTrackParameters() = default¶
-
inline const std::optional<CovarianceMatrix> &covariance() const¶
Optional covariance matrix.
-
template<FreeIndices kIndex>
inline Scalar get() const¶ Access a single parameter value indentified by its index.
- Template Parameters
kIndex – Track parameter index
-
SingleFreeTrackParameters &operator=(const SingleFreeTrackParameters&) = default¶
-
SingleFreeTrackParameters &operator=(SingleFreeTrackParameters&&) = default¶
-
inline const ParametersVector ¶meters() const¶
Parameters vector.