File MultiComponentBoundTrackParameters.hpp¶
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
-
template<typename charge_t>
class MultiComponentBoundTrackParameters - #include <Acts/EventData/MultiComponentBoundTrackParameters.hpp>
This class is only a light wrapper arround 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 SingleBoundTrackParameters 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?
- Template Parameters
charge_t – Helper type to interpret the particle charge/momentum
Public Types
-
using CovarianceMatrix = typename SingleParameters::CovarianceMatrix
-
using ParametersVector = typename SingleParameters::ParametersVector
-
using Scalar = typename SingleParameters::Scalar
Public Functions
Construct from multiple components with charge scalar q.
Construct from multiple components with charge_t.
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
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
-
MultiComponentBoundTrackParameters() = delete
Parameters are not default constructible due to the charge type.
-
MultiComponentBoundTrackParameters(const MultiComponentBoundTrackParameters&) = default
-
MultiComponentBoundTrackParameters(MultiComponentBoundTrackParameters&&) = default
-
~MultiComponentBoundTrackParameters() = default
-
inline Scalar absoluteMomentum() const
Absolute momentum.
-
inline Scalar charge() const
Particle electric charge.
-
inline const auto &components() const
Access the parameters.
-
inline std::optional<CovarianceMatrix> covariance() const
Optional covariance matrix.
-
inline Vector4 fourPosition(const GeometryContext &geoCtx) const
Space-time position four-vector.
- Parameters
geoCtx – [in] Geometry context for the local-to-global transformation
-
inline Vector3 momentum() const
Momentum three-vector.
-
MultiComponentBoundTrackParameters &operator=(const MultiComponentBoundTrackParameters&) = default
-
MultiComponentBoundTrackParameters &operator=(MultiComponentBoundTrackParameters&&) = default
-
inline std::pair<double, SingleParameters> operator[](std::size_t i) const
Get the weight and a SingleBoundTrackParameters object for one component.
-
inline ParametersVector parameters() const
Parameters vector.
-
inline Vector3 position(const GeometryContext &geoCtx) const
Spatial position three-vector.
- Parameters
geoCtx – [in] Geometry context for the local-to-global transformation
-
inline const Surface &referenceSurface() const
Reference surface onto which the parameters are bound.
-
inline Scalar time() const
Time coordinate.
-
inline Scalar transverseMomentum() const
Transverse momentum.
-
inline Vector3 unitDirection() const
Unit direction three-vector, i.e.
the normalized momentum three-vector.
Private Types
-
using SingleParameters = SingleBoundTrackParameters<charge_t>¶
Private Functions
-
template<typename projector_t>
inline auto reduce(projector_t &&proj) const¶ Helper function to reduce the component vector to a single representation.
Private Members
-
std::vector<std::tuple<double, BoundVector, std::optional<BoundSymMatrix>>> m_components¶
-
template<typename charge_t>