Parameters

Struct for all three Parameter sets introduced in Section Different Parameter Sets.

struct Parameters

base class for Parameters

Subclassed by angcal::BCParameters, angcal::DGParameters, angcal::EEParameters

Public Functions

~Parameters() = default
Parameters() = default
inline Parameters(const ssize_t n_modules)
inline double &operator()(const size_t module_index, const size_t parameter_index)
inline double operator()(const size_t module_index, const size_t parameter_index) const
inline ssize_t num_modules() const

get number of modules

Public Members

aare::NDArray<double, 2> parameters = {}
struct DGParameters : public angcal::Parameters

historical Detector Group parameters

Public Functions

~DGParameters() = default
DGParameters() = default
inline DGParameters(const ssize_t n_modules)
inline double &centers(const size_t module_index)

orthogonal projection of sample onto detector (given in strip number) [mm] D/pitch

inline double centers(const size_t module_index) const
inline double &conversions(const size_t module_index)

pitch/(normal distance from sample to detector (R)) [mm] used for easy conversion

inline double conversions(const size_t module_index) const
inline double &offsets(const size_t module_index)

position of strip zero relative to sample [degrees] phi 180/pi*D/R TODO: expected an arcsin(D/R)?

inline double offsets(const size_t module_index) const
std::tuple<double, double, double> convert_to_BCParameters(const size_t module_index) const

converts DG parameters at module_index to BC parameters stored as tuple

void convert_to_BCParameters(BCParameters &bcparameters) const

converts DG parameters to BC parameters

std::tuple<double, double, double> convert_to_EEParameters(const size_t module_index) const

converts DG parameters at module_index to EE parameters stored as tuple

void convert_to_EEParameters(EEParameters &eeparameters) const

converts DG parameters to EE parameters

inline double &operator()(const size_t module_index, const size_t parameter_index)
inline double operator()(const size_t module_index, const size_t parameter_index) const
inline ssize_t num_modules() const

get number of modules

Public Members

aare::NDArray<double, 2> parameters = {}
struct BCParameters : public angcal::Parameters

best computing parameters

Public Functions

~BCParameters() = default
BCParameters() = default
inline BCParameters(const ssize_t n_modules)
inline double &angle_center_module_normal(const size_t module_index)

angle between center of module and module normal (from sample) [degrees] (delta)

inline double angle_center_module_normal(const size_t module_index) const
inline double &module_center_sample_distances(const size_t module_index)

euclidean distance between center of module and sample (L)

inline double module_center_sample_distances(const size_t module_index) const
inline double &angle_center_beam(const size_t module_index)

diffraction angle between center module and beam (phi) [degrees]

inline double angle_center_beam(const size_t module_index) const
std::tuple<double, double, double> convert_to_DGParameters(const size_t module_index) const

converts BC parameters at module_index to DG parameters stored as tuple

void convert_to_DGParameters(DGParameters &dgparameters) const

converts BC parameters to DG parameters

std::tuple<double, double, double> convert_to_EEParameters(const ssize_t module_index) const

converts BC parameters at module_index to EE parameters stored as tuple

void convert_to_EEParameters(EEParameters &eeparameters) const

converts BC parameters to EE parameters

inline double &operator()(const size_t module_index, const size_t parameter_index)
inline double operator()(const size_t module_index, const size_t parameter_index) const
inline ssize_t num_modules() const

get number of modules

Public Members

aare::NDArray<double, 2> parameters = {}
struct EEParameters : public angcal::Parameters

easy parameters/ geometric parameters

Public Functions

~EEParameters() = default
EEParameters() = default
inline EEParameters(const ssize_t n_modules)
inline double &normal_distances(const size_t module_index)

normal distance between sample and detector (R)

inline double normal_distances(const size_t module_index) const
inline double &module_center_distances(const size_t module_index)

distances between start of module and orthogonal projection of sample onto detector (D)

inline double module_center_distances(const size_t module_index) const
inline double &angles(const size_t module_index)

angle between undiffracted beam and orthogonal sample projection on detector (phi)

inline double angles(const size_t module_index) const
inline double &operator()(const size_t module_index, const size_t parameter_index)
inline double operator()(const size_t module_index, const size_t parameter_index) const
inline ssize_t num_modules() const

get number of modules

Public Members

aare::NDArray<double, 2> parameters = {}