ATLAS Offline Software
Tracking
TrkFitter
TrkGaussianSumFilter
TrkGaussianSumFilter
GsfExtrapolator.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
13
#ifndef TrkGsfExtrapolator_H
14
#define TrkGsfExtrapolator_H
15
16
#include "
TrkGaussianSumFilter/IMultiStateExtrapolator.h
"
17
18
#include "
AthenaBaseComps/AthAlgTool.h
"
19
#include "Gaudi/Accumulators.h"
20
#include "GaudiKernel/ToolHandle.h"
21
22
#include "
TrkExInterfaces/INavigator.h
"
23
#include "
TrkExInterfaces/IPropagator.h
"
24
#include "
TrkGaussianSumFilter/IMaterialMixtureConvolution.h
"
25
26
#include "
GeoPrimitives/GeoPrimitives.h
"
27
#include "
TrkGeometry/MagneticFieldProperties.h
"
28
#include "
TrkMaterialOnTrack/MaterialEffectsOnTrack.h
"
29
#include "
TrkParameters/TrackParameters.h
"
30
31
#include <memory>
32
#include <string>
33
#include <vector>
34
35
namespace
Trk
{
36
37
class
Layer
;
38
class
Surface
;
39
class
TrackingVolume;
40
class
TrackingGeometry;
41
class
TrackStateOnSurface;
42
class
MaterialProperties;
45
class
GsfExtrapolator
final
46
:
public
AthAlgTool
47
,
virtual
public
IMultiStateExtrapolator
48
{
49
50
public
:
52
GsfExtrapolator
(
const
std::string&,
const
std::string&,
const
IInterface*);
53
55
virtual
~GsfExtrapolator
() override final;
56
58
virtual
StatusCode
initialize
() override final;
59
61
virtual
MultiComponentState
extrapolate
(
62
const
EventContext& ctx,
63
Cache
&,
64
const
MultiComponentState
&,
65
const
Surface
&,
66
PropDirection
direction,
67
const
BoundaryCheck
& boundaryCheck,
68
ParticleHypothesis
particleHypothesis =
69
nonInteracting
)
const
override final;
70
72
virtual
MultiComponentState
extrapolateDirectly
(
73
const
EventContext& ctx,
74
const
MultiComponentState
&,
75
const
Surface
&,
76
PropDirection
direction,
77
const
BoundaryCheck
& boundaryCheck,
78
ParticleHypothesis
particleHypothesis =
79
nonInteracting
)
const
override final;
80
81
private
:
83
MultiComponentState
extrapolateImpl
(
84
const
EventContext& ctx,
85
Cache
& cache,
86
const
MultiComponentState
&,
87
const
Surface
&,
88
PropDirection
direction,
89
const
BoundaryCheck
& boundaryCheck,
90
ParticleHypothesis
particleHypothesis)
const
;
91
93
MultiComponentState
extrapolateDirectlyImpl
(
94
const
EventContext& ctx,
95
const
MultiComponentState
&,
96
const
Surface
&,
97
PropDirection
direction =
anyDirection
,
98
const
BoundaryCheck
& boundaryCheck = true,
99
ParticleHypothesis
particleHypothesis =
nonInteracting
)
const
;
100
109
void
extrapolateToVolumeBoundary
(
const
EventContext& ctx,
110
Cache
& cache,
111
const
MultiComponentState
&,
112
const
Layer
*,
113
const
TrackingVolume
&,
114
PropDirection
direction,
115
ParticleHypothesis
particleHypothesis)
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,
126
ParticleHypothesis
particleHypothesis)
const
;
127
131
MultiComponentState
extrapolateFromLayerToLayer
(
132
const
EventContext& ctx,
133
Cache
& cache,
134
const
MultiComponentState
&,
135
const
TrackingVolume
&,
136
const
Layer
* startLayer,
137
const
Layer
* destinationLayer,
138
PropDirection
direction,
139
ParticleHypothesis
particleHypothesis)
const
;
140
142
MultiComponentState
extrapolateToIntermediateLayer
(
143
const
EventContext& ctx,
144
Cache
& cache,
145
const
MultiComponentState
&,
146
const
Layer
&,
147
const
TrackingVolume
&,
148
PropDirection
direction,
149
ParticleHypothesis
particleHypothesis,
150
bool
perpendicularCheck = true)
const
;
151
153
MultiComponentState
extrapolateToDestinationLayer
(
154
const
EventContext& ctx,
155
Cache
& cache,
156
const
MultiComponentState
&,
157
const
Surface
&,
158
const
Layer
&,
159
const
Layer
*,
160
PropDirection
direction,
161
const
BoundaryCheck
& boundaryCheck,
162
ParticleHypothesis
particleHypothesis)
const
;
163
166
void
initialiseNavigation
(
167
const
EventContext& ctx,
168
Cache
& cache,
169
const
MultiComponentState
& initialState,
170
const
Surface
& surface,
171
const
Layer
*& associatedLayer,
172
const
TrackingVolume
*& currentVolume,
173
const
TrackingVolume
*& destinationVolume,
174
std::unique_ptr<
TrackParameters
>& referenceParameters,
175
PropDirection
direction)
const
;
176
177
ToolHandle<
IPropagator
>
m_propagator
{
this
,
"Propagator"
,
""
,
""
};
178
ToolHandle<INavigator>
m_navigator
{
this
,
179
"Navigator"
,
180
"Trk::Navigator/Navigator"
,
181
""
};
182
ToolHandle<IMaterialMixtureConvolution>
m_materialUpdator
{
183
this
,
184
"GsfMaterialConvolution"
,
185
"Trk::GsfMaterialMixtureConvolution/GsfMaterialMixtureConvolution"
,
186
""
187
};
188
190
bool
m_fastField
;
191
Trk::MagneticFieldProperties
m_fieldProperties
;
192
};
193
194
}
// end namespace Trk
195
196
#endif
Trk::anyDirection
@ anyDirection
Definition:
PropDirection.h:22
Trk::GsfExtrapolator::m_navigator
ToolHandle< INavigator > m_navigator
Definition:
GsfExtrapolator.h:178
Trk::GsfExtrapolator::extrapolateDirectlyImpl
MultiComponentState extrapolateDirectlyImpl(const EventContext &ctx, const MultiComponentState &, const Surface &, PropDirection direction=anyDirection, const BoundaryCheck &boundaryCheck=true, ParticleHypothesis particleHypothesis=nonInteracting) const
Implementation of extrapolation without material effects.
Definition:
GsfExtrapolator.cxx:452
TrackParameters.h
Trk::GsfExtrapolator::extrapolateInsideVolume
MultiComponentState extrapolateInsideVolume(const EventContext &ctx, Cache &cache, const MultiComponentState &, const Surface &, const Layer *, const TrackingVolume &, PropDirection direction, const BoundaryCheck &boundaryCheck, ParticleHypothesis particleHypothesis) const
Definition:
GsfExtrapolator.cxx:606
Trk::MagneticFieldProperties
Definition:
MagneticFieldProperties.h:31
Surface
Definition:
Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
IPropagator.h
const
bool const RAWDATA *ch2 const
Definition:
LArRodBlockPhysicsV0.cxx:560
python.RingerConstants.Layer
Layer
Definition:
RingerConstants.py:42
Trk::GsfExtrapolator::m_propagator
ToolHandle< IPropagator > m_propagator
Definition:
GsfExtrapolator.h:177
Trk::GsfExtrapolator::initialiseNavigation
void initialiseNavigation(const EventContext &ctx, Cache &cache, const MultiComponentState &initialState, const Surface &surface, const Layer *&associatedLayer, const TrackingVolume *¤tVolume, const TrackingVolume *&destinationVolume, std::unique_ptr< TrackParameters > &referenceParameters, PropDirection direction) const
Method to initialise navigation parameters including starting state, layer and volume,...
Definition:
GsfExtrapolator.cxx:942
Trk::GsfExtrapolator::extrapolateDirectly
virtual MultiComponentState extrapolateDirectly(const EventContext &ctx, const MultiComponentState &, const Surface &, PropDirection direction, const BoundaryCheck &boundaryCheck, ParticleHypothesis particleHypothesis=nonInteracting) const override final
Configured AlgTool extrapolation without material effects method (2)
Definition:
GsfExtrapolator.cxx:206
MagneticFieldProperties.h
MaterialEffectsOnTrack.h
IMultiStateExtrapolator.h
Trk::ParticleHypothesis
ParticleHypothesis
Definition:
ParticleHypothesis.h:25
GeoPrimitives.h
Trk::PropDirection
PropDirection
Definition:
PropDirection.h:19
Trk::IPropagator
Definition:
IPropagator.h:55
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition:
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
Trk::GsfExtrapolator::extrapolate
virtual MultiComponentState extrapolate(const EventContext &ctx, Cache &, const MultiComponentState &, const Surface &, PropDirection direction, const BoundaryCheck &boundaryCheck, ParticleHypothesis particleHypothesis=nonInteracting) const override final
Configured AlgTool extrapolation method (1)
Definition:
GsfExtrapolator.cxx:181
Trk::MultiComponentState
std::vector< ComponentParameters > MultiComponentState
Definition:
ComponentParameters.h:27
Trk::GsfExtrapolator::m_materialUpdator
ToolHandle< IMaterialMixtureConvolution > m_materialUpdator
Switch to turn on/off surface based material effects.
Definition:
GsfExtrapolator.h:182
Trk::GsfExtrapolator::m_fieldProperties
Trk::MagneticFieldProperties m_fieldProperties
Definition:
GsfExtrapolator.h:191
Trk::ParametersBase
Definition:
ParametersBase.h:55
Trk::IMultiStateExtrapolator::Cache
MultiStateExtrapolator cache class.
Definition:
IMultiStateExtrapolator.h:56
Trk::GsfExtrapolator::initialize
virtual StatusCode initialize() override final
AlgTool initialise method.
Definition:
GsfExtrapolator.cxx:158
Trk::GsfExtrapolator::~GsfExtrapolator
virtual ~GsfExtrapolator() override final
Destructor.
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition:
FakeTrackBuilder.h:9
private
#define private
Definition:
DetDescrConditionsDict_dict_fixes.cxx:13
Trk::nonInteracting
@ nonInteracting
Definition:
ParticleHypothesis.h:25
Trk::GsfExtrapolator::extrapolateToVolumeBoundary
void extrapolateToVolumeBoundary(const EventContext &ctx, Cache &cache, const MultiComponentState &, const Layer *, const TrackingVolume &, PropDirection direction, ParticleHypothesis particleHypothesis) const
Two primary private extrapolation methods.
Definition:
GsfExtrapolator.cxx:473
Trk::GsfExtrapolator::extrapolateToDestinationLayer
MultiComponentState extrapolateToDestinationLayer(const EventContext &ctx, Cache &cache, const MultiComponentState &, const Surface &, const Layer &, const Layer *, PropDirection direction, const BoundaryCheck &boundaryCheck, ParticleHypothesis particleHypothesis) const
Final extrapolation step to a destination layer.
Definition:
GsfExtrapolator.cxx:872
Trk::GsfExtrapolator
Definition:
GsfExtrapolator.h:48
INavigator.h
Trk::BoundaryCheck
Definition:
BoundaryCheck.h:51
AthAlgTool
Definition:
AthAlgTool.h:26
IMaterialMixtureConvolution.h
Abstract base class for convolution of material effects.
Trk::Surface
Definition:
Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::TrackingVolume
Definition:
TrackingVolume.h:121
Trk::GsfExtrapolator::extrapolateToIntermediateLayer
MultiComponentState extrapolateToIntermediateLayer(const EventContext &ctx, Cache &cache, const MultiComponentState &, const Layer &, const TrackingVolume &, PropDirection direction, ParticleHypothesis particleHypothesis, bool perpendicularCheck=true) const
Single extrapolation step to an intermediate layer.
Definition:
GsfExtrapolator.cxx:801
Trk::GsfExtrapolator::m_fastField
bool m_fastField
Definition:
GsfExtrapolator.h:190
Trk::GsfExtrapolator::extrapolateImpl
MultiComponentState extrapolateImpl(const EventContext &ctx, Cache &cache, const MultiComponentState &, const Surface &, PropDirection direction, const BoundaryCheck &boundaryCheck, ParticleHypothesis particleHypothesis) const
Implementation of main extrapolation method.
Definition:
GsfExtrapolator.cxx:243
Trk::IMultiStateExtrapolator
Definition:
IMultiStateExtrapolator.h:45
Trk::GsfExtrapolator::GsfExtrapolator
GsfExtrapolator(const std::string &, const std::string &, const IInterface *)
Constructor with AlgTool parameters.
Definition:
GsfExtrapolator.cxx:145
Trk::Layer
Definition:
Layer.h:73
Trk::GsfExtrapolator::extrapolateFromLayerToLayer
MultiComponentState extrapolateFromLayerToLayer(const EventContext &ctx, Cache &cache, const MultiComponentState &, const TrackingVolume &, const Layer *startLayer, const Layer *destinationLayer, PropDirection direction, ParticleHypothesis particleHypothesis) const
Additional private extrapolation methods.
Definition:
GsfExtrapolator.cxx:728
Generated on Thu Nov 7 2024 21:16:00 for ATLAS Offline Software by
1.8.18