Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/Propagator/Navigator.hpp>
Classes | |
struct | Config |
struct | State |
Public Types | |
enum | Stage : int |
The navigation stage. More... | |
using | Surfaces = std::vector< const Surface * > |
using | NavigationSurfaces = boost::container::small_vector< SurfaceIntersection, 10 > |
using | NavigationLayers = boost::container::small_vector< LayerIntersection, 10 > |
using | NavigationBoundaries = boost::container::small_vector< BoundaryIntersection, 4 > |
using | ExternalSurfaces = std::multimap< uint64_t, GeometryIdentifier > |
Public Member Functions | |
Navigator (Config cfg, std::shared_ptr< const Logger > _logger=getDefaultLogger("Navigator", Logging::Level::INFO)) | |
Public Attributes | |
m_logger | |
std::shared_ptr< const Logger > | m_logger |
Navigator class
This is an Actor to be added to the ActorList in order to navigate through the static tracking geometry setup.
The current navigation stage is cached in the state struct and updated when necessary. If any surface in the extrapolation flow is hit, it is set to the propagation satate, such that other actors can deal with it. This navigation actor thus always needs to run first! It does two things: it figures out the order of volumes, layers and surfaces.
The current target surface is the surface pointed to by of the index for the surfaces, layers or volume boundaries. If a surface is found, the state.navigation.currentSurface pointer is set. This enables subsequent actors to react. Secondly, this actor uses the ordered indices to figure out which surface, layer or volume boundary is supposed to be hit next. It then sets the maximum step size to the path length found out by straight line intersection. If the state is not on surface, it also re-computes the step size, to make sure we end up at the desired surface.
Definition at line 91 of file Navigator.hpp.
View newest version in sPHENIX GitHub at line 91 of file Navigator.hpp
using Acts::Navigator::ExternalSurfaces = std::multimap<uint64_t, GeometryIdentifier> |
Definition at line 104 of file Navigator.hpp.
View newest version in sPHENIX GitHub at line 104 of file Navigator.hpp
using Acts::Navigator::NavigationBoundaries = boost::container::small_vector<BoundaryIntersection, 4> |
Definition at line 102 of file Navigator.hpp.
View newest version in sPHENIX GitHub at line 102 of file Navigator.hpp
using Acts::Navigator::NavigationLayers = boost::container::small_vector<LayerIntersection, 10> |
Definition at line 99 of file Navigator.hpp.
View newest version in sPHENIX GitHub at line 99 of file Navigator.hpp
using Acts::Navigator::NavigationSurfaces = boost::container::small_vector<SurfaceIntersection, 10> |
Definition at line 96 of file Navigator.hpp.
View newest version in sPHENIX GitHub at line 96 of file Navigator.hpp
using Acts::Navigator::Surfaces = std::vector<const Surface*> |
Definition at line 93 of file Navigator.hpp.
View newest version in sPHENIX GitHub at line 93 of file Navigator.hpp
enum Acts::Navigator::Stage : int |
The navigation stage.
Definition at line 107 of file Navigator.hpp.
View newest version in sPHENIX GitHub at line 107 of file Navigator.hpp
|
inlineexplicit |
Constructor with configuration object
cfg | The navigator configuration |
_logger | a logger instance |
Definition at line 201 of file Navigator.hpp.
View newest version in sPHENIX GitHub at line 201 of file Navigator.hpp
Acts::Navigator::m_logger |
Definition at line 204 of file Navigator.hpp.
View newest version in sPHENIX GitHub at line 204 of file Navigator.hpp
std::shared_ptr<const Logger> Acts::Navigator::m_logger |
Definition at line 1342 of file Navigator.hpp.
View newest version in sPHENIX GitHub at line 1342 of file Navigator.hpp