Class Acts::Experimental::IndexedUpdatorImpl

template<typename grid_t, typename extractor_type, typename filler_type>
class IndexedUpdatorImpl : public Acts::Experimental::INavigationDelegate

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


a transform is applied p3l = transform * p3 in order to allow shifted, transformed grids

Template Parameters
  • grid_t – 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 Types

using grid_type = grid_t

Broadcast the grid type.

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.

  • 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.


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


this is attaching objects without intersecting nor checking

  • gctx – is the Geometry context of this call

  • nState – the navigation state to which the surfaces are attached

Public Members

std::array<BinningValue, grid_type::DIM> casts = {}

These are the cast parameters - copied from constructor.

extractor_type extractor

An extractor helper to get the object(s) from the volume.

grid_type grid

The grid where the indices are stored.