// Copyright (2019-2023) Paul Scherrer Institute #ifndef JUNGFRAUJOCH_RADIALINTEGRATIONPROFILE_H #define JUNGFRAUJOCH_RADIALINTEGRATIONPROFILE_H #include #include #include #include "RadialIntegrationMapping.h" #include "../receiver/AcquisitionDevice.h" class RadialIntegrationProfile { mutable std::mutex m; std::vector sum; std::vector count; std::vector bin_to_q; public: explicit RadialIntegrationProfile(RadialIntegrationMapping &mapping, const DiffractionExperiment &experiment); void Add(const DeviceOutput &result); void Add(const std::vector &sum, const std::vector &count); std::vector GetResult() const; float GetMeanValueOfBins(uint16_t min_bin, uint16_t max_bin) const; void GetPlot(JFJochProtoBuf::Plot &plot) const; RadialIntegrationProfile& operator+=(const RadialIntegrationProfile& profile); }; #endif //JUNGFRAUJOCH_RADIALINTEGRATIONPROFILE_H