File indexing completed on 2025-06-30 07:51:39
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Detector/interface/IDetectorBuilder.hpp"
0012 #include "Acts/Detector/interface/IDetectorComponentBuilder.hpp"
0013 #include "Acts/Utilities/Logger.hpp"
0014
0015 #include <memory>
0016 #include <string>
0017
0018 namespace Acts {
0019
0020 class IMaterialDecorator;
0021
0022 namespace Experimental {
0023
0024 class IGeometryIdGenerator;
0025
0026
0027
0028
0029
0030
0031
0032
0033 class DetectorBuilder final : public IDetectorBuilder {
0034 public:
0035
0036 struct Config {
0037
0038 std::string name = "unnamed";
0039
0040 std::shared_ptr<const IDetectorComponentBuilder> builder = nullptr;
0041
0042 std::shared_ptr<const IGeometryIdGenerator> geoIdGenerator = nullptr;
0043
0044 std::shared_ptr<const IMaterialDecorator> materialDecorator = nullptr;
0045
0046 std::string auxiliary = "";
0047 };
0048
0049
0050
0051
0052
0053 explicit DetectorBuilder(const Config& cfg,
0054 std::unique_ptr<const Logger> mlogger =
0055 getDefaultLogger("DetectorBuilder",
0056 Logging::INFO));
0057
0058
0059
0060
0061
0062
0063
0064 std::shared_ptr<const Detector> construct(
0065 const GeometryContext& gctx) const final;
0066
0067 private:
0068
0069 Config m_cfg;
0070
0071
0072 const Logger& logger() const { return *m_logger; }
0073
0074
0075 std::unique_ptr<const Logger> m_logger;
0076 };
0077
0078 }
0079 }