File indexing completed on 2025-01-19 09:23:23
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Definitions/Algebra.hpp"
0012 #include "Acts/Geometry/GeometryContext.hpp"
0013 #include "Acts/Geometry/ITrackingVolumeArrayCreator.hpp"
0014 #include "Acts/Utilities/BinningType.hpp"
0015 #include "Acts/Utilities/Logger.hpp"
0016
0017 #include <memory>
0018 #include <utility>
0019
0020 namespace Acts {
0021
0022 using TrackingVolumeOrderPosition = std::pair<TrackingVolumePtr, Vector3>;
0023
0024
0025
0026
0027
0028
0029
0030 class TrackingVolumeArrayCreator : public ITrackingVolumeArrayCreator {
0031 public:
0032
0033 struct Config {};
0034
0035
0036
0037
0038 TrackingVolumeArrayCreator(const Config& ,
0039 std::unique_ptr<const Logger> logger =
0040 getDefaultLogger("LayerArrayCreator",
0041 Logging::INFO))
0042 : m_logger(std::move(logger)) {}
0043
0044
0045 ~TrackingVolumeArrayCreator() override = default;
0046
0047
0048
0049
0050
0051
0052
0053
0054 std::shared_ptr<const TrackingVolumeArray> trackingVolumeArray(
0055 const GeometryContext& gctx, const TrackingVolumeVector& tVolumes,
0056 BinningValue bValue) const override;
0057
0058
0059
0060
0061 void setLogger(std::unique_ptr<const Logger> logger) {
0062 m_logger = std::move(logger);
0063 }
0064
0065 private:
0066
0067 const Logger& logger() const { return *m_logger; }
0068
0069
0070 std::unique_ptr<const Logger> m_logger;
0071 };
0072 }