9#ifndef TRKEXUTILS_TRACKSURFACEINTERSECTION_H
10#define TRKEXUTILS_TRACKSURFACEINTERSECTION_H
39 virtual std::unique_ptr<IIntersectionCache>
clone()
const = 0;
51 std::unique_ptr<IIntersectionCache>
cache);
77 std::unique_ptr<IIntersectionCache>
m_cache;
80inline const Amg::Vector3D& TrackSurfaceIntersection::position()
const {
88inline const Amg::Vector3D& TrackSurfaceIntersection::direction()
const {
96inline double TrackSurfaceIntersection::pathlength()
const {
100inline double& TrackSurfaceIntersection::pathlength() {
104inline const TrackSurfaceIntersection::IIntersectionCache*
105TrackSurfaceIntersection::cache()
const {
109inline TrackSurfaceIntersection::IIntersectionCache*
110TrackSurfaceIntersection::cache() {
An intersection with a Surface is given by.
virtual std::unique_ptr< IIntersectionCache > clone() const =0
virtual ~IIntersectionCache()=default
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
TrackSurfaceIntersection & operator=(const TrackSurfaceIntersection &other)
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
const Amg::Vector3D & direction() const
Method to retrieve the direction at the Intersection.
Amg::Vector3D m_direction
~TrackSurfaceIntersection()=default
Destructor.
TrackSurfaceIntersection(const Amg::Vector3D &pos, const Amg::Vector3D &dir, double path)
Constructor.
const Amg::Vector3D & position() const
Method to retrieve the position of the Intersection.
double pathlength() const
Method to retrieve the pathlength propagated till the Intersection.
const IIntersectionCache * cache() const
Retrieve the associated cache block, if it exists.
std::unique_ptr< IIntersectionCache > m_cache
TrackSurfaceIntersection()=default