Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PlaneSurface.hpp
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PlaneSurface.hpp
1 // This file is part of the Acts project.
2 //
3 // Copyright (C) 2016-2020 CERN for the benefit of the Acts project
4 //
5 // This Source Code Form is subject to the terms of the Mozilla Public
6 // License, v. 2.0. If a copy of the MPL was not distributed with this
7 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 
9 #pragma once
10 
21 
22 #include <cstddef>
23 #include <limits>
24 #include <memory>
25 #include <string>
26 
27 namespace Acts {
28 
29 class DetectorElementBase;
30 class PlanarBounds;
31 class SurfaceBounds;
32 
42 class PlaneSurface : public Surface {
43 #ifndef DOXYGEN
44  friend Surface;
45 #endif
46 
47  protected:
51  PlaneSurface(const PlaneSurface& other);
52 
58  PlaneSurface(const GeometryContext& gctx, const PlaneSurface& other,
59  const Transform3& transform);
60 
66  PlaneSurface(const Vector3& center, const Vector3& normal);
67 
72  PlaneSurface(std::shared_ptr<const PlanarBounds> pbounds,
73  const DetectorElementBase& detelement);
74 
80  std::shared_ptr<const PlanarBounds> pbounds = nullptr);
81 
82  public:
83  ~PlaneSurface() override = default;
84  PlaneSurface() = delete;
85 
89  PlaneSurface& operator=(const PlaneSurface& other);
90 
98  const Vector2& lposition) const final;
99 
101  using Surface::normal;
102 
111  BinningValue bValue) const final;
112 
114  SurfaceType type() const override;
115 
117  const SurfaceBounds& bounds() const override;
118 
129  Vector3 localToGlobal(const GeometryContext& gctx, const Vector2& lposition,
130  const Vector3& direction) const override;
131 
147  const GeometryContext& gctx, const Vector3& position,
148  const Vector3& direction,
149  double tolerance = s_onSurfaceTolerance) const override;
150 
160  double pathCorrection(const GeometryContext& gctx, const Vector3& position,
161  const Vector3& direction) const final;
162 
191  const GeometryContext& gctx, const Vector3& position,
192  const Vector3& direction, const BoundaryCheck& bcheck = false,
194 
204  size_t lseg) const override;
205 
207  std::string name() const override;
208 
218  const GeometryContext& gctx, const Vector3& position) const final;
219 
220  protected:
223 
224  private:
225 };
226 
227 } // end of namespace Acts