// Copyright (2019-2023) Paul Scherrer Institute #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; float *coeff; const uint32_t nbins; const uint32_t pixel_split; std::vector sum; std::vector count; public: RadialIntegration(const RadialIntegrationMapping& mapping, uint32_t pixel_split = 1); RadialIntegration(const std::vector& mapping, uint32_t nbins, uint32_t pixel_split = 1); ~RadialIntegration(); 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; void LoadRadialIntegrationCorr(const std::vector &v); [[nodiscard]] float GetRangeValue(uint32_t min_bin, uint32_t max_bin); [[nodiscard]] const std::vector& GetSum() const; [[nodiscard]] const std::vector& GetCount() const; }; #endif //JUNGFRAUJOCH_RADIALINTEGRATION_H