9#ifndef TRKEXENINGE_STATICENGINE_H
10#define TRKEXENINGE_STATICENGINE_H
12#ifndef TRKEXENINGE_OUTPUTHELPER
13#define TRKEXENINGE_OUTPUTHELPER
14#define OH_CHECKFOUND(object) ( object ? "found" : "not found")
19#include "GaudiKernel/ToolHandle.h"
31 class IPropagationEngine;
32 class IMaterialEffectsEngine;
33 class INavigationEngine;
67 StaticEngine(
const std::string&,
const std::string&,
const IInterface*);
76 virtual StatusCode
finalize()
override;
118 bool hasSubStructure =
false,
119 bool isStartLayer =
false,
120 bool isDestinationLayer =
false)
const;
128 ToolHandle<IPropagationEngine>
m_propagationEngine{
this,
"PropagationEngine",
"Trk::PropagationEngine/AtlasStaticPropagation"};
129 ToolHandle<INavigationEngine>
m_navigationEngine{
this,
"NavigationEngine",
"Trk::StaticNavigationEngine/AtlasStaticNavigation"};
130 ToolHandle<IMaterialEffectsEngine>
m_materialEffectsEngine{
this,
"MaterialEffectsEngine",
"Trk::MaterialEffectsEngine/AtlasStaticNavigationMaterialEffects"};
Define macros for attributes used to control the static checker.
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
Extrapolation engine for static layer & volume setup.
virtual ~StaticEngine()
Destructor.
StringProperty m_sopPostfix_prop
ToolHandle< IMaterialEffectsEngine > m_materialEffectsEngine
the material effects updated
ExtrapolationCode extrapolateT(ExtrapolationCell< T > &eCell, const Surface *sf=0, PropDirection dir=alongMomentum, const BoundaryCheck &bcheck=true) const
main loop extrapolation method
virtual ExtrapolationCode extrapolate(ExCellCharged &ecCharged, const Surface *sf=0, const BoundaryCheck &bcheck=true) const override
charged extrapolation - public interface
virtual GeometryType geometryType() const override
define for which GeometrySignature this extrapolator is valid - this is GLOBAL
ExtrapolationCode handleReturnT(ExtrapolationCode eCode, ExtrapolationCell< T > &eCell, const Surface *sf=0, PropDirection dir=alongMomentum, BoundaryCheck bcheck=true) const
handle the failure - as configured
ToolHandle< IPropagationEngine > m_propagationEngine
the used propagation engine
StaticEngine(const std::string &, const std::string &, const IInterface *)
Constructor.
ToolHandle< INavigationEngine > m_navigationEngine
the navigation engine to resolve the boundary
StringProperty m_sopPrefix_prop
@ StartAndDestinationLayer
ExtrapolationCode initNavigationT(ExtrapolationCell< T > &eCell, const Surface *sf=0, PropDirection dir=alongMomentum, BoundaryCheck bcheck=true) const
init Navigation for static setup
ExtrapolationCode resolveLayerT(ExtrapolationCell< T > &eCell, const Trk::Surface *sf, PropDirection dir=alongMomentum, BoundaryCheck bcheck=true, bool hasSubStructure=false, bool isStartLayer=false, bool isDestinationLayer=false) const
main sub structure layer handling
virtual StatusCode finalize() override
AlgTool finalize method.
ExtrapolationCode handleLayerT(ExtrapolationCell< T > &eCell, const Surface *sf=0, PropDirection dir=alongMomentum, BoundaryCheck bcheck=true) const
main static layer handling
Abstract Base Class for tracking surfaces.
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
ExtrapolationCell< TrackParameters > ExCellCharged
ExtrapolationCell< NeutralParameters > ExCellNeutral