// SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #pragma once #include #include #include #include "../common/CompressedImage.h" #include "../common/PixelMask.h" #include "../common/DiffractionExperiment.h" class DarkMaskAnalysis { mutable std::mutex m; const int64_t max_allowed_value; const int64_t max_frames_with_signal; std::vector mask; template void check(const T *ptr); public: DarkMaskAnalysis(const DarkMaskSettings& settings, size_t det_size); void AnalyzeImage(const DataMessage &msg, std::vector buffer); std::vector GetMask() const; };