ATLAS Offline Software
Tracking
TrkFitter
TrkGaussianSumFilter
TrkGaussianSumFilter
IMultiStateExtrapolator.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
12
#ifndef TrkIMultiStateExtrapolator_H
13
#define TrkIMultiStateExtrapolator_H
14
15
#include "
TrkGaussianSumFilterUtils/GsfMaterial.h
"
16
#include "
TrkParameters/ComponentParameters.h
"
17
//
18
#include "
TrkEventPrimitives/ParticleHypothesis.h
"
19
#include "
TrkEventPrimitives/PropDirection.h
"
20
#include "
TrkParameters/TrackParameters.h
"
21
#include "
TrkSurfaces/BoundaryCheck.h
"
22
//
23
#include "GaudiKernel/EventContext.h"
24
#include "GaudiKernel/IAlgTool.h"
25
//
26
#include <memory>
27
#include <vector>
28
29
namespace
Trk
{
30
31
class
Surface
;
32
class
Track
;
33
class
TrackingVolume;
34
class
TrackStateOnSurface;
35
36
static
const
InterfaceID IID_IMultiStateExtrapolator(
"IMultiStateExtrapolator"
,
37
1, 0);
38
39
class
IMultiStateExtrapolator
:
virtual
public
IAlgTool
40
{
41
public
:
50
struct
Cache
51
{
53
const
Surface
*
m_recallSurface
=
nullptr
;
55
const
Layer
*
m_recallLayer
=
nullptr
;
57
const
TrackingVolume
*
m_recallTrackingVolume
=
nullptr
;
58
// Current State at boundary (not owning)
59
const
MultiComponentState
*
m_stateAtBoundary
=
nullptr
;
60
// Current Navigation parameters
61
std::unique_ptr<TrackParameters>
m_navigationParameters
=
nullptr
;
62
// Ptr to current volume (not owning)
63
const
TrackingVolume
*
m_trackingVolume
=
nullptr
;
65
std::vector<MultiComponentState>
m_mcsRecycleBin
;
66
// Vector of combined material effects
67
std::vector<GsfMaterial::Combined>
m_materialEffectsCaches
;
68
Cache
() {
m_materialEffectsCaches
.reserve(12); }
69
};
70
72
virtual
~IMultiStateExtrapolator
() =
default
;
73
75
static
const
InterfaceID&
interfaceID
()
76
{
77
return
IID_IMultiStateExtrapolator;
78
};
79
81
virtual
MultiComponentState
extrapolate
(
82
const
EventContext& ctx,
83
Cache
&,
84
const
MultiComponentState
&,
85
const
Surface
&,
86
PropDirection
direction,
87
const
BoundaryCheck
& boundaryCheck)
const
= 0;
88
90
virtual
MultiComponentState
extrapolateDirectly
(
91
const
EventContext& ctx,
92
const
MultiComponentState
&,
93
const
Surface
&,
94
PropDirection
direction,
95
const
BoundaryCheck
& boundaryCheck)
const
= 0;
96
98
virtual
Trk::ParticleHypothesis
particleHypothesis
()
const
= 0;
99
100
101
};
102
103
}
// end trk namespace
104
105
#endif
Trk::IMultiStateExtrapolator::particleHypothesis
virtual Trk::ParticleHypothesis particleHypothesis() const =0
TrackParameters.h
Trk::IMultiStateExtrapolator::Cache::m_recallSurface
const Surface * m_recallSurface
< Surface for recall (not owning)
Definition:
IMultiStateExtrapolator.h:53
Trk::IMultiStateExtrapolator::extrapolateDirectly
virtual MultiComponentState extrapolateDirectly(const EventContext &ctx, const MultiComponentState &, const Surface &, PropDirection direction, const BoundaryCheck &boundaryCheck) const =0
Configured AlgTool extrapolation without material effects method (2)
Surface
Definition:
Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
Trk::IMultiStateExtrapolator::Cache::m_stateAtBoundary
const MultiComponentState * m_stateAtBoundary
Definition:
IMultiStateExtrapolator.h:59
PropDirection.h
GsfMaterial.h
Trk::IMultiStateExtrapolator::extrapolate
virtual MultiComponentState extrapolate(const EventContext &ctx, Cache &, const MultiComponentState &, const Surface &, PropDirection direction, const BoundaryCheck &boundaryCheck) const =0
Configured AlgTool extrapolation method (1)
Trk::IMultiStateExtrapolator::Cache::Cache
Cache()
Definition:
IMultiStateExtrapolator.h:68
Trk::ParticleHypothesis
ParticleHypothesis
Definition:
ParticleHypothesis.h:28
Trk::PropDirection
PropDirection
Definition:
PropDirection.h:19
Trk::IMultiStateExtrapolator::~IMultiStateExtrapolator
virtual ~IMultiStateExtrapolator()=default
Virtual destructor.
Trk::MultiComponentState
std::vector< ComponentParameters > MultiComponentState
Definition:
ComponentParameters.h:27
Trk::IMultiStateExtrapolator::Cache::m_recallTrackingVolume
const TrackingVolume * m_recallTrackingVolume
Definition:
IMultiStateExtrapolator.h:57
Trk::IMultiStateExtrapolator::interfaceID
static const InterfaceID & interfaceID()
AlgTool interface method.
Definition:
IMultiStateExtrapolator.h:75
Trk::IMultiStateExtrapolator::Cache
MultiStateExtrapolator cache class.
Definition:
IMultiStateExtrapolator.h:51
ParticleHypothesis.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition:
FakeTrackBuilder.h:9
Trk::IMultiStateExtrapolator::Cache::m_recallLayer
const Layer * m_recallLayer
Tracking volume for recall (not owning)
Definition:
IMultiStateExtrapolator.h:55
ComponentParameters.h
Definition of component parameters for use in a mixture of many components. In this regime each track...
Trk::BoundaryCheck
Definition:
BoundaryCheck.h:51
BoundaryCheck.h
Trk::IMultiStateExtrapolator::Cache::m_materialEffectsCaches
std::vector< GsfMaterial::Combined > m_materialEffectsCaches
Definition:
IMultiStateExtrapolator.h:67
Trk::IMultiStateExtrapolator::Cache::m_trackingVolume
const TrackingVolume * m_trackingVolume
keep track of the MultiComponentStates
Definition:
IMultiStateExtrapolator.h:63
Track
Definition:
TriggerChamberClusterOnTrackCreator.h:21
Trk::IMultiStateExtrapolator::Cache::m_mcsRecycleBin
std::vector< MultiComponentState > m_mcsRecycleBin
Definition:
IMultiStateExtrapolator.h:65
Trk::IMultiStateExtrapolator::Cache::m_navigationParameters
std::unique_ptr< TrackParameters > m_navigationParameters
Definition:
IMultiStateExtrapolator.h:61
Trk::Surface
Definition:
Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:79
Trk::TrackingVolume
Definition:
TrackingVolume.h:119
Trk::IMultiStateExtrapolator
Definition:
IMultiStateExtrapolator.h:40
Trk::Layer
Definition:
Layer.h:72
Generated on Wed Sep 3 2025 21:11:23 for ATLAS Offline Software by
1.8.18