File indexing completed on 2025-12-15 09:42:08
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Geometry/NavigationPolicyFactory.hpp"
0012 #include "Acts/Geometry/TrackingVolume.hpp"
0013 #include "Acts/Surfaces/Surface.hpp"
0014 #include "Acts/Utilities/Logger.hpp"
0015 #include "Acts/Utilities/ProtoAxis.hpp"
0016
0017 namespace Acts::Experimental {
0018
0019
0020
0021 class MultiWireVolumeBuilder {
0022 public:
0023
0024 using Binning = std::tuple<DirectedProtoAxis, std::size_t>;
0025
0026 struct Config {
0027
0028 std::string name = "undefined";
0029
0030
0031 std::vector<std::shared_ptr<Surface>> mlSurfaces = {};
0032
0033
0034 Transform3 transform = Transform3::Identity();
0035
0036
0037 std::shared_ptr<Acts::VolumeBounds> bounds = nullptr;
0038
0039
0040 std::vector<Binning> binning = {};
0041 };
0042
0043
0044
0045 explicit MultiWireVolumeBuilder(
0046 const Config& config,
0047 std::unique_ptr<const Acts::Logger> logger = Acts::getDefaultLogger(
0048 "MultiWireVolumeBuilder", Acts::Logging::INFO));
0049
0050
0051
0052 std::unique_ptr<Acts::TrackingVolume> buildVolume() const;
0053
0054
0055
0056
0057 std::unique_ptr<NavigationPolicyFactory> createNavigationPolicyFactory()
0058 const;
0059
0060 private:
0061 Config m_config;
0062
0063 const Acts::Logger& logger() const { return *m_logger; }
0064
0065 std::unique_ptr<const Acts::Logger> m_logger;
0066 };
0067
0068 }