BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
MinimizerTestPlan.h
Go to the documentation of this file.
1 // ************************************************************************** //
2 //
3 // BornAgain: simulate and fit scattering at grazing incidence
4 //
5 //! @file Fit/TestEngine/MinimizerTestPlan.h
6 //! @brief Defines class MinimizerTestPlan
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************** //
14 
15 #ifndef BORNAGAIN_FIT_TESTENGINE_MINIMIZERTESTPLAN_H
16 #define BORNAGAIN_FIT_TESTENGINE_MINIMIZERTESTPLAN_H
17 
19 #include <vector>
20 
21 namespace Fit
22 {
23 class Parameter;
24 class Parameters;
25 class Minimizer;
26 } // namespace Fit
27 
28 //! Defines objective function to fit, expected minimum, initial fit parameters and
29 //! expected values of fit parameters at minimum.
30 
32 {
33 public:
34  MinimizerTestPlan(const std::string& name);
35 
36  virtual ~MinimizerTestPlan();
37 
38  void addParameter(const Fit::Parameter& param, double expected_value, double tolerance = 0.01);
39 
40  std::string name() const { return m_name; }
41 
42  //! Runs minimization and check minimization result.
43  virtual bool checkMinimizer(Fit::Minimizer& minimizer) = 0;
44 
45 protected:
47  std::vector<double> expectedValues() const;
48  bool valuesAsExpected(const std::vector<double>& values) const;
49 
50  std::string m_name; //!< plan name
51  std::vector<ParameterPlan> m_parameter_plan; //! initial/expected parameter values
52 };
53 
54 #endif // BORNAGAIN_FIT_TESTENGINE_MINIMIZERTESTPLAN_H
Defines class ParameterPlan.
A main class to run fitting.
Definition: Minimizer.h:37
A fittable parameter with value, error, step, and limits.
Definition: Parameter.h:28
A collection of fit parameters.
Definition: Parameters.h:28
Defines objective function to fit, expected minimum, initial fit parameters and expected values of fi...
std::vector< double > expectedValues() const
Return vector of expected parameter values.
void addParameter(const Fit::Parameter &param, double expected_value, double tolerance=0.01)
MinimizerTestPlan(const std::string &name)
bool valuesAsExpected(const std::vector< double > &values) const
Returns true if given values coincide with expected fit parameter values.
Fit::Parameters parameters() const
Returns fit parameters which will be used as initial one for the minimization.
virtual bool checkMinimizer(Fit::Minimizer &minimizer)=0
Runs minimization and check minimization result.
std::string m_name
plan name
virtual ~MinimizerTestPlan()
std::string name() const
std::vector< ParameterPlan > m_parameter_plan
Objective function types.