|
ACTS
Experiment-independent tracking
|
Optimized navigation policy for cylindrical volumes that intelligently selects which portals to add as candidates based on geometric analysis. More...
#include <Acts/Navigation/CylinderNavigationPolicy.hpp>
Public Member Functions | |
| CylinderNavigationPolicy (const GeometryContext &gctx, const TrackingVolume &volume, const Logger &logger) | |
| Constructor from a volume. | |
| void | connect (NavigationDelegate &delegate) const override |
| Connect the policy to a navigation delegate. | |
| void | initializeCandidates (const GeometryContext &gctx, const NavigationArguments &args, AppendOnlyNavigationStream &stream, const Logger &logger) const |
| Intelligently select and add portal candidates based on geometric analysis. | |
| 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. | |
Optimized navigation policy for cylindrical volumes that intelligently selects which portals to add as candidates based on geometric analysis.
This policy performs geometric calculations to determine which cylinder faces (inner/outer cylinder, positive/negative discs) are reachable from the current position and direction, avoiding unnecessary intersection calculations with unreachable portals.
Algorithm overview:
Constraints:
Performance benefits:
| Acts::CylinderNavigationPolicy::CylinderNavigationPolicy | ( | const GeometryContext & | gctx, |
| const TrackingVolume & | volume, | ||
| const Logger & | logger ) |
Constructor from a volume.
| gctx | is the geometry context |
| volume | is the volume to navigate |
| logger | is the logger |
|
overridevirtual |
Connect the policy to a navigation delegate.
| delegate | is the navigation delegate |
Implements Acts::INavigationPolicy.
| void Acts::CylinderNavigationPolicy::initializeCandidates | ( | const GeometryContext & | gctx, |
| const NavigationArguments & | args, | ||
| AppendOnlyNavigationStream & | stream, | ||
| const Logger & | logger ) const |
Intelligently select and add portal candidates based on geometric analysis.
The algorithm determines which portals are geometrically reachable:
| gctx | is the geometry context |
| args | are the navigation arguments containing position and direction |
| stream | is the navigation stream to update with selected candidates |
| logger | is the logger for debugging output |