From 1e48de453dffbcc4487c9025c7f76d1d2f2857ee Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Thu, 18 Dec 2025 12:32:03 +0100 Subject: [PATCH] BraggPrediction: Work in progress --- common/Reflection.h | 1 - image_analysis/IndexAndRefine.cpp | 2 +- .../bragg_prediction/BraggPrediction.h | 4 +--- .../BraggPredictionRotation.cpp | 23 ++----------------- 4 files changed, 4 insertions(+), 26 deletions(-) diff --git a/common/Reflection.h b/common/Reflection.h index 8b1ccb29..00b960dc 100644 --- a/common/Reflection.h +++ b/common/Reflection.h @@ -22,7 +22,6 @@ struct Reflection { float sigma; float dist_ewald; bool observed = false; - float partiality = 1.0; }; #endif //JFJOCH_REFLECTION_H diff --git a/image_analysis/IndexAndRefine.cpp b/image_analysis/IndexAndRefine.cpp index 2bfd1989..dc8094d3 100644 --- a/image_analysis/IndexAndRefine.cpp +++ b/image_analysis/IndexAndRefine.cpp @@ -141,9 +141,9 @@ void IndexAndRefine::QuickPredictAndIntegrate(DataMessage &msg, BraggPredictionSettings settings_prediction{ .high_res_A = experiment.GetBraggIntegrationSettings().GetDMinLimit_A(), + .ewald_dist_cutoff = ewald_dist_cutoff, .max_hkl = 100, .centering = outcome.symmetry.centering, - .ewald_dist_cutoff = ewald_dist_cutoff, }; auto nrefl = prediction.Calc(experiment, *outcome.lattice_candidate, settings_prediction); diff --git a/image_analysis/bragg_prediction/BraggPrediction.h b/image_analysis/bragg_prediction/BraggPrediction.h index cf067f01..3c46bbff 100644 --- a/image_analysis/bragg_prediction/BraggPrediction.h +++ b/image_analysis/bragg_prediction/BraggPrediction.h @@ -12,12 +12,10 @@ struct BraggPredictionSettings { float high_res_A = 1.5; + float ewald_dist_cutoff = 0.0005; int max_hkl = 100; char centering = 'P'; - // Still parameters - float ewald_dist_cutoff = 0.0005; - // Rotation parameters Coord rotation_axis = Coord(1, 0, 0); int image_number = 0; diff --git a/image_analysis/bragg_prediction/BraggPredictionRotation.cpp b/image_analysis/bragg_prediction/BraggPredictionRotation.cpp index 96ab3d55..23315bba 100644 --- a/image_analysis/bragg_prediction/BraggPredictionRotation.cpp +++ b/image_analysis/bragg_prediction/BraggPredictionRotation.cpp @@ -176,25 +176,7 @@ int BraggPredictionRotation::Calc(const DiffractionExperiment &experiment, if (i >= max_reflections) break; const float phi = sols[si]; - - // Rossmann partiality model (geometric overlap) - // Reflection interval: [phi - half_mosaicity, phi + half_mosaicity] - // Image interval: [phi0, phi1] - float refl_start = phi - half_mosaicity; - float refl_end = phi + half_mosaicity; - - float overlap_start = std::max(refl_start, phi0); - float overlap_end = std::min(refl_end, phi1); - - if (overlap_end < overlap_start) - continue; // No physical overlap - - float partiality = 1.0f; - if (mosaicity_rad > 1e-6f) { - partiality = (overlap_end - overlap_start) / mosaicity_rad; - if (partiality > 1.0f) partiality = 1.0f; - } - + const float cos_p = cosf(phi); const float sin_p = sinf(phi); @@ -232,8 +214,7 @@ int BraggPredictionRotation::Calc(const DiffractionExperiment &experiment, .predicted_x = x, .predicted_y = y, .d = d, - .dist_ewald = sqrtf(S_x * S_x + S_y * S_y + S_z * S_z) - one_over_wavelength, - .partiality = partiality + .dist_ewald = sqrtf(S_x * S_x + S_y * S_y + S_z * S_z) - one_over_wavelength }; ++i; }