2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
7 inline bool PerigeeSurface::operator==(const PerigeeSurface& persf) const
12 return (center() == persf.center());
15 /** Return the surface type */
16 inline constexpr SurfaceType
17 PerigeeSurface::type() const
19 return PerigeeSurface::staticType;
21 template<int DIM, class T>
22 std::unique_ptr<ParametersT<DIM, T, PerigeeSurface>>
23 PerigeeSurface::createUniqueParameters(
29 std::optional<AmgSymMatrix(DIM)> cov) const
31 return std::make_unique<ParametersT<DIM, T, PerigeeSurface>>(
32 l1, l2, phi, theta, qop, *this, std::move(cov));
35 /** Use the Surface as a ParametersBase constructor, from global parameters */
36 template<int DIM, class T>
37 std::unique_ptr<ParametersT<DIM, T, PerigeeSurface>>
38 PerigeeSurface::createUniqueParameters(
39 const Amg::Vector3D& position,
40 const Amg::Vector3D& momentum,
42 std::optional<AmgSymMatrix(DIM)> cov) const
44 return std::make_unique<ParametersT<DIM, T, PerigeeSurface>>(
45 position, momentum, charge, *this, std::move(cov));
48 inline PerigeeSurface*
49 PerigeeSurface::clone() const
51 return new PerigeeSurface(*this);
54 inline const Amg::Vector3D&
55 PerigeeSurface::normal() const
61 PerigeeSurface::normal(const Amg::Vector2D&) const
63 return Amg::Vector3D(normal());
67 PerigeeSurface::insideBounds(const Amg::Vector2D&, double, double) const
73 PerigeeSurface::insideBoundsCheck(const Amg::Vector2D&,
74 const BoundaryCheck&) const
80 PerigeeSurface::isOnSurface(const Amg::Vector3D&,
88 inline const NoBounds&
89 PerigeeSurface::bounds() const
91 return s_perigeeBounds;
94 inline const Amg::Vector3D&
95 PerigeeSurface::lineDirection() const
97 if (m_lineDirection.isValid()) {
98 return *(m_lineDirection.ptr());
101 if (Surface::m_transforms) {
102 if (!m_lineDirection.isValid()) {
103 m_lineDirection.set(transform().linear().col(2));
104 return *(m_lineDirection.ptr());
110 /** the pathCorrection for derived classes with thickness */
112 PerigeeSurface::pathCorrection(const Amg::Vector3D&, const Amg::Vector3D&) const
117 /** Return properly formatted class name for screen output */
119 PerigeeSurface::name() const
121 return "Trk::PerigeeSurface";