v1.0.0-rc.81

This commit is contained in:
2025-09-21 19:27:51 +02:00
parent 3ded4cd3ce
commit 5d9d2de4a4
243 changed files with 3401 additions and 935 deletions
+36 -2
View File
@@ -7,6 +7,8 @@
#include "NetworkAddressConvert.h"
#include "JFJochCompressor.h" // For ZSTD_USE_JFJOCH_RLE
#include "DiffractionExperiment.h"
#include "CUDAWrapper.h"
#include "JFJochException.h"
#include "RawToConvertedGeometry.h"
#include "../include/spdlog/fmt/fmt.h"
@@ -570,10 +572,14 @@ std::string DiffractionExperiment::GetSampleName() const {
}
void DiffractionExperiment::CheckDataProcessingSettings(const SpotFindingSettings &settings) {
check_finite("Signal to noise threshold", settings.signal_to_noise_threshold);
check_min("Signal to noise threshold", settings.signal_to_noise_threshold, 1);
check_min("Photon count threshold", settings.photon_count_threshold, 0);
check_min("Minimum pixels per spot", settings.min_pix_per_spot, 1);
check_min("Maximum pixels per spot", settings.max_pix_per_spot, settings.min_pix_per_spot + 1);
check_finite("Spot finding high resolution limit", settings.high_resolution_limit);
check_finite("Spot finding low resolution limit", settings.low_resolution_limit);
if (settings.high_resolution_limit > 0) {
check_min("Spot finding high resolution limit", settings.high_resolution_limit, 0.5);
check_max("Spot finding high resolution limit", settings.high_resolution_limit, 50.0);
@@ -585,7 +591,10 @@ void DiffractionExperiment::CheckDataProcessingSettings(const SpotFindingSetting
check_min("Spot finding low resolution limit", settings.low_resolution_limit, 1.0);
check_max("Spot finding low resolution limit", settings.low_resolution_limit, 50.0);
}
check_min("min spot count for powder ring detection", settings.min_spot_count_powder_ring, 5);
check_min("Ice ring width in Q-space (A^-1)", settings.ice_ring_width_Q_recipA, 0.0);
check_max("Ice ring width in Q-space (A^-1)", settings.ice_ring_width_Q_recipA, 1.0);
check_finite("Ice ring width in Q-space (A^-1)", settings.ice_ring_width_Q_recipA);
}
SpotFindingSettings DiffractionExperiment::DefaultDataProcessingSettings() {
@@ -662,11 +671,14 @@ void DiffractionExperiment::FillMessage(StartMessage &message) const {
message.file_format = file_writer.GetHDF5MasterFormatVersion();
message.ring_current_mA = dataset.GetRingCurrent_mA();
message.sample_temperature_K = dataset.GetSampleTemperature_K();
message.fluorescence_spectrum = dataset.GetFluorescenceSpectrum();
message.poni_rot1 = dataset.GetPoniRot1_rad();
message.poni_rot2 = dataset.GetPoniRot2_rad();
message.poni_rot3 = dataset.GetPoniRot3_rad();
message.detect_ice_rings = dataset.IsDetectIceRings();
message.channels = {"default"};
switch (GetDetectorType()) {
@@ -1417,11 +1429,15 @@ IndexingAlgorithmEnum DiffractionExperiment::GetIndexingAlgorithm() const {
return IndexingAlgorithmEnum::None;
return IndexingAlgorithmEnum::FFBIDX;
case IndexingAlgorithmEnum::Auto:
if (get_gpu_count() == 0)
return IndexingAlgorithmEnum::FFTW;
if (!cell)
return IndexingAlgorithmEnum::FFT;
return IndexingAlgorithmEnum::FFBIDX;
case IndexingAlgorithmEnum::FFT:
return IndexingAlgorithmEnum::FFT;
case IndexingAlgorithmEnum::FFTW:
return IndexingAlgorithmEnum::FFTW;
default:
return IndexingAlgorithmEnum::None;
}
@@ -1460,7 +1476,7 @@ DiffractionExperiment &DiffractionExperiment::RingCurrent_mA(const std::optional
return *this;
}
std::optional<float> DiffractionExperiment::GetSampleTemeperature_K() const {
std::optional<float> DiffractionExperiment::GetSampleTemperature_K() const {
return dataset.GetSampleTemperature_K();
}
@@ -1544,3 +1560,21 @@ char DiffractionExperiment::GetCentering() const {
return 'P';
return sg->centring_type();
}
DiffractionExperiment &DiffractionExperiment::FluorescenceSpectrum(const XrayFluorescenceSpectrum &input) {
dataset.FluorescenceSpectrum(input);
return *this;
}
DiffractionExperiment &DiffractionExperiment::DetectIceRings(bool input) {
dataset.DetectIceRings(input);
return *this;
}
bool DiffractionExperiment::IsDetectIceRings() const {
return dataset.IsDetectIceRings();
}
const XrayFluorescenceSpectrum &DiffractionExperiment::GetFluorescenceSpectrum() const {
return dataset.GetFluorescenceSpectrum();
}