// SPDX-FileCopyrightText: 2026 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #include "ROIIntegration.h" #include "../../common/DiffractionExperiment.h" ROIIntegration::ROIIntegration(const DiffractionExperiment &experiment) : roi_map(experiment.ExportROIMap()), width(experiment.GetXPixelsNumConv()), npixel(roi_map.size()), roi_count(experiment.ROI().size()), roi_name(roi_count), roi_sum(roi_count), roi_sum2(roi_count), roi_pixels(roi_count), roi_x_weighted(roi_count), roi_y_weighted(roi_count), roi_max(roi_count) { for (const auto &[name, id] : experiment.ROI().GetROINameMap()) roi_name[id] = name; } void ROIIntegration::Export(std::map &out) const { for (uint16_t r = 0; r < roi_count; r++) out[roi_name[r]] = ROIMessage{ .sum = roi_sum[r], .sum_square = roi_sum2[r], .max_count = roi_max[r], .pixels = roi_pixels[r], .pixels_masked = 0, .x_weighted = roi_x_weighted[r], .y_weighted = roi_y_weighted[r], }; }