ATLAS Offline Software
Tracking
TrkFitter
TrkGaussianSumFilter
TrkGaussianSumFilter
IMultiStateExtrapolator.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 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
41
static
const
InterfaceID IID_IMultiStateExtrapolator(
"IMultiStateExtrapolator"
,
42
1, 0);
43
44
class
IMultiStateExtrapolator
:
virtual
public
IAlgTool
45
{
46
public
:
55
struct
Cache
56
{
58
bool
m_recall
=
false
;
60
const
Surface
*
m_recallSurface
=
nullptr
;
62
const
Layer
*
m_recallLayer
=
nullptr
;
64
const
TrackingVolume
*
m_recallTrackingVolume
=
nullptr
;
65
// Current State at boundary (not owning)
66
const
MultiComponentState
*
m_stateAtBoundary
=
nullptr
;
67
// Current Navigation parameters
68
std::unique_ptr<TrackParameters>
m_navigationParameters
=
nullptr
;
69
// Ptr to current volume (not owning)
70
const
TrackingVolume
*
m_trackingVolume
=
nullptr
;
72
std::vector<MultiComponentState>
m_mcsRecycleBin
;
73
// Vector of combined material effects
74
std::vector<GsfMaterial::Combined>
m_materialEffectsCaches
;
75
Cache
() {
m_materialEffectsCaches
.reserve(12); }
76
};
77
79
virtual
~IMultiStateExtrapolator
() =
default
;
80
82
static
const
InterfaceID&
interfaceID
()
83
{
84
return
IID_IMultiStateExtrapolator;
85
};
86
88
virtual
MultiComponentState
extrapolate
(
89
const
EventContext& ctx,
90
Cache
&,
91
const
MultiComponentState
&,
92
const
Surface
&,
93
PropDirection
direction,
94
const
BoundaryCheck
& boundaryCheck,
95
ParticleHypothesis
particleHypothesis)
const
= 0;
96
98
virtual
MultiComponentState
extrapolateDirectly
(
99
const
EventContext& ctx,
100
const
MultiComponentState
&,
101
const
Surface
&,
102
PropDirection
direction,
103
const
BoundaryCheck
& boundaryCheck,
104
ParticleHypothesis
particleHypothesis)
const
= 0;
105
};
106
107
}
// end trk namespace
108
109
#endif
TrackParameters.h
Trk::IMultiStateExtrapolator::Cache::m_recallSurface
const Surface * m_recallSurface
Layer for recall (not owning)
Definition:
IMultiStateExtrapolator.h:60
Surface
Definition:
Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
Trk::IMultiStateExtrapolator::Cache::m_stateAtBoundary
const MultiComponentState * m_stateAtBoundary
Definition:
IMultiStateExtrapolator.h:66
PropDirection.h
GsfMaterial.h
Trk::IMultiStateExtrapolator::Cache::Cache
Cache()
Definition:
IMultiStateExtrapolator.h:75
Trk::IMultiStateExtrapolator::extrapolate
virtual MultiComponentState extrapolate(const EventContext &ctx, Cache &, const MultiComponentState &, const Surface &, PropDirection direction, const BoundaryCheck &boundaryCheck, ParticleHypothesis particleHypothesis) const =0
Configured AlgTool extrapolation method (1)
Trk::ParticleHypothesis
ParticleHypothesis
Definition:
ParticleHypothesis.h:25
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:64
Trk::IMultiStateExtrapolator::interfaceID
static const InterfaceID & interfaceID()
AlgTool interface method.
Definition:
IMultiStateExtrapolator.h:82
Trk::IMultiStateExtrapolator::Cache
MultiStateExtrapolator cache class.
Definition:
IMultiStateExtrapolator.h:56
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:62
ComponentParameters.h
Definition of component parameters for use in a mixture of many components. In this regime each track...
Trk::IMultiStateExtrapolator::Cache::m_recall
bool m_recall
< Flag the recall solution
Definition:
IMultiStateExtrapolator.h:58
Trk::IMultiStateExtrapolator::extrapolateDirectly
virtual MultiComponentState extrapolateDirectly(const EventContext &ctx, const MultiComponentState &, const Surface &, PropDirection direction, const BoundaryCheck &boundaryCheck, ParticleHypothesis particleHypothesis) const =0
Configured AlgTool extrapolation without material effects method (2)
Trk::BoundaryCheck
Definition:
BoundaryCheck.h:51
BoundaryCheck.h
Trk::IMultiStateExtrapolator::Cache::m_materialEffectsCaches
std::vector< GsfMaterial::Combined > m_materialEffectsCaches
Definition:
IMultiStateExtrapolator.h:74
Trk::IMultiStateExtrapolator::Cache::m_trackingVolume
const TrackingVolume * m_trackingVolume
keep track of the MultiComponentStates
Definition:
IMultiStateExtrapolator.h:70
Track
Definition:
TriggerChamberClusterOnTrackCreator.h:21
Trk::IMultiStateExtrapolator::Cache::m_mcsRecycleBin
std::vector< MultiComponentState > m_mcsRecycleBin
Definition:
IMultiStateExtrapolator.h:72
Trk::IMultiStateExtrapolator::Cache::m_navigationParameters
std::unique_ptr< TrackParameters > m_navigationParameters
Definition:
IMultiStateExtrapolator.h:68
Trk::Surface
Definition:
Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::TrackingVolume
Definition:
TrackingVolume.h:121
Trk::IMultiStateExtrapolator
Definition:
IMultiStateExtrapolator.h:45
Trk::Layer
Definition:
Layer.h:73
Generated on Thu Nov 7 2024 21:16:44 for ATLAS Offline Software by
1.8.18