File CovarianceTransport.hpp¶
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
Note
this is foreseen for the ‘Geometry’ module
Typedefs
-
using VariantCovariance = std::variant<BoundSymMatrix, FreeSymMatrix>¶
-
using VariantTransportJacobian = std::variant<BoundMatrix, BoundToFreeMatrix, FreeToBoundMatrix, FreeMatrix>¶
Functions
-
std::tuple<VariantCovariance, VariantTransportJacobian> transportCovarianceToBound(const GeometryContext &gctx, const Surface &surface, const FreeVector ¶meters, CovarianceCache &cCache)¶
Transport the covariance to a new (surface) bound definition.
- Parameters
gctx – [in] The current geometry context
surface – [in] The surface of the bound representation
parameters – [in] The free parametrisation on the surface
cCache – [in,out] the covariance cache (to be modified)
- Returns
a variant transport jacobian
-
std::tuple<VariantCovariance, VariantTransportJacobian> transportCovarianceToCurvilinear(const Vector3 &direction, CovarianceCache &cCache)¶
Transport the covariance to a new (curvilinear) bound definition.
- Parameters
direction – [in] The track direction at the new curvilinear definition
cCache – [in,out] the covariance cache (to be modified)
-
std::tuple<VariantCovariance, VariantTransportJacobian> transportCovarianceToFree(CovarianceCache &cCache)¶
Transport the covariance to a new free definition.
- Parameters
cCache – [in,out] the covariance cache (to be modified)
-
struct CovarianceCache¶
- #include <Acts/Propagator/CovarianceTransport.hpp>
Helper struct holding the necessary cache for the Covariance transport in various parametrisations.
Public Functions
-
CovarianceCache() = default¶
Defaulted constructor, gives invalid cache.
-
CovarianceCache(const GeometryContext &gctx, const Surface &surface, const Vector3 &position, const BoundVector &boundParameters, const BoundSymMatrix &boundCovariance)¶
Constructor from bound & surface.
This constructor will set the variant covariance type to a bound matrix, remember the surface & establish the jacobian between bound and free parametrisation.
- Parameters
gctx – The current geometry context
surface – The surface of the bound representation
position – The position of the representaiton
boundParameters – The bound parameters at the surface
boundCovariance – The bound covariance to be propagated
-
CovarianceCache(const Vector3 &position, const Vector3 &direction, const BoundSymMatrix &boundCovariance)¶
Constructor from curvilinear.
This constructor will set the variant covariance type to a bound matrix, remember the surface & establish the jacobian between bound and free parametrisation.
- Parameters
position – The position of the representation
direction – The direction of at the representation
boundCovariance – The bound covariance to be propagated
-
CovarianceCache(const FreeVector &freeParameters, const FreeSymMatrix &freeCovariance)¶
Construction from free.
- Parameters
freeParameters – The free parameters
freeCovariance – The free covariance to be propagated
Public Members
-
std::optional<ActsMatrix<8, 7>> anglesToDirectionJacobian = std::nullopt¶
Options for starting from free.
-
bool applyTransport = false¶
Internal cache state, indicates correct setup.
-
std::optional<BoundToFreeMatrix> boundToFreeJacobian = std::nullopt¶
Optional for starting from bound or curvilinear.
-
VariantCovariance covariance¶
Variant: the currently held covariance.
-
std::optional<ActsMatrix<7, 8>> directionToAnglesJacobian = std::nullopt¶
-
FreeVector freeToPathDerivatives = FreeVector::Zero()¶
Non-variant: the free derivatives.
-
FreeMatrix freeTransportJacobian = FreeMatrix::Identity()¶
Non-variant: the free transport jacobian.
-
CovarianceCache() = default¶
-
using VariantCovariance = std::variant<BoundSymMatrix, FreeSymMatrix>¶