Files
Jungfraujoch/broker/gen/model/Image_format_settings.h
2024-11-26 16:04:38 +01:00

157 lines
5.4 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.26
* 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.
*/
/*
* Image_format_settings.h
*
*
*/
#ifndef Image_format_settings_H_
#define Image_format_settings_H_
#include <nlohmann/json.hpp>
namespace org::openapitools::server::model
{
/// <summary>
///
/// </summary>
class Image_format_settings
{
public:
Image_format_settings();
virtual ~Image_format_settings() = 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 Image_format_settings& rhs) const;
bool operator!=(const Image_format_settings& rhs) const;
/////////////////////////////////////////////
/// Image_format_settings members
/// <summary>
/// Enable summation of images to a given image_time If disabled images are saved according to original detector speed, but image count is adjusted
/// </summary>
bool isSummation() const;
void setSummation(bool const value);
/// <summary>
/// Place module read-out into their location on composed detector and extend multipixels
/// </summary>
bool isGeometryTransform() const;
void setGeometryTransform(bool const value);
/// <summary>
/// Convert pixel value in ADU to photon counts/energy Only affects JUNGFRAU detector
/// </summary>
bool isJungfrauConversion() const;
void setJungfrauConversion(bool const value);
/// <summary>
/// Used to convert energy deposited into pixel to counts If not provided incident_energy_keV is used
/// </summary>
float getJungfrauConversionFactorKeV() const;
void setJungfrauConversionFactorKeV(float const value);
bool jungfrauConversionFactorKeVIsSet() const;
void unsetJungfrau_conversion_factor_keV();
/// <summary>
/// Bit depth of resulting image (it doesn&#39;t affect the detector read-out value) If not provided value is adjusted automatically
/// </summary>
int64_t getBitDepthImage() const;
void setBitDepthImage(int64_t const value);
bool bitDepthImageIsSet() const;
void unsetBit_depth_image();
/// <summary>
/// Controls if pixels have signed output If not provided value is adjusted automatically
/// </summary>
bool isSignedOutput() const;
void setSignedOutput(bool const value);
bool signedOutputIsSet() const;
void unsetSigned_output();
/// <summary>
/// Mask 1 pixel on the module boundary
/// </summary>
bool isMaskModuleEdges() const;
void setMaskModuleEdges(bool const value);
/// <summary>
/// Mask multipixels on chip boundary
/// </summary>
bool isMaskChipEdges() const;
void setMaskChipEdges(bool const value);
/// <summary>
/// JUNGFRAU: mask pixels that don&#39;t operate in G0, but do operate in G1 and G1. This should be turned off for cases, where detector is operated at room temperature with long exposure time.
/// </summary>
bool isJungfrauMaskPixelsWithoutG0() const;
void setJungfrauMaskPixelsWithoutG0(bool const value);
bool jungfrauMaskPixelsWithoutG0IsSet() const;
void unsetJungfrau_mask_pixels_without_g0();
/// <summary>
/// Masked pixels are set to special value in the images produced by Jungfraujoch
/// </summary>
bool isApplyMask() const;
void setApplyMask(bool const value);
/// <summary>
/// Pixels with pedestal G0 RMS above the threshold are marked as masked pixels
/// </summary>
int64_t getJungfrauPedestalG0RmsLimit() const;
void setJungfrauPedestalG0RmsLimit(int64_t const value);
bool jungfrauPedestalG0RmsLimitIsSet() const;
void unsetJungfrau_pedestal_g0_rms_limit();
friend void to_json(nlohmann::json& j, const Image_format_settings& o);
friend void from_json(const nlohmann::json& j, Image_format_settings& o);
protected:
bool m_Summation;
bool m_Geometry_transform;
bool m_Jungfrau_conversion;
float m_Jungfrau_conversion_factor_keV;
bool m_Jungfrau_conversion_factor_keVIsSet;
int64_t m_Bit_depth_image;
bool m_Bit_depth_imageIsSet;
bool m_Signed_output;
bool m_Signed_outputIsSet;
bool m_Mask_module_edges;
bool m_Mask_chip_edges;
bool m_Jungfrau_mask_pixels_without_g0;
bool m_Jungfrau_mask_pixels_without_g0IsSet;
bool m_Apply_mask;
int64_t m_Jungfrau_pedestal_g0_rms_limit;
bool m_Jungfrau_pedestal_g0_rms_limitIsSet;
};
} // namespace org::openapitools::server::model
#endif /* Image_format_settings_H_ */