Files
Jungfraujoch/broker/gen/model/Detector_settings.h
2024-10-08 21:04:09 +02:00

176 lines
5.0 KiB
C++

/**
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.15
* 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_settings.h
*
*
*/
#ifndef Detector_settings_H_
#define Detector_settings_H_
#include <nlohmann/json.hpp>
namespace org::openapitools::server::model
{
/// <summary>
///
/// </summary>
class Detector_settings
{
public:
Detector_settings();
virtual ~Detector_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 Detector_settings& rhs) const;
bool operator!=(const Detector_settings& rhs) const;
/////////////////////////////////////////////
/// Detector_settings members
/// <summary>
/// Interval between consecutive frames.
/// </summary>
int64_t getFrameTimeUs() const;
void setFrameTimeUs(int64_t const value);
/// <summary>
/// Integration time of the detector. If not provided count time will be set to maximum value for a given frame time.
/// </summary>
int64_t getCountTimeUs() const;
void setCountTimeUs(int64_t const value);
bool countTimeUsIsSet() const;
void unsetCount_time_us();
/// <summary>
///
/// </summary>
int64_t getStorageCellCount() const;
void setStorageCellCount(int64_t const value);
/// <summary>
/// Use internal frame generator in FPGA instead of getting data from a real detector
/// </summary>
bool isInternalFrameGenerator() const;
void setInternalFrameGenerator(bool const value);
/// <summary>
///
/// </summary>
int64_t getInternalFrameGeneratorImages() const;
void setInternalFrameGeneratorImages(int64_t const value);
/// <summary>
///
/// </summary>
int64_t getPedestalG0Frames() const;
void setPedestalG0Frames(int64_t const value);
/// <summary>
///
/// </summary>
int64_t getPedestalG1Frames() const;
void setPedestalG1Frames(int64_t const value);
/// <summary>
///
/// </summary>
int64_t getPedestalG2Frames() const;
void setPedestalG2Frames(int64_t const value);
/// <summary>
/// Pixels with pedestal G0 RMS above the threshold are marked as masked pixels
/// </summary>
int64_t getPedestalG0RmsLimit() const;
void setPedestalG0RmsLimit(int64_t const value);
/// <summary>
/// Minimum number of collected images for pedestal to consider it viable
/// </summary>
int64_t getPedestalMinImageCount() const;
void setPedestalMinImageCount(int64_t const value);
/// <summary>
/// Delay between two storage cells [ns]
/// </summary>
int64_t getStorageCellDelayNs() const;
void setStorageCellDelayNs(int64_t const value);
/// <summary>
/// Delay between TTL trigger and acquisition start [ns]
/// </summary>
int64_t getDetectorTriggerDelayNs() const;
void setDetectorTriggerDelayNs(int64_t const value);
bool detectorTriggerDelayNsIsSet() const;
void unsetDetector_trigger_delay_ns();
/// <summary>
/// Fix gain to G1 (can be useful for storage cells)
/// </summary>
bool isFixedGainG1() const;
void setFixedGainG1(bool const value);
bool fixedGainG1IsSet() const;
void unsetFixed_gain_g1();
/// <summary>
/// Use high G0 (for low energy applications)
/// </summary>
bool isUseGainHg0() const;
void setUseGainHg0(bool const value);
bool useGainHg0IsSet() const;
void unsetUse_gain_hg0();
friend void to_json(nlohmann::json& j, const Detector_settings& o);
friend void from_json(const nlohmann::json& j, Detector_settings& o);
protected:
int64_t m_Frame_time_us;
int64_t m_Count_time_us;
bool m_Count_time_usIsSet;
int64_t m_Storage_cell_count;
bool m_Internal_frame_generator;
int64_t m_Internal_frame_generator_images;
int64_t m_Pedestal_g0_frames;
int64_t m_Pedestal_g1_frames;
int64_t m_Pedestal_g2_frames;
int64_t m_Pedestal_g0_rms_limit;
int64_t m_Pedestal_min_image_count;
int64_t m_Storage_cell_delay_ns;
int64_t m_Detector_trigger_delay_ns;
bool m_Detector_trigger_delay_nsIsSet;
bool m_Fixed_gain_g1;
bool m_Fixed_gain_g1IsSet;
bool m_Use_gain_hg0;
bool m_Use_gain_hg0IsSet;
};
} // namespace org::openapitools::server::model
#endif /* Detector_settings_H_ */