Files
Jungfraujoch/broker/gen/model/Detector.h
2025-07-03 15:10:04 +02:00

244 lines
8.1 KiB
C++

/**
* 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 <string>
#include <vector>
#include "Standard_detector_geometry.h"
#include "Detector_module.h"
#include <nlohmann/json.hpp>
namespace org::openapitools::server::model
{
/// <summary>
///
/// </summary>
class Detector
{
public:
Detector();
virtual ~Detector() = default;
/// <summary>
/// Validate the current data in the model. Throws a ValidationException on failure.
/// </summary>
void validate() const;
/// <summary>
/// Validate the current data in the model. Returns false on error and writes an error
/// message into the given stringstream.
/// </summary>
bool validate(std::stringstream& msg) const;
/// <summary>
/// Helper overload for validate. Used when one model stores another model and calls it's validate.
/// Not meant to be called outside that case.
/// </summary>
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
bool operator==(const Detector& rhs) const;
bool operator!=(const Detector& rhs) const;
/////////////////////////////////////////////
/// Detector members
/// <summary>
///
/// </summary>
std::string getDescription() const;
void setDescription(std::string const& value);
/// <summary>
///
/// </summary>
std::string getSerialNumber() const;
void setSerialNumber(std::string const& value);
bool serialNumberIsSet() const;
void unsetSerial_number();
/// <summary>
///
/// </summary>
org::openapitools::server::model::Detector_type getType() const;
void setType(org::openapitools::server::model::Detector_type const& value);
bool typeIsSet() const;
void unsetType();
/// <summary>
///
/// </summary>
int64_t getHighVoltageV() const;
void setHighVoltageV(int64_t const value);
bool highVoltageVIsSet() const;
void unsetHigh_voltage_V();
/// <summary>
///
/// </summary>
int64_t getUdpInterfaceCount() const;
void setUdpInterfaceCount(int64_t const value);
bool udpInterfaceCountIsSet() const;
void unsetUdp_interface_count();
/// <summary>
/// Use module 0 as master for timing. Only applies to JUNGFRAU detector (this cannot be turned off for EIGER).
/// </summary>
bool isModuleSync() const;
void setModuleSync(bool const value);
bool moduleSyncIsSet() const;
void unsetModule_sync();
/// <summary>
///
/// </summary>
float getSensorThicknessUm() const;
void setSensorThicknessUm(float const value);
bool sensorThicknessUmIsSet() const;
void unsetSensor_thickness_um();
/// <summary>
/// Minimum difference between frame time and count time in microseconds Defaults are 3 us for EIGER and 20 us for JUNGFRAU
/// </summary>
int64_t getReadoutTimeUs() const;
void setReadoutTimeUs(int64_t const value);
bool readoutTimeUsIsSet() const;
void unsetReadout_time_us();
/// <summary>
/// Minimum count time available for the detector.
/// </summary>
int64_t getMinimumCountTimeUs() const;
void setMinimumCountTimeUs(int64_t const value);
bool minimumCountTimeUsIsSet() const;
void unsetMinimum_count_time_us();
/// <summary>
/// Minimum frame time available for the detector.
/// </summary>
int64_t getMinimumFrameTimeUs() const;
void setMinimumFrameTimeUs(int64_t const value);
bool minimumFrameTimeUsIsSet() const;
void unsetMinimum_frame_time_us();
/// <summary>
/// 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.
/// </summary>
std::vector<std::string> getCalibrationFile() const;
void setCalibrationFile(std::vector<std::string> const& value);
bool calibrationFileIsSet() const;
void unsetCalibration_file();
/// <summary>
/// Hostname for detector module. One entry per module One entry per module. Either empty or number of module entries.
/// </summary>
std::vector<std::string> getHostname() const;
void setHostname(std::vector<std::string> const& value);
bool hostnameIsSet() const;
void unsetHostname();
/// <summary>
///
/// </summary>
std::string getSensorMaterial() const;
void setSensorMaterial(std::string const& value);
bool sensorMaterialIsSet() const;
void unsetSensor_material();
/// <summary>
///
/// </summary>
std::vector<int64_t> getTxDelay() const;
void setTxDelay(std::vector<int64_t> const value);
bool txDelayIsSet() const;
void unsetTx_delay();
/// <summary>
///
/// </summary>
std::string getBaseDataIpv4Address() const;
void setBaseDataIpv4Address(std::string const& value);
bool baseDataIpv4AddressIsSet() const;
void unsetBase_data_ipv4_address();
/// <summary>
///
/// </summary>
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();
/// <summary>
///
/// </summary>
std::vector<org::openapitools::server::model::Detector_module> getCustomGeometry() const;
void setCustomGeometry(std::vector<org::openapitools::server::model::Detector_module> const& value);
bool customGeometryIsSet() const;
void unsetCustom_geometry();
/// <summary>
/// ROI setting for DECTRIS detectors
/// </summary>
std::string getRoiMode() const;
void setRoiMode(std::string const& value);
bool roiModeIsSet() const;
void unsetRoi_mode();
/// <summary>
/// Mirror detector in Y direction to account for MX convention of (0,0) point in top left corner
/// </summary>
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<std::string> m_Calibration_file;
bool m_Calibration_fileIsSet;
std::vector<std::string> m_Hostname;
bool m_HostnameIsSet;
std::string m_Sensor_material;
bool m_Sensor_materialIsSet;
std::vector<int64_t> 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<org::openapitools::server::model::Detector_module> 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_ */