149 lines
4.9 KiB
C++
149 lines
4.9 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.64
|
|
* 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>
|
|
///
|
|
/// </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>
|
|
/// High resolution limit for spot finding [Angstrom]
|
|
/// </summary>
|
|
float getHighResolutionLimit() const;
|
|
void setHighResolutionLimit(float const value);
|
|
/// <summary>
|
|
/// Low resolution limit for spot finding [Angstrom]
|
|
/// </summary>
|
|
float getLowResolutionLimit() const;
|
|
void setLowResolutionLimit(float const value);
|
|
/// <summary>
|
|
/// High resolution threshold to consider spot \"low resolution\" [Angstrom]
|
|
/// </summary>
|
|
float getHighResolutionLimitForSpotCountLowRes() const;
|
|
void setHighResolutionLimitForSpotCountLowRes(float const value);
|
|
/// <summary>
|
|
/// Diffraction image resolution estimation using ML model from SSRL; `jfjoch_broker` must be compiled with libtorch support and path to .pt file configured in `jfjoch_broker` 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 Bragg spots in 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);
|
|
|
|
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;
|
|
|
|
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;
|
|
|
|
float m_High_resolution_limit_for_spot_count_low_res;
|
|
|
|
bool m_Resolution_estimate;
|
|
bool m_Resolution_estimateIsSet;
|
|
bool m_Quick_integration;
|
|
|
|
|
|
};
|
|
|
|
} // namespace org::openapitools::server::model
|
|
|
|
#endif /* Spot_finding_settings_H_ */
|