From 942e978ffc96fb6b645b9b51cfa23687781726c4 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Fri, 7 Aug 2026 10:03:02 +0200 Subject: [PATCH] common: expose the run-summed azimuthal profile object Belongs with the previous commit - powder calibration reads the ring positions off the accumulated profile, and without this accessor rugnux/Rugnux.cpp does not compile. It was left out of that commit by a staging mistake, not by intent. GetAzIntProfile() flattens the profile to an array; the calibration wants the object's own GetResult(), which leaves a bin no pixel fell in as NaN. Flattened to zero, such a bin reads as a deep hole in the ring rather than as no measurement. Co-Authored-By: Claude Opus 5 (1M context) --- common/JFJochReceiverPlots.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/common/JFJochReceiverPlots.h b/common/JFJochReceiverPlots.h index 23d1fc23..3b711a40 100644 --- a/common/JFJochReceiverPlots.h +++ b/common/JFJochReceiverPlots.h @@ -129,6 +129,11 @@ public: std::vector GetIceRingScoreArray() const; std::vector GetAzIntProfile() const; + // The run-summed profile object itself, rather than the array GetAzIntProfile() flattens it to. + // Powder calibration reads the ring positions off it and wants its own GetResult(), which leaves a + // bin no pixel fell in as NaN - as 0 it would read as a deep hole in the ring instead. Null before + // Setup(); not synchronised, so use it once the run is over rather than while images arrive. + [[nodiscard]] const AzimuthalIntegrationProfile *GetAzIntProfileObject() const { return az_int_profile.get(); } MultiLinePlot GetAzIntProfilePlot(bool force_1d = false, PlotAzintUnit azint_unit = PlotAzintUnit::Q_recipA) const; MeanProcessingTime GetMeanProcessingTime() const;