ATLAS Offline Software
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 
16 class MsgStream;
17 
18 namespace Trk {
19 
33 
34  public:
37  public:
38  virtual ~IIntersectionCache() = default;
39  virtual std::unique_ptr<IIntersectionCache> clone() const = 0;
40  };
41 
44  double path);
48 
51  std::unique_ptr<IIntersectionCache> cache);
53 
56 
58  const Amg::Vector3D& position() const;
60 
62  const Amg::Vector3D& direction() const;
64 
66  double pathlength() const;
67  double& pathlength();
68 
70  const IIntersectionCache* cache() const;
72 
73  private:
76  double m_pathlength{0};
77  std::unique_ptr<IIntersectionCache> m_cache;
78 };
79 
81  return m_position;
82 }
83 
85  return m_position;
86 }
87 
89  return m_direction;
90 }
91 
93  return m_direction;
94 }
95 
96 inline double TrackSurfaceIntersection::pathlength() const {
97  return m_pathlength;
98 }
99 
101  return m_pathlength;
102 }
103 
106  return m_cache.get();
107 }
108 
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
Trk::TrackSurfaceIntersection::cache
const IIntersectionCache * cache() const
Retrieve the associated cache block, if it exists.
Definition: TrackSurfaceIntersection.h:105
Trk::TrackSurfaceIntersection::~TrackSurfaceIntersection
~TrackSurfaceIntersection()=default
Destructor.
athena.path
path
python interpreter configuration --------------------------------------—
Definition: athena.py:128
Trk::TrackSurfaceIntersection::m_cache
std::unique_ptr< IIntersectionCache > m_cache
Definition: TrackSurfaceIntersection.h:77
Trk::TrackSurfaceIntersection::IIntersectionCache::~IIntersectionCache
virtual ~IIntersectionCache()=default
Trk::TrackSurfaceIntersection
Definition: TrackSurfaceIntersection.h:32
Trk::TrackSurfaceIntersection::m_pathlength
double m_pathlength
Definition: TrackSurfaceIntersection.h:76
Trk::TrackSurfaceIntersection::IIntersectionCache
Base class for cache block.
Definition: TrackSurfaceIntersection.h:36
Trk::TrackSurfaceIntersection::pathlength
double pathlength() const
Method to retrieve the pathlength propagated till the Intersection.
Definition: TrackSurfaceIntersection.h:96
Trk::TrackSurfaceIntersection::IIntersectionCache::clone
virtual std::unique_ptr< IIntersectionCache > clone() const =0
GeoPrimitives.h
Trk::TrackSurfaceIntersection::operator=
TrackSurfaceIntersection & operator=(TrackSurfaceIntersection &&other)=default
Trk::TrackSurfaceIntersection::position
const Amg::Vector3D & position() const
Method to retrieve the position of the Intersection.
Definition: TrackSurfaceIntersection.h:80
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::TrackSurfaceIntersection::TrackSurfaceIntersection
TrackSurfaceIntersection()=default
Trk::TrackSurfaceIntersection::m_direction
Amg::Vector3D m_direction
Definition: TrackSurfaceIntersection.h:75
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::TrackSurfaceIntersection::direction
const Amg::Vector3D & direction() const
Method to retrieve the direction at the Intersection.
Definition: TrackSurfaceIntersection.h:88
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
Trk::TrackSurfaceIntersection::TrackSurfaceIntersection
TrackSurfaceIntersection(TrackSurfaceIntersection &&other)=default
Trk::operator<<
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
Definition: AlignModule.cxx:204
Trk::TrackSurfaceIntersection::m_position
Amg::Vector3D m_position
Definition: TrackSurfaceIntersection.h:74
Trk::TrackSurfaceIntersection::operator=
TrackSurfaceIntersection & operator=(const TrackSurfaceIntersection &other)
Definition: TrackSurfaceIntersection.cxx:48