All checks were successful
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 10m14s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 9m6s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 10m27s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 7m59s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m59s
Build Packages / build:rpm (rocky8) (push) Successful in 9m10s
Build Packages / Generate python client (push) Successful in 28s
Build Packages / Create release (push) Has been skipped
Build Packages / Build documentation (push) Successful in 40s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 10m55s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 9m32s
Build Packages / build:rpm (rocky9) (push) Successful in 10m17s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 8m4s
Build Packages / Unit tests (push) Successful in 1h13m5s
This is an UNSTABLE release. If things go wrong with analysis, it is better to revert to 1.0.0-rc.124. * jfjoch_broker: Fix bug for monoclinic space groups being wrongly refined when beta is much different from 90 deg. Reviewed-on: #33 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch> Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
213 lines
9.1 KiB
C++
213 lines
9.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. # 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.126
|
|
* 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. This is internal frame time for the JUNGFRAU detector, image time has to be integer multiply of this number. For EIGER detector this is default frame time, not used otherwise
|
|
/// </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>
|
|
/// Number of images stored in the internal frame generator.
|
|
/// </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>
|
|
/// Threshold for the PSI EIGER detector and all DECTRIS detectors. If value is provided, it will be used for all subsequent acquisitions, irrespective of beam energy. If value is not provided, threshold will be determined on start of acquisition as half of incident energy. This might lead to increased start time.
|
|
/// </summary>
|
|
float getEigerThresholdKeV() const;
|
|
void setEigerThresholdKeV(float const value);
|
|
bool eigerThresholdKeVIsSet() const;
|
|
void unsetEiger_threshold_keV();
|
|
/// <summary>
|
|
/// Bit depth of PSI EIGER read-out. This is If value is not provided, depth will be determined based on the image time: * Exposure time < 500 microseconds depth of 8 bit will be used, * 500 <= exposure time < 2622 microseconds depth of 16 bit will be used * Exposure time >= 2622 microseconds depth of 32 bit will be used.
|
|
/// </summary>
|
|
int64_t getEigerBitDepth() const;
|
|
void setEigerBitDepth(int64_t const value);
|
|
bool eigerBitDepthIsSet() const;
|
|
void unsetEiger_bit_depth();
|
|
/// <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>
|
|
/// 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_Eiger_bit_depth;
|
|
bool m_Eiger_bit_depthIsSet;
|
|
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_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_ */
|