Class Acts::DirectNavigator
-
class DirectNavigator
DirectNavigator class.
This is a fully guided navigator that progresses through a pre-given sequence of surfaces.
This can either be used as a validation tool, for truth tracking, or track refitting
Public Types
Public Functions
-
inline DirectNavigator(std::unique_ptr<const Logger> _logger = getDefaultLogger("DirectNavigator", Logging::INFO))
-
inline const TrackingVolume *currentVolume(const State &state) const
-
inline const IVolumeMaterial *currentVolumeMaterial(const State &state) const
-
template<typename propagator_state_t, typename stepper_t>
inline void initialize(propagator_state_t &state, const stepper_t &stepper) const Initialize call - start of propagation.
- Template Parameters
propagator_state_t – The state type of the propagator
stepper_t – The type of stepper used for the propagation
- Parameters
state – [inout] is the propagation state object
stepper – [in] Stepper in use
-
template<typename propagator_state_t, typename stepper_t>
inline void postStep(propagator_state_t &state, const stepper_t &stepper) const Navigator post step 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 preStep(propagator_state_t &state, const stepper_t &stepper) const Navigator pre step 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
-
struct Initializer
Nested Actor struct, called Initializer.
This is needed for the initialization of the surface sequence
Public Types
-
using result_type = this_result
Public Functions
-
Initializer() = default
Defaulting the constructor.
-
template<typename propagator_state_t, typename stepper_t, typename navigator_t>
inline void operator()(propagator_state_t &state, const stepper_t&, const navigator_t&, result_type &r, const Logger&) const Actor operator call.
- Template Parameters
statet – Type of the full propagator state
stepper_t – Type of the stepper
navigator_t – Type of the navigator
- Parameters
state – the entire propagator state
r – the result of this Actor
Public Members
-
SurfaceSequence navSurfaces = {}
The Surface sequence.
-
using result_type = this_result
-
struct State
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 interface: the current surface.
-
const TrackingVolume *currentVolume = nullptr
Navigation state: the current volume.
-
bool navigationBreak = false
Navigation state - external interface: a break has been detected.
-
SurfaceIter navSurfaceIter = navSurfaces.begin()
Iterator the next surface.
-
SurfaceSequence navSurfaces = {}
Externally provided surfaces - expected to be ordered along the path.
-
const TrackingVolume *startVolume = nullptr
Navigation state: the start volume.
-
bool targetReached = false
Navigation state - external interface: target is reached.
-
const TrackingVolume *targetVolume = nullptr
Navigation state: the target volume.
-
const Surface *currentSurface = nullptr
-
inline DirectNavigator(std::unique_ptr<const Logger> _logger = getDefaultLogger("DirectNavigator", Logging::INFO))