// Copyright (2019-2022) Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-or-later #ifndef JUNGFRAUJOCH_RADIALINTEGRATION_H #define JUNGFRAUJOCH_RADIALINTEGRATION_H #include #include #include #include "../common/DiffractionExperiment.h" #include "RadialIntegrationMapping.h" class RadialIntegration { const std::vector& pixel_to_bin; const uint16_t nbins; std::vector sum; std::vector count; public: RadialIntegration(const RadialIntegrationMapping& mapping); RadialIntegration(const std::vector& mapping, uint16_t nbins); void Clear(); void Process(const int16_t *data, size_t npixel); void ProcessOneImage(const int16_t *data, size_t npixel); // Process + Clear void GetResult(std::vector &result) const; [[nodiscard]] float GetRangeValue(uint16_t min_bin, uint16_t max_bin); [[nodiscard]] const std::vector& GetSum() const; [[nodiscard]] const std::vector& GetCount() const; }; #endif //JUNGFRAUJOCH_RADIALINTEGRATION_H