213 lines
7.4 KiB
C++
213 lines
7.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.23
|
|
* 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 "Detector_timing.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>
|
|
/// Use internal frame generator in FPGA instead of getting data from a real detector
|
|
/// </summary>
|
|
bool isInternalFrameGenerator() const;
|
|
void setInternalFrameGenerator(bool const value);
|
|
bool internalFrameGeneratorIsSet() const;
|
|
void unsetInternal_frame_generator();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
int64_t getInternalFrameGeneratorImages() const;
|
|
void setInternalFrameGeneratorImages(int64_t const value);
|
|
bool internalFrameGeneratorImagesIsSet() const;
|
|
void unsetInternal_frame_generator_images();
|
|
/// <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>
|
|
///
|
|
/// </summary>
|
|
org::openapitools::server::model::Detector_timing getTiming() const;
|
|
void setTiming(org::openapitools::server::model::Detector_timing const& value);
|
|
bool timingIsSet() const;
|
|
void unsetTiming();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
float getEigerThresholdKeV() const;
|
|
void setEigerThresholdKeV(float const value);
|
|
bool eigerThresholdKeVIsSet() const;
|
|
void unsetEiger_threshold_keV();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
int64_t getJungfrauPedestalG0Frames() const;
|
|
void setJungfrauPedestalG0Frames(int64_t const value);
|
|
bool jungfrauPedestalG0FramesIsSet() const;
|
|
void unsetJungfrau_pedestal_g0_frames();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
int64_t getJungfrauPedestalG1Frames() const;
|
|
void setJungfrauPedestalG1Frames(int64_t const value);
|
|
bool jungfrauPedestalG1FramesIsSet() const;
|
|
void unsetJungfrau_pedestal_g1_frames();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
int64_t getJungfrauPedestalG2Frames() const;
|
|
void setJungfrauPedestalG2Frames(int64_t const value);
|
|
bool jungfrauPedestalG2FramesIsSet() const;
|
|
void unsetJungfrau_pedestal_g2_frames();
|
|
/// <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();
|
|
/// <summary>
|
|
/// Minimum number of collected images for pedestal to consider it viable
|
|
/// </summary>
|
|
int64_t getJungfrauPedestalMinImageCount() const;
|
|
void setJungfrauPedestalMinImageCount(int64_t const value);
|
|
bool jungfrauPedestalMinImageCountIsSet() const;
|
|
void unsetJungfrau_pedestal_min_image_count();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
int64_t getJungfrauStorageCellCount() const;
|
|
void setJungfrauStorageCellCount(int64_t const value);
|
|
bool jungfrauStorageCellCountIsSet() const;
|
|
void unsetJungfrau_storage_cell_count();
|
|
/// <summary>
|
|
/// Delay between two storage cells [ns]
|
|
/// </summary>
|
|
int64_t getJungfrauStorageCellDelayNs() const;
|
|
void setJungfrauStorageCellDelayNs(int64_t const value);
|
|
bool jungfrauStorageCellDelayNsIsSet() const;
|
|
void unsetJungfrau_storage_cell_delay_ns();
|
|
/// <summary>
|
|
/// Fix gain to G1 (can be useful for storage cells)
|
|
/// </summary>
|
|
bool isJungfrauFixedGainG1() const;
|
|
void setJungfrauFixedGainG1(bool const value);
|
|
bool jungfrauFixedGainG1IsSet() const;
|
|
void unsetJungfrau_fixed_gain_g1();
|
|
/// <summary>
|
|
/// Use high G0 (for low energy applications)
|
|
/// </summary>
|
|
bool isJungfrauUseGainHg0() const;
|
|
void setJungfrauUseGainHg0(bool const value);
|
|
bool jungfrauUseGainHg0IsSet() const;
|
|
void unsetJungfrau_use_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;
|
|
bool m_Internal_frame_generator;
|
|
bool m_Internal_frame_generatorIsSet;
|
|
int64_t m_Internal_frame_generator_images;
|
|
bool m_Internal_frame_generator_imagesIsSet;
|
|
int64_t m_Detector_trigger_delay_ns;
|
|
bool m_Detector_trigger_delay_nsIsSet;
|
|
org::openapitools::server::model::Detector_timing m_Timing;
|
|
bool m_TimingIsSet;
|
|
float m_Eiger_threshold_keV;
|
|
bool m_Eiger_threshold_keVIsSet;
|
|
int64_t m_Jungfrau_pedestal_g0_frames;
|
|
bool m_Jungfrau_pedestal_g0_framesIsSet;
|
|
int64_t m_Jungfrau_pedestal_g1_frames;
|
|
bool m_Jungfrau_pedestal_g1_framesIsSet;
|
|
int64_t m_Jungfrau_pedestal_g2_frames;
|
|
bool m_Jungfrau_pedestal_g2_framesIsSet;
|
|
int64_t m_Jungfrau_pedestal_g0_rms_limit;
|
|
bool m_Jungfrau_pedestal_g0_rms_limitIsSet;
|
|
int64_t m_Jungfrau_pedestal_min_image_count;
|
|
bool m_Jungfrau_pedestal_min_image_countIsSet;
|
|
int64_t m_Jungfrau_storage_cell_count;
|
|
bool m_Jungfrau_storage_cell_countIsSet;
|
|
int64_t m_Jungfrau_storage_cell_delay_ns;
|
|
bool m_Jungfrau_storage_cell_delay_nsIsSet;
|
|
bool m_Jungfrau_fixed_gain_g1;
|
|
bool m_Jungfrau_fixed_gain_g1IsSet;
|
|
bool m_Jungfrau_use_gain_hg0;
|
|
bool m_Jungfrau_use_gain_hg0IsSet;
|
|
|
|
};
|
|
|
|
} // namespace org::openapitools::server::model
|
|
|
|
#endif /* Detector_settings_H_ */
|