File MultiLayerSurfacesUpdator.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

namespace Experimental
template<typename grid_t, typename path_generator>
class MultiLayerSurfacesUpdatorImpl : public Acts::Experimental::INavigationDelegate
#include <Acts/Navigation/MultiLayerSurfacesUpdator.hpp>

Public Types

using grid_type = grid_t

Broadcast the grid type.

Public Functions

MultiLayerSurfacesUpdatorImpl() = delete
inline MultiLayerSurfacesUpdatorImpl(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

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 resolveDuplicates(const GeometryContext &gctx, std::vector<const Acts::Surface*> &surfaces) const

Resolve duplicate on surface candidates.

Parameters
  • gctx – The geometry context of the current geometry

  • surfaces – is the surface candidates to check and resolve for duplicates

inline void update(const GeometryContext &gctx, NavigationState &nState) const

Public Members

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

These are the cast parameters - copied from constructor.

grid_type grid

The grid where the indices are stored.

path_generator pgenerator

The path generator.

Transform3 transform = Transform3::Identity()

A transform to be applied to the position.

Private Functions

template<typename Array, std::size_t... idx>
inline void fillCasts(const Vector3 &position, Array &a, std::index_sequence<idx...>) const

Unroll the cast loop.

Parameters
  • position – is the position of the update call

  • a – is the array to be filled

struct PathGridSurfacesGenerator
#include <Acts/Navigation/MultiLayerSurfacesUpdator.hpp>

Public Functions

inline std::vector<Vector3> operator()(Vector3 startPosition, const Vector3 &direction, ActsScalar stepSize, std::size_t numberOfSteps) const