ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkExtrapolation
TrkExUtils
TrkExUtils
TrackSurfaceIntersection.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// TrackSurfaceIntersection.h, (c) ATLAS Detector software
8
9
#ifndef TRKEXUTILS_TRACKSURFACEINTERSECTION_H
10
#define TRKEXUTILS_TRACKSURFACEINTERSECTION_H
11
12
// Trk
13
#include <memory>
14
15
#include "
GeoPrimitives/GeoPrimitives.h
"
16
class
MsgStream;
17
18
namespace
Trk
{
19
32
class
TrackSurfaceIntersection
final {
33
34
public
:
36
class
IIntersectionCache
{
37
public
:
38
virtual
~IIntersectionCache
() =
default
;
39
virtual
std::unique_ptr<IIntersectionCache>
clone
()
const
= 0;
40
};
41
43
TrackSurfaceIntersection
(
const
Amg::Vector3D
& pos,
const
Amg::Vector3D
& dir,
44
double
path);
45
TrackSurfaceIntersection
() =
default
;
47
~TrackSurfaceIntersection
() =
default
;
48
49
TrackSurfaceIntersection
(
const
TrackSurfaceIntersection
& other);
50
TrackSurfaceIntersection
(
const
TrackSurfaceIntersection
& other,
51
std::unique_ptr<IIntersectionCache>
cache
);
52
TrackSurfaceIntersection
&
operator=
(
const
TrackSurfaceIntersection
& other);
53
54
TrackSurfaceIntersection
(
TrackSurfaceIntersection
&& other) =
default
;
55
TrackSurfaceIntersection
&
operator=
(
TrackSurfaceIntersection
&& other) =
default
;
56
58
const
Amg::Vector3D
&
position
()
const
;
59
Amg::Vector3D
&
position
();
60
62
const
Amg::Vector3D
&
direction
()
const
;
63
Amg::Vector3D
&
direction
();
64
66
double
pathlength
()
const
;
67
double
&
pathlength
();
68
70
const
IIntersectionCache
*
cache
()
const
;
71
IIntersectionCache
*
cache
();
72
73
private
:
74
Amg::Vector3D
m_position
;
75
Amg::Vector3D
m_direction
;
76
double
m_pathlength
{0};
77
std::unique_ptr<IIntersectionCache>
m_cache
;
78
};
79
80
inline
const
Amg::Vector3D
& TrackSurfaceIntersection::position()
const
{
81
return
m_position
;
82
}
83
84
inline
Amg::Vector3D
& TrackSurfaceIntersection::position() {
85
return
m_position
;
86
}
87
88
inline
const
Amg::Vector3D
& TrackSurfaceIntersection::direction()
const
{
89
return
m_direction
;
90
}
91
92
inline
Amg::Vector3D
& TrackSurfaceIntersection::direction() {
93
return
m_direction
;
94
}
95
96
inline
double
TrackSurfaceIntersection::pathlength()
const
{
97
return
m_pathlength
;
98
}
99
100
inline
double
& TrackSurfaceIntersection::pathlength() {
101
return
m_pathlength
;
102
}
103
104
inline
const
TrackSurfaceIntersection::IIntersectionCache*
105
TrackSurfaceIntersection::cache()
const
{
106
return
m_cache
.get();
107
}
108
109
inline
TrackSurfaceIntersection::IIntersectionCache*
110
TrackSurfaceIntersection::cache() {
111
return
m_cache
.get();
112
}
113
114
117
MsgStream&
operator<<
(MsgStream& sl,
const
TrackSurfaceIntersection
& tsfi);
118
std::ostream&
operator<<
(std::ostream& sl,
119
const
TrackSurfaceIntersection
& tsfi);
120
121
}
// namespace Trk
122
123
#endif
// TRKEXUTILS_TRACKSURFACEINTERSECTION_H
GeoPrimitives.h
TrackSurfaceIntersection
An intersection with a Surface is given by.
Trk::IIntersectionCache
Definition
TrackSurfaceIntersection.h:36
Trk::IIntersectionCache::clone
virtual std::unique_ptr< IIntersectionCache > clone() const =0
Trk::IIntersectionCache::~IIntersectionCache
virtual ~IIntersectionCache()=default
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::operator=
TrackSurfaceIntersection & operator=(const TrackSurfaceIntersection &other)
Trk::operator<<
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
Definition
AlignModule.cxx:204
Trk::direction
const Amg::Vector3D & direction() const
Method to retrieve the direction at the Intersection.
Trk::m_direction
Amg::Vector3D m_direction
Definition
TrackSurfaceIntersection.h:75
Trk::~TrackSurfaceIntersection
~TrackSurfaceIntersection()=default
Destructor.
Trk::TrackSurfaceIntersection
TrackSurfaceIntersection(const Amg::Vector3D &pos, const Amg::Vector3D &dir, double path)
Constructor.
Definition
TrackSurfaceIntersection.cxx:19
Trk::m_position
Amg::Vector3D m_position
Definition
TrackSurfaceIntersection.h:74
Trk::position
const Amg::Vector3D & position() const
Method to retrieve the position of the Intersection.
Trk::pathlength
double pathlength() const
Method to retrieve the pathlength propagated till the Intersection.
Definition
TrackSurfaceIntersection.h:96
Trk::cache
const IIntersectionCache * cache() const
Retrieve the associated cache block, if it exists.
Trk::m_pathlength
double m_pathlength
Definition
TrackSurfaceIntersection.h:76
Trk::m_cache
std::unique_ptr< IIntersectionCache > m_cache
Definition
TrackSurfaceIntersection.h:77
Trk::TrackSurfaceIntersection
TrackSurfaceIntersection()=default
Generated on
for ATLAS Offline Software by
1.17.0