Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:11:03

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 
0013 #include <memory>
0014 #include <tuple>
0015 #include <vector>
0016 
0017 namespace Acts {
0018 
0019 class AnnulusBounds;
0020 
0021 namespace detail::AnnulusBoundsHelper {
0022 
0023 /// @brief The factory function to create an annulus bounds
0024 ///
0025 /// @param transform the transform of final surface object
0026 /// @param rMin minimal radius in disc frame
0027 /// @param rMax maximal radius in disc frame
0028 /// @param vertices the vertices of the cutout trapezoid
0029 ///
0030 /// @note - for the time being, the vertices follow ROOT::TGeo convention
0031 /// i.e. [0 - 3] vertices defince clockwise (sic!) the plane at -z
0032 /// and [4 - 7] vertices define clockwise (sic!) the plane at +z
0033 ///
0034 /// @return AnnulusBounds
0035 std::tuple<std::shared_ptr<AnnulusBounds>, Transform3> create(
0036     const Transform3& transform, double rMin, double rMax,
0037     std::vector<Vector2> vertices);
0038 
0039 }  // namespace detail::AnnulusBoundsHelper
0040 }  // namespace Acts