ATLAS Offline Software
Tracking
TrkExtrapolation
TrkExInterfaces
TrkExInterfaces
IExtrapolator.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
// IExtrapolator.h, (c) ATLAS Detector software
8
9
#ifndef TRKEXINTERFACES_IEXTRAPOLATOR_H
10
#define TRKEXINTERFACES_IEXTRAPOLATOR_H
11
12
// Gaudi
13
#include "GaudiKernel/EventContext.h"
14
#include "GaudiKernel/IAlgTool.h"
15
#include "GaudiKernel/ThreadLocalContext.h"
16
17
// Trk
18
#include "
TrkEventPrimitives/ParticleHypothesis.h
"
19
#include "
TrkEventPrimitives/PropDirection.h
"
20
#include "
TrkExUtils/ExtrapolationCache.h
"
21
#include "
TrkExUtils/MaterialUpdateMode.h
"
22
#include "
TrkMaterialOnTrack/MaterialEffectsOnTrack.h
"
23
#include "
TrkNeutralParameters/NeutralParameters.h
"
24
#include "
TrkParameters/TrackParameters.h
"
25
#include "
TrkParametersBase/ParametersBase.h
"
26
#include "
TrkSurfaces/BoundaryCheck.h
"
27
28
// xAOD
29
#include "
xAODTracking/NeutralParticle.h
"
30
#include "
xAODTracking/TrackParticle.h
"
31
// STL
32
#include <memory>
33
#include <utility>
34
35
namespace
Trk
{
36
37
static
const
InterfaceID IID_IExtrapolator(
"IExtrapolator"
, 1, 0);
38
52
class
INavigator;
53
class
Track
;
54
class
Surface
;
55
class
TrackingVolume;
56
class
TrackingGeometry;
57
class
TrackStateOnSurface;
58
class
Layer
;
59
class
Volume;
60
61
class
IExtrapolator
:
virtual
public
IAlgTool
62
{
63
public
:
65
virtual
~IExtrapolator
() {}
66
68
static
const
InterfaceID&
interfaceID
() {
return
IID_IExtrapolator; }
69
72
virtual
std::unique_ptr<NeutralParameters>
extrapolate
(
73
const
NeutralParameters
&
parameters
,
74
const
Surface
&
sf
,
75
PropDirection
dir
=
anyDirection
,
76
const
BoundaryCheck
& bcheck =
true
)
const
= 0;
77
80
virtual
std::unique_ptr<TrackParameters>
extrapolate
(
81
const
EventContext& ctx,
82
const
TrackParameters
& parm,
83
const
Surface
&
sf
,
84
PropDirection
dir
=
anyDirection
,
85
const
BoundaryCheck
& bcheck =
true
,
86
ParticleHypothesis
particle
=
pion
,
87
MaterialUpdateMode
matupmode =
addNoise
,
88
Trk::ExtrapolationCache
* cache =
nullptr
)
const
= 0;
89
94
virtual
std::vector<std::unique_ptr<TrackParameters>>
95
extrapolateStepwise
(
const
EventContext& ctx,
96
const
TrackParameters
& parm,
97
const
Surface
&
sf
,
98
PropDirection
dir
=
anyDirection
,
99
const
BoundaryCheck
& bcheck =
true
,
100
ParticleHypothesis
particle
=
pion
)
const
= 0;
101
105
virtual
std::unique_ptr<TrackParameters>
extrapolateTrack
(
106
const
EventContext& ctx,
107
const
Track
& trk,
108
const
Surface
&
sf
,
109
PropDirection
dir
=
anyDirection
,
110
const
BoundaryCheck
& bcheck =
true
,
111
ParticleHypothesis
particle
=
pion
,
112
MaterialUpdateMode
matupmode =
addNoise
,
113
Trk::ExtrapolationCache
* cache =
nullptr
)
const
= 0;
114
119
virtual
std::unique_ptr<TrackParameters>
extrapolateDirectly
(
120
const
EventContext& ctx,
121
const
TrackParameters
& parm,
122
const
Surface
&
sf
,
123
PropDirection
dir
=
anyDirection
,
124
const
BoundaryCheck
& bcheck =
true
,
125
ParticleHypothesis
particle
=
pion
)
const
= 0;
126
127
132
virtual
std::vector<std::unique_ptr<TrackParameters>>
133
extrapolateBlindly
(
const
EventContext& ctx,
134
const
TrackParameters
& parm,
135
PropDirection
dir
=
anyDirection
,
136
const
BoundaryCheck
& bcheck =
true
,
137
ParticleHypothesis
particle
=
pion
,
138
const
Volume
* boundaryVol =
nullptr
)
const
= 0;
139
141
virtual
std::pair<std::unique_ptr<TrackParameters>,
const
Trk::Layer
*>
142
extrapolateToNextActiveLayerM
(
143
const
EventContext& ctx,
144
const
TrackParameters
& parm,
145
PropDirection
dir
,
146
const
BoundaryCheck
& bcheck,
147
std::vector<const Trk::TrackStateOnSurface*>& material,
148
ParticleHypothesis
particle
=
pion
,
149
MaterialUpdateMode
matupmode =
addNoise
)
const
= 0;
150
152
virtual
std::unique_ptr<TrackParameters>
extrapolateToVolume
(
153
const
EventContext& ctx,
154
const
TrackParameters
& parm,
155
const
Trk::TrackingVolume
& vol,
156
PropDirection
dir
=
anyDirection
,
157
ParticleHypothesis
particle
=
pion
)
const
= 0;
158
163
virtual
std::vector<const TrackStateOnSurface*>*
extrapolateM
(
164
const
EventContext& ctx,
165
const
TrackParameters
&
parameters
,
166
const
Surface
&
sf
,
167
PropDirection
dir
,
168
const
BoundaryCheck
& bcheck,
169
ParticleHypothesis
particle
=
pion
,
170
Trk::ExtrapolationCache
* cache =
nullptr
)
const
= 0;
171
179
virtual
std::unique_ptr<
180
std::vector<std::pair<std::unique_ptr<Trk::TrackParameters>,
int
>>>
181
collectIntersections
(
182
const
EventContext& ctx,
183
const
Trk::TrackParameters
& parm,
184
Trk::PropDirection
dir
,
185
Trk::ParticleHypothesis
particle
,
186
std::vector<const Trk::TrackStateOnSurface*>*& material,
187
int
destination = 3)
const
= 0;
188
191
virtual
const
TrackingGeometry
*
trackingGeometry
()
const
= 0;
192
193
};
194
}
// end of namespace
195
196
#endif // TRKEXINTERFACES_ITRKEXTRAPOLATOR_H
197
Trk::anyDirection
@ anyDirection
Definition:
PropDirection.h:22
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition:
ParticleHypothesis.h:76
Trk::IExtrapolator::extrapolateStepwise
virtual std::vector< std::unique_ptr< TrackParameters > > extrapolateStepwise(const EventContext &ctx, const TrackParameters &parm, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion) const =0
Extrapolation method where a step-wise navigation to the destination surface is performed.
TrackParameters.h
Trk::IExtrapolator::interfaceID
static const InterfaceID & interfaceID()
AlgTool interface methods.
Definition:
IExtrapolator.h:68
Trk::IExtrapolator::collectIntersections
virtual std::unique_ptr< std::vector< std::pair< std::unique_ptr< Trk::TrackParameters >, int > > > collectIntersections(const EventContext &ctx, const Trk::TrackParameters &parm, Trk::PropDirection dir, Trk::ParticleHypothesis particle, std::vector< const Trk::TrackStateOnSurface * > *&material, int destination=3) const =0
Extrapolation method collecting intersections with subdetector boundaries and active volumes/layers.
Trk::IExtrapolator::extrapolateToNextActiveLayerM
virtual std::pair< std::unique_ptr< TrackParameters >, const Trk::Layer * > extrapolateToNextActiveLayerM(const EventContext &ctx, const TrackParameters &parm, PropDirection dir, const BoundaryCheck &bcheck, std::vector< const Trk::TrackStateOnSurface * > &material, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const =0
Extrapolation to the next active layer with material collection.
Surface
Definition:
Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
PropDirection.h
Trk::MaterialUpdateMode
MaterialUpdateMode
This is a steering enum to force the material update it can be: (1) addNoise (-1) removeNoise Second ...
Definition:
MaterialUpdateMode.h:18
NeutralParameters.h
Trk::IExtrapolator::~IExtrapolator
virtual ~IExtrapolator()
Virtual destructor.
Definition:
IExtrapolator.h:65
python.RingerConstants.Layer
Layer
Definition:
RingerConstants.py:42
Trk::IExtrapolator::extrapolateDirectly
virtual std::unique_ptr< TrackParameters > extrapolateDirectly(const EventContext &ctx, const TrackParameters &parm, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion) const =0
Extrapolate directly: Forwards directly the call to the configured "Global" propagator.
Trk::IExtrapolator::extrapolate
virtual std::unique_ptr< TrackParameters > extrapolate(const EventContext &ctx, const TrackParameters &parm, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise, Trk::ExtrapolationCache *cache=nullptr) const =0
Main extrapolation interface starting from charged parameters and aiming at Surface.
ExtrapolationCache.h
MaterialEffectsOnTrack.h
Trk::IExtrapolator::trackingGeometry
virtual const TrackingGeometry * trackingGeometry() const =0
Return the TrackingGeometry used by the Extrapolator (forwards information from Navigator)
Trk::ParticleHypothesis
ParticleHypothesis
Definition:
ParticleHypothesis.h:25
Trk::IExtrapolator::extrapolateToVolume
virtual std::unique_ptr< TrackParameters > extrapolateToVolume(const EventContext &ctx, const TrackParameters &parm, const Trk::TrackingVolume &vol, PropDirection dir=anyDirection, ParticleHypothesis particle=pion) const =0
Extrapolation to volume :
Trk::PropDirection
PropDirection
Definition:
PropDirection.h:19
ParametersBase.h
Trk::TrackingGeometry
Definition:
TrackingGeometry.h:67
Trk::IExtrapolator::extrapolateTrack
virtual std::unique_ptr< TrackParameters > extrapolateTrack(const EventContext &ctx, const Track &trk, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise, Trk::ExtrapolationCache *cache=nullptr) const =0
Main extrapolation interface starting from a Trk::Track and aiming at Surface.
Trk::pion
@ pion
Definition:
ParticleHypothesis.h:29
Trk::IExtrapolator::extrapolate
virtual std::unique_ptr< NeutralParameters > extrapolate(const NeutralParameters ¶meters, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true) const =0
Main extrapolation Interface starting from neutral parameters and aiming at surface.
Trk::ParametersBase
Definition:
ParametersBase.h:55
ParticleHypothesis.h
beamspotman.dir
string dir
Definition:
beamspotman.py:623
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition:
FakeTrackBuilder.h:9
NeutralParticle.h
Trk::IExtrapolator
Definition:
IExtrapolator.h:62
MaterialUpdateMode.h
TrackParticle.h
Trk::IExtrapolator::extrapolateBlindly
virtual std::vector< std::unique_ptr< TrackParameters > > extrapolateBlindly(const EventContext &ctx, const TrackParameters &parm, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, const Volume *boundaryVol=nullptr) const =0
extrapolateBlindly like step-wise extrapolation, but without a destination surface.
mapkey::sf
@ sf
Definition:
TElectronEfficiencyCorrectionTool.cxx:38
Trk::BoundaryCheck
Definition:
BoundaryCheck.h:51
Trk::addNoise
@ addNoise
Definition:
MaterialUpdateMode.h:19
BoundaryCheck.h
physics_parameters.parameters
parameters
Definition:
physics_parameters.py:144
Track
Definition:
TriggerChamberClusterOnTrackCreator.h:21
Trk::Surface
Definition:
Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::Volume
Definition:
Volume.h:35
Trk::TrackingVolume
Definition:
TrackingVolume.h:121
Trk::ExtrapolationCache
Definition:
ExtrapolationCache.h:26
Trk::IExtrapolator::extrapolateM
virtual std::vector< const TrackStateOnSurface * > * extrapolateM(const EventContext &ctx, const TrackParameters ¶meters, const Surface &sf, PropDirection dir, const BoundaryCheck &bcheck, ParticleHypothesis particle=pion, Trk::ExtrapolationCache *cache=nullptr) const =0
Extrapolate to a destination surface, while collecting all the material layers in between.
Trk::Layer
Definition:
Layer.h:73
Generated on Sun Dec 22 2024 21:11:27 for ATLAS Offline Software by
1.8.18