2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
7inline bool PerigeeSurface::operator==(const PerigeeSurface& persf) const
12 return (center() == persf.center());
15/** Return the surface type */
16inline constexpr SurfaceType
17PerigeeSurface::type() const
19 return PerigeeSurface::staticType;
21template<int DIM, class T>
22std::unique_ptr<ParametersT<DIM, T, PerigeeSurface>>
23PerigeeSurface::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 */
36template<int DIM, class T>
37std::unique_ptr<ParametersT<DIM, T, PerigeeSurface>>
38PerigeeSurface::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));
49PerigeeSurface::clone() const
51 return new PerigeeSurface(*this);
54inline const Amg::Vector3D&
55PerigeeSurface::normal() const
61PerigeeSurface::normal(const Amg::Vector2D&) const
63 return Amg::Vector3D(normal());
67PerigeeSurface::insideBounds(const Amg::Vector2D&, double, double) const
73PerigeeSurface::insideBoundsCheck(const Amg::Vector2D&,
74 const BoundaryCheck&) const
80PerigeeSurface::isOnSurface(const Amg::Vector3D&,
89PerigeeSurface::bounds() const
91 return s_perigeeBounds;
94inline const Amg::Vector3D&
95PerigeeSurface::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 */
112PerigeeSurface::pathCorrection(const Amg::Vector3D&, const Amg::Vector3D&) const
117/** Return properly formatted class name for screen output */
119PerigeeSurface::name() const
121 return "Trk::PerigeeSurface";