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

A navigation policy that uses grid based navigation for indexed surfaces Navigate through a multilayer structure by creating an artificial path on the grid. More...

#include <Acts/Navigation/MultiLayerNavigationPolicy.hpp>

Inheritance diagram for Acts::Experimental::MultiLayerNavigationPolicy:
[legend]
Collaboration diagram for Acts::Experimental::MultiLayerNavigationPolicy:
[legend]

Classes

struct  Config

Public Types

using GridType
 Type alias for 2D equidistant grid holding surface indices.
using IndexedUpdatorType = IndexGrid<GridType>
 Type alias for indexed surfaces navigation updater.

Public Member Functions

 MultiLayerNavigationPolicy (const GeometryContext &gctx, const TrackingVolume &volume, const Logger &logger, const Config &config, IndexedUpdatorType grid)
 Main constructor, which expects the grid and will fill it with the surfaces from the volume passed.
void connect (NavigationDelegate &delegate) const override
 Connect this policy with a navigation delegate.
std::vector< Vector2generatePath (const Vector3 &startPosition, const Vector3 &direction) const
 Generate a path in the multilayer.
void initializeCandidates (const GeometryContext &gctx, const NavigationArguments &args, AppendOnlyNavigationStream &stream, const Logger &logger) const
 Update the navigation state from the surface array.
Public Member Functions inherited from Acts::INavigationPolicy
virtual ~INavigationPolicy ()=default
 Virtual destructor so policies can be held through this base class.
virtual void visit (const std::function< void(const INavigationPolicy &)> &visitor) const
 Convenience function to walk over all navigation policies.

Additional Inherited Members

Static Public Member Functions inherited from Acts::INavigationPolicy
static void noopInitializeCandidates (const GeometryContext &, const NavigationArguments &, const AppendOnlyNavigationStream &, const Logger &)
 Noop update function that is suitable as a default for default navigation delegates.
Protected Member Functions inherited from Acts::INavigationPolicy
template<NavigationPolicyConcept T>
void connectDefault (NavigationDelegate &delegate) const
 Internal helper function for derived classes that conform to the concept and have a conventional updateState method.

Detailed Description

A navigation policy that uses grid based navigation for indexed surfaces Navigate through a multilayer structure by creating an artificial path on the grid.

Member Typedef Documentation

◆ GridType

Initial value:
calculate bin indices from a given binning structure
Definition AxisDefinitions.hpp:147
class for describing a regular multi-dimensional grid
Definition Grid.hpp:141

Type alias for 2D equidistant grid holding surface indices.

◆ IndexedUpdatorType

Type alias for indexed surfaces navigation updater.

Constructor & Destructor Documentation

◆ MultiLayerNavigationPolicy()

Acts::Experimental::MultiLayerNavigationPolicy::MultiLayerNavigationPolicy ( const GeometryContext & gctx,
const TrackingVolume & volume,
const Logger & logger,
const Config & config,
IndexedUpdatorType grid )
explicit

Main constructor, which expects the grid and will fill it with the surfaces from the volume passed.

Note
Expects that the grid is defined but not filled - it will be filled here with the surfaces assigned to the volume
Parameters
gctxThe geometrycontext object
volumeThe tracking volume holding the surfaces that will be the indexed objects
configThe configuration of the Navigation Policy
loggerA logging instance
gridThe grid that will be filled with the surfaces

Member Function Documentation

◆ connect()

void Acts::Experimental::MultiLayerNavigationPolicy::connect ( NavigationDelegate & delegate) const
overridevirtual

Connect this policy with a navigation delegate.

Parameters
delegateThe navigation delegate to connect to

Implements Acts::INavigationPolicy.

◆ generatePath()

std::vector< Vector2 > Acts::Experimental::MultiLayerNavigationPolicy::generatePath ( const Vector3 & startPosition,
const Vector3 & direction ) const

Generate a path in the multilayer.

Parameters
startPositionThe starting position of the path (in local frame)
directionThe direction of the path (in local frame)
Returns
A vector of positions along the path

◆ initializeCandidates()

void Acts::Experimental::MultiLayerNavigationPolicy::initializeCandidates ( const GeometryContext & gctx,
const NavigationArguments & args,
AppendOnlyNavigationStream & stream,
const Logger & logger ) const

Update the navigation state from the surface array.

Parameters
gctxThe geometry context
argsThe navigation arguments
streamThe navigation stream to update
loggerThe logger