ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkFitter
TrkGaussianSumFilter
TrkGaussianSumFilter
GsfExtrapolator.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
18
19
#ifndef TrkGsfExtrapolator_H
20
#define TrkGsfExtrapolator_H
21
22
#include "
TrkGaussianSumFilter/IMultiStateExtrapolator.h
"
23
24
#include "
AthenaBaseComps/AthAlgTool.h
"
25
#include "Gaudi/Accumulators.h"
26
#include "GaudiKernel/ToolHandle.h"
27
28
#include "
TrkExInterfaces/INavigator.h
"
29
#include "
TrkExInterfaces/IPropagator.h
"
30
#include "
TrkGaussianSumFilter/IMaterialMixtureConvolution.h
"
31
32
#include "
GeoPrimitives/GeoPrimitives.h
"
33
#include "
TrkGeometry/MagneticFieldProperties.h
"
34
#include "
TrkMaterialOnTrack/MaterialEffectsOnTrack.h
"
35
#include "
TrkParameters/TrackParameters.h
"
36
37
#include <memory>
38
#include <string>
39
#include <vector>
40
41
namespace
Trk
{
42
43
class
Layer
;
44
class
Surface
;
45
class
TrackingVolume
;
46
class
TrackingGeometry
;
47
class
TrackStateOnSurface
;
48
class
MaterialProperties
;
50
class
GsfExtrapolator
final
51
:
public
AthAlgTool
52
,
virtual
public
IMultiStateExtrapolator
53
{
54
55
public
:
57
GsfExtrapolator
(
const
std::string&,
const
std::string&,
const
IInterface*);
58
virtual
~GsfExtrapolator
() override final;
59
virtual StatusCode
initialize
() override final;
60
62
virtual
MultiComponentState
extrapolate
(
63
const
EventContext& ctx,
64
Cache
&,
65
const
MultiComponentState
&,
66
const
Surface
&,
67
PropDirection
direction
,
68
const
BoundaryCheck
& boundaryCheck)
const
override final;
69
71
virtual
MultiComponentState
extrapolateDirectly
(
72
const
EventContext& ctx,
73
const
MultiComponentState
&,
74
const
Surface
&,
75
PropDirection
direction
,
76
const
BoundaryCheck
& boundaryCheck)
const
override final;
77
79
virtual
Trk
::
ParticleHypothesis
particleHypothesis
()
const
override final{
80
return
m_materialUpdator
->particleHypothesis();
81
}
82
83
84
private
:
86
MultiComponentState
extrapolateImpl
(
87
const
EventContext& ctx,
88
Cache
&
cache
,
89
const
MultiComponentState
&,
90
const
Surface
&,
91
PropDirection
direction
,
92
const
BoundaryCheck
& boundaryCheck)
const
;
93
95
MultiComponentState
extrapolateDirectlyImpl
(
96
const
EventContext& ctx,
97
const
MultiComponentState
&,
98
const
Surface
&,
99
PropDirection
direction
,
100
const
BoundaryCheck
& boundaryCheck)
const
;
101
110
void
extrapolateToVolumeBoundary
(
const
EventContext& ctx,
111
Cache
&
cache
,
112
const
MultiComponentState
&,
113
const
Layer
*,
114
const
TrackingVolume
&,
115
PropDirection
direction
)
const
;
116
117
MultiComponentState
extrapolateInsideVolume
(
118
const
EventContext& ctx,
119
Cache
&
cache
,
120
const
MultiComponentState
&,
121
const
Surface
&,
122
const
Layer
*,
123
const
TrackingVolume
&,
124
PropDirection
direction
,
125
const
BoundaryCheck
& boundaryCheck)
const
;
126
128
MultiComponentState
extrapolateFromLayerToLayer
(
129
const
EventContext& ctx,
130
Cache
&
cache
,
131
const
MultiComponentState
&,
132
const
TrackingVolume
&,
133
const
Layer
* startLayer,
134
const
Layer
* destinationLayer,
135
PropDirection
direction
)
const
;
136
138
MultiComponentState
extrapolateToIntermediateLayer
(
139
const
EventContext& ctx,
140
Cache
&
cache
,
141
const
MultiComponentState
&,
142
const
Layer
&,
143
const
TrackingVolume
&,
144
PropDirection
direction
)
const
;
145
147
MultiComponentState
extrapolateToDestinationLayer
(
148
const
EventContext& ctx,
149
Cache
&
cache
,
150
const
MultiComponentState
&,
151
const
Surface
&,
152
const
Layer
&,
153
const
Layer
*,
154
PropDirection
direction
,
155
const
BoundaryCheck
& boundaryCheck)
const
;
156
159
std::unique_ptr<Trk::TrackParameters>
initialiseNavigation
(
160
const
EventContext& ctx,
161
Cache
&
cache
,
162
const
MultiComponentState
& initialState,
163
const
Surface
& surface,
164
const
Layer
*& associatedLayer,
165
const
TrackingVolume
*& currentVolume,
166
const
TrackingVolume
*& destinationVolume,
167
PropDirection
&
direction
)
const
;
168
169
ToolHandle<IPropagator>
m_propagator
{
this
,
"Propagator"
,
""
,
""
};
170
ToolHandle<INavigator>
m_navigator
{
this
,
"Navigator"
,
171
"Trk::Navigator/Navigator"
,
""
};
172
ToolHandle<IMaterialMixtureConvolution>
m_materialUpdator
{
173
this
,
"GsfMaterialConvolution"
,
""
,
"Gsf Material effects"
};
174
BooleanProperty
m_fastField
{
this
,
"UseFastField"
,
false
};
175
176
Trk::MagneticFieldProperties
m_fieldProperties
=
Trk::FullField
;
177
};
178
179
}
// end namespace Trk
180
181
#endif
AthAlgTool.h
GeoPrimitives.h
IMaterialMixtureConvolution.h
Abstract base class for convolution of material effects.
IMultiStateExtrapolator.h
INavigator.h
IPropagator.h
MagneticFieldProperties.h
MaterialEffectsOnTrack.h
TrackParameters.h
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
Trk::BoundaryCheck
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
Definition
BoundaryCheck.h:51
Trk::GsfExtrapolator::initialize
virtual StatusCode initialize() override final
Definition
GsfExtrapolator.cxx:152
Trk::GsfExtrapolator::~GsfExtrapolator
virtual ~GsfExtrapolator() override final
Trk::GsfExtrapolator::extrapolateToIntermediateLayer
MultiComponentState extrapolateToIntermediateLayer(const EventContext &ctx, Cache &cache, const MultiComponentState &, const Layer &, const TrackingVolume &, PropDirection direction) const
Single extrapolation step to an intermediate layer.
Definition
GsfExtrapolator.cxx:758
Trk::GsfExtrapolator::extrapolateFromLayerToLayer
MultiComponentState extrapolateFromLayerToLayer(const EventContext &ctx, Cache &cache, const MultiComponentState &, const TrackingVolume &, const Layer *startLayer, const Layer *destinationLayer, PropDirection direction) const
Layer stepping, stopping at the last layer before destination.
Definition
GsfExtrapolator.cxx:687
Trk::GsfExtrapolator::m_propagator
ToolHandle< IPropagator > m_propagator
Definition
GsfExtrapolator.h:169
Trk::GsfExtrapolator::extrapolateDirectlyImpl
MultiComponentState extrapolateDirectlyImpl(const EventContext &ctx, const MultiComponentState &, const Surface &, PropDirection direction, const BoundaryCheck &boundaryCheck) const
Implementation of extrapolation without material effects.
Definition
GsfExtrapolator.cxx:420
Trk::GsfExtrapolator::initialiseNavigation
std::unique_ptr< Trk::TrackParameters > initialiseNavigation(const EventContext &ctx, Cache &cache, const MultiComponentState &initialState, const Surface &surface, const Layer *&associatedLayer, const TrackingVolume *¤tVolume, const TrackingVolume *&destinationVolume, PropDirection &direction) const
Method to initialise navigation parameters including starting state, layer and volume,...
Definition
GsfExtrapolator.cxx:893
Trk::GsfExtrapolator::GsfExtrapolator
GsfExtrapolator(const std::string &, const std::string &, const IInterface *)
Constructor with AlgTool parameters.
Definition
GsfExtrapolator.cxx:141
Trk::GsfExtrapolator::particleHypothesis
virtual Trk::ParticleHypothesis particleHypothesis() const override final
Definition
GsfExtrapolator.h:79
Trk::GsfExtrapolator::extrapolateImpl
MultiComponentState extrapolateImpl(const EventContext &ctx, Cache &cache, const MultiComponentState &, const Surface &, PropDirection direction, const BoundaryCheck &boundaryCheck) const
Implementation of main extrapolation method.
Definition
GsfExtrapolator.cxx:232
Trk::GsfExtrapolator::extrapolateToVolumeBoundary
void extrapolateToVolumeBoundary(const EventContext &ctx, Cache &cache, const MultiComponentState &, const Layer *, const TrackingVolume &, PropDirection direction) const
Two primary private extrapolation methods.
Definition
GsfExtrapolator.cxx:440
Trk::GsfExtrapolator::extrapolate
virtual MultiComponentState extrapolate(const EventContext &ctx, Cache &, const MultiComponentState &, const Surface &, PropDirection direction, const BoundaryCheck &boundaryCheck) const override final
Extrapolation method applying material affects.
Definition
GsfExtrapolator.cxx:174
Trk::GsfExtrapolator::m_navigator
ToolHandle< INavigator > m_navigator
Definition
GsfExtrapolator.h:170
Trk::GsfExtrapolator::m_fastField
BooleanProperty m_fastField
Definition
GsfExtrapolator.h:174
Trk::GsfExtrapolator::m_materialUpdator
ToolHandle< IMaterialMixtureConvolution > m_materialUpdator
Definition
GsfExtrapolator.h:172
Trk::GsfExtrapolator::extrapolateInsideVolume
MultiComponentState extrapolateInsideVolume(const EventContext &ctx, Cache &cache, const MultiComponentState &, const Surface &, const Layer *, const TrackingVolume &, PropDirection direction, const BoundaryCheck &boundaryCheck) const
Definition
GsfExtrapolator.cxx:569
Trk::GsfExtrapolator::extrapolateToDestinationLayer
MultiComponentState extrapolateToDestinationLayer(const EventContext &ctx, Cache &cache, const MultiComponentState &, const Surface &, const Layer &, const Layer *, PropDirection direction, const BoundaryCheck &boundaryCheck) const
Final extrapolation step to a destination layer.
Definition
GsfExtrapolator.cxx:825
Trk::GsfExtrapolator::extrapolateDirectly
virtual MultiComponentState extrapolateDirectly(const EventContext &ctx, const MultiComponentState &, const Surface &, PropDirection direction, const BoundaryCheck &boundaryCheck) const override final
Extrapolation method without material effects.
Definition
GsfExtrapolator.cxx:197
Trk::GsfExtrapolator::m_fieldProperties
Trk::MagneticFieldProperties m_fieldProperties
Definition
GsfExtrapolator.h:176
Trk::IMultiStateExtrapolator
Definition
IMultiStateExtrapolator.h:40
Trk::Layer
Base Class for a Detector Layer in the Tracking realm.
Definition
Layer.h:72
Trk::MagneticFieldProperties
magnetic field properties to steer the behavior of the extrapolation
Definition
MagneticFieldProperties.h:31
Trk::MaterialProperties
Material with information about thickness of material.
Definition
MaterialProperties.h:40
Trk::Surface
Abstract Base Class for tracking surfaces.
Definition
Surface.h:79
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition
TrackStateOnSurface.h:71
Trk::TrackingGeometry
The TrackingGeometry class is the owner of the constructed TrackingVolumes.
Definition
TrackingGeometry.h:68
Trk::TrackingVolume
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Definition
TrackingVolume.h:119
const
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::PropDirection
PropDirection
PropDirection, enum for direction of the propagation.
Definition
PropDirection.h:19
Trk::MultiComponentState
std::vector< ComponentParameters > MultiComponentState
Definition
ComponentParameters.h:27
Trk::direction
const Amg::Vector3D & direction() const
Method to retrieve the direction at the Intersection.
Trk::FullField
@ FullField
Field is set to be realistic, but within a given Volume.
Definition
MagneticFieldMode.h:21
Trk::ParticleHypothesis
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
Definition
ParticleHypothesis.h:28
Trk::cache
const IIntersectionCache * cache() const
Retrieve the associated cache block, if it exists.
Trk::Cache
Definition
LocalExtrapolatorCache.h:36
Trk::IMultiStateExtrapolator::Cache
MultiStateExtrapolator cache class.
Definition
IMultiStateExtrapolator.h:51
Generated on
for ATLAS Offline Software by
1.17.0