|
|
|||
File indexing completed on 2026-04-15 07:35:40
0001 // This file is part of the ACTS project. 0002 // 0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project 0004 // 0005 // This Source Code Form is subject to the terms of the Mozilla Public 0006 // License, v. 2.0. If a copy of the MPL was not distributed with this 0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/. 0008 0009 #pragma once 0010 0011 #include "Acts/Definitions/Algebra.hpp" 0012 #include "Acts/Geometry/GeometryContext.hpp" 0013 #include "Acts/Surfaces/LineBounds.hpp" 0014 #include "Acts/Surfaces/LineSurface.hpp" 0015 #include "Acts/Surfaces/Surface.hpp" 0016 #include "Acts/Surfaces/SurfaceConcept.hpp" 0017 0018 #include <memory> 0019 #include <string> 0020 0021 namespace Acts { 0022 0023 struct Polyhedron; 0024 class LineBounds; 0025 0026 /// @class StrawSurface 0027 /// 0028 /// Class for a StrawSurface in the TrackingGeometry 0029 /// to describe dirft tube and straw like detectors. 0030 /// 0031 /// @image html LineSurface.png 0032 /// 0033 class StrawSurface : public LineSurface { 0034 friend class Surface; 0035 0036 protected: 0037 /// @cond 0038 using LineSurface::LineSurface; 0039 /// @endcond 0040 0041 public: 0042 /// Return the surface type 0043 /// @return Surface type identifier for straw surfaces 0044 SurfaceType type() const final { return Surface::Straw; } 0045 0046 /// Return properly formatted class name for screen output */ 0047 /// @return String representation of the surface type name 0048 std::string name() const final { return "Acts::StrawSurface"; } 0049 0050 /// Return a Polyhedron for the surfaces 0051 /// 0052 /// @param gctx The current geometry context object, e.g. alignment 0053 /// @param quarterSegments is the number of segments used to describe curved 0054 /// segments in a quarter of the phi range. If it is 1, then only the extrema 0055 /// points in phi are inserted next to the segment corners. 0056 /// 0057 /// @return A list of vertices and a face/facett description of it 0058 Polyhedron polyhedronRepresentation(const GeometryContext& gctx, 0059 unsigned int quarterSegments) const final; 0060 }; 0061 0062 static_assert(SurfaceConcept<StrawSurface>, 0063 "StrawSurface does not fulfill SurfaceConcept"); 0064 0065 } // namespace Acts
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|