From 0956e59b9c7452dad974b29954f59ed21f28fb6c Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Fri, 30 Jan 2026 20:39:26 +0100 Subject: [PATCH] BraggPrediction: Set Lorentz-polarization correction properly --- .../bragg_integration/BraggIntegrate2D.cpp | 14 ++++---------- .../bragg_prediction/BraggPrediction.cpp | 1 + .../bragg_prediction/BraggPredictionGPU.cu | 1 + 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/image_analysis/bragg_integration/BraggIntegrate2D.cpp b/image_analysis/bragg_integration/BraggIntegrate2D.cpp index b1624dea..0e5bd116 100644 --- a/image_analysis/bragg_integration/BraggIntegrate2D.cpp +++ b/image_analysis/bragg_integration/BraggIntegrate2D.cpp @@ -98,18 +98,12 @@ std::vector IntegrateInternal(const DiffractionExperiment &experimen IntegrateReflection(r, ptr, image.GetWidth(), image.GetHeight(), special_value, saturation, r_3, r_1_sq, r_2_sq, r_3_sq); if (r.observed) { - float corr = 1.0; if (experiment.GetPolarizationFactor()) - corr /= geom.CalcAzIntPolarizationCorr(r.predicted_x, r.predicted_y, + r.lp *= geom.CalcAzIntPolarizationCorr(r.predicted_x, r.predicted_y, experiment.GetPolarizationFactor().value()); - Coord S{r.S_x, r.S_y, r.S_z}; - if (experiment.GetGoniometer().has_value()) - corr *= std::fabs(m2 * (S % S0)) / (S * S0); - - r.lp = 1.0f / corr; - r.I *= corr; - r.bkg *= corr; - r.sigma *= corr; + r.I *= r.lp; + r.bkg *= r.lp; + r.sigma *= r.lp; r.image_number = static_cast(image_number); ret.emplace_back(r); } diff --git a/image_analysis/bragg_prediction/BraggPrediction.cpp b/image_analysis/bragg_prediction/BraggPrediction.cpp index dbc70fa0..483c2d85 100644 --- a/image_analysis/bragg_prediction/BraggPrediction.cpp +++ b/image_analysis/bragg_prediction/BraggPrediction.cpp @@ -100,6 +100,7 @@ int BraggPrediction::Calc(const DiffractionExperiment &experiment, const Crystal .predicted_y = y, .d = d, .dist_ewald = dist_ewald_sphere, + .lp = 1.0, .S_x = S_x, .S_y = S_y, .S_z = S_z diff --git a/image_analysis/bragg_prediction/BraggPredictionGPU.cu b/image_analysis/bragg_prediction/BraggPredictionGPU.cu index 0bd61286..aae6a5ed 100644 --- a/image_analysis/bragg_prediction/BraggPredictionGPU.cu +++ b/image_analysis/bragg_prediction/BraggPredictionGPU.cu @@ -84,6 +84,7 @@ namespace { out.S_x = Sx; out.S_y = Sy; out.S_z = Sz; + out.lp = 1.0f; return true; }