9#ifndef TRKEXENGINE_STATICNAVIGATIONENGINE_H
10#define TRKEXENGINE_STATICNAVIGATIONENGINE_H
14#include "GaudiKernel/ToolHandle.h"
23#include "GaudiKernel/GaudiException.h"
89 bool noLoop=
false)
const;
95 bool stepout=
false)
const;
105 return handle.
cptr();
109 {
this,
"TrackingGeometryReadKey",
"",
"Key of the TrackingGeometry conditions data."};
114 ToolHandle<IPropagationEngine>
m_propagationEngine{
this,
"PropagationEngine",
"Trk::PropagationEngine/AtlasStaticPropagation"};
115 ToolHandle<IMaterialEffectsEngine>
m_materialEffectsEngine{
this,
"MaterialEffectsEngine",
"Trk::MaterialEffectsEngine/AtlasStaticNavigationMaterialEffects"};
123 if (!tracking_geometry){
124 EX_MSG_FATAL(
"",
"updateGeo",
"",
"Did not get valid TrackingGeometry. Aborting." );
125 throw GaudiException(
"ExtrapolationEngine",
"Problem with TrackingGeometry loading.", StatusCode::FAILURE);
127 return *tracking_geometry;
Define macros for attributes used to control the static checker.
const_pointer_type cptr()
Description of a BoundarySurface inside the tracking realm, it extends the Surface description to mak...
Material effects engine interface for charged and neutral (fast track simulation) ,...
Extrapolation engine interface for Charged and Neutral parameters, it serves as the Master extrapolat...
virtual ExtrapolationCode resolvePosition(ExCellCharged &ecCell, PropDirection dir=alongMomentum, bool noLoop=false) const =0
resolve the position - for charged particles
virtual ExtrapolationCode resolveBoundary(ExCellCharged &ecCell, PropDirection dir=alongMomentum) const =0
resolve the boundary situation - for charged particles
A propagation engine wrapping the propagator algtool it respects the path limit to stop particles if ...
ExtrapolationCode handleBoundaryT(ExtrapolationCell< T > &eCell, const BoundarySurface< TrackingVolume > &bSurfaceTV, PropDirection dir=alongMomentum, bool stepout=false) const
deal with the boundary Surface - called by resolveBoundary
StringProperty m_sopPostfix_prop
StatusCode updateTrackingGeometry() const
SG::ReadCondHandleKey< TrackingGeometry > m_trackingGeometryReadKey
retrieve TrackingGeometry
ExtrapolationCode resolveBoundaryT(ExtrapolationCell< T > &eCell, PropDirection dir=alongMomentum) const
resolve the boundary situation
virtual ExtrapolationCode resolvePosition(Trk::ExCellCharged &eCell, PropDirection dir=alongMomentum, bool noLoop=false) const
resolve the boundary situation - for charged particles
~StaticNavigationEngine()
Destructor.
std::string m_trackingGeometryName
Name of the TrackingGeometry as given in Detector Store.
StatusCode finalize()
AlgTool finalize method.
virtual ExtrapolationCode resolveBoundary(Trk::ExCellCharged &eCell, PropDirection dir=alongMomentum) const
resolve the boundary situation - for charged particles
StatusCode initialize()
AlgTool initialize method.
StaticNavigationEngine(const std::string &, const std::string &, const IInterface *)
Constructor.
const TrackingGeometry * retrieveTrackingGeometry(const EventContext &ctx) const
void throwFailedToGetTrackingGeomtry() const
ToolHandle< IMaterialEffectsEngine > m_materialEffectsEngine
the material effects updated
ExtrapolationCode resolvePositionT(ExtrapolationCell< T > &eCell, PropDirection dir=alongMomentum, bool noLoop=false) const
resolve position
virtual const TrackingGeometry & trackingGeometry() const
acces to tracking geometry
ToolHandle< IPropagationEngine > m_propagationEngine
the used propagation engine
StringProperty m_sopPrefix_prop
The TrackingGeometry class is the owner of the constructed TrackingVolumes.
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
ExtrapolationCell< TrackParameters > ExCellCharged
ExtrapolationCell< NeutralParameters > ExCellNeutral