File SingleCurvilinearTrackParameters.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

template<typename charge_t>
class SingleCurvilinearTrackParameters : public Acts::SingleBoundTrackParameters<charge_t>
#include <Acts/EventData/SingleCurvilinearTrackParameters.hpp>

Curvilinear track parameters 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 curvilinear parametrization.

See also

SingleBoundTrackParameters

Template Parameters

charge_t – Helper type to interpret the particle charge/momentum

Public Types

using CovarianceMatrix = BoundSymMatrix
using ParametersVector = BoundVector
using Scalar = ActsScalar

Public Functions

inline SingleCurvilinearTrackParameters(const Vector4 &pos4, const Vector3 &dir, Scalar p, Scalar q, std::optional<CovarianceMatrix> cov = std::nullopt)

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

Parameters
  • pos4 – Track position/time four-vector

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

  • p – Absolute momentum

  • q – Particle charge

  • cov – Curvilinear bound parameters covariance matrix

template<typename T = charge_t, std::enable_if_t<std::is_default_constructible_v<T>, int> = 0>
inline SingleCurvilinearTrackParameters(const Vector4 &pos4, const Vector3 &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 interpretation type is default-constructible.

Parameters
  • pos4 – Track position/time four-vector

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

  • qOverP – Charge-over-momentum-like parameter

  • cov – Curvilinear bound parameters covariance matrix

inline SingleCurvilinearTrackParameters(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 – Curvilinear bound parameters covariance matrix

template<typename T = charge_t, std::enable_if_t<std::is_default_constructible_v<T>, int> = 0>
inline SingleCurvilinearTrackParameters(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 – Curvilinear bound parameters covariance matrix

SingleCurvilinearTrackParameters() = delete

Parameters are not default constructible due to the charge type.

SingleCurvilinearTrackParameters(const SingleCurvilinearTrackParameters&) = default
SingleCurvilinearTrackParameters(SingleCurvilinearTrackParameters&&) = default
~SingleCurvilinearTrackParameters() = default
SingleCurvilinearTrackParameters &operator=(const SingleCurvilinearTrackParameters&) = default
SingleCurvilinearTrackParameters &operator=(SingleCurvilinearTrackParameters&&) = default

Private Types

using Base = SingleBoundTrackParameters<charge_t>