/** * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. * * The version of the OpenAPI document: 1.0.0-rc.58 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ /* * Detector.h * * */ #ifndef Detector_H_ #define Detector_H_ #include "Detector_type.h" #include #include #include "Standard_detector_geometry.h" #include "Detector_module.h" #include namespace org::openapitools::server::model { /// /// /// class Detector { public: Detector(); virtual ~Detector() = default; /// /// Validate the current data in the model. Throws a ValidationException on failure. /// void validate() const; /// /// Validate the current data in the model. Returns false on error and writes an error /// message into the given stringstream. /// bool validate(std::stringstream& msg) const; /// /// Helper overload for validate. Used when one model stores another model and calls it's validate. /// Not meant to be called outside that case. /// bool validate(std::stringstream& msg, const std::string& pathPrefix) const; bool operator==(const Detector& rhs) const; bool operator!=(const Detector& rhs) const; ///////////////////////////////////////////// /// Detector members /// /// /// std::string getDescription() const; void setDescription(std::string const& value); /// /// /// std::string getSerialNumber() const; void setSerialNumber(std::string const& value); bool serialNumberIsSet() const; void unsetSerial_number(); /// /// /// org::openapitools::server::model::Detector_type getType() const; void setType(org::openapitools::server::model::Detector_type const& value); bool typeIsSet() const; void unsetType(); /// /// /// int64_t getHighVoltageV() const; void setHighVoltageV(int64_t const value); bool highVoltageVIsSet() const; void unsetHigh_voltage_V(); /// /// /// int64_t getUdpInterfaceCount() const; void setUdpInterfaceCount(int64_t const value); bool udpInterfaceCountIsSet() const; void unsetUdp_interface_count(); /// /// Use module 0 as master for timing. Only applies to JUNGFRAU detector (this cannot be turned off for EIGER). /// bool isModuleSync() const; void setModuleSync(bool const value); bool moduleSyncIsSet() const; void unsetModule_sync(); /// /// /// float getSensorThicknessUm() const; void setSensorThicknessUm(float const value); bool sensorThicknessUmIsSet() const; void unsetSensor_thickness_um(); /// /// Minimum difference between frame time and count time in microseconds Defaults are 3 us for EIGER and 20 us for JUNGFRAU /// int64_t getReadoutTimeUs() const; void setReadoutTimeUs(int64_t const value); bool readoutTimeUsIsSet() const; void unsetReadout_time_us(); /// /// Minimum count time available for the detector. /// int64_t getMinimumCountTimeUs() const; void setMinimumCountTimeUs(int64_t const value); bool minimumCountTimeUsIsSet() const; void unsetMinimum_count_time_us(); /// /// Minimum frame time available for the detector. /// int64_t getMinimumFrameTimeUs() const; void setMinimumFrameTimeUs(int64_t const value); bool minimumFrameTimeUsIsSet() const; void unsetMinimum_frame_time_us(); /// /// Can be empty for all detectors - default calibration used. For JUNGFRAU: list of gain files, one entry per module. For EIGER: one directory (with detector settings) or list of trim bit files, one entry per half-module. /// std::vector getCalibrationFile() const; void setCalibrationFile(std::vector const& value); bool calibrationFileIsSet() const; void unsetCalibration_file(); /// /// Hostname for detector module. One entry per module One entry per module. Either empty or number of module entries. /// std::vector getHostname() const; void setHostname(std::vector const& value); bool hostnameIsSet() const; void unsetHostname(); /// /// /// std::string getSensorMaterial() const; void setSensorMaterial(std::string const& value); bool sensorMaterialIsSet() const; void unsetSensor_material(); /// /// /// std::vector getTxDelay() const; void setTxDelay(std::vector const value); bool txDelayIsSet() const; void unsetTx_delay(); /// /// /// std::string getBaseDataIpv4Address() const; void setBaseDataIpv4Address(std::string const& value); bool baseDataIpv4AddressIsSet() const; void unsetBase_data_ipv4_address(); /// /// /// org::openapitools::server::model::Standard_detector_geometry getStandardGeometry() const; void setStandardGeometry(org::openapitools::server::model::Standard_detector_geometry const& value); bool standardGeometryIsSet() const; void unsetStandard_geometry(); /// /// /// std::vector getCustomGeometry() const; void setCustomGeometry(std::vector const& value); bool customGeometryIsSet() const; void unsetCustom_geometry(); /// /// ROI setting for DECTRIS detectors /// std::string getRoiMode() const; void setRoiMode(std::string const& value); bool roiModeIsSet() const; void unsetRoi_mode(); /// /// Mirror detector in Y direction to account for MX convention of (0,0) point in top left corner /// bool isMirrorY() const; void setMirrorY(bool const value); bool mirrorYIsSet() const; void unsetMirror_y(); friend void to_json(nlohmann::json& j, const Detector& o); friend void from_json(const nlohmann::json& j, Detector& o); protected: std::string m_Description; std::string m_Serial_number; bool m_Serial_numberIsSet; org::openapitools::server::model::Detector_type m_Type; bool m_TypeIsSet; int64_t m_High_voltage_V; bool m_High_voltage_VIsSet; int64_t m_Udp_interface_count; bool m_Udp_interface_countIsSet; bool m_Module_sync; bool m_Module_syncIsSet; float m_Sensor_thickness_um; bool m_Sensor_thickness_umIsSet; int64_t m_Readout_time_us; bool m_Readout_time_usIsSet; int64_t m_Minimum_count_time_us; bool m_Minimum_count_time_usIsSet; int64_t m_Minimum_frame_time_us; bool m_Minimum_frame_time_usIsSet; std::vector m_Calibration_file; bool m_Calibration_fileIsSet; std::vector m_Hostname; bool m_HostnameIsSet; std::string m_Sensor_material; bool m_Sensor_materialIsSet; std::vector m_Tx_delay; bool m_Tx_delayIsSet; std::string m_Base_data_ipv4_address; bool m_Base_data_ipv4_addressIsSet; org::openapitools::server::model::Standard_detector_geometry m_Standard_geometry; bool m_Standard_geometryIsSet; std::vector m_Custom_geometry; bool m_Custom_geometryIsSet; std::string m_Roi_mode; bool m_Roi_modeIsSet; bool m_Mirror_y; bool m_Mirror_yIsSet; }; } // namespace org::openapitools::server::model #endif /* Detector_H_ */