Files
Jungfraujoch/broker/gen/model/Detector.h
Filip Leonarski 1ab257af6c
All checks were successful
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m8s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m57s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 12m55s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 12m0s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 13m30s
Build Packages / Generate python client (push) Successful in 20s
Build Packages / Unit tests (push) Has been skipped
Build Packages / Create release (push) Has been skipped
Build Packages / Build documentation (push) Successful in 39s
Build Packages / build:rpm (rocky8) (push) Successful in 9m23s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 10m33s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 8m2s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 8m42s
Build Packages / build:rpm (rocky9) (push) Successful in 9m38s
v1.0.0-rc.125 (#32)
This is an UNSTABLE release. This version adds scalign and merging. These are experimental at the moment, and should not be used for production analysis.
If things go wrong with analysis, it is better to revert to 1.0.0-rc.124.

* jfjoch_broker: Improve logic on switching on/off spot finding
* jfjoch_broker: Increase maximum spot count for FFBIDX to 65536
* jfjoch_broker: Increase default maximum unit cell for FFT to 500 A (could have performance impact, TBD)
* jfjoch_process: Add scalign and merging functionality - program is experimental at the moment and should not be used for production analysis
* jfjoch_viewer: Display partiality and reciprocal Lorentz-polarization correction for each reflection
* jfjoch_writer: Save more information about each reflection

Reviewed-on: #32
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
2026-02-18 16:17:21 +01:00

263 lines
9.8 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. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms.
*
* The version of the OpenAPI document: 1.0.0-rc.125
* 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 "Detector_settings.h"
#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();
/// <summary>
/// Temperature threshold for JUNGFRAU detector modules
/// </summary>
int64_t getTempThresoldDegC() const;
void setTempThresoldDegC(int64_t const value);
bool tempThresoldDegCIsSet() const;
void unsetTemp_thresold_degC();
/// <summary>
///
/// </summary>
org::openapitools::server::model::Detector_settings getDefaultSettings() const;
void setDefaultSettings(org::openapitools::server::model::Detector_settings const& value);
bool defaultSettingsIsSet() const;
void unsetDefault_settings();
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;
int64_t m_Temp_thresold_degC;
bool m_Temp_thresold_degCIsSet;
org::openapitools::server::model::Detector_settings m_Default_settings;
bool m_Default_settingsIsSet;
};
} // namespace org::openapitools::server::model
#endif /* Detector_H_ */