ATLAS Offline Software
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
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
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::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
TrackParameters.h
Trk::MagneticFieldProperties
Definition:
MagneticFieldProperties.h:31
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::Cache
Definition:
LocalExtrapolatorCache.h:36
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
Surface
Definition:
Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
IPropagator.h
const
bool const RAWDATA *ch2 const
Definition:
LArRodBlockPhysicsV0.cxx:560
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
python.RingerConstants.Layer
Layer
Definition:
RingerConstants.py:42
Trk::GsfExtrapolator::m_propagator
ToolHandle< IPropagator > m_propagator
Definition:
GsfExtrapolator.h:169
Trk::GsfExtrapolator::particleHypothesis
virtual Trk::ParticleHypothesis particleHypothesis() const override final
Definition:
GsfExtrapolator.h:79
MagneticFieldProperties.h
MaterialEffectsOnTrack.h
IMultiStateExtrapolator.h
Trk::ParticleHypothesis
ParticleHypothesis
Definition:
ParticleHypothesis.h:28
GeoPrimitives.h
Trk::GsfExtrapolator::m_fastField
BooleanProperty m_fastField
Definition:
GsfExtrapolator.h:174
Trk::PropDirection
PropDirection
Definition:
PropDirection.h:19
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition:
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
Trk::MultiComponentState
std::vector< ComponentParameters > MultiComponentState
Definition:
ComponentParameters.h:27
Trk::GsfExtrapolator::m_materialUpdator
ToolHandle< IMaterialMixtureConvolution > m_materialUpdator
Definition:
GsfExtrapolator.h:172
Trk::GsfExtrapolator::m_fieldProperties
Trk::MagneticFieldProperties m_fieldProperties
Definition:
GsfExtrapolator.h:176
Trk::IMultiStateExtrapolator::Cache
MultiStateExtrapolator cache class.
Definition:
IMultiStateExtrapolator.h:51
Trk::GsfExtrapolator::initialize
virtual StatusCode initialize() override final
Definition:
GsfExtrapolator.cxx:152
columnar::final
CM final
Definition:
ColumnAccessor.h:106
Trk::FullField
@ FullField
Field is set to be realistic, but within a given Volume.
Definition:
MagneticFieldMode.h:21
Trk::GsfExtrapolator::~GsfExtrapolator
virtual ~GsfExtrapolator() override final
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition:
FakeTrackBuilder.h:9
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
Definition:
GsfExtrapolator.h:53
INavigator.h
Trk::BoundaryCheck
Definition:
BoundaryCheck.h:51
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
AthAlgTool
Definition:
AthAlgTool.h:26
IMaterialMixtureConvolution.h
Abstract base class for convolution of material effects.
Trk::Surface
Definition:
Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:79
Trk::TrackingVolume
Definition:
TrackingVolume.h:119
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::IMultiStateExtrapolator
Definition:
IMultiStateExtrapolator.h:40
Trk::GsfExtrapolator::GsfExtrapolator
GsfExtrapolator(const std::string &, const std::string &, const IInterface *)
Constructor with AlgTool parameters.
Definition:
GsfExtrapolator.cxx:141
Trk::Layer
Definition:
Layer.h:72
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
Generated on Mon Sep 29 2025 21:10:58 for ATLAS Offline Software by
1.8.18