Class Acts::MultiComponentBoundTrackParameters¶
-
template<typename charge_t>
class MultiComponentBoundTrackParameters¶ 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 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
-
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