Class Acts::Experimental::NextNavigator

class NextNavigator

Public Functions

inline explicit NextNavigator(Config cfg, std::shared_ptr<const Logger> _logger = getDefaultLogger("NextNavigator", Logging::Level::INFO))

Constructor with configuration object.

Parameters
  • cfg – The navigator configuration

  • _logger – a logger instance

inline const Surface *currentSurface(const State &state) const
inline void currentSurface(State &state, const Surface *surface) const
inline const TrackingVolume *currentVolume(const State&) const
inline const IVolumeMaterial *currentVolumeMaterial(const State &state) const
inline void insertExternalSurface(State&, GeometryIdentifier) const
inline State makeState(const Surface *startSurface, const Surface *targetSurface) const
inline bool navigationBreak(const State &state) const
inline void navigationBreak(State &state, bool navigationBreak) const
inline void resetState(State &state, const GeometryContext&, const Vector3&, const Vector3&, NavigationDirection, const Surface*, const Surface*) const
inline const Surface *startSurface(const State &state) const
template<typename propagator_state_t, typename stepper_t>
inline void status(propagator_state_t &state, const stepper_t &stepper) const

Navigator status call.

Template Parameters
  • propagator_state_t – is the type of Propagatgor state

  • stepper_t – is the used type of the Stepper by the Propagator

Parameters
  • state[inout] is the mutable propagator state object

  • stepper[in] Stepper in use

template<typename propagator_state_t, typename stepper_t>
inline void target(propagator_state_t &state, const stepper_t &stepper) const

Navigator target call.

This will invalide the current surface and current portal in order to navigate to the next ones.

Template Parameters
  • propagator_state_t – is the type of Propagatgor state

  • stepper_t – is the used type of the Stepper by the Propagator

Parameters
  • state[inout] is the mutable propagator state object

  • stepper[in] Stepper in use

inline bool targetReached(const State &state) const
inline void targetReached(State &state, bool targetReached) const
inline const Surface *targetSurface(const State &state) const
struct Config

Public Members

const Detector *detector = nullptr

Detector for this Navigation.

bool resolveMaterial = true

stop at every material surface (whether it is passive or not)

bool resolvePassive = false

stop at every surface regardless what it is

bool resolveSensitive = true

Configuration for this Navigator stop at every sensitive surface (whether it has material or not)

double tolerance = s_onSurfaceTolerance

The tolerance used to defined “reached”.

struct State : public Acts::Experimental::NavigationState

Nested State struct.

It acts as an internal state which is created for every propagation/extrapolation step and keep thread-local navigation information

Public Members

const Surface *currentSurface = nullptr

Navigation state - external state: the current surface.

bool navigationBreak = false

Navigation state : a break has been detected.

const Surface *startSurface = nullptr

Navigation state - external state: the start surface.

bool targetReached = false

Indicator if the target is reached.

const Surface *targetSurface = nullptr

Navigation state - external state: the target surface.