File NavigationStateUpdators.hpp¶
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
-
namespace Experimental
-
template<typename ...updators_t>
class ChainedUpdatorImpl : public Acts::Experimental::INavigationDelegate - #include <Acts/Navigation/NavigationStateUpdators.hpp>
This is a chained extractor/filler implementation Since there is no control whether it is a static or payload extractor, these have to be provided by a tuple.
- Template Parameters
updators_t – the updators that will be called in sequence
Public Functions
-
inline ChainedUpdatorImpl(const std::tuple<updators_t...> &upts)
Constructor for chained updators in a tuple, this will unroll the tuple and call them in sequence.
- Parameters
upts – the updators to be called in chain
-
inline void update(const GeometryContext &gctx, NavigationState &nState) const
A combined navigation state updator w/o intersection specifics.
- Parameters
gctx – is the Geometry context of this call
nState – the navigation state to which the objects are attached
Private Members
-
std::tuple<updators_t...> updators¶
-
template<typename grid_type, typename extractor_type, typename filler_type>
class IndexedUpdatorImpl : public Acts::Experimental::INavigationDelegate - #include <Acts/Navigation/NavigationStateUpdators.hpp>
This is an index grid based navigation state updator, it uses an extractor type and a filler type to handle the navigation state.
It can be used for volumes, surfaces at convenience
Note
a transform is applied
p3l = transform * p3
in order to allow shifted, transformed grids- Template Parameters
grid_type – is the type of the grid
extractor_type – is the helper to extract the object
filler_type – is the helper to fill the object into the nState
Public Functions
-
inline IndexedUpdatorImpl(grid_type &&igrid, const std::array<BinningValue, grid_type::DIM> &icasts, const Transform3 &itr = Transform3::Identity())
Constructor for a grid based surface attacher.
- Parameters
igrid – the grid that is moved into this attacher
icasts – is the cast values array
itr – a transform applied to the global position
-
IndexedUpdatorImpl() = delete
-
inline std::array<ActsScalar, grid_type::DIM> castPosition(const Vector3 &position) const
Cast into a lookup position.
- Parameters
position – is the position of the update call
-
inline void update(const GeometryContext &gctx, NavigationState &nState) const
updates the navigation state with objects from the grid according to the filling type AFTER applying
p3loc = transform * p3
Note
this is attaching objects without intersecting nor checking
- Parameters
gctx – is the Geometry context of this call
nState – the navigation state to which the surfaces are attached
Public Members
-
extractor_type extractor
An extractor helper to get the object(s) from the volume.
-
grid_type grid
The grid where the indices are stored.
Private Functions
Private Members
-
std::array<BinningValue, grid_type::DIM> casts = {}¶
These are the cast parameters.
-
Transform3 transform = Transform3::Identity()¶
A transform to be applied to the position.
-
template<typename object_type, typename filler_type>
class SingleObjectImpl : public Acts::Experimental::INavigationDelegate - #include <Acts/Navigation/NavigationStateUpdators.hpp>
This sets a single object, e.g.
single surface or single volume
- Template Parameters
object_type – the type of the object to be filled
filler_type – is the helper to fill the object into nState
Public Functions
-
inline SingleObjectImpl(const object_type *so)
Convenience constructor.
- Parameters
so – the single object
-
inline void update([[maybe_unused]] const GeometryContext &gctx, NavigationState &nState) const
updates the navigation state with a single object that is filled in
Note
this is attaching objects without intersecting nor checking
- Parameters
gctx – is the Geometry context of this call
nState – the navigation state to which the surfaces are attached
Private Members
-
const object_type *object = nullptr¶
-
template<typename extractor_type, typename filler_type>
class StaticUpdatorImpl : public Acts::Experimental::INavigationDelegate - #include <Acts/Navigation/NavigationStateUpdators.hpp>
This uses state less extractor and fillers to manipulate the navigation state.
- Template Parameters
extractor_type – the helper to extract the objects from
filler_type – is the helper to fill the object into nState
Public Functions
-
inline void update([[maybe_unused]] const GeometryContext &gctx, NavigationState &nState) const
updates the navigation state with a single object that is filled in
Note
this is attaching objects without intersecting nor checking
- Parameters
gctx – is the Geometry context of this call
nState – the navigation state to which the surfaces are attached
-
template<typename ...updators_t>
-
namespace Experimental