|
ACTS
Experiment-independent tracking
|
Base class for all navigation policies. More...
#include <Acts/Navigation/INavigationPolicy.hpp>
Classes | |
| struct | EmptyState |
Public Member Functions | |
| virtual | ~INavigationPolicy ()=default |
| Virtual destructor so policies can be held through this base class. | |
| virtual void | connect (NavigationDelegate &delegate) const =0 |
| Connect a policy with a delegate (usually a member of a volume). | |
| virtual void | createState (const GeometryContext &gctx, const NavigationArguments &args, NavigationPolicyStateManager &stateManager, const Logger &logger) const |
| Create and initialize the state for this policy. | |
| virtual bool | isValid (const GeometryContext &gctx, const NavigationArguments &args, NavigationPolicyState &state, const Logger &logger) const |
| Check if the policy is in a valid state for navigation. | |
| virtual void | popState (NavigationPolicyStateManager &stateManager, const Logger &logger) const |
| Remove the state for this policy from the state manager. | |
| virtual void | visit (const std::function< void(const INavigationPolicy &)> &visitor) const |
| Convenience function to walk over all navigation policies. | |
Static Public Member Functions | |
| 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 | |
| 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. | |
Base class for all navigation policies.
The policy needs to be connected to a delegate via a virtual method for it to become active. The update method is not part of the class interface. The conventional updateState method is only required for use with the navigation policy factory, otherwise connect is free to connect any function.
|
pure virtual |
Connect a policy with a delegate (usually a member of a volume).
This method exists to allow a policy to ensure a non-virtual function is registered with the delegate.
| delegate | The delegate to connect to |
Implemented in Acts::CylinderNavigationPolicy, Acts::Experimental::MultiLayerNavigationPolicy, Acts::IndexGridNavigationPolicy< GridType >, Acts::IndexGridNavigationPolicy< RegularCylinderIndexGrid >, Acts::IndexGridNavigationPolicy< RegularDiscIndexGrid >, Acts::IndexGridNavigationPolicy< RegularPlaneIndexGrid >, Acts::IndexGridNavigationPolicy< RegularRingIndexGrid >, Acts::MultiNavigationPolicy, Acts::SurfaceArrayNavigationPolicy, and Acts::TryAllNavigationPolicy.
|
protected |
Internal helper function for derived classes that conform to the concept and have a conventional updateState method.
Mainly used to save some boilerplate.
| T | The type of the navigation policy |
| delegate | The delegate to connect to |
|
virtual |
Create and initialize the state for this policy.
| gctx | The geometry context |
| args | The navigation arguments |
| stateManager | The state manager to push the new state onto |
| logger | Logger for debug output |
Reimplemented in Acts::MultiNavigationPolicy.
|
virtual |
Check if the policy is in a valid state for navigation.
| gctx | The geometry context |
| args | The navigation arguments |
| state | The navigation policy state to check |
| logger | Logger for debug output |
Reimplemented in Acts::MultiNavigationPolicy.
|
virtual |
Remove the state for this policy from the state manager.
| stateManager | The state manager to pop the state from |
| logger | Logger for debug output |
Reimplemented in Acts::MultiNavigationPolicy.
|
virtual |
Convenience function to walk over all navigation policies.
The default implementation just calls this on itself, while the MultiNavigationPolicy will call it on all it's children.
| visitor | The visitor function to call for each policy |
Reimplemented in Acts::MultiNavigationPolicy.