diff --git a/common/ScalingSettings.cpp b/common/ScalingSettings.cpp index 935e8119..0ee3c620 100644 --- a/common/ScalingSettings.cpp +++ b/common/ScalingSettings.cpp @@ -118,3 +118,23 @@ ScalingSettings &ScalingSettings::MinCCForImage(double input) { double ScalingSettings::GetMinPartiality() const { return min_partiality; } + +ScalingSettings &ScalingSettings::FileFormat(IntensityFormat input) { + intensity_format = input; + return *this; +} + +IntensityFormat ScalingSettings::GetFileFormat() const { + return intensity_format; +} + +ScalingSettings &ScalingSettings::RfreeFraction(double input) { + if (input < 0.0 || input > 1.0) + throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "R-free fraction must be between 0 and 1"); + rfree_fraction = input; + return *this; +} + +double ScalingSettings::GetRfreeFraction() const { + return rfree_fraction; +} diff --git a/common/ScalingSettings.h b/common/ScalingSettings.h index dbbdc338..64180494 100644 --- a/common/ScalingSettings.h +++ b/common/ScalingSettings.h @@ -7,6 +7,7 @@ #include "JFJochException.h" enum class PartialityModel { Fixed, Rotation, Unity }; +enum class IntensityFormat { Text, mmCIF, MTZ}; class ScalingSettings { std::optional partiality_mode; @@ -22,6 +23,9 @@ class ScalingSettings { std::optional wedge_for_scaling; double min_partiality = 0.02; double min_cc_for_image = 0.0; + + double rfree_fraction = 0.05; + IntensityFormat intensity_format = IntensityFormat::MTZ; public: ScalingSettings& SetPartialityModel(PartialityModel mode); ScalingSettings& RefineB(bool input); @@ -32,6 +36,9 @@ public: ScalingSettings& MinPartiality(double min_partiality); ScalingSettings& MinCCForImage(double min_cc_for_image); + ScalingSettings& RfreeFraction(double input); + ScalingSettings& FileFormat(IntensityFormat input); + [[nodiscard]] bool GetRefineB() const; [[nodiscard]] bool GetRefineWedge() const; @@ -53,4 +60,7 @@ public: [[nodiscard]] double GetMinPartiality() const; [[nodiscard]] double GetMinCCForImage() const; + + [[nodiscard]] double GetRfreeFraction() const; + [[nodiscard]] IntensityFormat GetFileFormat() const; };