|
||||
File indexing completed on 2025-01-19 09:23:17
0001 // This file is part of the Acts project. 0002 // 0003 // Copyright (C) 2023 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 http://mozilla.org/MPL/2.0/. 0008 0009 #pragma once 0010 0011 #include "Acts/Definitions/Algebra.hpp" 0012 #include "Acts/Definitions/Common.hpp" 0013 #include "Acts/Detector/DetectorComponents.hpp" 0014 #include "Acts/Detector/Portal.hpp" 0015 #include "Acts/Geometry/GeometryContext.hpp" 0016 #include "Acts/Utilities/BinningData.hpp" 0017 #include "Acts/Utilities/Logger.hpp" 0018 0019 #include <array> 0020 #include <limits> 0021 #include <map> 0022 #include <memory> 0023 #include <vector> 0024 0025 namespace Acts::Experimental { 0026 0027 class DetectorVolume; 0028 class Portal; 0029 0030 namespace detail::CuboidalDetectorHelper { 0031 0032 /// @brief Connect detector volumes given a binning value 0033 /// 0034 /// @param gctx The geometry context 0035 /// @param volumes the volumes 0036 /// @param bValue the binning value (allowed are binX, binY, binZ) 0037 /// @param selectedOnly switch only selected boundaries 0038 /// @param logLevel is the screen logging level 0039 /// 0040 /// @note a fair amount of consistency checking is done, 0041 /// and exceptions are thrown if any of the tests fail 0042 /// 0043 /// @return a proto container with the outside portals 0044 DetectorComponent::PortalContainer connect( 0045 const GeometryContext& gctx, 0046 std::vector<std::shared_ptr<DetectorVolume>>& volumes, BinningValue bValue, 0047 const std::vector<unsigned int>& selectedOnly = {}, 0048 Acts::Logging::Level logLevel = Acts::Logging::INFO); 0049 0050 /// @brief Connect containers given a binning value 0051 /// 0052 /// @param gctx The geometry context 0053 /// @param containers the containers 0054 /// @param bValue the binning value (allowed are binX, binY, binZ) 0055 /// @param selectedOnly switch only selected boundaries 0056 /// @param logLevel is the screen logging level 0057 /// 0058 /// @note not much checking is done anymore, as the DetectorComponent::PortalContainer 0059 /// are assumed to come properly formed from the prior methods 0060 /// 0061 /// @return a proto container with the outside portals 0062 DetectorComponent::PortalContainer connect( 0063 const GeometryContext& gctx, 0064 const std::vector<DetectorComponent::PortalContainer>& containers, 0065 BinningValue bValue, const std::vector<unsigned int>& selectedOnly = {}, 0066 Acts::Logging::Level logLevel = Acts::Logging::INFO); 0067 0068 /// @brief Helper method to extract r,z,phi boundaries for 0069 /// eventual grid volume search 0070 /// 0071 /// @param gctx the geometry context of the call 0072 /// @param volumes the volumes at input 0073 /// @param logLevel is the screen logging level 0074 /// 0075 /// @return extracted boundary values 0076 std::array<std::vector<ActsScalar>, 3u> xyzBoundaries( 0077 const GeometryContext& gctx, 0078 const std::vector<const DetectorVolume*>& volumes, 0079 Acts::Logging::Level logLevel = Acts::Logging::INFO); 0080 0081 } // namespace detail::CuboidalDetectorHelper 0082 } // namespace Acts::Experimental
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |