Warning, file /include/Acts/Geometry/ProtoLayerHelper.hpp was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Geometry/GeometryContext.hpp"
0012 #include "Acts/Geometry/ProtoLayer.hpp"
0013 #include "Acts/Utilities/AxisDefinitions.hpp"
0014 #include "Acts/Utilities/Logger.hpp"
0015
0016 #include <memory>
0017 #include <utility>
0018 #include <vector>
0019
0020 namespace Acts {
0021
0022 class Surface;
0023 struct ProtoLayer;
0024
0025
0026
0027
0028
0029
0030
0031 class ProtoLayerHelper {
0032 public:
0033
0034 using SortingConfig = std::pair<AxisDirection, double>;
0035
0036 struct Config {};
0037
0038
0039
0040
0041 explicit ProtoLayerHelper(const Config& ,
0042 std::unique_ptr<const Logger> logger =
0043 getDefaultLogger("ProtoLayerHelper",
0044 Logging::INFO))
0045 : m_logger(std::move(logger)) {}
0046 ~ProtoLayerHelper() = default;
0047
0048
0049
0050
0051
0052
0053
0054
0055 std::vector<ProtoLayer> protoLayers(
0056 const GeometryContext& gctx, const std::vector<const Surface*>& surfaces,
0057 const SortingConfig& sorting) const;
0058
0059
0060
0061
0062
0063
0064
0065
0066 std::vector<ProtoLayer> protoLayers(
0067 const GeometryContext& gctx, const std::vector<const Surface*>& surfaces,
0068 const std::vector<SortingConfig>& sortings) const;
0069
0070 private:
0071
0072 std::unique_ptr<const Logger> m_logger;
0073
0074
0075 const Logger& logger() const { return *m_logger; }
0076 };
0077
0078 }