From d76b7c297f1d700241f3e4232cb91834f8063135 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Fri, 12 Nov 2021 17:25:19 +0100
Subject: [PATCH] Fit + other rules

---
 .clang-tidy                              | 36 ++++++++++++------------
 Fit/Adapter/GSLMultiMinimizer.h          |  2 +-
 Fit/Adapter/GeneticMinimizer.h           |  2 +-
 Fit/Adapter/MinimizerAdapter.cpp         |  2 +-
 Fit/Adapter/MinimizerAdapter.h           |  4 +--
 Fit/Adapter/Minuit2Minimizer.h           |  4 +--
 Fit/Adapter/ObjectiveFunctionAdapter.cpp |  4 +--
 Fit/Adapter/RootResidualFunction.h       |  2 +-
 Fit/Kernel/MinimizerFactory.cpp          |  2 +-
 Fit/Kernel/PyCallback.h                  |  2 +-
 Fit/Param/Attributes.h                   |  4 +--
 Fit/TestEngine/MinimizerTestPlan.h       |  4 +--
 Fit/Tools/OptionContainer.h              |  2 +-
 auto/Wrap/doxygenFit.i                   | 14 ++++-----
 14 files changed, 42 insertions(+), 42 deletions(-)

diff --git a/.clang-tidy b/.clang-tidy
index 15d5b05c1ed..e3cb9b9d57f 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -101,24 +101,24 @@ Checks: '
 
 -*use-auto,
 -*move-const-arg,
--*use-equals-default,
--*use-nullptr,
--*use-override,
--bugprone-parent-virtual-call,
--clang-analyzer-core.CallAndMessage,
--clang-analyzer-optin.cplusplus.VirtualCall,
--cppcoreguidelines-explicit-virtual-functions,
--cppcoreguidelines-pro-type-const-cast,
--cppcoreguidelines-pro-type-static-cast-downcast,
--google-explicit-constructor,
--google-readability-avoid-underscore-in-googletest-name,
--google-runtime-references,
--hicpp-explicit-conversions,
--hicpp-member-init,
--hicpp-noexcept-move,
--llvm-qualified-auto,
--misc-non-private-member-variables-in-classes,
--misc-uniqueptr-reset-release,
+*use-equals-default,
+*use-nullptr,
+*use-override,
+bugprone-parent-virtual-call,
+clang-analyzer-core.CallAndMessage,
+clang-analyzer-optin.cplusplus.VirtualCall,
+cppcoreguidelines-explicit-virtual-functions,
+cppcoreguidelines-pro-type-const-cast,
+cppcoreguidelines-pro-type-static-cast-downcast,
+google-explicit-constructor,
+google-readability-avoid-underscore-in-googletest-name,
+google-runtime-references,
+hicpp-explicit-conversions,
+hicpp-member-init,
+hicpp-noexcept-move,
+llvm-qualified-auto,
+misc-non-private-member-variables-in-classes,
+misc-uniqueptr-reset-release,
 modernize-avoid-bind,
 -modernize-loop-convert,
 modernize-make-unique,
diff --git a/Fit/Adapter/GSLMultiMinimizer.h b/Fit/Adapter/GSLMultiMinimizer.h
index e6726531b34..2e6edc20a29 100644
--- a/Fit/Adapter/GSLMultiMinimizer.h
+++ b/Fit/Adapter/GSLMultiMinimizer.h
@@ -31,7 +31,7 @@ class GSLMinimizer;
 class GSLMultiMinimizer : public MinimizerAdapter {
 public:
     explicit GSLMultiMinimizer(const std::string& algorithmName = "ConjugateFR");
-    ~GSLMultiMinimizer();
+    ~GSLMultiMinimizer() override;
 
     //! Sets minimizer internal print level.
     void setPrintLevel(int value);
diff --git a/Fit/Adapter/GeneticMinimizer.h b/Fit/Adapter/GeneticMinimizer.h
index c23f4a0b00f..d0ba376ef7d 100644
--- a/Fit/Adapter/GeneticMinimizer.h
+++ b/Fit/Adapter/GeneticMinimizer.h
@@ -31,7 +31,7 @@ class GeneticMinimizer;
 class GeneticMinimizer : public MinimizerAdapter {
 public:
     GeneticMinimizer();
-    ~GeneticMinimizer();
+    ~GeneticMinimizer() override;
 
     //! Sets tolerance on the function value at the minimum.
     //! Minimization will stop when the estimated vertical distance to the minimum (EDM) is less
diff --git a/Fit/Adapter/MinimizerAdapter.cpp b/Fit/Adapter/MinimizerAdapter.cpp
index b58df3343c4..6368b052b09 100644
--- a/Fit/Adapter/MinimizerAdapter.cpp
+++ b/Fit/Adapter/MinimizerAdapter.cpp
@@ -201,7 +201,7 @@ std::vector<double> MinimizerAdapter::parErrorsAtMinimum() const
 {
     std::vector<double> result;
     result.resize(fitDimension(), 0.0);
-    if (rootMinimizer()->Errors() != 0) {
+    if (rootMinimizer()->Errors() != nullptr) {
         std::copy(rootMinimizer()->Errors(), rootMinimizer()->Errors() + fitDimension(),
                   result.begin());
     }
diff --git a/Fit/Adapter/MinimizerAdapter.h b/Fit/Adapter/MinimizerAdapter.h
index 4ed88ccf1ec..5d89d84b38e 100644
--- a/Fit/Adapter/MinimizerAdapter.h
+++ b/Fit/Adapter/MinimizerAdapter.h
@@ -43,7 +43,7 @@ class MinimizerAdapter : public IMinimizer {
 public:
     using root_minimizer_t = ROOT::Math::Minimizer;
 
-    virtual ~MinimizerAdapter() override;
+    ~MinimizerAdapter() override;
 
     mumufit::MinimizerResult minimize_scalar(fcn_scalar_t fcn,
                                              mumufit::Parameters parameters) override;
@@ -76,7 +76,7 @@ public:
     void setOptions(const std::string& optionString) override;
 
 protected:
-    MinimizerAdapter(MinimizerInfo  minimizerInfo);
+    explicit MinimizerAdapter(MinimizerInfo  minimizerInfo);
 
     mumufit::MinimizerResult minimize(mumufit::Parameters parameters);
 
diff --git a/Fit/Adapter/Minuit2Minimizer.h b/Fit/Adapter/Minuit2Minimizer.h
index c1e7023d594..583955fc0b9 100644
--- a/Fit/Adapter/Minuit2Minimizer.h
+++ b/Fit/Adapter/Minuit2Minimizer.h
@@ -32,8 +32,8 @@ class Minuit2Minimizer;
 
 class Minuit2Minimizer : public MinimizerAdapter {
 public:
-    Minuit2Minimizer(const std::string& algorithmName = "Migrad");
-    ~Minuit2Minimizer();
+    explicit Minuit2Minimizer(const std::string& algorithmName = "Migrad");
+    ~Minuit2Minimizer() override;
 
     //! Sets minimization strategy (0-low, 1-medium, 2-high minimization quality).
     //! At low quality number of function calls will be economized.
diff --git a/Fit/Adapter/ObjectiveFunctionAdapter.cpp b/Fit/Adapter/ObjectiveFunctionAdapter.cpp
index 0cce5896532..7b23c8bd841 100644
--- a/Fit/Adapter/ObjectiveFunctionAdapter.cpp
+++ b/Fit/Adapter/ObjectiveFunctionAdapter.cpp
@@ -29,7 +29,7 @@ ObjectiveFunctionAdapter::rootObjectiveFunction(fcn_scalar_t fcn, const Paramete
 {
     std::unique_ptr<ScalarFunctionAdapter> tem_adapter(new ScalarFunctionAdapter(fcn, parameters));
     const auto *result = tem_adapter->rootObjectiveFunction();
-    m_adapter.reset(tem_adapter.release());
+    m_adapter = std::move(tem_adapter);
     return result;
 }
 
@@ -39,7 +39,7 @@ ObjectiveFunctionAdapter::rootResidualFunction(fcn_residual_t fcn, const Paramet
     std::unique_ptr<ResidualFunctionAdapter> tem_adapter(
         new ResidualFunctionAdapter(fcn, parameters));
     const auto *result = tem_adapter->rootResidualFunction();
-    m_adapter.reset(tem_adapter.release());
+    m_adapter = std::move(tem_adapter);
     return result;
 }
 
diff --git a/Fit/Adapter/RootResidualFunction.h b/Fit/Adapter/RootResidualFunction.h
index 06d20bd73df..e1ebe4a3528 100644
--- a/Fit/Adapter/RootResidualFunction.h
+++ b/Fit/Adapter/RootResidualFunction.h
@@ -48,7 +48,7 @@ public:
 
     //! Evaluation of single data element residual. Will be called by ROOT minimizer.
     double DataElement(const double* pars, unsigned int index,
-                       double* gradients = 0) const override;
+                       double* gradients = nullptr) const override;
 
 private:
     //! evaluation of chi2
diff --git a/Fit/Kernel/MinimizerFactory.cpp b/Fit/Kernel/MinimizerFactory.cpp
index d655e4e7581..898aba642f3 100644
--- a/Fit/Kernel/MinimizerFactory.cpp
+++ b/Fit/Kernel/MinimizerFactory.cpp
@@ -29,7 +29,7 @@ IMinimizer* MinimizerFactory::createMinimizer(const std::string& minimizerName,
                                               const std::string& algorithmType,
                                               const std::string& optionString)
 {
-    IMinimizer* result(0);
+    IMinimizer* result(nullptr);
 
     if (minimizerName == "Minuit2") {
         result = new Minuit2Minimizer(algorithmType);
diff --git a/Fit/Kernel/PyCallback.h b/Fit/Kernel/PyCallback.h
index da1d67dbc36..a70830b6063 100644
--- a/Fit/Kernel/PyCallback.h
+++ b/Fit/Kernel/PyCallback.h
@@ -25,7 +25,7 @@ class PyCallback {
 public:
     enum CallbackType { SCALAR, RESIDUAL };
 
-    PyCallback(CallbackType callback_type = SCALAR);
+    explicit PyCallback(CallbackType callback_type = SCALAR);
     virtual ~PyCallback();
 
     CallbackType callback_type() const;
diff --git a/Fit/Param/Attributes.h b/Fit/Param/Attributes.h
index 6e5e36af54c..0402af3caea 100644
--- a/Fit/Param/Attributes.h
+++ b/Fit/Param/Attributes.h
@@ -25,7 +25,7 @@
 
 class Attributes {
 public:
-    Attributes()  {}
+    Attributes()  = default;
     //! Creates a fixed value object
     static Attributes fixed() { return Attributes(true); }
     static Attributes free() { return Attributes(false); }
@@ -44,7 +44,7 @@ public:
     bool operator!=(const Attributes& other) const { return !(*this == other); }
 
 protected:
-    Attributes(bool is_fixed) : m_is_fixed(is_fixed) {}
+    explicit Attributes(bool is_fixed) : m_is_fixed(is_fixed) {}
 
     bool m_is_fixed{false}; //! parameter is fixed
 
diff --git a/Fit/TestEngine/MinimizerTestPlan.h b/Fit/TestEngine/MinimizerTestPlan.h
index e4b15edb381..911ca63ac54 100644
--- a/Fit/TestEngine/MinimizerTestPlan.h
+++ b/Fit/TestEngine/MinimizerTestPlan.h
@@ -44,8 +44,8 @@ class Minimizer;
 
 class MinimizerTestPlan {
 public:
-    MinimizerTestPlan() {}
-    MinimizerTestPlan(std::vector<ParameterReference>  parameter_references)
+    MinimizerTestPlan() = default;
+    explicit MinimizerTestPlan(std::vector<ParameterReference>  parameter_references)
         : m_parameter_references(std::move(parameter_references))
     {
     }
diff --git a/Fit/Tools/OptionContainer.h b/Fit/Tools/OptionContainer.h
index 3fec32f6430..0667b51c444 100644
--- a/Fit/Tools/OptionContainer.h
+++ b/Fit/Tools/OptionContainer.h
@@ -35,7 +35,7 @@ public:
     using iterator = container_t::iterator;
     using const_iterator = container_t::const_iterator;
 
-    OptionContainer() {}
+    OptionContainer() = default;
     OptionContainer(const OptionContainer& other);
     OptionContainer& operator=(const OptionContainer& other);
 
diff --git a/auto/Wrap/doxygenFit.i b/auto/Wrap/doxygenFit.i
index 4f66422c999..462e188bf6f 100644
--- a/auto/Wrap/doxygenFit.i
+++ b/auto/Wrap/doxygenFit.i
@@ -292,7 +292,7 @@ Attributes for a fit parameter. Currently, the only attribute is fixed/free.
 C++ includes: Attributes.h
 ";
 
-%feature("docstring")  Attributes::Attributes "Attributes::Attributes()
+%feature("docstring")  Attributes::Attributes "Attributes::Attributes()=default
 ";
 
 %feature("docstring")  Attributes::setFixed "void Attributes::setFixed(bool is_fixed)
@@ -3584,7 +3584,7 @@ C++ includes: GeneticMinimizer.h
 %feature("docstring")  GeneticMinimizer::GeneticMinimizer "GeneticMinimizer::GeneticMinimizer()
 ";
 
-%feature("docstring")  GeneticMinimizer::~GeneticMinimizer "GeneticMinimizer::~GeneticMinimizer()
+%feature("docstring")  GeneticMinimizer::~GeneticMinimizer "GeneticMinimizer::~GeneticMinimizer() override
 ";
 
 %feature("docstring")  GeneticMinimizer::setTolerance "void GeneticMinimizer::setTolerance(double value)
@@ -4548,7 +4548,7 @@ C++ includes: GSLMultiMinimizer.h
 %feature("docstring")  GSLMultiMinimizer::GSLMultiMinimizer "GSLMultiMinimizer::GSLMultiMinimizer(const std::string &algorithmName=\"ConjugateFR\")
 ";
 
-%feature("docstring")  GSLMultiMinimizer::~GSLMultiMinimizer "GSLMultiMinimizer::~GSLMultiMinimizer()
+%feature("docstring")  GSLMultiMinimizer::~GSLMultiMinimizer "GSLMultiMinimizer::~GSLMultiMinimizer() override
 ";
 
 %feature("docstring")  GSLMultiMinimizer::setPrintLevel "void GSLMultiMinimizer::setPrintLevel(int value)
@@ -6986,7 +6986,7 @@ Defines objective function to fit, expected minimum, initial fit parameters and
 C++ includes: MinimizerTestPlan.h
 ";
 
-%feature("docstring")  MinimizerTestPlan::MinimizerTestPlan "MinimizerTestPlan::MinimizerTestPlan()
+%feature("docstring")  MinimizerTestPlan::MinimizerTestPlan "MinimizerTestPlan::MinimizerTestPlan()=default
 ";
 
 %feature("docstring")  MinimizerTestPlan::MinimizerTestPlan "MinimizerTestPlan::MinimizerTestPlan(std::vector< ParameterReference > parameter_references)
@@ -7508,7 +7508,7 @@ C++ includes: Minuit2Minimizer.h
 %feature("docstring")  Minuit2Minimizer::Minuit2Minimizer "Minuit2Minimizer::Minuit2Minimizer(const std::string &algorithmName=\"Migrad\")
 ";
 
-%feature("docstring")  Minuit2Minimizer::~Minuit2Minimizer "Minuit2Minimizer::~Minuit2Minimizer()
+%feature("docstring")  Minuit2Minimizer::~Minuit2Minimizer "Minuit2Minimizer::~Minuit2Minimizer() override
 ";
 
 %feature("docstring")  Minuit2Minimizer::setStrategy "void Minuit2Minimizer::setStrategy(int value)
@@ -10293,7 +10293,7 @@ Stores multi option (int,double,string) in a container.
 C++ includes: OptionContainer.h
 ";
 
-%feature("docstring")  OptionContainer::OptionContainer "OptionContainer::OptionContainer()
+%feature("docstring")  OptionContainer::OptionContainer "OptionContainer::OptionContainer()=default
 ";
 
 %feature("docstring")  OptionContainer::OptionContainer "OptionContainer::OptionContainer(const OptionContainer &other)
@@ -11340,7 +11340,7 @@ return the type of method, override if needed
 %feature("docstring")  RootResidualFunction::Clone "ROOT::Math::IMultiGenFunction * RootResidualFunction::Clone() const override
 ";
 
-%feature("docstring")  RootResidualFunction::DataElement "double RootResidualFunction::DataElement(const double *pars, unsigned int index, double *gradients=0) const override
+%feature("docstring")  RootResidualFunction::DataElement "double RootResidualFunction::DataElement(const double *pars, unsigned int index, double *gradients=nullptr) const override
 
 Evaluation of single data element residual. Will be called by  ROOT minimizer.
 
-- 
GitLab