|
||||
File indexing completed on 2025-01-18 09:10:46
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/VolumeBounds.hpp" 0013 #include "Acts/Utilities/Delegate.hpp" 0014 0015 #include <memory> 0016 #include <vector> 0017 0018 namespace Acts { 0019 class VolumeBounds; 0020 0021 namespace Experimental { 0022 0023 class DetectorVolume; 0024 class Portal; 0025 0026 /// The Portal generator definition 0027 using PortalGenerator = Delegate<std::vector<std::shared_ptr<Portal>>( 0028 const Transform3&, const VolumeBounds&, 0029 const std::shared_ptr<DetectorVolume>&)>; 0030 0031 /// @brief Generator function for creation of portal surfaces 0032 /// 0033 /// @param dTransform a contextually resolved transform 0034 /// @param dBounds the detecor volume bounds 0035 /// @param dVolume the reference to the detector volume which generates this volume 0036 /// 0037 /// @return a vector of newly created portals with registered inside volume 0038 std::vector<std::shared_ptr<Portal>> generatePortals( 0039 const Transform3& dTransform, const VolumeBounds& dBounds, 0040 const std::shared_ptr<DetectorVolume>& dVolume) noexcept(false); 0041 0042 /// Create a default portal generator that connects to the 0043 /// static method. 0044 /// 0045 PortalGenerator defaultPortalGenerator(); 0046 0047 /// @brief Calls the portal generation and adds registration to sub portals 0048 /// 0049 /// This code is split off the PortalGenerator code in order to allow 0050 /// unit testing of the portal generation without detector volume construction 0051 /// 0052 /// @param dTransform a contextually resolved transform 0053 /// @param dBounds the detecor volume bounds 0054 /// @param dVolume the reference to the detector volume which generates this volume 0055 /// 0056 /// @return a vector of newly created portals with registered inside volume 0057 std::vector<std::shared_ptr<Portal>> generatePortalsUpdateInternals( 0058 const Transform3& dTransform, const VolumeBounds& dBounds, 0059 const std::shared_ptr<DetectorVolume>& dVolume) noexcept(false); 0060 0061 /// Create a default portal generator that connects to the 0062 /// static method. 0063 /// 0064 /// @note parameters are ignored in this case 0065 PortalGenerator defaultPortalAndSubPortalGenerator(); 0066 0067 } // namespace Experimental 0068 } // 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 |