ATLAS Offline Software
StaticEngine.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 // StaticEngine.h, (c) ATLAS Detector software
8 
9 #ifndef TRKEXENINGE_STATICENGINE_H
10 #define TRKEXENINGE_STATICENGINE_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
26 
28 
29 namespace Trk {
30 
31  class IPropagationEngine;
32  class IMaterialEffectsEngine;
33  class INavigationEngine;
34 
35 
50 
51  public:
52 
57  StartLayer = 0,
59  PassThroughLayer = 2,
60  SubStructureLayer = 3,
61  DestinationLayer = 4,
62  StartAndDestinationLayer = 6,
63  UndefinedLayer = 5
64  };
65 
67  StaticEngine(const std::string&,const std::string&,const IInterface*);
68 
70  virtual ~StaticEngine();
71 
73  virtual StatusCode initialize() override;
74 
76  virtual StatusCode finalize() override;
77 
79 
81  virtual ExtrapolationCode extrapolate(ExCellCharged& ecCharged,
82  const Surface* sf = 0,
83  const BoundaryCheck& bcheck = true) const override;
84 
85 
87  virtual ExtrapolationCode extrapolate(ExCellNeutral& ecNeutral,
88  const Surface* sf = 0,
89  const BoundaryCheck& bcheck = true) const override;
90 
92  virtual GeometryType geometryType() const override;
93 
94  private:
97  const Surface* sf = 0,
99  const BoundaryCheck& bcheck = true) const;
100 
103  const Surface* sf = 0,
105  BoundaryCheck bcheck = true) const;
106 
109  const Surface* sf = 0,
111  BoundaryCheck bcheck = true) const;
112 
115  const Trk::Surface* sf,
117  BoundaryCheck bcheck = true,
118  bool hasSubStructure = false,
119  bool isStartLayer = false,
120  bool isDestinationLayer =false) const;
123  ExtrapolationCell<T>& eCell,
124  const Surface* sf = 0,
126  BoundaryCheck bcheck = true) const;
127 
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"};
131 
132  };
133 
135  { return Trk::Static; }
136 
137 
138 } // end of namespace
139 
141 #include "StaticEngine.icc"
142 
143 #endif // TRKEXINTERFACES_IStaticEngine_H
144 
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:53
Trk::StaticEngine::~StaticEngine
virtual ~StaticEngine()
Destructor.
Trk::Static
@ Static
Definition: GeometrySignature.h:38
TrackParameters.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::StaticEngine::geometryType
virtual GeometryType geometryType() const override
define for which GeometrySignature this extrapolator is valid - this is GLOBAL
Definition: StaticEngine.h:134
initialize
void initialize()
Definition: run_EoverP.cxx:894
Trk::NavigationLayer
Definition: NavigationLayer.h:39
Trk::StaticEngine::initNavigationT
ExtrapolationCode initNavigationT(ExtrapolationCell< T > &eCell, const Surface *sf=0, PropDirection dir=alongMomentum, BoundaryCheck bcheck=true) const
init Navigation for static setup
Trk::alongMomentum
@ alongMomentum
Definition: PropDirection.h:20
NeutralParameters.h
StaticEngine.icc
Trk::StaticEngine
Definition: StaticEngine.h:49
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Trk::StaticEngine::resolveLayerT
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
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::StaticEngine::ResolveLayerType
ResolveLayerType
Definition: StaticEngine.h:56
beamspotman.dir
string dir
Definition: beamspotman.py:623
ExtrapolationMacros.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::StaticEngine::handleReturnT
ExtrapolationCode handleReturnT(ExtrapolationCode eCode, ExtrapolationCell< T > &eCell, const Surface *sf=0, PropDirection dir=alongMomentum, BoundaryCheck bcheck=true) const
handle the failure - as configured
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::BoundaryCheck
Definition: BoundaryCheck.h:51
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
AthAlgTool
Definition: AthAlgTool.h:26
Trk::StaticEngine::extrapolateT
ExtrapolationCode extrapolateT(ExtrapolationCell< T > &eCell, const Surface *sf=0, PropDirection dir=alongMomentum, const BoundaryCheck &bcheck=true) const
main loop extrapolation method
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
checker_macros.h
Define macros for attributes used to control the static checker.
IExtrapolationEngine.h
Trk::StaticEngine::handleLayerT
ExtrapolationCode handleLayerT(ExtrapolationCell< T > &eCell, const Surface *sf=0, PropDirection dir=alongMomentum, BoundaryCheck bcheck=true) const
main static layer handling