// SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #ifndef JFJOCH_IMAGEFORMATSETTINGS_H #define JFJOCH_IMAGEFORMATSETTINGS_H #include #include class ImageFormatSettings { bool geometry_transformation; bool auto_summation; bool jungfrau_conv_to_photon_counts; std::optional pixel_signed; std::optional jungfrau_conversion_factor_keV; std::optional bit_depth_image; bool mask_module_edges; bool mask_chip_edges; bool apply_pixel_mask; bool mask_pixels_without_g0; float pedestal_g0_rms_limit; public: ImageFormatSettings(); ImageFormatSettings& GeometryTransformed(bool input); ImageFormatSettings& AutoSummation(bool input); ImageFormatSettings& JungfrauConversion(bool input); ImageFormatSettings& PixelSigned(const std::optional &input); ImageFormatSettings& JungfrauConvFactor_keV(const std::optional &input); ImageFormatSettings& BitDepthImage(const std::optional &input); ImageFormatSettings& MaskModuleEdges(bool input); ImageFormatSettings& MaskChipEdges(bool input); ImageFormatSettings& MaskPixelsWithoutG0(bool input); ImageFormatSettings& ApplyPixelMask(bool input); ImageFormatSettings& PedestalG0RMSLimit(float value); [[nodiscard]] bool IsGeometryTransformed() const; [[nodiscard]] bool IsAutoSummation() const; [[nodiscard]] bool IsJungfrauConversion() const; [[nodiscard]] std::optional IsPixelSigned() const; [[nodiscard]] std::optional GetJungfrauConvFactor_keV() const; [[nodiscard]] std::optional GetBitDepthImage() const; [[nodiscard]] bool IsMaskModuleEdges() const; [[nodiscard]] bool IsMaskChipEdges() const; [[nodiscard]] bool IsMaskPixelsWithoutG0() const; [[nodiscard]] bool IsApplyPixelMask() const; [[nodiscard]] float GetPedestalG0RMSLimit() const; void Raw(); void Conv(); }; #endif //JFJOCH_IMAGEFORMATSETTINGS_H