File indexing completed on 2025-01-18 09:27:43
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Geometry/GeometryContext.hpp"
0012 #include "Acts/Plugins/TGeo/ITGeoDetectorElementSplitter.hpp"
0013 #include "Acts/Utilities/Logger.hpp"
0014
0015 #include <memory>
0016 #include <vector>
0017
0018 class TGeoNode;
0019
0020 namespace Acts {
0021
0022 class TGeoDetectorElement;
0023
0024
0025
0026
0027 class TGeoCylinderDiscSplitter : public ITGeoDetectorElementSplitter {
0028 public:
0029
0030 struct Config {
0031
0032 int cylinderPhiSegments = -1;
0033
0034 int cylinderLongitudinalSegments = -1;
0035
0036
0037 int discPhiSegments = -1;
0038
0039 int discRadialSegments = -1;
0040 };
0041
0042
0043
0044
0045
0046 TGeoCylinderDiscSplitter(
0047 const Config& cfg,
0048 std::unique_ptr<const Acts::Logger> logger = Acts::getDefaultLogger(
0049 "TGeoCylinderDiscSplitter", Acts::Logging::INFO));
0050
0051 ~TGeoCylinderDiscSplitter() override = default;
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061 std::vector<std::shared_ptr<const Acts::TGeoDetectorElement>> split(
0062 const GeometryContext& gctx,
0063 std::shared_ptr<const Acts::TGeoDetectorElement> tgde) const override;
0064
0065 private:
0066 Config m_cfg;
0067
0068
0069 const Acts::Logger& logger() const { return *m_logger; }
0070
0071
0072 std::unique_ptr<const Acts::Logger> m_logger;
0073 };
0074
0075 }