File indexing completed on 2025-01-18 09:11:45
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Definitions/Units.hpp"
0012 #include "Acts/Utilities/AxisDefinitions.hpp"
0013 #include "Acts/Utilities/Logger.hpp"
0014 #include "ActsExamples/DetectorCommons/Detector.hpp"
0015
0016 #include <array>
0017 #include <memory>
0018 #include <vector>
0019
0020 namespace Acts {
0021 class IMaterialDecorator;
0022 }
0023
0024 namespace ActsExamples {
0025
0026 class TelescopeDetector : public Detector {
0027 public:
0028 struct Config {
0029 std::vector<double> positions{{0, 30, 60, 120, 150, 180}};
0030 std::vector<double> stereos{{0, 0, 0, 0, 0, 0}};
0031 std::array<double, 2> offsets{{0, 0}};
0032 std::array<double, 2> bounds{{25, 100}};
0033 double thickness{80 * Acts::UnitConstants::um};
0034 int surfaceType{0};
0035 int binValue{2};
0036 std::shared_ptr<const Acts::IMaterialDecorator> materialDecorator;
0037 Acts::Logging::Level logLevel{Acts::Logging::WARNING};
0038 };
0039
0040 explicit TelescopeDetector(const Config& cfg);
0041
0042 std::unique_ptr<G4VUserDetectorConstruction> buildGeant4DetectorConstruction(
0043 const Geant4ConstructionOptions& options) const override;
0044
0045 private:
0046 Config m_cfg;
0047 };
0048
0049 }