ATLAS Offline Software
StepEngine.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // StepEngine.h, (c) ATLAS Detector software
8 
9 #ifndef TRKEXENINGE_STEPENGINE_H
10 #define TRKEXENINGE_STEPENGINE_H
11 
12 #ifndef TRKEXENINGE_OUTPUTHELPER
13 #define TRKEXENINGE_OUTPUTHELPER
14 #define OH_CHECKFOUND(object) ( object ? "found" : "not found")
15 #endif
16 
17 // Gaudi
19 #include "GaudiKernel/ToolHandle.h"
20 // Trk
28 
30 
31 namespace Trk {
32 
33  class IMaterialEffectsEngine;
34  class INavigationEngine;
35 
44 
45  public:
46 
51  StartLayer = 0,
53  PassThroughLayer = 2,
54  SubStructureLayer = 3,
55  DestinationLayer = 4,
56  StartAndDestinationLayer = 6,
57  UndefinedLayer = 5
58  };
59 
61  StepEngine(const std::string&,const std::string&,const IInterface*);
62 
64  virtual ~StepEngine();
65 
67  virtual StatusCode initialize() override;
68 
70  virtual StatusCode finalize() override;
71 
73 
75  virtual ExtrapolationCode extrapolate(ExCellCharged& ecCharged,
76  const Surface* sf = 0,
77  const BoundaryCheck& bcheck = true) const override;
78 
79 
81  virtual ExtrapolationCode extrapolate(ExCellNeutral& ecNeutral,
82  const Surface* sf = 0,
83  const BoundaryCheck& bcheck = true) const override;
84 
86  virtual GeometryType geometryType() const override;
87 
88  private:
92  bool trueOrderedIntersections,
93  const Surface* sf = 0,
94  const BoundaryCheck& bcheck = true ) const;
95 
97  Amg::Vector3D position,
98  unsigned int index ) const;
100  void evaluateDistance(Trk::TargetSurface& tt, const Amg::Vector3D& pos, const Amg::Vector3D& mom,
101  Trk::TargetSurfaceVector&ts, bool trueOrdered) const;
102 
104  Trk::ExtrapolationCode handleIntersection(ExCellCharged& ecCharged,
105  Trk::TargetSurfaceVector& solutions) const;
106 
107  ToolHandle<IPropagator> m_propagator;
108  ToolHandle<IMaterialEffectsEngine> m_materialEffectsEngine;
109  ToolHandle<INavigationEngine> m_navigationEngine;
110 
111  // local variables
112  double m_tolerance;
113 
114  // target surfaces
116 
117  // debugging mode & switch
118  bool m_debugAndFix; // switch
119  mutable bool m_debugCall; // mode
120 
121  };
122 
124  { return Trk::Dense; }
125 
126 
127 } // end of namespace
128 
130 #include "StepEngine.icc"
131 
132 #endif // TRKEXINTERFACES_IStepEngine_H
133 
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:53
Trk::StepEngine::m_navigationEngine
ToolHandle< INavigationEngine > m_navigationEngine
access to tracking geometry
Definition: StepEngine.h:109
TrackParameters.h
TargetSurfaces.h
ATLAS_NOT_THREAD_SAFE
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Definition: checker_macros.h:212
Trk::TargetSurface
target surface info ( navigation )
Definition: TargetSurfaces.h:56
index
Definition: index.py:1
initialize
void initialize()
Definition: run_EoverP.cxx:894
Trk::StepEngine
Definition: StepEngine.h:43
Trk::StepEngine::~StepEngine
virtual ~StepEngine()
Destructor.
Trk::StepEngine::geometryType
virtual GeometryType geometryType() const override
define for which GeometrySignature this extrapolator is valid - this is GLOBAL
Definition: StepEngine.h:123
Trk::NavigationLayer
Definition: NavigationLayer.h:39
Trk::Dense
@ Dense
Definition: GeometrySignature.h:39
Trk::StepEngine::m_propagator
ToolHandle< IPropagator > m_propagator
the used propagation engine
Definition: StepEngine.h:107
IPropagator.h
NeutralParameters.h
Trk::StepEngine::m_tolerance
double m_tolerance
Definition: StepEngine.h:112
Trk::StepEngine::targetSurfacesT
Trk::ExtrapolationCode targetSurfacesT(ExtrapolationCell< T > &eCell, Trk::TargetSurfaceVector &ts, bool trueOrderedIntersections, const Surface *sf=0, const BoundaryCheck &bcheck=true) const
main loop extrapolation method
Trk::StepEngine::resolveFrameBoundaryT
Trk::ExtrapolationCode resolveFrameBoundaryT(ExtrapolationCell< T > &eCell, Amg::Vector3D position, unsigned int index) const
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
Trk::ExtrapolationCode
Definition: ExtrapolationCell.h:105
Trk::StepEngine::ResolveLayerType
ResolveLayerType
Definition: StepEngine.h:50
Trk::StepEngine::m_debugCall
bool m_debugCall
Definition: StepEngine.h:119
ExtrapolationMacros.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
Trk::IExtrapolationEngine::extrapolate
virtual ExtrapolationCode extrapolate(ExCellCharged &ecCharged, const Surface *sf=0, const BoundaryCheck &bcheck=true) const =0
charged extrapolation
Trk::ExtrapolationCell
Definition: ExtrapolationCell.h:231
Trk::IExtrapolationEngine
Definition: IExtrapolationEngine.h:36
Trk::StepEngine::m_materialEffectsEngine
ToolHandle< IMaterialEffectsEngine > m_materialEffectsEngine
the material effects updated
Definition: StepEngine.h:108
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
Trk::TargetSurfaceVector
std::vector< TargetSurface > TargetSurfaceVector
Definition: TargetSurfaces.h:121
Trk::BoundaryCheck
Definition: BoundaryCheck.h:51
Trk::StepEngine::m_debugAndFix
bool m_debugAndFix
Definition: StepEngine.h:118
Trk::TargetSurfaces
Definition: TargetSurfaces.h:126
ExtrapolationCell.h
MuonHough::extrapolate
float extrapolate(const MuonLayerHough::Maximum &ref, const MuonLayerHough::Maximum &ex, bool doparabolic=false)
Definition: MuonLayerHough.cxx:519
Trk::GeometryType
GeometryType
Definition: GeometrySignature.h:37
Trk::StepEngine::m_targetSurfaces
TargetSurfaces m_targetSurfaces
Definition: StepEngine.h:115
AthAlgTool
Definition: AthAlgTool.h:26
python.CaloScaleNoiseConfig.ts
ts
Definition: CaloScaleNoiseConfig.py:86
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
checker_macros.h
Define macros for attributes used to control the static checker.
StepEngine.icc
IExtrapolationEngine.h
TileDCSDataPlotter.tt
tt
Definition: TileDCSDataPlotter.py:874