|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKEXTOOLS_NAVIGATOR_H
10 #define TRKEXTOOLS_NAVIGATOR_H
14 #include "GaudiKernel/ServiceHandle.h"
27 #include <Gaudi/Accumulators.h>
31 class IGeometryBuilder;
36 typedef std::pair<const NavigationCell*,const NavigationCell*>
NavigationPair;
51 Navigator(
const std::string&,
const std::string&,
const IInterface*);
61 const EventContext& ctx)
const override final;
66 const EventContext& ctx,
const Amg::Vector3D& gp)
const override final;
70 const EventContext& ctx)
const override final;
82 double tol)
const override final;
106 this,
"TrackingGeometryKey",
"AtlasTrackingGeometry",
107 "Key of output of TrackingGeometry for ID"};
111 this,
"TrackingGeometrySvc",
""};
132 #endif // TRKEXTOOLS_NAVIGATOR_H
virtual bool atVolumeBoundary(const Trk::TrackParameters *parms, const Trk::TrackingVolume *vol, Trk::PropDirection dir, const Trk::TrackingVolume *&nextVol, double tol) const override final
INavigator method to resolve navigation at boundary.
std::string m_trackingGeometryName
Name of the TrackingGeometry as given in Detector Store.
virtual ~Navigator()=default
Destructor.
Navigator(const std::string &, const std::string &, const IInterface *)
Constructor.
virtual StatusCode initialize() override
AlgTool initialize method.
double m_insideVolumeTolerance
Tolerance for inside() method of Volumes.
virtual const TrackingVolume * highestVolume(const EventContext &ctx) const override final
INavigator interface method - forward hightes TrackingVolume.
virtual const BoundarySurface< TrackingVolume > * nextBoundarySurface(const EventContext &ctx, const IPropagator &prop, const TrackParameters &parms, PropDirection dir) const override final
INavigator interface methods - getting the next BoundarySurface not knowing the Volume.
virtual NavigationCell nextTrackingVolume(const EventContext &ctx, const IPropagator &prop, const TrackParameters &parms, PropDirection dir, const TrackingVolume &vol) const override final
INavigator interface method - getting the next Volume and the parameter for the next Navigation.
::StatusCode StatusCode
StatusCode definition for legacy code.
double m_isOnSurfaceTolerance
Tolerance for isOnSurface() method of BoundarySurfaces.
Ensure that the ATLAS eigen extensions are properly loaded.
Eigen::Matrix< double, 3, 1 > Vector3D
bool m_useStraightLineApproximation
use the straight line approximation for the next boundary sf
useful struct for a single navigation cell
std::pair< const NavigationCell *, const NavigationCell * > NavigationPair
SG::ReadCondHandleKey< TrackingGeometry > m_trackingGeometryReadKey
bool m_searchWithDistance
search with new distanceToSurface() method
virtual const TrackParameters * closestParameters(const Track &trk, const Surface &sf) const override final
INavigator interface method - getting the closest TrackParameters from a Track to a Surface.
ServiceHandle< Trk::ITrackingGeometrySvc > m_trackingGeometrySvc
ToolHandle to the TrackingGeometrySvc.
virtual const TrackingGeometry * trackingGeometry(const EventContext &ctx) const override final
INavigator interface method - returns the TrackingGeometry used for navigation.
virtual const TrackingVolume * volume(const EventContext &ctx, const Amg::Vector3D &gp) const override final
INavigator interface methods - global search for the Volume one is in.
Trk::MagneticFieldProperties m_fieldProperties