File DirectNavigator.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

class DirectNavigator
#include <Acts/Propagator/DirectNavigator.hpp>

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

using SurfaceIter = std::vector<const Surface*>::iterator
using SurfaceSequence = std::vector<const Surface*>

The sequentially crossed surfaces.

Public Functions

DirectNavigator() = default

Defaulted Constructed.

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.

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

Public Members

double tolerance = s_onSurfaceTolerance

The tolerance used to define “surface reached”.

struct Initializer
#include <Acts/Propagator/DirectNavigator.hpp>

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>
inline void operator()(propagator_state_t &state, const stepper_t&, result_type &r) const

Actor operator call.

Template Parameters
  • statet – Type of the full propagator state

  • stepper_t – Type of the stepper

Parameters
  • state – the entire propagator state

  • r – the result of this Actor

template<typename propagator_state_t, typename stepper_t>
inline void operator()(propagator_state_t&, const stepper_t&) const

Actor operator call - resultless, unused.

Public Members

SurfaceSequence navSurfaces = {}

The Surface sequence.

struct this_result
#include <Acts/Propagator/DirectNavigator.hpp>

Actor result / state.

Public Members

bool initialized = false
struct State
#include <Acts/Propagator/DirectNavigator.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 Functions

inline void reset(const GeometryContext&, const Vector3&, const Vector3&, NavigationDirection, const Surface *ssurface, const Surface *tsurface)

Reset state.

Parameters
  • ssurface – is the new starting surface

  • tsurface – is the target surface

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 Layer *startLayer = nullptr

Navigation state - starting layer.

const Surface *startSurface = nullptr

Navigation state - external interface: the start surface.

const TrackingVolume *startVolume = nullptr

Navigation state: the start volume.

const Layer *targetLayer = nullptr

Navigation state - target layer.

bool targetReached = false

Navigation state - external interface: target is reached.

const Surface *targetSurface = nullptr

Navigation state - external interface: the target surface.

const TrackingVolume *targetVolume = nullptr

Navigation state: the target volume.