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

A fully guided navigator. More...

#include <Acts/Propagator/DirectNavigator.hpp>

Classes

struct  Config
 The nested configuration struct. More...
struct  Options
 The nested options struct. More...
struct  State
 Nested State struct. More...

Public Types

using SurfaceSequence = std::vector<const Surface*>
 The sequentially crossed surfaces.

Public Member Functions

 DirectNavigator (std::unique_ptr< const Logger > _logger=getDefaultLogger("DirectNavigator", Logging::INFO))
 Constructor with optional logger.
bool checkTargetValid (const State &state, const Vector3 &position, const Vector3 &direction) const
 Check if the current 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 (not used by DirectNavigator).
const IVolumeMaterialcurrentVolumeMaterial (const State &state) const
 Get the current volume material (not used by DirectNavigator).
bool endOfWorldReached (State &state) const
 Check if the end of world has been reached (not applicable for DirectNavigator).
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 makeState (const Options &options) const
 Create a new navigation state from options.
bool navigationBreak (const State &state) const
 Check if navigation should break/stop.
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.

Detailed Description

A fully guided navigator.

This is a fully guided navigator that progresses through a provided sequence of surfaces.

This can either be used as a validation tool, for truth tracking, or track refitting.

Member Typedef Documentation

◆ SurfaceSequence

using Acts::DirectNavigator::SurfaceSequence = std::vector<const Surface*>

The sequentially crossed surfaces.

Constructor & Destructor Documentation

◆ DirectNavigator()

Acts::DirectNavigator::DirectNavigator ( std::unique_ptr< const Logger > _logger = getDefaultLogger("DirectNavigator",                                                Logging::INFO))
explicit

Constructor with optional logger.

Parameters
_loggerLogger instance for navigation messages

Member Function Documentation

◆ checkTargetValid()

bool Acts::DirectNavigator::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. For the direct navigator this is always true.

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

◆ currentSurface()

const Surface * Acts::DirectNavigator::currentSurface ( const State & state) const

Get the current surface from the navigation state.

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

◆ currentVolume()

const TrackingVolume * Acts::DirectNavigator::currentVolume ( const State & state) const

Get the current tracking volume (not used by DirectNavigator).

Parameters
stateThe navigation state (unused)
Returns
Always returns nullptr as DirectNavigator doesn't use volumes

◆ currentVolumeMaterial()

const IVolumeMaterial * Acts::DirectNavigator::currentVolumeMaterial ( const State & state) const

Get the current volume material (not used by DirectNavigator).

Parameters
stateThe navigation state (unused)
Returns
Always returns nullptr as DirectNavigator doesn't use volume material

◆ endOfWorldReached()

bool Acts::DirectNavigator::endOfWorldReached ( State & state) const

Check if the end of world has been reached (not applicable for DirectNavigator).

Parameters
stateThe navigation state (unused)
Returns
Always returns false as DirectNavigator operates on a surface sequence

◆ handleSurfaceReached()

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

Handle the surface reached.

This function handles the surface reached. For the direct navigator this effectively sets the current surface to the reached surface.

Parameters
stateThe navigation state
positionThe current position
directionThe current direction
surfaceThe surface reached

◆ initialize()

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

Initialize the navigator.

This function initializes the navigator for a new propagation.

Parameters
stateThe navigation state
positionThe start position
directionThe start direction
propagationDirectionThe propagation direction
Returns
Always returns success result as DirectNavigator initialization cannot fail

◆ makeState()

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

Create a new navigation state from options.

Parameters
optionsThe navigator options
Returns
New state initialized with the provided options

◆ navigationBreak()

bool Acts::DirectNavigator::navigationBreak ( const State & state) const

Check if navigation should break/stop.

Parameters
stateThe navigation state
Returns
True if navigation should break, false otherwise

◆ nextTarget()

NavigationTarget Acts::DirectNavigator::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. For the direct navigator this is always the next surface in the sequence.

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

◆ startSurface()

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

Get the start surface from the navigation state.

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

◆ targetSurface()

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

Get the target surface from the navigation state.

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