ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
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
11
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
BoundaryCheck.h
ComponentParameters.h
Definition of component parameters for use in a mixture of many components. In this regime each track...
GsfMaterial.h
ParticleHypothesis.h
PropDirection.h
TrackParameters.h
Trk::BoundaryCheck
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
Definition
BoundaryCheck.h:51
Trk::IMultiStateExtrapolator
Definition
IMultiStateExtrapolator.h:40
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::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).
Trk::IMultiStateExtrapolator::~IMultiStateExtrapolator
virtual ~IMultiStateExtrapolator()=default
Virtual destructor.
Trk::IMultiStateExtrapolator::interfaceID
static const InterfaceID & interfaceID()
AlgTool interface method.
Definition
IMultiStateExtrapolator.h:75
Trk::IMultiStateExtrapolator::particleHypothesis
virtual Trk::ParticleHypothesis particleHypothesis() const =0
Trk::Layer
Base Class for a Detector Layer in the Tracking realm.
Definition
Layer.h:72
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::Track
The ATLAS Track class.
Definition
Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Trk::TrackingVolume
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Definition
TrackingVolume.h:119
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::ParticleHypothesis
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
Definition
ParticleHypothesis.h:28
Trk::IID_IMultiStateExtrapolator
static const InterfaceID IID_IMultiStateExtrapolator("IMultiStateExtrapolator", 1, 0)
Trk::IMultiStateExtrapolator::Cache
MultiStateExtrapolator cache class.
Definition
IMultiStateExtrapolator.h:51
Trk::IMultiStateExtrapolator::Cache::m_recallSurface
const Surface * m_recallSurface
< Surface for recall (not owning)
Definition
IMultiStateExtrapolator.h:53
Trk::IMultiStateExtrapolator::Cache::Cache
Cache()
Definition
IMultiStateExtrapolator.h:68
Trk::IMultiStateExtrapolator::Cache::m_recallLayer
const Layer * m_recallLayer
Tracking volume for recall (not owning).
Definition
IMultiStateExtrapolator.h:55
Trk::IMultiStateExtrapolator::Cache::m_recallTrackingVolume
const TrackingVolume * m_recallTrackingVolume
Definition
IMultiStateExtrapolator.h:57
Trk::IMultiStateExtrapolator::Cache::m_navigationParameters
std::unique_ptr< TrackParameters > m_navigationParameters
Definition
IMultiStateExtrapolator.h:61
Trk::IMultiStateExtrapolator::Cache::m_trackingVolume
const TrackingVolume * m_trackingVolume
keep track of the MultiComponentStates
Definition
IMultiStateExtrapolator.h:63
Trk::IMultiStateExtrapolator::Cache::m_mcsRecycleBin
std::vector< MultiComponentState > m_mcsRecycleBin
Definition
IMultiStateExtrapolator.h:65
Trk::IMultiStateExtrapolator::Cache::m_stateAtBoundary
const MultiComponentState * m_stateAtBoundary
Definition
IMultiStateExtrapolator.h:59
Trk::IMultiStateExtrapolator::Cache::m_materialEffectsCaches
std::vector< GsfMaterial::Combined > m_materialEffectsCaches
Definition
IMultiStateExtrapolator.h:67
Generated on
for ATLAS Offline Software by
1.17.0