Files
Jungfraujoch/broker/gen/model/Spot_finding_settings.h
2025-06-17 14:56:48 +02:00

167 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.46
* 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.
*/
/*
* Spot_finding_settings.h
*
*
*/
#ifndef Spot_finding_settings_H_
#define Spot_finding_settings_H_
#include <nlohmann/json.hpp>
namespace org::openapitools::server::model
{
/// <summary>
///
/// </summary>
class Spot_finding_settings
{
public:
Spot_finding_settings();
virtual ~Spot_finding_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 Spot_finding_settings& rhs) const;
bool operator!=(const Spot_finding_settings& rhs) const;
/////////////////////////////////////////////
/// Spot_finding_settings members
/// <summary>
/// Enable spot finding. This is temporary setting, i.e. can be changed anytime during data collection. Even if disabled spot finding information will still be send and written, though always with zero spots.
/// </summary>
bool isEnable() const;
void setEnable(bool const value);
/// <summary>
/// Enable indexing. This is temporary setting, i.e. can be changed anytime during data collection.
/// </summary>
bool isIndexing() const;
void setIndexing(bool const value);
/// <summary>
/// Filter spots which form powder rings (e.g., ice rings)
/// </summary>
bool isFilterPowderRings() const;
void setFilterPowderRings(bool const value);
bool filterPowderRingsIsSet() const;
void unsetFilter_powder_rings();
/// <summary>
/// Minimum number of spots to consider a thin resolution shell (0.01 A^-1) a powder ring and filter out.
/// </summary>
int64_t getMinSpotCountPowderRing() const;
void setMinSpotCountPowderRing(int64_t const value);
bool minSpotCountPowderRingIsSet() const;
void unsetMin_spot_count_powder_ring();
/// <summary>
///
/// </summary>
float getSignalToNoiseThreshold() const;
void setSignalToNoiseThreshold(float const value);
/// <summary>
///
/// </summary>
int64_t getPhotonCountThreshold() const;
void setPhotonCountThreshold(int64_t const value);
/// <summary>
///
/// </summary>
int64_t getMinPixPerSpot() const;
void setMinPixPerSpot(int64_t const value);
/// <summary>
///
/// </summary>
int64_t getMaxPixPerSpot() const;
void setMaxPixPerSpot(int64_t const value);
/// <summary>
///
/// </summary>
float getHighResolutionLimit() const;
void setHighResolutionLimit(float const value);
/// <summary>
///
/// </summary>
float getLowResolutionLimit() const;
void setLowResolutionLimit(float const value);
/// <summary>
/// Diffraction image resolution estimation using ML model from SSRL; &#x60;jfjoch_broker&#x60; must be compiled with libtorch support and path to .pt file configured in &#x60;jfjoch_broker&#x60; configuration file. If enabled it will likely reduce performance of Jungfraujoch to below 100 Hz. (experimental feature)
/// </summary>
bool isResolutionEstimate() const;
void setResolutionEstimate(bool const value);
bool resolutionEstimateIsSet() const;
void unsetResolution_estimate();
/// <summary>
/// Quick integration of collected diffraction images. If enabled it will likely reduce performance of Jungfraujoch for datasets with a very high indexing rate. (experimental feature)
/// </summary>
bool isQuickIntegration() const;
void setQuickIntegration(bool const value);
/// <summary>
/// Quick integration limit for high resolution [A]
/// </summary>
float getQuickIntegrationHighResA() const;
void setQuickIntegrationHighResA(float const value);
friend void to_json(nlohmann::json& j, const Spot_finding_settings& o);
friend void from_json(const nlohmann::json& j, Spot_finding_settings& o);
protected:
bool m_Enable;
bool m_Indexing;
bool m_Filter_powder_rings;
bool m_Filter_powder_ringsIsSet;
int64_t m_Min_spot_count_powder_ring;
bool m_Min_spot_count_powder_ringIsSet;
float m_Signal_to_noise_threshold;
int64_t m_Photon_count_threshold;
int64_t m_Min_pix_per_spot;
int64_t m_Max_pix_per_spot;
float m_High_resolution_limit;
float m_Low_resolution_limit;
bool m_Resolution_estimate;
bool m_Resolution_estimateIsSet;
bool m_Quick_integration;
float m_Quick_integration_high_res_A;
};
} // namespace org::openapitools::server::model
#endif /* Spot_finding_settings_H_ */