|
ACTS
Experiment-independent tracking
|
Steers the propagation through the geometry by providing the next surface to be targeted. More...
#include <Acts/Propagator/Navigator.hpp>
Classes | |
| struct | Config |
| The navigator configuration. More... | |
| struct | Options |
| The navigator options. More... | |
| struct | State |
| Nested State struct. More... | |
Public Types | |
| using | ExternalSurfaces = std::vector<GeometryIdentifier> |
| using | GeometryVersion = TrackingGeometry::GeometryVersion |
| Type alias for geometry version enumeration. | |
| using | NavigationBoundaries |
| Type alias for navigation boundary candidates container. | |
| using | NavigationCandidates |
| Type alias for generic navigation candidates container. | |
| using | NavigationLayers = boost::container::small_vector<NavigationTarget, 10> |
| Type alias for navigation layer candidates container. | |
| using | NavigationSurfaces |
| Type alias for navigation surface candidates container. | |
| enum struct | Stage : int { initial = 0 , surfaceTarget = 1 , layerTarget = 2 , boundaryTarget = 3 } |
| The navigation stage. More... | |
Public Member Functions | |
| Navigator (Config cfg, std::shared_ptr< const Logger > _logger=getDefaultLogger("Navigator", Logging::Level::INFO)) | |
| Constructor with configuration object. | |
| bool | checkTargetValid (const State &state, const Vector3 &position, const Vector3 &direction) const |
| Check if the current target is still valid. | |
| const Surface * | currentSurface (const State &state) const |
| Get the current surface from navigation state. | |
| const TrackingVolume * | currentVolume (const State &state) const |
| Get the current volume from navigation state. | |
| const IVolumeMaterial * | currentVolumeMaterial (const State &state) const |
| Get material properties of the current volume. | |
| bool | endOfWorldReached (const State &state) const |
| Check if navigation has reached the end of the world (no current volume). | |
| void | handleSurfaceReached (State &state, const Vector3 &position, const Vector3 &direction, const Surface &surface) const |
| Handle the surface reached. | |
| Result< void > | initialize (State &state, const Vector3 &position, const Vector3 &direction, Direction propagationDirection) const |
| Initialize the navigator state. | |
| State | makeState (const Options &options) const |
| Create a navigation state from options. | |
| bool | navigationBreak (const State &state) const |
| Check if navigation should be interrupted. | |
| NavigationTarget | nextTarget (State &state, const Vector3 &position, const Vector3 &direction) const |
| Get the next target surface. | |
| const Surface * | startSurface (const State &state) const |
| Get the starting surface from navigation state. | |
| const Surface * | targetSurface (const State &state) const |
| Get the target surface from navigation state. | |
Steers the propagation through the geometry by providing the next surface to be targeted.
The Navigator is part of the propagation and responsible for steering the surface sequence to encounter all the relevant surfaces which are intersected by the trajectory.
The current navigation stage is cached in the state struct and updated when necessary. If any surface in the extrapolation flow is hit, it is set to the navigation state, such that other actors can deal with it.
The current target surface is referenced by an index which points into the navigation candidates. The navigation candidates are ordered by the path length to the surface. If a surface is hit, the state.currentSurface pointer is set. This actors to observe that we are on a surface.
| using Acts::Navigator::ExternalSurfaces = std::vector<GeometryIdentifier> |
Type alias for geometry version enumeration.
Type alias for navigation boundary candidates container.
Type alias for generic navigation candidates container.
| using Acts::Navigator::NavigationLayers = boost::container::small_vector<NavigationTarget, 10> |
Type alias for navigation layer candidates container.
Type alias for navigation surface candidates container.
|
strong |
|
explicit |
Constructor with configuration object.
| cfg | The navigator configuration |
| _logger | a logger instance |
| bool Acts::Navigator::checkTargetValid | ( | const State & | state, |
| const Vector3 & | position, | ||
| const Vector3 & | direction ) const |
Check if the current target is still valid.
This function checks if the target is valid.
| state | The navigation state |
| position | The current position |
| direction | The current direction |
Get the current surface from navigation state.
| state | The navigation state |
| const TrackingVolume * Acts::Navigator::currentVolume | ( | const State & | state | ) | const |
Get the current volume from navigation state.
| state | The navigation state |
| const IVolumeMaterial * Acts::Navigator::currentVolumeMaterial | ( | const State & | state | ) | const |
Get material properties of the current volume.
| state | The navigation state |
| bool Acts::Navigator::endOfWorldReached | ( | const State & | state | ) | const |
Check if navigation has reached the end of the world (no current volume).
| state | The navigation state |
| void Acts::Navigator::handleSurfaceReached | ( | State & | state, |
| const Vector3 & | position, | ||
| const Vector3 & | direction, | ||
| const Surface & | surface ) const |
Handle the surface reached.
This function handles the surface reached.
| state | The navigation state |
| position | The current position |
| direction | The current direction |
| surface | The surface reached |
|
nodiscard |
Initialize the navigator state.
This function initializes the navigator state for a new propagation.
| state | The navigation state |
| position | The start position |
| direction | The start direction |
| propagationDirection | The propagation direction |
Create a navigation state from options.
| options | The navigation options |
| bool Acts::Navigator::navigationBreak | ( | const State & | state | ) | const |
Check if navigation should be interrupted.
| state | The navigation state |
| NavigationTarget Acts::Navigator::nextTarget | ( | State & | state, |
| const Vector3 & | position, | ||
| const Vector3 & | direction ) const |
Get the next target surface.
This function gets the next target surface for the propagation.
| state | The navigation state |
| position | The current position |
| direction | The current direction |
Get the starting surface from navigation state.
| state | The navigation state |