ATLAS Offline Software
Loading...
Searching...
No Matches
VertexOnTrack.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
6// VertexOnTrack.h, (c) ATLAS Detector software
8
9#ifndef TRKVERTEXONTRACK_VERTEXONTRACK_H
10#define TRKVERTEXONTRACK_VERTEXONTRACK_H
11
12// Trk
16
20
21#include "GaudiKernel/GaudiException.h"
22#include <iosfwd>
23#include <optional>
24
25class MsgStream;
27
28namespace Trk {
29
30class RecVertex;
31
41
42class VertexOnTrack final
43 : public MeasurementBase
45{
46
47 friend class ::TrackCollectionCnv;
48
49public:
51 VertexOnTrack() = default;
52
53 // default copy move dtor
54 VertexOnTrack(const VertexOnTrack&) = default;
55 VertexOnTrack(VertexOnTrack&&) noexcept = default;
56 VertexOnTrack& operator=(const VertexOnTrack&) = default;
57 VertexOnTrack& operator=(VertexOnTrack&&) noexcept = default;
58 virtual ~VertexOnTrack() = default;
59
63 Amg::MatrixX&& locerr,
64 const PerigeeSurface& assocSurf);
65
67 Amg::MatrixX&& locerr,
69
72 VertexOnTrack(const Trk::RecVertex& rvertex, const Trk::Perigee& mperigee);
73
74
76 VertexOnTrack* clone() const override final;
77
80 {
81 return std::unique_ptr<VertexOnTrack>(clone());
82 }
83
86 virtual const PerigeeSurface& associatedSurface() const override final;
87
90 virtual const Amg::Vector3D& globalPosition() const override final;
91
93 virtual bool type(MeasurementBaseType::Type type) const override final
94 {
96 }
97
99 virtual MsgStream& dump(MsgStream& out) const override final;
101 virtual std::ostream& dump(std::ostream& out) const override final;
102
103 // perhaps return Vertex Object
104
105protected:
107 std::optional<Amg::Vector3D> m_globalPosition = std::nullopt;
108};
109
110inline VertexOnTrack*
112{
113 return new VertexOnTrack(*this);
114}
115
116inline const PerigeeSurface&
121
122}
123
124#endif // TRKVERTEXONTRACK_VERTEXONTRACK_H
125
Eigen::Matrix< double, 3, 1 > Vector3D
MeasurementBase()=default
Default constructor - needed for POOL/SEAL.
Class describing the Line to which the Perigee refers to.
Trk::RecVertex inherits from Trk::Vertex.
Definition RecVertex.h:44
Class to handle Vertex On Tracks, it inherits from the common MeasurementBase.
virtual const Amg::Vector3D & globalPosition() const override final
Interface method to get the global Position.
VertexOnTrack()=default
Default Constructor for POOL.
std::unique_ptr< VertexOnTrack > uniqueClone() const
NVI clone returning unique_ptr.
VertexOnTrack(VertexOnTrack &&) noexcept=default
VertexOnTrack(const VertexOnTrack &)=default
virtual const PerigeeSurface & associatedSurface() const override final
returns the surface for the local to global transformation
std::optional< Amg::Vector3D > m_globalPosition
Global position of the VoT.
virtual bool type(MeasurementBaseType::Type type) const override final
Extended method checking the type.
VertexOnTrack * clone() const override final
Pseudo-constructor, needed to avoid excessive RTTI.
STL class.
Definition of ATLAS Math & Geometry primitives (Amg)
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
SurfacePtrHolderImpl< PerigeeSurface > PerigeeSurfacePtrHolder
std::unique_ptr< S, SurfaceDeleter< S > > SurfaceUniquePtrT
-event-from-file
STL namespace.