Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ExtrapolationEngine.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 // ExtrapolationEngine.cxx, (c) ATLAS Detector software
8 
9 // STL
10 #include <sstream>
11 // Trk include
14 
15 // constructor
16 Trk::ExtrapolationEngine::ExtrapolationEngine(const std::string& t, const std::string& n, const IInterface* p)
18 {
19  declareInterface<Trk::IExtrapolationEngine>(this);
20 }
21 
22 // destructor
24 = default;
25 
26 
27 // the interface method initialize
29 {
30  EX_MSG_DEBUG( "", "initialize", "", "starting initialize()" );
31 
32  m_sopPrefix = m_sopPrefix_prop;
33  m_sopPostfix = m_sopPostfix_prop;
34 
35  // get the TrackingGeometrySvc
36  ATH_CHECK( m_trackingGeometryReadKey.initialize(!m_trackingGeometryReadKey.key().empty()) );
37 
38  // retrieve the ExtrapolationEngines
39  if (m_extrapolationEngines.retrieve().isFailure()){
40 
41  } else {
42  EX_MSG_DEBUG( "", "initialize", "", "Successfully retrieved " << m_extrapolationEngines.size() << " ExtrapolationEngines. Ordering them now." );
43  m_eeAccessor = std::vector<const Trk::IExtrapolationEngine*>(int(Trk::NumberOfGeometryTypes), (const Trk::IExtrapolationEngine*)nullptr);
44  for (auto& ee : m_extrapolationEngines){
45  EX_MSG_DEBUG( "", "initialize", "", "Registering " << ee->name() << " - for GeometryType : " << ee->geometryType() );
46  m_eeAccessor[ee->geometryType()] = (&*ee);
47  }
48  }
49 
50  if (m_propagationEngine.retrieve().isFailure()){
51  EX_MSG_FATAL("", "initialize", "", "failed to retrieve propagation engine '"<< m_propagationEngine << "'. Aborting." );
52  return StatusCode::FAILURE;
53  } else
54  EX_MSG_DEBUG("", "initialize", "", "successfully propagation engine '" << m_propagationEngine << "'." );
55 
56  if (m_navigationEngine.retrieve().isFailure()){
57  EX_MSG_FATAL("", "initialize", "", "failed to retrieve navigation engine '"<< m_navigationEngine << "'. Aborting." );
58  return StatusCode::FAILURE;
59  } else
60  EX_MSG_DEBUG("", "initialize", "", "successfully retrieved '" << m_navigationEngine << "'." );
61 
62  return StatusCode::SUCCESS;
63 }
64 
65 // the interface method finalize
67 {
68  EX_MSG_DEBUG( "", "finalize", "", "successful" );
69  return StatusCode::SUCCESS;
70 }
71 
72 
75  const Surface* sf,
76  const BoundaryCheck& bcheck) const
77 { return extrapolateT<TrackParameters>(ecCharged,sf,ecCharged.propDirection,bcheck); }
78 
79 
82  const Surface* sf,
83  const BoundaryCheck& bcheck) const
84 { return extrapolateT<NeutralParameters>(ecNeutral,sf,ecNeutral.propDirection,bcheck); }
85 
87  std::stringstream msg;
88  msg << "Failed to get conditions data " << m_trackingGeometryReadKey.key() << ".";
89  throw std::runtime_error(msg.str());
90 }
91 
GeometrySignature.h
Trk::ExtrapolationCell::propDirection
PropDirection propDirection
this is the propagation direction
Definition: ExtrapolationCell.h:260
Trk::ExtrapolationEngine::initialize
StatusCode initialize()
AlgTool initialize method.
Definition: ExtrapolationEngine.cxx:28
Trk::ExtrapolationEngine::extrapolate
virtual ExtrapolationCode extrapolate(ExCellCharged &ecCharged, const Surface *sf=0, const BoundaryCheck &bcheck=true) const
charged extrapolation - public interface
Definition: ExtrapolationEngine.cxx:74
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ExtrapolationEngine.h
Trk::ExtrapolationEngine::throwFailedToGetTrackingGeomtry
void throwFailedToGetTrackingGeomtry() const
Definition: ExtrapolationEngine.cxx:86
Trk::ExtrapolationEngine::ExtrapolationEngine
ExtrapolationEngine(const std::string &, const std::string &, const IInterface *)
Constructor.
Definition: ExtrapolationEngine.cxx:16
Trk::NumberOfGeometryTypes
@ NumberOfGeometryTypes
Definition: GeometrySignature.h:43
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
EX_MSG_FATAL
#define EX_MSG_FATAL(navstep, step, idx, x)
Definition: ExtrapolationMacros.h:16
AthCheckedComponent
Mixin class to perform additional checks on a component.
Definition: AthCheckedComponent.h:25
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::ExtrapolationCode
Definition: ExtrapolationCell.h:105
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Trk::ExtrapolationEngine::finalize
StatusCode finalize()
AlgTool finalize method.
Definition: ExtrapolationEngine.cxx:66
EX_MSG_DEBUG
#define EX_MSG_DEBUG(navstep, step, idx, x)
Definition: ExtrapolationMacros.h:13
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
AthAlgTool
Definition: AthAlgTool.h:26
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
Trk::ExtrapolationEngine::~ExtrapolationEngine
~ExtrapolationEngine()
Destructor.