ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::MultiNavigationPolicy Class Referencefinal

Combined navigation policy that calls all contained other navigation policies. More...

#include <Acts/Navigation/MultiNavigationPolicy.hpp>

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

Classes

struct  State
 State structure for MultiNavigationPolicy Holds the states for all contained child policies. More...

Public Member Functions

template<typename... Policies>
 MultiNavigationPolicy (std::unique_ptr< Policies >... policies)
 Constructor from multiple unique_ptr policies.
 MultiNavigationPolicy (std::vector< std::unique_ptr< INavigationPolicy > > &&policies)
 Constructor from a vector of navigation policies.
void connect (NavigationDelegate &delegate) const override
 Connect this policy to a navigation delegate.
void createState (const GeometryContext &gctx, const NavigationArguments &args, NavigationPolicyStateManager &stateManager, const Logger &logger) const override
 Create and initialize states for this policy and all child policies.
bool isValid (const GeometryContext &gctx, const NavigationArguments &args, NavigationPolicyState &state, const Logger &logger) const override
 Check if all child policies are in a valid state.
std::span< const std::unique_ptr< INavigationPolicy > > policies () const
 Access the contained navigation policies.
void popState (NavigationPolicyStateManager &stateManager, const Logger &logger) const override
 Remove the states for this policy and all child policies from the state manager.
void visit (const std::function< void(const INavigationPolicy &)> &visitor) const override
 Visit this policy first, and then all child policies one by one.
Public Member Functions inherited from Acts::INavigationPolicy
virtual ~INavigationPolicy ()=default
 Virtual destructor so policies can be held through this base class.

Additional Inherited Members

Static Public Member Functions inherited from Acts::INavigationPolicy
static void noopInitializeCandidates (const GeometryContext &, const NavigationArguments &, NavigationPolicyState &, 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

Combined navigation policy that calls all contained other navigation policies.

This class manages multiple navigation policies and executes them sequentially to populate the navigation stream with candidates.

Constructor & Destructor Documentation

◆ MultiNavigationPolicy() [1/2]

template<typename... Policies>
Acts::MultiNavigationPolicy::MultiNavigationPolicy ( std::unique_ptr< Policies >... policies)
explicit

Constructor from multiple unique_ptr policies.

Template Parameters
PoliciesThe types of the navigation policies
Parameters
policiesUnique pointers to navigation policies

◆ MultiNavigationPolicy() [2/2]

Acts::MultiNavigationPolicy::MultiNavigationPolicy ( std::vector< std::unique_ptr< INavigationPolicy > > && policies)
explicit

Constructor from a vector of navigation policies.

Parameters
policiesVector of unique pointers to navigation policies

Member Function Documentation

◆ connect()

void Acts::MultiNavigationPolicy::connect ( NavigationDelegate & delegate) const
overridevirtual

Connect this policy to a navigation delegate.

Parameters
delegateThe navigation delegate to connect to

Implements Acts::INavigationPolicy.

◆ createState()

void Acts::MultiNavigationPolicy::createState ( const GeometryContext & gctx,
const NavigationArguments & args,
NavigationPolicyStateManager & stateManager,
const Logger & logger ) const
overridevirtual

Create and initialize states for this policy and all child policies.

Parameters
gctxThe geometry context
argsThe navigation arguments
stateManagerThe state manager to push the new states onto
loggerLogger for debug output

Reimplemented from Acts::INavigationPolicy.

◆ isValid()

bool Acts::MultiNavigationPolicy::isValid ( const GeometryContext & gctx,
const NavigationArguments & args,
NavigationPolicyState & state,
const Logger & logger ) const
overridevirtual

Check if all child policies are in a valid state.

Parameters
gctxThe geometry context
argsThe navigation arguments
stateThe navigation policy state to check
loggerLogger for debug output
Returns
True if all child policy states are valid, false otherwise

Reimplemented from Acts::INavigationPolicy.

◆ policies()

std::span< const std::unique_ptr< INavigationPolicy > > Acts::MultiNavigationPolicy::policies ( ) const

Access the contained navigation policies.

Returns
Span of const unique pointers to the navigation policies

◆ popState()

void Acts::MultiNavigationPolicy::popState ( NavigationPolicyStateManager & stateManager,
const Logger & logger ) const
overridevirtual

Remove the states for this policy and all child policies from the state manager.

Parameters
stateManagerThe state manager to pop the states from
loggerLogger for debug output

Reimplemented from Acts::INavigationPolicy.

◆ visit()

void Acts::MultiNavigationPolicy::visit ( const std::function< void(const INavigationPolicy &)> & visitor) const
overridevirtual

Visit this policy first, and then all child policies one by one.

Parameters
visitorThe function to call for each policy

Reimplemented from Acts::INavigationPolicy.