ATLAS Offline Software
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 
25 class MsgStream;
26 class TrackCollectionCnv;
27 
28 namespace Trk {
29 
30 class RecVertex;
31 
42 class VertexOnTrack final
43  : public MeasurementBase
45 {
46 
47  friend class ::TrackCollectionCnv;
48 
49 public:
51  VertexOnTrack() = default;
52 
53  // default copy move dtor
54  VertexOnTrack(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 
79  std::unique_ptr<VertexOnTrack> uniqueClone() const
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 
105 protected:
107  std::optional<Amg::Vector3D> m_globalPosition = std::nullopt;
108 };
109 
110 inline VertexOnTrack*
112 {
113  return new VertexOnTrack(*this);
114 }
115 
116 inline const PerigeeSurface&
118 {
119  return *m_associatedSurface;
120 }
121 
122 }
123 
124 #endif // TRKVERTEXONTRACK_VERTEXONTRACK_H
125 
Trk::LocalParameters
Definition: LocalParameters.h:98
SurfaceHolders.h
Trk::VertexOnTrack::VertexOnTrack
VertexOnTrack()=default
Default Constructor for POOL.
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
TrackParameters.h
MeasurementBase.h
PerigeeSurface.h
Trk::VertexOnTrack::uniqueClone
std::unique_ptr< VertexOnTrack > uniqueClone() const
NVI clone returning unique_ptr.
Definition: VertexOnTrack.h:79
Trk::PerigeeSurface
Definition: PerigeeSurface.h:43
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
Trk::VertexOnTrack::clone
VertexOnTrack * clone() const override final
Pseudo-constructor, needed to avoid excessive RTTI.
Definition: VertexOnTrack.h:111
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
Trk::VertexOnTrack::VertexOnTrack
VertexOnTrack(VertexOnTrack &&) noexcept=default
Trk::SurfacePtrHolderImpl
Definition: SurfaceHolderImpl.h:79
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Trk::RecVertex
Trk::RecVertex inherits from Trk::Vertex.
Definition: RecVertex.h:44
Trk::VertexOnTrack::dump
virtual MsgStream & dump(MsgStream &out) const override final
returns the some information about this VertexOnTrack.
Definition: VertexOnTrack.cxx:81
Trk::VertexOnTrack::m_globalPosition
std::optional< Amg::Vector3D > m_globalPosition
Global position of the VoT.
Definition: VertexOnTrack.h:107
GeoPrimitives.h
TrackCollectionCnv
Definition: TrackCollectionCnv.h:47
Trk::VertexOnTrack::VertexOnTrack
VertexOnTrack(const VertexOnTrack &)=default
Trk::SurfacePtrHolderImpl::m_associatedSurface
const S * m_associatedSurface
Definition: SurfaceHolderImpl.h:153
Trk::VertexOnTrack::associatedSurface
virtual const PerigeeSurface & associatedSurface() const override final
returns the surface for the local to global transformation
Definition: VertexOnTrack.h:117
xAODType
Definition: ObjectType.h:13
Trk::VertexOnTrack
Definition: VertexOnTrack.h:45
Trk::MeasurementBase
Definition: MeasurementBase.h:58
EventPrimitives.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
Trk::VertexOnTrack::globalPosition
virtual const Amg::Vector3D & globalPosition() const override final
Interface method to get the global Position.
Definition: VertexOnTrack.cxx:72
Trk::SurfaceUniquePtrT
std::unique_ptr< S, SurfaceDeleter< S > > SurfaceUniquePtrT
Definition: SurfaceUniquePtrT.h:32
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::MeasurementBaseType::VertexOnTrack
@ VertexOnTrack
Definition: MeasurementBase.h:52
Trk::VertexOnTrack::type
virtual bool type(MeasurementBaseType::Type type) const override final
Extended method checking the type.
Definition: VertexOnTrack.h:93
python.CaloScaleNoiseConfig.default
default
Definition: CaloScaleNoiseConfig.py:79