ATLAS Offline Software
Loading...
Searching...
No Matches
StaticEngine.cxx
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.cxx, (c) ATLAS Detector software
8
9// STL
10#include <sstream>
11// Trk include
13
14// constructor
15Trk::StaticEngine::StaticEngine(const std::string& t, const std::string& n, const IInterface* p)
16: AthAlgTool(t,n,p)
17{
18 declareInterface<Trk::IExtrapolationEngine>(this);
19}
20
21// destructor
23= default;
24
25
26// the interface method initialize
28{
31
32 if (m_propagationEngine.retrieve().isFailure()){
33 EX_MSG_FATAL("", "initialize", "", "failed to retrieve propagation engine '"<< m_propagationEngine << "'. Aborting." );
34 return StatusCode::FAILURE;
35 } else
36 EX_MSG_DEBUG("", "initialize", "", "successfully propagation engine '" << m_propagationEngine << "'." );
37
38 if (m_navigationEngine.retrieve().isFailure()){
39 EX_MSG_FATAL("", "initialize", "", "failed to retrieve navigation engine '"<< m_navigationEngine << "'. Aborting." );
40 return StatusCode::FAILURE;
41 } else
42 EX_MSG_DEBUG("", "initialize", "", "successfully retrieved '" << m_navigationEngine << "'." );
43
44 if (m_materialEffectsEngine.retrieve().isFailure()){
45 EX_MSG_FATAL("", "initialize", "", "failed to retrieve material effect engine '"<< m_materialEffectsEngine << "'. Aborting." );
46 return StatusCode::FAILURE;
47 } else
48 EX_MSG_DEBUG("", "initialize", "", "successfully retrieved '" << m_materialEffectsEngine << "'." );
49
50 EX_MSG_DEBUG("", "initialize", "", "successful." );
51 return StatusCode::SUCCESS;
52}
53
54// the interface method finalize
56{
57 EX_MSG_DEBUG("", "finalize", "", "successful." );
58 return StatusCode::SUCCESS;
59}
60
61
64 const Surface* sf,
65 const BoundaryCheck& bcheck) const
66{ return extrapolateT<TrackParameters>(ecCharged,sf,ecCharged.propDirection,bcheck); }
67
68
71 const Surface* sf,
72 const BoundaryCheck& bcheck) const
73{ return extrapolateT<NeutralParameters>(ecNeutral,sf,ecNeutral.propDirection,bcheck); }
#define EX_MSG_DEBUG(navstep, step, idx, x)
#define EX_MSG_FATAL(navstep, step, idx, x)
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...
PropDirection propDirection
this is the propagation direction
std::string m_sopPrefix
< SCREEN output formatting (SOP) - unify amongst extrapolation engines
std::string m_sopPostfix
prefix for screen output
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 StatusCode initialize() override
AlgTool initialize method.
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
virtual StatusCode finalize() override
AlgTool finalize method.
Abstract Base Class for tracking surfaces.
ExtrapolationCell< TrackParameters > ExCellCharged
ExtrapolationCell< NeutralParameters > ExCellNeutral