From fc3b9fb23f39d9e032414d9b568991e2142ac109 Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de>
Date: Wed, 30 Nov 2022 14:29:12 +0100
Subject: [PATCH] DistributionItems cleanup and /* decimal */ marks

---
 GUI/Model/Descriptor/DistributionItems.cpp   | 56 ++++++++++----------
 GUI/Model/Descriptor/DistributionItems.h     |  1 -
 GUI/Model/Device/BackgroundItems.cpp         |  2 +-
 GUI/Model/Device/BeamItems.cpp               |  2 +-
 GUI/Model/Device/FootprintItems.cpp          |  4 +-
 GUI/Model/Device/InstrumentItems.cpp         |  4 +-
 GUI/Model/Device/RectangularDetectorItem.cpp |  8 +--
 GUI/Model/Device/ResolutionFunctionItems.cpp |  4 +-
 8 files changed, 40 insertions(+), 41 deletions(-)

diff --git a/GUI/Model/Descriptor/DistributionItems.cpp b/GUI/Model/Descriptor/DistributionItems.cpp
index 686b879f7ee..033b3687a06 100644
--- a/GUI/Model/Descriptor/DistributionItems.cpp
+++ b/GUI/Model/Descriptor/DistributionItems.cpp
@@ -130,15 +130,15 @@ void DistributionNoneItem::initDistribution(double value)
 
 DoubleDescriptors DistributionNoneItem::distributionValues(bool withMean) const
 {
-    return withMean ? DoubleDescriptors{mean()} : DoubleDescriptors{};
+    return withMean ? DoubleDescriptors{m_mean} : DoubleDescriptors{};
 }
 
 // --------------------------------------------------------------------------------------------- //
 
 DistributionGateItem::DistributionGateItem()
 {
-    m_minimum.init("Min", "", 0.0, Unit::unitless, 3, RealLimits::limitless(), "min");
-    m_maximum.init("Max", "", 1.0, Unit::unitless, 3, RealLimits::limitless(), "max");
+    m_minimum.init("Min", "", 0.0, Unit::unitless, 3 /* decimals */, RealLimits::limitless(), "min");
+    m_maximum.init("Max", "", 1.0, Unit::unitless, 3 /* decimals */, RealLimits::limitless(), "max");
 }
 
 void DistributionGateItem::setUnit(const variant<QString, Unit>& unit)
@@ -149,7 +149,7 @@ void DistributionGateItem::setUnit(const variant<QString, Unit>& unit)
 
 std::unique_ptr<IDistribution1D> DistributionGateItem::createDistribution(double scale) const
 {
-    return std::make_unique<DistributionGate>(scale * m_minimum, scale * m_maximum);
+    return std::make_unique<DistributionGate>(scale * m_minimum.get(), scale * m_maximum.get());
 }
 
 void DistributionGateItem::initDistribution(double value)
@@ -197,13 +197,13 @@ void DistributionLorentzItem::setUnit(const variant<QString, Unit>& unit)
 
 std::unique_ptr<IDistribution1D> DistributionLorentzItem::createDistribution(double scale) const
 {
-    return std::make_unique<DistributionLorentz>(scale * m_mean, scale * m_hwhm);
+    return std::make_unique<DistributionLorentz>(scale * m_mean.get(), scale * m_hwhm.get());
 }
 
 std::unique_ptr<IRangedDistribution>
 DistributionLorentzItem::createIRangedDistribution(double scale) const
 {
-    return std::make_unique<RangedDistributionLorentz>(numberOfSamples(), sigmaFactor(),
+    return std::make_unique<RangedDistributionLorentz>(numberOfSamples(), m_sigmaFactor.get(),
                                                        m_limits.scaledLimits(scale));
 }
 
@@ -231,8 +231,8 @@ void DistributionLorentzItem::serialize(Streamer& s)
 
 DoubleDescriptors DistributionLorentzItem::distributionValues(bool withMean) const
 {
-    return withMean ? DoubleDescriptors{mean(), hwhm(), sigmaFactor()}
-                    : DoubleDescriptors{hwhm(), sigmaFactor()};
+    return withMean ? DoubleDescriptors{m_mean, m_hwhm, m_sigmaFactor}
+                    : DoubleDescriptors{m_hwhm, m_sigmaFactor};
 }
 
 // --------------------------------------------------------------------------------------------- //
@@ -242,7 +242,7 @@ DistributionGaussianItem::DistributionGaussianItem()
 {
     initSigmaFactor();
 
-    m_standardDeviation.init("StdDev", "", 1.0, Unit::unitless, 3, RealLimits::lowerLimited(0.0),
+    m_standardDeviation.init("StdDev", "", 1.0, Unit::unitless, 3 /* decimals */, RealLimits::lowerLimited(0.0),
                              "stdDev");
 }
 
@@ -254,19 +254,19 @@ void DistributionGaussianItem::setUnit(const variant<QString, Unit>& unit)
 
 std::unique_ptr<IDistribution1D> DistributionGaussianItem::createDistribution(double scale) const
 {
-    return std::make_unique<DistributionGaussian>(scale * m_mean, scale * m_standardDeviation);
+    return std::make_unique<DistributionGaussian>(scale * m_mean.get(), scale * m_standardDeviation.get());
 }
 
 std::unique_ptr<IRangedDistribution>
 DistributionGaussianItem::createIRangedDistribution(double scale) const
 {
-    return std::make_unique<RangedDistributionGaussian>(numberOfSamples(), sigmaFactor(),
+    return std::make_unique<RangedDistributionGaussian>(m_numberOfSamples, m_sigmaFactor.get(),
                                                         m_limits.scaledLimits(scale));
 }
 
 double DistributionGaussianItem::deviation(double scale) const
 {
-    return standardDeviation() * scale;
+    return m_standardDeviation.get() * scale;
 }
 
 void DistributionGaussianItem::initDistribution(double value)
@@ -287,8 +287,8 @@ void DistributionGaussianItem::serialize(Streamer& s)
 
 DoubleDescriptors DistributionGaussianItem::distributionValues(bool withMean) const
 {
-    return withMean ? DoubleDescriptors{mean(), standardDeviation(), sigmaFactor()}
-                    : DoubleDescriptors{standardDeviation(), sigmaFactor()};
+    return withMean ? DoubleDescriptors{m_mean, m_standardDeviation, m_sigmaFactor}
+                    : DoubleDescriptors{m_standardDeviation, m_sigmaFactor};
 }
 
 // --------------------------------------------------------------------------------------------- //
@@ -298,7 +298,7 @@ DistributionLogNormalItem::DistributionLogNormalItem()
     initSigmaFactor();
 
     m_median.init("Median", "", 1.0, Unit::unitless, "median");
-    m_scaleParameter.init("ScaleParameter", "", 1.0, Unit::unitless, 3,
+    m_scaleParameter.init("ScaleParameter", "", 1.0, Unit::unitless, 3 /* decimals */,
                           RealLimits::lowerLimited(0.0), "scalePar");
 }
 
@@ -309,7 +309,7 @@ void DistributionLogNormalItem::setUnit(const variant<QString, Unit>& unit)
 
 std::unique_ptr<IDistribution1D> DistributionLogNormalItem::createDistribution(double scale) const
 {
-    return std::make_unique<DistributionLogNormal>(scale * median(), scaleParameter());
+    return std::make_unique<DistributionLogNormal>(scale * m_median.get(), m_scaleParameter.get());
 }
 
 void DistributionLogNormalItem::initDistribution(double value)
@@ -331,7 +331,7 @@ void DistributionLogNormalItem::serialize(Streamer& s)
 
 DoubleDescriptors DistributionLogNormalItem::distributionValues(bool /*withMean*/) const
 {
-    return {median(), scaleParameter(), sigmaFactor()};
+    return {m_median, m_scaleParameter, m_sigmaFactor};
 }
 
 // --------------------------------------------------------------------------------------------- //
@@ -340,7 +340,7 @@ DistributionCosineItem::DistributionCosineItem()
     : SymmetricResolutionItem(1.0)
 {
     initSigmaFactor();
-    m_sigma.init("Sigma", "", 1.0, Unit::unitless, 3, RealLimits::lowerLimited(0.0), "sigma");
+    m_sigma.init("Sigma", "", 1.0, Unit::unitless, 3 /* decimals */, RealLimits::lowerLimited(0.0), "sigma");
 }
 
 void DistributionCosineItem::setUnit(const variant<QString, Unit>& unit)
@@ -351,19 +351,19 @@ void DistributionCosineItem::setUnit(const variant<QString, Unit>& unit)
 
 std::unique_ptr<IDistribution1D> DistributionCosineItem::createDistribution(double scale) const
 {
-    return std::make_unique<DistributionCosine>(scale * m_mean, scale * sigma());
+    return std::make_unique<DistributionCosine>(scale * m_mean.get(), scale * m_sigma.get());
 }
 
 std::unique_ptr<IRangedDistribution>
 DistributionCosineItem::createIRangedDistribution(double scale) const
 {
-    return std::make_unique<RangedDistributionCosine>(numberOfSamples(), sigmaFactor(),
+    return std::make_unique<RangedDistributionCosine>(m_numberOfSamples, m_sigmaFactor.get(),
                                                       m_limits.scaledLimits(scale));
 }
 
 double DistributionCosineItem::deviation(double scale) const
 {
-    return sigma() * scale;
+    return m_sigma.get() * scale;
 }
 
 void DistributionCosineItem::initDistribution(double value)
@@ -384,15 +384,15 @@ void DistributionCosineItem::serialize(Streamer& s)
 
 DoubleDescriptors DistributionCosineItem::distributionValues(bool withMean) const
 {
-    return withMean ? DoubleDescriptors{mean(), sigma(), sigmaFactor()}
-                    : DoubleDescriptors{sigma(), sigmaFactor()};
+    return withMean ? DoubleDescriptors{m_mean, m_sigma, m_sigmaFactor}
+                    : DoubleDescriptors{m_sigma, m_sigmaFactor};
 }
 
 // --------------------------------------------------------------------------------------------- //
 
 DistributionTrapezoidItem::DistributionTrapezoidItem()
 {
-    m_center.init("Center", "", 1.0, Unit::unitless, 3, RealLimits::limitless(), "center");
+    m_center.init("Center", "", 1.0, Unit::unitless, 3 /* decimals */, RealLimits::limitless(), "center");
     m_leftWidth.init("LeftWidth", "", 1.0, Unit::unitless, "left");
     m_middleWidth.init("MiddleWidth", "", 1.0, Unit::unitless, "middle");
     m_rightWidth.init("RightWidth", "", 1.0, Unit::unitless, "right");
@@ -408,8 +408,8 @@ void DistributionTrapezoidItem::setUnit(const variant<QString, Unit>& unit)
 
 std::unique_ptr<IDistribution1D> DistributionTrapezoidItem::createDistribution(double scale) const
 {
-    return std::make_unique<DistributionTrapezoid>(scale * center(), scale * leftWidth(),
-                                                   scale * middleWidth(), scale * rightWidth());
+    return std::make_unique<DistributionTrapezoid>(scale * m_center.get(), scale * m_leftWidth.get(),
+                                                   scale * m_middleWidth.get(), scale * m_rightWidth.get());
 }
 
 void DistributionTrapezoidItem::initDistribution(double value)
@@ -434,6 +434,6 @@ void DistributionTrapezoidItem::serialize(Streamer& s)
 
 DoubleDescriptors DistributionTrapezoidItem::distributionValues(bool withMean) const
 {
-    return withMean ? DoubleDescriptors{center(), leftWidth(), middleWidth(), rightWidth()}
-                    : DoubleDescriptors{leftWidth(), middleWidth(), rightWidth()};
+    return withMean ? DoubleDescriptors{m_center, m_leftWidth, m_middleWidth, m_rightWidth}
+                    : DoubleDescriptors{m_leftWidth, m_middleWidth, m_rightWidth};
 }
diff --git a/GUI/Model/Descriptor/DistributionItems.h b/GUI/Model/Descriptor/DistributionItems.h
index fafafe4b06f..d9d22b1d35d 100644
--- a/GUI/Model/Descriptor/DistributionItems.h
+++ b/GUI/Model/Descriptor/DistributionItems.h
@@ -63,7 +63,6 @@ protected:
 
     RealLimits m_limits;
 
-private:
     uint m_numberOfSamples = 5;
 };
 
diff --git a/GUI/Model/Device/BackgroundItems.cpp b/GUI/Model/Device/BackgroundItems.cpp
index 342e93687cc..0fde80c720e 100644
--- a/GUI/Model/Device/BackgroundItems.cpp
+++ b/GUI/Model/Device/BackgroundItems.cpp
@@ -28,7 +28,7 @@ const QString BackgroundValue("BackgroundValue");
 
 ConstantBackgroundItem::ConstantBackgroundItem()
 {
-    m_backgroundValue.init("Background value", "Constant background value", 0.0, "counts/pixel", 3,
+    m_backgroundValue.init("Background value", "Constant background value", 0.0, "counts/pixel", 3 /* decimals */,
                            RealLimits::nonnegative(), "value");
 }
 
diff --git a/GUI/Model/Device/BeamItems.cpp b/GUI/Model/Device/BeamItems.cpp
index 71c9993076d..e9656771061 100644
--- a/GUI/Model/Device/BeamItems.cpp
+++ b/GUI/Model/Device/BeamItems.cpp
@@ -49,7 +49,7 @@ RealLimits getLimits(double max_q)
 BeamItem::BeamItem()
 {
     m_intensity.init("Intensity", "Beam intensity in neutrons (or gammas) per sec.", 1e+08,
-                     Unit::unitless, 3, RealLimits::limited(0.0, 1e+32), "intensity");
+                     Unit::unitless, 3 /* decimals */, RealLimits::limited(0.0, 1e+32), "intensity");
 
     m_azimuthalAngleItem.reset(new BeamAzimuthalAngleItem());
 }
diff --git a/GUI/Model/Device/FootprintItems.cpp b/GUI/Model/Device/FootprintItems.cpp
index 323b599fdce..9672114aee0 100644
--- a/GUI/Model/Device/FootprintItems.cpp
+++ b/GUI/Model/Device/FootprintItems.cpp
@@ -34,7 +34,7 @@ std::unique_ptr<IFootprintFactor> FootprintNoneItem::createFootprint() const
 FootprintGaussianItem::FootprintGaussianItem(double value)
 {
     m_gaussianFootprintValue.init("Width ratio", "The ratio of beam and sample full widths", value,
-                                  Unit::unitless, 3, RealLimits::nonnegative(), "ratio");
+                                  Unit::unitless, 3 /* decimals */, RealLimits::nonnegative(), "ratio");
 }
 
 void FootprintGaussianItem::serialize(Streamer& s)
@@ -51,7 +51,7 @@ std::unique_ptr<IFootprintFactor> FootprintGaussianItem::createFootprint() const
 FootprintSquareItem::FootprintSquareItem(double value)
 {
     m_squareFootprintValue.init("Width ratio", "The ratio of beam and sample full widths", value,
-                                Unit::unitless, 3, RealLimits::nonnegative(), "ratio");
+                                Unit::unitless, 3 /* decimals */, RealLimits::nonnegative(), "ratio");
 }
 
 void FootprintSquareItem::serialize(Streamer& s)
diff --git a/GUI/Model/Device/InstrumentItems.cpp b/GUI/Model/Device/InstrumentItems.cpp
index 6dea79c3835..685d37ee0f3 100644
--- a/GUI/Model/Device/InstrumentItems.cpp
+++ b/GUI/Model/Device/InstrumentItems.cpp
@@ -75,10 +75,10 @@ InstrumentItem::InstrumentItem()
 {
     m_id = QUuid::createUuid().toString();
     m_analyzerEfficiency.init("Analyzer efficiency", "Efficiency of the polarization analysis", 0.0,
-                              Unit::unitless, 4, RealLimits::limitless(), "efficiency");
+                              Unit::unitless, 4 /* decimals */, RealLimits::limitless(), "efficiency");
     m_analyzerTotalTransmission.init("Analyzer transmission",
                                      "Total transmission of the polarization analysis", 1.0,
-                                     Unit::unitless, 4, RealLimits::nonnegative(), "transmission");
+                                     Unit::unitless, 4 /* decimals */, RealLimits::nonnegative(), "transmission");
     m_polarization.init("Polarization (Bloch vector)",
                         "Polarization of the beam, given as the Bloch vector", Unit::unitless,
                         "polarization");
diff --git a/GUI/Model/Device/RectangularDetectorItem.cpp b/GUI/Model/Device/RectangularDetectorItem.cpp
index c316c42212d..97b8e327ced 100644
--- a/GUI/Model/Device/RectangularDetectorItem.cpp
+++ b/GUI/Model/Device/RectangularDetectorItem.cpp
@@ -86,9 +86,9 @@ RectangularDetectorItem::RectangularDetectorItem()
 
     m_xSize = 100;
     m_ySize = 100;
-    m_width.init("Width (x-axis)", "Width of the detector", default_detector_width, "mm", 3,
+    m_width.init("Width (x-axis)", "Width of the detector", default_detector_width, "mm", 3 /* decimals */,
                  RealLimits::positive(), "width");
-    m_height.init("Height (y-axis)", "Height of the detector", default_detector_height, "mm", 3,
+    m_height.init("Height (y-axis)", "Height of the detector", default_detector_height, "mm", 3 /* decimals */,
                   RealLimits::positive(), "height");
 
     m_normalVector.init(
@@ -101,8 +101,8 @@ RectangularDetectorItem::RectangularDetectorItem()
                            Unit::unitless, "directionVector");
     m_directionVector.setY(-1.0);
 
-    m_u0.init("u0", "", default_detector_width / 2., "mm", 3, RealLimits::limitless(), "u0");
-    m_v0.init("v0", "", 0.0, "mm", 3, RealLimits::limitless(), "v0");
+    m_u0.init("u0", "", default_detector_width / 2., "mm", 3 /* decimals */, RealLimits::limitless(), "u0");
+    m_v0.init("v0", "", 0.0, "mm", 3 /* decimals */, RealLimits::limitless(), "v0");
     m_distance.init("Distance", "Distance from the sample origin to the detector plane",
                     default_detector_distance, "mm", "distance");
 
diff --git a/GUI/Model/Device/ResolutionFunctionItems.cpp b/GUI/Model/Device/ResolutionFunctionItems.cpp
index 3741fd4326d..bb73ccd3e26 100644
--- a/GUI/Model/Device/ResolutionFunctionItems.cpp
+++ b/GUI/Model/Device/ResolutionFunctionItems.cpp
@@ -33,9 +33,9 @@ ResolutionFunctionNoneItem::createResolutionFunction(double) const
 
 ResolutionFunction2DGaussianItem::ResolutionFunction2DGaussianItem()
 {
-    m_sigmaX.init("Sigma X", "Resolution along horizontal axis", 0.02, Unit::degree, 3,
+    m_sigmaX.init("Sigma X", "Resolution along horizontal axis", 0.02, Unit::degree, 3 /* decimals */,
                   RealLimits::lowerLimited(0.0), "sigmaX");
-    m_sigmaY.init("Sigma Y", "Resolution along vertical axis", 0.02, Unit::degree, 3,
+    m_sigmaY.init("Sigma Y", "Resolution along vertical axis", 0.02, Unit::degree, 3 /* decimals */,
                   RealLimits::lowerLimited(0.0), "sigmaY");
 }
 
-- 
GitLab