Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-10-13 08:18:30

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 #pragma once
0009 
0010 #include "Acts/Definitions/Algebra.hpp"
0011 #include "Acts/Surfaces/LineSurface.hpp"
0012 #include "Acts/Surfaces/Surface.hpp"
0013 
0014 namespace ActsTests {
0015 
0016 class LineSurfaceStub : public Acts::LineSurface {
0017  public:
0018   LineSurfaceStub() = delete;
0019 
0020   LineSurfaceStub(const Acts::Transform3& htrans, double radius, double halfz)
0021       : Acts::GeometryObject(),
0022         Acts::LineSurface(htrans, radius, halfz) { /* nop */ }
0023 
0024   explicit LineSurfaceStub(
0025       const Acts::Transform3& htrans,
0026       std::shared_ptr<const Acts::LineBounds> lbounds = nullptr)
0027       : Acts::GeometryObject(),
0028         Acts::LineSurface(htrans, std::move(lbounds)) { /*nop */ }
0029 
0030   LineSurfaceStub(std::shared_ptr<const Acts::LineBounds> lbounds,
0031                   const Acts::DetectorElementBase& detelement)
0032       : Acts::GeometryObject(),
0033         Acts::LineSurface(std::move(lbounds), detelement) { /* nop */ }
0034 
0035   LineSurfaceStub(const LineSurfaceStub& ls)
0036       : Acts::GeometryObject(), Acts::LineSurface(ls) { /* nop */ }
0037 
0038   LineSurfaceStub& operator=(const LineSurfaceStub& ls) = default;
0039 
0040   LineSurfaceStub(const Acts::GeometryContext& gctx, const LineSurfaceStub& ls,
0041                   const Acts::Transform3& t)
0042       : Acts::GeometryObject(), Acts::LineSurface(gctx, ls, t) { /* nop */ }
0043 
0044   /// Return method for the Surface type to avoid dynamic casts
0045   SurfaceType type() const final { return Acts::Surface::Straw; }
0046 
0047   /// Simply return true to show object exists and is callable
0048   bool constructedOk() const { return true; }
0049 
0050   using Acts::Surface::normal;
0051 
0052   /// Return a Polyhedron for the surfaces
0053   ///
0054   /// @param gctx The current geometry context object, e.g. alignment
0055   /// @param ingoredSegmeent is ignored for the srub
0056   ///
0057   /// @return A list of vertices and a face/facett description of it
0058   Acts::Polyhedron polyhedronRepresentation(
0059       const Acts::GeometryContext& /*gctx*/,
0060       unsigned int /*lseg*/) const final {
0061     return Acts::Polyhedron({}, {}, {});
0062   }
0063 };
0064 
0065 }  // namespace ActsTests