BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
MinimizerTestPlan Class Referenceabstract

Defines objective function to fit, expected minimum, initial fit parameters and expected values of fit parameters at minimum. More...

Public Member Functions

 MinimizerTestPlan (const std::string &name)
 
virtual ~MinimizerTestPlan ()
 
void addParameter (const mumufit::Parameter &param, double expected_value, double tolerance=0.01)
 
virtual bool checkMinimizer (mumufit::Minimizer &minimizer)=0
 Runs minimization and check minimization result. More...
 
std::string name () const
 

Protected Member Functions

std::vector< double > expectedValues () const
 Return vector of expected parameter values. More...
 
mumufit::Parameters parameters () const
 Returns fit parameters which will be used as initial one for the minimization. More...
 
bool valuesAsExpected (const std::vector< double > &values) const
 Returns true if given values coincide with expected fit parameter values. More...
 

Protected Attributes

std::string m_name
 plan name More...
 
std::vector< ParameterPlanm_parameter_plan
 

Detailed Description

Defines objective function to fit, expected minimum, initial fit parameters and expected values of fit parameters at minimum.

Definition at line 35 of file MinimizerTestPlan.h.

Constructor & Destructor Documentation

◆ MinimizerTestPlan()

MinimizerTestPlan::MinimizerTestPlan ( const std::string &  name)

Definition at line 38 of file MinimizerTestPlan.cpp.

38 : m_name(name) {}
std::string m_name
plan name
std::string name() const

◆ ~MinimizerTestPlan()

MinimizerTestPlan::~MinimizerTestPlan ( )
virtualdefault

Member Function Documentation

◆ addParameter()

void MinimizerTestPlan::addParameter ( const mumufit::Parameter param,
double  expected_value,
double  tolerance = 0.01 
)

Definition at line 42 of file MinimizerTestPlan.cpp.

44 {
45  m_parameter_plan.push_back(ParameterPlan(param, expected_value, tolerance));
46 }
std::vector< ParameterPlan > m_parameter_plan
Defines initial settings of single fit parameter and the final value which has to be found in the cou...
Definition: ParameterPlan.h:28

References m_parameter_plan.

◆ checkMinimizer()

virtual bool MinimizerTestPlan::checkMinimizer ( mumufit::Minimizer minimizer)
pure virtual

Runs minimization and check minimization result.

◆ expectedValues()

std::vector< double > MinimizerTestPlan::expectedValues ( ) const
protected

Return vector of expected parameter values.

Definition at line 61 of file MinimizerTestPlan.cpp.

62 {
63  std::vector<double> result;
64  for (const auto& plan : m_parameter_plan)
65  result.push_back(plan.expectedValue());
66 
67  return result;
68 }

References m_parameter_plan.

◆ name()

std::string MinimizerTestPlan::name ( ) const
inline

Definition at line 44 of file MinimizerTestPlan.h.

44 { return m_name; }

References m_name.

◆ parameters()

Parameters MinimizerTestPlan::parameters ( ) const
protected

Returns fit parameters which will be used as initial one for the minimization.

Definition at line 50 of file MinimizerTestPlan.cpp.

51 {
52  Parameters result;
53  for (const auto& plan : m_parameter_plan)
54  result.add(plan.fitParameter());
55 
56  return result;
57 }
A collection of fit parameters.
Definition: Parameters.h:26
void add(const Parameter &par)
Definition: Parameters.cpp:22

References mumufit::Parameters::add(), and m_parameter_plan.

Here is the call graph for this function:

◆ valuesAsExpected()

bool MinimizerTestPlan::valuesAsExpected ( const std::vector< double > &  values) const
protected

Returns true if given values coincide with expected fit parameter values.

Definition at line 72 of file MinimizerTestPlan.cpp.

73 {
74  bool success(true);
75 
76  if (m_parameter_plan.size() != values.size())
77  throw std::runtime_error("FunctionTestPlan::valuesAsExpected() -> Error. Sizes differ.");
78 
79  size_t index(0);
80  std::ostringstream text;
81  for (const auto& plan : m_parameter_plan) {
82  double diff = relativeDifference(values[index], plan.expectedValue());
83 
84  bool diff_ok(true);
85  if (diff > plan.tolerance())
86  diff_ok = false;
87 
88  text << plan.fitParameter().name() << " found:" << values[index]
89  << " expected:" << plan.expectedValue() << " diff:" << diff << " "
90  << (diff_ok ? "OK" : "FAILED") << "\n";
91 
92  success &= diff_ok;
93 
94  ++index;
95  }
96 
97  std::cout << text.str();
98 
99  return success;
100 }

References m_parameter_plan.

Member Data Documentation

◆ m_name

std::string MinimizerTestPlan::m_name
protected

plan name

Definition at line 54 of file MinimizerTestPlan.h.

Referenced by name().

◆ m_parameter_plan

std::vector<ParameterPlan> MinimizerTestPlan::m_parameter_plan
protected

Definition at line 55 of file MinimizerTestPlan.h.

Referenced by addParameter(), expectedValues(), parameters(), and valuesAsExpected().


The documentation for this class was generated from the following files: