// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #pragma once #include #include class DarkMaskSettings { int64_t number_of_frames; std::chrono::nanoseconds frame_time; float threshold_keV; int64_t max_frames_with_counts; int64_t max_counts; public: DarkMaskSettings(); DarkMaskSettings& NumberOfFrames(int64_t input); DarkMaskSettings& FrameTime(std::chrono::nanoseconds input); DarkMaskSettings& Threshold_keV(float input); DarkMaskSettings& MaxFramesWithCounts(int64_t input); DarkMaskSettings& MaxCounts(int64_t input); [[nodiscard]] int64_t GetNumberOfFrames() const; [[nodiscard]] std::chrono::nanoseconds GetFrameTime() const; [[nodiscard]] float GetThreshold_keV() const; [[nodiscard]] int64_t GetMaxFramesWithCounts() const; [[nodiscard]] int64_t GetMaxCounts() const; };