// Copyright (2019-2023) Paul Scherrer Institute #ifndef JUNGFRAUJOCH_DETECTORSETUP_H #define JUNGFRAUJOCH_DETECTORSETUP_H #include "DetectorGeometry.h" #include "../jungfrau/JFModuleGainCalibration.h" class DetectorSetup { std::string description; DetectorGeometry geometry; std::vector det_modules_hostname; std::vector gain_calibration; int64_t udp_interface_count = 2; public: DetectorSetup(const DetectorGeometry& geom); DetectorSetup(const DetectorGeometry& geom, const std::string &description, const std::vector &det_modules_hostname); void LoadGain(const std::vector &filenames); DetectorSetup& UDPInterfaceCount(int64_t input); [[nodiscard]] const DetectorGeometry& GetGeometry() const; [[nodiscard]] const std::vector& GetDetectorModuleHostname() const; [[nodiscard]] uint64_t GetModulesNum() const; [[nodiscard]] std::string GetDescription() const; [[nodiscard]] JFJochProtoBuf::DetectorType GetDetectorType() const; [[nodiscard]] float GetPixelSize_mm() const; [[nodiscard]] const std::vector &GetGainCalibration() const; operator JFJochProtoBuf::Detector() const; }; #endif //JUNGFRAUJOCH_DETECTORSETUP_H