File indexing completed on 2025-07-11 07:49:42
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Detector/LayerStructureBuilder.hpp"
0012 #include "Acts/Detector/interface/IDetectorComponentBuilder.hpp"
0013 #include "Acts/Detector/interface/IExternalStructureBuilder.hpp"
0014 #include "Acts/Detector/interface/IInternalStructureBuilder.hpp"
0015 #include "Acts/Geometry/GeometryContext.hpp"
0016 #include "Acts/Surfaces/Surface.hpp"
0017 #include "Acts/Utilities/Logger.hpp"
0018 #include "Acts/Utilities/ProtoAxis.hpp"
0019
0020 #include <iostream>
0021 #include <string>
0022 #include <tuple>
0023 #include <vector>
0024
0025 namespace Acts::Experimental {
0026
0027 class MultiWireStructureBuilder {
0028 public:
0029
0030
0031 struct Config {
0032
0033 std::string name = "";
0034
0035
0036 std::vector<std::shared_ptr<Acts::Surface>> mlSurfaces = {};
0037
0038
0039 Transform3 transform = Transform3::Identity();
0040
0041
0042 std::vector<double> mlBounds = {};
0043
0044
0045 std::vector<std::tuple<DirectedProtoAxis, std::size_t>> mlBinning = {};
0046
0047
0048 float toleranceOverlap = 10.;
0049 };
0050
0051
0052
0053
0054
0055 explicit MultiWireStructureBuilder(
0056 const Config& config,
0057 std::unique_ptr<const Acts::Logger> logger = Acts::getDefaultLogger(
0058 "MultiWireStructureBuilder", Acts::Logging::VERBOSE));
0059
0060 ~MultiWireStructureBuilder() = default;
0061
0062
0063
0064
0065
0066
0067 Acts::Experimental::DetectorComponent construct(
0068 const Acts::GeometryContext& gctx);
0069
0070 private:
0071 Config mCfg;
0072
0073 const Acts::Logger& logger() const { return *mLogger; }
0074
0075 std::unique_ptr<const Acts::Logger> mLogger;
0076 };
0077
0078 }