File indexing completed on 2025-10-16 08:03:43
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Navigation/InternalNavigation.hpp"
0012 #include "Acts/Utilities/BinningData.hpp"
0013 #include "Acts/Utilities/IAxis.hpp"
0014 #include "Acts/Utilities/Logger.hpp"
0015 #include "Acts/Utilities/TypeList.hpp"
0016
0017 #include <detray/io/frontend/payloads.hpp>
0018
0019 namespace Acts {
0020
0021 class Surface;
0022 class SurfaceBounds;
0023 class IAxis;
0024
0025 namespace Experimental {
0026 class Detector;
0027 }
0028 }
0029
0030 namespace ActsPlugins::DetraySurfaceGridsConverter {
0031
0032
0033
0034
0035
0036
0037 detray::io::axis_payload convertAxis(const Acts::IAxis& ia);
0038
0039
0040
0041
0042
0043
0044
0045 template <typename grid_type>
0046 detray::io::grid_payload<std::size_t, detray::io::accel_id> convertGrid(
0047 const grid_type& grid, bool swapAxis = false);
0048
0049
0050
0051
0052
0053
0054 template <typename index_grid>
0055 detray::io::grid_payload<std::size_t, detray::io::accel_id> convertImpl(
0056 const index_grid& indexGrid);
0057
0058
0059
0060
0061
0062
0063
0064 template <typename instance_type>
0065 std::optional<detray::io::grid_payload<std::size_t, detray::io::accel_id>>
0066 convert(const Acts::Experimental::InternalNavigationDelegate& delegate,
0067 [[maybe_unused]] const instance_type& refInstance);
0068
0069
0070
0071
0072
0073
0074
0075 template <typename... Args>
0076 std::vector<detray::io::grid_payload<std::size_t, detray::io::accel_id>>
0077 unrollConvert(const Acts::Experimental::InternalNavigationDelegate& delegate,
0078 Acts::TypeList<Args...> );
0079
0080
0081
0082
0083
0084
0085
0086 detray::io::detector_grids_payload<std::size_t, detray::io::accel_id>
0087 convertSurfaceGrids(const Acts::Experimental::Detector& detector);
0088
0089 }