142 lines
5.8 KiB
C++
142 lines
5.8 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.88
|
|
* 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.
|
|
*/
|
|
/*
|
|
* Indexing_settings.h
|
|
*
|
|
* Settings for crystallography indexing
|
|
*/
|
|
|
|
#ifndef Indexing_settings_H_
|
|
#define Indexing_settings_H_
|
|
|
|
|
|
#include "Indexing_algorithm.h"
|
|
#include "Geom_refinement_algorithm.h"
|
|
#include <nlohmann/json.hpp>
|
|
|
|
namespace org::openapitools::server::model
|
|
{
|
|
|
|
/// <summary>
|
|
/// Settings for crystallography indexing
|
|
/// </summary>
|
|
class Indexing_settings
|
|
{
|
|
public:
|
|
Indexing_settings();
|
|
virtual ~Indexing_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 Indexing_settings& rhs) const;
|
|
bool operator!=(const Indexing_settings& rhs) const;
|
|
|
|
/////////////////////////////////////////////
|
|
/// Indexing_settings members
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
org::openapitools::server::model::Indexing_algorithm getAlgorithm() const;
|
|
void setAlgorithm(org::openapitools::server::model::Indexing_algorithm const& value);
|
|
/// <summary>
|
|
/// Largest unit cell to be indexed by FFT algorithm; parameter value affects execution time of FFT
|
|
/// </summary>
|
|
float getFftMaxUnitCellA() const;
|
|
void setFftMaxUnitCellA(float const value);
|
|
/// <summary>
|
|
/// Smallest unit cell to be indexed by FFT algorithm; parameter value affects execution time of FFT
|
|
/// </summary>
|
|
float getFftMinUnitCellA() const;
|
|
void setFftMinUnitCellA(float const value);
|
|
/// <summary>
|
|
/// Highest resolution of spots used for FFT algorithm; parameter value affects execution time of FFT. There is also correlation between smallest unit cell and max resolution, which need to be checked for very small systems.
|
|
/// </summary>
|
|
float getFftHighResolutionA() const;
|
|
void setFftHighResolutionA(float const value);
|
|
/// <summary>
|
|
/// Number of search directions for the FFT algorithm; parameter value affects execution time of FFT.
|
|
/// </summary>
|
|
int64_t getFftNumVectors() const;
|
|
void setFftNumVectors(int64_t const value);
|
|
/// <summary>
|
|
/// Acceptance tolerance for spots after the indexing run - the larger the number, the more spots will be accepted
|
|
/// </summary>
|
|
float getTolerance() const;
|
|
void setTolerance(float const value);
|
|
/// <summary>
|
|
/// Thread count for indexing algorithm
|
|
/// </summary>
|
|
int64_t getThreadCount() const;
|
|
void setThreadCount(int64_t const value);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
org::openapitools::server::model::Geom_refinement_algorithm getGeomRefinementAlgorithm() const;
|
|
void setGeomRefinementAlgorithm(org::openapitools::server::model::Geom_refinement_algorithm const& value);
|
|
/// <summary>
|
|
/// Relative distance tolerance for unit cell vs. reference; Lattices outside given tolerance will be ignored
|
|
/// </summary>
|
|
float getUnitCellDistTolerance() const;
|
|
void setUnitCellDistTolerance(float const value);
|
|
/// <summary>
|
|
/// Include spots marked as ice rings in the indexing run. If `dataset_settings` doesn't have `detect_ice_rings` on, this option will have no effect on processing.
|
|
/// </summary>
|
|
bool isIndexIceRings() const;
|
|
void setIndexIceRings(bool const value);
|
|
|
|
friend void to_json(nlohmann::json& j, const Indexing_settings& o);
|
|
friend void from_json(const nlohmann::json& j, Indexing_settings& o);
|
|
protected:
|
|
org::openapitools::server::model::Indexing_algorithm m_Algorithm;
|
|
|
|
float m_Fft_max_unit_cell_A;
|
|
|
|
float m_Fft_min_unit_cell_A;
|
|
|
|
float m_Fft_high_resolution_A;
|
|
|
|
int64_t m_Fft_num_vectors;
|
|
|
|
float m_Tolerance;
|
|
|
|
int64_t m_Thread_count;
|
|
|
|
org::openapitools::server::model::Geom_refinement_algorithm m_Geom_refinement_algorithm;
|
|
|
|
float m_Unit_cell_dist_tolerance;
|
|
|
|
bool m_Index_ice_rings;
|
|
|
|
|
|
};
|
|
|
|
} // namespace org::openapitools::server::model
|
|
|
|
#endif /* Indexing_settings_H_ */
|