File NextNavigator.hpp¶
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
-
namespace Experimental
-
class NextNavigator
- #include <Acts/Navigation/NextNavigator.hpp>
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 TrackingVolume *currentVolume(const State&) const
-
inline void insertExternalSurface(State&, GeometryIdentifier) 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
-
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
Private Functions
-
template<typename propagator_state_t, typename stepper_t>
inline void fillNavigationState(propagator_state_t &state, const stepper_t &stepper, NavigationState &nState) const¶
-
inline bool inactive() const¶
This checks if a navigation break had been triggered or navigator is misconfigured.
boolean return triggers exit to stepper
-
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 propagagor
stepper_t – The type of stepper used for the propagation
- Parameters
state – [inout] is the propagation state object
stepper – [in] Stepper in use
- Returns
boolean return triggers exit to stepper
-
template<typename propagator_state_t, typename stepper_t>
inline void initializeTarget(propagator_state_t &state, const stepper_t &stepper) const¶ Navigation (re-)initialisation for the target.
This is only called a few times every propagation/extrapolation
As a straight line estimate can lead you to the wrong destination Volume, this will be called at:
initialization
attempted volume switch Target finding by association will not be done again
boolean return triggers exit to stepper
- Template Parameters
propagator_state_t – The state type of the propagagor
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 std::string posInfo(const propagator_state_t &state, const stepper_t &stepper) const¶
-
template<typename propagator_state_t>
inline std::string volInfo(const propagator_state_t &state) const¶
-
struct Config
- #include <Acts/Navigation/NextNavigator.hpp>
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”.
-
const Detector *detector = nullptr
-
struct State : public Acts::Experimental::NavigationState
- #include <Acts/Navigation/NextNavigator.hpp>
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.
-
const Surface *currentSurface = nullptr
-
inline explicit NextNavigator(Config cfg, std::shared_ptr<const Logger> _logger = getDefaultLogger("NextNavigator", Logging::Level::INFO))
-
class NextNavigator
-
namespace Experimental