ATLAS Offline Software
Loading...
Searching...
No Matches
StaticEngine.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// 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
29namespace Trk {
30
31 class IPropagationEngine;
32 class IMaterialEffectsEngine;
33 class INavigationEngine;
34
35
50
51 public:
52
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
82 const Surface* sf = 0,
83 const BoundaryCheck& bcheck = true) const override;
84
85
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;
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 StringProperty m_sopPrefix_prop{this, "OutputPrefix", ""};
133 StringProperty m_sopPostfix_prop{this, "OutputPostfix", ""};
134
135 };
136
139
140
141} // end of namespace
142
144#include "StaticEngine.icc"
145
146#endif // TRKEXINTERFACES_IStaticEngine_H
147
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
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
templated class as an input-output object of the extrapolation, only public members,...
Extrapolation engine interface for Charged and Neutral parameters, it serves as the Master extrapolat...
virtual ExtrapolationCode extrapolate(ExCellCharged &ecCharged, const Surface *sf=0, const BoundaryCheck &bcheck=true) const =0
charged extrapolation
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
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.
@ alongMomentum
ExtrapolationCell< TrackParameters > ExCellCharged
ExtrapolationCell< NeutralParameters > ExCellNeutral
void initialize()