Class Acts::MultiComponentBoundTrackParameters
-
class MultiComponentBoundTrackParameters
This class is only a light wrapper around a surface and a vector of parameters.
Its main purpose is to provide many constructors for the underlying vector. Most accessors are generated from the BoundTrackParameters equivalent and thus may be expensive
Note
This class holds shared ownership on its reference surface.
Note
The accessors for parameters, covariance, position, etc. are the weighted means of the components.
Note
If all covariances are zero, the accessor for the total covariance does return std::nullopt; TODO Add constructor from range and projector maybe?
Subclassed by Acts::MultiComponentCurvilinearTrackParameters
Public Types
-
using CovarianceMatrix = typename Parameters::CovarianceMatrix
-
using Parameters = BoundTrackParameters
-
using ParametersVector = typename Parameters::ParametersVector
-
using ParticleHypothesis = Parameters::ParticleHypothesis
-
using Scalar = typename Parameters::Scalar
Public Functions
-
MultiComponentBoundTrackParameters() = delete
Parameters are not default constructible due to the charge type.
-
MultiComponentBoundTrackParameters(const MultiComponentBoundTrackParameters&) = default
-
MultiComponentBoundTrackParameters(MultiComponentBoundTrackParameters&&) = default
Construct from a parameters vector on the surface and particle charge.
In principle, only the charge magnitude is needed her to allow unambiguous 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
particleHypothesis – Particle hypothesis for these parameters
cov – Bound parameters covariance matrix
Construct from multiple components.
-
~MultiComponentBoundTrackParameters() = default
-
inline const auto &components() const
Access the parameters.
-
inline std::optional<CovarianceMatrix> covariance() const
Optional covariance matrix.
-
inline Vector3 direction() const
Unit direction three-vector, i.e.
the normalized momentum three-vector.
-
inline Vector4 fourPosition(const GeometryContext &geoCtx) const
Space-time position four-vector.
- Parameters
geoCtx – [in] Geometry context for the local-to-global transformation
-
template<BoundIndices kIndex>
inline Scalar get() const Access a single parameter value identified by its index.
- Template Parameters
kIndex – Track parameter index
-
MultiComponentBoundTrackParameters &operator=(const MultiComponentBoundTrackParameters&) = default
-
MultiComponentBoundTrackParameters &operator=(MultiComponentBoundTrackParameters&&) = default
-
inline std::pair<double, Parameters> operator[](std::size_t i) const
Get the weight and a GenericBoundTrackParameters object for one component.
-
inline ParametersVector parameters() const
Parameters vector.
-
inline const ParticleHypothesis &particleHypothesis() const
Particle hypothesis.
-
inline Vector3 position(const GeometryContext &geoCtx) const
Spatial position three-vector.
- Parameters
geoCtx – [in] Geometry context for the local-to-global transformation
-
using CovarianceMatrix = typename Parameters::CovarianceMatrix