File DetectorVolumeUpdators.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

namespace Experimental

Typedefs

using SingleIndex = std::size_t
using VariableBoundAxis = Acts::detail::Axis<Acts::detail::AxisType::Variable, Acts::detail::AxisBoundaryType::Bound>
using VariableBoundIndexGrid1 = Acts::detail::Grid<SingleIndex, VariableBoundAxis>
struct BoundVolumesGrid1Impl : public Acts::Experimental::INavigationDelegate
#include <Acts/Navigation/DetectorVolumeUpdators.hpp>

This is used for volumes that are indexed in a bound 1-dimensional grid, e.g.

a z-spaced array, or an r-spaced array of volumes.

Public Functions

inline BoundVolumesGrid1Impl(const std::vector<ActsScalar> &gBoundaries, BinningValue bValue, const std::vector<const DetectorVolume*> &cVolumes, const Transform3 &bTransform = Transform3::Identity()) noexcept(false)

Allowed constructor with explicit arguments.

Parameters
  • gBoundaries – the grid boundaries

  • bValue – the binning value

  • cVolumes – the contained volumes

  • bTransform – is the optional transform

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

This updator relies on an 1D single index grid.

Parameters
  • gctx – the geometry context

  • nState – [in,out] the navigation state to be updated

Public Members

IndexedUpdator indexedUpdator
struct DetectorVolumesCollection
#include <Acts/Navigation/DetectorVolumeUpdators.hpp>

This holds and extracts a collection of detector volumes.

Alternatively an extractor could also use the detector and its associated detector volume container for volume extraction.

Public Functions

inline const DetectorVolume *extract(const GeometryContext&, const NavigationState&, const SingleIndex &index) const

Extract a voume from a collection.

Note

that geometry context and navigation state are ignored here

Parameters

index – are access indices into the surfaces store

Returns

the extracted volume

Public Members

std::vector<const DetectorVolume*> dVolumes = {}

The volumes held by this collection.

struct EndOfWorldImpl : public Acts::Experimental::INavigationDelegate
#include <Acts/Navigation/DetectorVolumeUpdators.hpp>

The end of world sets the volume pointer of the navigation state to nullptr, usually indicates the end of the known world, hence the name.

Public Functions

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

a null volume link - explicitely

Note

the method parameters are ignored

struct SingleDetectorVolumeImpl : public Acts::Experimental::INavigationDelegate
#include <Acts/Navigation/DetectorVolumeUpdators.hpp>

Single volume updator, it sets the current navigation volume to the volume in question.

Public Functions

inline SingleDetectorVolumeImpl(const DetectorVolume *sVolume) noexcept(false)

Allowed constructor.

Parameters

sVolume – the volume to which it points

SingleDetectorVolumeImpl() = delete
inline void update(const GeometryContext&, NavigationState &nState) const

a null volume link - explicitely

Note

the method parameters are ignored

Public Members

const DetectorVolume *dVolume = nullptr