ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::TryAllOverstepNavigator Class Reference

Alternative Navigator which tries all possible intersections. More...

#include <Acts/Propagator/TryAllNavigator.hpp>

Inheritance diagram for Acts::TryAllOverstepNavigator:
[legend]
Collaboration diagram for Acts::TryAllOverstepNavigator:
[legend]

Classes

struct  State
 Nested State struct. More...

Public Types

using Config = TryAllNavigatorBase::Config
 Type alias for navigator configuration.
using Options = TryAllNavigatorBase::Options
 Type alias for navigator options.

Public Member Functions

 TryAllOverstepNavigator (Config cfg, std::unique_ptr< const Logger > logger=getDefaultLogger("TryAllOverstepNavigator", Logging::INFO))
 Constructor with configuration object.
bool checkTargetValid (const State &state, const Vector3 &position, const Vector3 &direction) const
 Check if the target is still valid.
const SurfacecurrentSurface (const State &state) const
 Get the current surface from the navigation state.
const TrackingVolumecurrentVolume (const State &state) const
 Get the current tracking volume from the navigation state.
const IVolumeMaterialcurrentVolumeMaterial (const State &state) const
 Get the material of the current tracking volume.
bool endOfWorldReached (State &state) const
 Check if the end of the world has been reached.
void handleSurfaceReached (State &state, const Vector3 &position, const Vector3 &direction, const Surface &) const
 Handle the surface reached.
Result< void > initialize (State &state, const Vector3 &position, const Vector3 &direction, Direction propagationDirection) const
 Initialize the navigator.
State makeState (const Options &options) const
 Creates a new overstep navigator state.
bool navigationBreak (const State &state) const
 Check if navigation has been interrupted.
NavigationTarget nextTarget (State &state, const Vector3 &position, const Vector3 &direction) const
 Get the next target surface.
const SurfacestartSurface (const State &state) const
 Get the start surface from the navigation state.
const SurfacetargetSurface (const State &state) const
 Get the target surface from the navigation state.
Public Member Functions inherited from Acts::TryAllNavigatorBase
 TryAllNavigatorBase (Config cfg, std::unique_ptr< const Logger > logger)
 Constructor with configuration object.
const SurfacecurrentSurface (const State &state) const
 Get the current surface from the navigation state.
const TrackingVolumecurrentVolume (const State &state) const
 Get the current tracking volume from the navigation state.
const IVolumeMaterialcurrentVolumeMaterial (const State &state) const
 Get the material of the current tracking volume.
bool endOfWorldReached (State &state) const
 Check if the end of the world has been reached.
Result< void > initialize (State &state, const Vector3 &position, const Vector3 &direction, Direction propagationDirection) const
 Initialize the navigator.
bool navigationBreak (const State &state) const
 Check if navigation has been interrupted.
const SurfacestartSurface (const State &state) const
 Get the start surface from the navigation state.
const SurfacetargetSurface (const State &state) const
 Get the target surface from the navigation state.

Additional Inherited Members

Protected Member Functions inherited from Acts::TryAllNavigatorBase
void initializeVolumeCandidates (State &state) const
 Helper method to initialize navigation candidates for the current volume.
const Loggerlogger () const
 Get the logger instance.
std::string volInfo (const State &state) const
 Get volume information string for logging.
Protected Attributes inherited from Acts::TryAllNavigatorBase
Config m_cfg
 Configuration object for this navigator.
std::unique_ptr< const Loggerm_logger
 Logger instance for this navigator.

Detailed Description

Alternative Navigator which tries all possible intersections.

See Navigator for more general information about the Navigator concept.

This Navigator tries all possible intersections with all surfaces in the current volume. It does not use any information about the geometry to optimize the search. It is therefore very slow, but can be used as a reference implementation.

Different to TryAllNavigator, this Navigator discovers intersections by stepping forward blindly and then checking for intersections with all surfaces in the current volume. This is slower, but more robust against bent tracks.

Member Typedef Documentation

◆ Config

Type alias for navigator configuration.

◆ Options

Type alias for navigator options.

Constructor & Destructor Documentation

◆ TryAllOverstepNavigator()

Acts::TryAllOverstepNavigator::TryAllOverstepNavigator ( Config cfg,
std::unique_ptr< const Logger > logger = getDefaultLogger(                      "TryAllOverstepNavigator", Logging::INFO) )
explicit

Constructor with configuration object.

Parameters
cfgThe navigator configuration
loggera logger instance

Member Function Documentation

◆ checkTargetValid()

bool Acts::TryAllOverstepNavigator::checkTargetValid ( const State & state,
const Vector3 & position,
const Vector3 & direction ) const

Check if the target is still valid.

This method checks if the target is valid based on the current position and direction. It returns true if the target is still valid.

Parameters
stateThe navigation state
positionThe current position
directionThe current direction
Returns
True if the target is still valid

◆ currentSurface()

Get the current surface from the navigation state.

Parameters
stateThe navigation state
Returns
Pointer to the current surface, or nullptr if none

◆ currentVolume()

Get the current tracking volume from the navigation state.

Parameters
stateThe navigation state
Returns
Pointer to the current tracking volume, or nullptr if none

◆ currentVolumeMaterial()

Get the material of the current tracking volume.

Parameters
stateThe navigation state
Returns
Pointer to the volume material, or nullptr if no volume or no material

◆ endOfWorldReached()

Check if the end of the world has been reached.

Parameters
stateThe navigation state
Returns
True if no current volume is set (end of world reached)

◆ handleSurfaceReached()

void Acts::TryAllOverstepNavigator::handleSurfaceReached ( State & state,
const Vector3 & position,
const Vector3 & direction,
const Surface &  ) const

Handle the surface reached.

This method is called when a surface is reached. It sets the current surface in the navigation state and updates the navigation candidates.

Parameters
stateThe navigation state
positionThe current position
directionThe current direction

◆ initialize()

Result< void > Acts::TryAllOverstepNavigator::initialize ( State & state,
const Vector3 & position,
const Vector3 & direction,
Direction propagationDirection ) const
nodiscard

Initialize the navigator.

This method initializes the navigator for a new propagation. It sets the current volume and surface to the start volume and surface, respectively.

Parameters
stateThe navigation state
positionThe starting position
directionThe starting direction
propagationDirectionThe propagation direction
Returns
Result indicating success or failure of initialization

◆ makeState()

State Acts::TryAllOverstepNavigator::makeState ( const Options & options) const

Creates a new overstep navigator state.

Parameters
optionsNavigator options for state initialization
Returns
Initialized navigator state with active candidates and position tracking

◆ navigationBreak()

Check if navigation has been interrupted.

Parameters
stateThe navigation state
Returns
True if navigation break flag is set

◆ nextTarget()

NavigationTarget Acts::TryAllOverstepNavigator::nextTarget ( State & state,
const Vector3 & position,
const Vector3 & direction ) const

Get the next target surface.

This method gets the next target surface based on the current position and direction. It returns an invalid target if no target can be found.

Parameters
stateThe navigation state
positionThe current position
directionThe current direction
Returns
The next target surface

◆ startSurface()

const Surface * Acts::TryAllNavigatorBase::startSurface ( const State & state) const

Get the start surface from the navigation state.

Parameters
stateThe navigation state
Returns
Pointer to the start surface, or nullptr if none

◆ targetSurface()

const Surface * Acts::TryAllNavigatorBase::targetSurface ( const State & state) const

Get the target surface from the navigation state.

Parameters
stateThe navigation state
Returns
Pointer to the target surface, or nullptr if none