Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
StepEngine.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 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  {this, "Propagator", "", "the used propagation engine"};
109  ToolHandle<IMaterialEffectsEngine> m_materialEffectsEngine
110  {this, "MaterialEffectsEngine", "", "the material effects updated"};
111  ToolHandle<INavigationEngine> m_navigationEngine
112  {this, "NavigationEngine", "", "access to tracking geometry"};
113 
114  // local variables
115  double m_tolerance = 0.01;
116 
117  // target surfaces
119 
120  // debugging mode & switch
121  BooleanProperty m_debugAndFix{this, "DebugAndFixMode", true};
122  mutable bool m_debugCall = false; // mode
123 
124  StringProperty m_sopPrefix_prop{this, "OutputPrefix", ""};
125  StringProperty m_sopPostfix_prop{this, "OutputPostfix", ""};
126 
127  };
128 
130  { return Trk::Dense; }
131 
132 
133 } // end of namespace
134 
136 #include "StepEngine.icc"
137 
138 #endif // TRKEXINTERFACES_IStepEngine_H
139 
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:50
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:129
Trk::NavigationLayer
Definition: NavigationLayer.h:39
Trk::Dense
@ Dense
Definition: GeometrySignature.h:39
IPropagator.h
NeutralParameters.h
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
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
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
Trk::TargetSurfaceVector
std::vector< TargetSurface > TargetSurfaceVector
Definition: TargetSurfaces.h:121
Trk::BoundaryCheck
Definition: BoundaryCheck.h:51
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:521
Trk::GeometryType
GeometryType
Definition: GeometrySignature.h:37
Trk::StepEngine::m_targetSurfaces
TargetSurfaces m_targetSurfaces
Definition: StepEngine.h:118
AthAlgTool
Definition: AthAlgTool.h:26
python.CaloScaleNoiseConfig.ts
ts
Definition: CaloScaleNoiseConfig.py:87
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