ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkExtrapolation
TrkExEngine
src
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
12
#include "
TrkExEngine/ExtrapolationEngine.h
"
13
#include "
TrkDetDescrUtils/GeometrySignature.h
"
14
15
// constructor
16
Trk::ExtrapolationEngine::ExtrapolationEngine
(
const
std::string& t,
const
std::string& n,
const
IInterface* p)
17
:
AthCheckedComponent
<
AthAlgTool
>(t,n,p)
18
{
19
declareInterface<Trk::IExtrapolationEngine>(
this
);
20
}
21
22
// destructor
23
Trk::ExtrapolationEngine::~ExtrapolationEngine
()
24
=
default
;
25
26
27
// the interface method initialize
28
StatusCode
Trk::ExtrapolationEngine::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
66
StatusCode
Trk::ExtrapolationEngine::finalize
()
67
{
68
EX_MSG_DEBUG
(
""
,
"finalize"
,
""
,
"successful"
);
69
return
StatusCode::SUCCESS;
70
}
71
72
74
Trk::ExtrapolationCode
Trk::ExtrapolationEngine::extrapolate
(
ExCellCharged
& ecCharged,
75
const
Surface
* sf,
76
const
BoundaryCheck
& bcheck)
const
77
{
return
extrapolateT<TrackParameters>
(ecCharged,sf,ecCharged.
propDirection
,bcheck); }
78
79
81
Trk::ExtrapolationCode
Trk::ExtrapolationEngine::extrapolate
(
ExCellNeutral
& ecNeutral,
82
const
Surface
* sf,
83
const
BoundaryCheck
& bcheck)
const
84
{
return
extrapolateT<NeutralParameters>
(ecNeutral,sf,ecNeutral.
propDirection
,bcheck); }
85
86
void
Trk::ExtrapolationEngine::throwFailedToGetTrackingGeomtry
()
const
{
87
std::stringstream
msg
;
88
msg
<<
"Failed to get conditions data "
<<
m_trackingGeometryReadKey
.key() <<
"."
;
89
throw
std::runtime_error(
msg
.str());
90
}
91
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ExtrapolationEngine.h
EX_MSG_DEBUG
#define EX_MSG_DEBUG(navstep, step, idx, x)
Definition
ExtrapolationMacros.h:13
EX_MSG_FATAL
#define EX_MSG_FATAL(navstep, step, idx, x)
Definition
ExtrapolationMacros.h:16
GeometrySignature.h
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
AthCheckedComponent
Mixin class to perform additional checks on a component.
Definition
AthCheckedComponent.h:25
Trk::BoundaryCheck
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
Definition
BoundaryCheck.h:51
Trk::ExtrapolationCell::propDirection
PropDirection propDirection
this is the propagation direction
Definition
ExtrapolationCell.h:260
Trk::ExtrapolationCode
Definition
ExtrapolationCell.h:105
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
Trk::ExtrapolationEngine::~ExtrapolationEngine
~ExtrapolationEngine()
Destructor.
Trk::ExtrapolationEngine::m_sopPostfix_prop
StringProperty m_sopPostfix_prop
Definition
ExtrapolationEngine.h:122
Trk::ExtrapolationEngine::extrapolateT
ExtrapolationCode extrapolateT(ExtrapolationCell< T > &eCell, const Surface *sf=0, PropDirection dir=alongMomentum, const BoundaryCheck &bcheck=true) const
main loop extrapolation method
Trk::ExtrapolationEngine::m_propagationEngine
ToolHandle< IPropagationEngine > m_propagationEngine
the used propagation engine for navigation initialization
Definition
ExtrapolationEngine.h:113
Trk::ExtrapolationEngine::m_trackingGeometryReadKey
SG::ReadCondHandleKey< TrackingGeometry > m_trackingGeometryReadKey
the tool handle array for static / dense / detached
Definition
ExtrapolationEngine.h:109
Trk::ExtrapolationEngine::ExtrapolationEngine
ExtrapolationEngine(const std::string &, const std::string &, const IInterface *)
Constructor.
Definition
ExtrapolationEngine.cxx:16
Trk::ExtrapolationEngine::m_navigationEngine
ToolHandle< INavigationEngine > m_navigationEngine
access to tracking geometry (unique?)
Definition
ExtrapolationEngine.h:114
Trk::ExtrapolationEngine::m_sopPrefix_prop
StringProperty m_sopPrefix_prop
Definition
ExtrapolationEngine.h:121
Trk::ExtrapolationEngine::finalize
StatusCode finalize()
AlgTool finalize method.
Definition
ExtrapolationEngine.cxx:66
Trk::ExtrapolationEngine::initialize
StatusCode initialize()
AlgTool initialize method.
Definition
ExtrapolationEngine.cxx:28
Trk::ExtrapolationEngine::m_extrapolationEngines
ToolHandleArray< IExtrapolationEngine > m_extrapolationEngines
Definition
ExtrapolationEngine.h:112
Trk::ExtrapolationEngine::throwFailedToGetTrackingGeomtry
void throwFailedToGetTrackingGeomtry() const
Definition
ExtrapolationEngine.cxx:86
Trk::ExtrapolationEngine::m_eeAccessor
std::vector< const IExtrapolationEngine * > m_eeAccessor
the extrapolation engines for
Definition
ExtrapolationEngine.h:115
Trk::IExtrapolationEngine
Extrapolation engine interface for Charged and Neutral parameters, it serves as the Master extrapolat...
Definition
IExtrapolationEngine.h:36
Trk::IExtrapolationEngine::m_sopPrefix
std::string m_sopPrefix
< SCREEN output formatting (SOP) - unify amongst extrapolation engines
Definition
IExtrapolationEngine.h:63
Trk::IExtrapolationEngine::m_sopPostfix
std::string m_sopPostfix
prefix for screen output
Definition
IExtrapolationEngine.h:64
Trk::Surface
Abstract Base Class for tracking surfaces.
Definition
Surface.h:79
Trk::NumberOfGeometryTypes
@ NumberOfGeometryTypes
Definition
GeometrySignature.h:43
Trk::ExCellCharged
ExtrapolationCell< TrackParameters > ExCellCharged
Definition
IExtrapolationEngine.h:24
Trk::ExCellNeutral
ExtrapolationCell< NeutralParameters > ExCellNeutral
Definition
IExtrapolationEngine.h:25
msg
MsgStream & msg
Definition
testRead.cxx:32
Generated on
for ATLAS Offline Software by
1.17.0