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