BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
Minuit2Minimizer Class Reference

Wrapper for the CERN ROOT facade of the Minuit2 minimizer. More...

Inheritance diagram for Minuit2Minimizer:
[legend]
Collaboration diagram for Minuit2Minimizer:
[legend]

Public Types

typedef ROOT::Math::Minimizer root_minimizer_t
 

Public Member Functions

 Minuit2Minimizer (const std::string &algorithmName="Migrad")
 
 ~Minuit2Minimizer ()
 
std::string algorithmName () const final
 Returns name of the minimization algorithm. More...
 
virtual void clear ()
 clear resources (parameters) for consecutives minimizations More...
 
double errorDefinition () const
 
int maxFunctionCalls () const
 
mumufit::MinimizerResult minimize_residual (fcn_residual_t fcn, mumufit::Parameters parameters) override
 
mumufit::MinimizerResult minimize_scalar (fcn_scalar_t fcn, mumufit::Parameters parameters) override
 run minimization More...
 
std::string minimizerName () const final
 Returns name of the minimizer. More...
 
double minValue () const final
 Returns minimum function value. More...
 
MinimizerOptionsoptions ()
 
const MinimizerOptionsoptions () const
 
double precision () const
 
int printLevel () const
 
bool providesError () const
 Returns true if minimizer provides error and error matrix. More...
 
bool requiresResiduals () override
 Returns true if minimizer computations are residual-based, false otherwise. More...
 
void setErrorDefinition (double value)
 Sets error definition factor for parameter error calculation. More...
 
void setMaxFunctionCalls (int value)
 Sets maximum number of objective function calls. More...
 
void setOptions (const std::string &optionString) final
 Sets option string to the minimizer. More...
 
void setParameters (const mumufit::Parameters &parameters)
 
void setPrecision (double value)
 Sets relative floating point arithmetic precision. More...
 
void setPrintLevel (int value)
 Sets minimizer internal print level. More...
 
void setStrategy (int value)
 Sets minimization strategy (0-low, 1-medium, 2-high minimization quality). More...
 
void setTolerance (double value)
 Sets tolerance on the function value at the minimum. More...
 
std::map< std::string, std::string > statusMap () const override
 Returns map of string representing different minimizer statuses. More...
 
std::string statusToString () const override
 Returns string representation of current minimizer status. More...
 
int strategy () const
 
double tolerance () const
 

Protected Member Functions

template<class T >
OptionContainer::option_t addOption (const std::string &optionName, T value, const std::string &description="")
 
size_t fitDimension () const
 Returns number of fit parameters defined (i.e. dimension of the function to be minimized). More...
 
mumufit::MinimizerResult minimize (mumufit::Parameters parameters)
 
template<class T >
optionValue (const std::string &optionName) const
 
std::vector< double > parErrorsAtMinimum () const
 Returns errors of the variables at minimum. More...
 
std::vector< double > parValuesAtMinimum () const
 Returns value of the variables at minimum. More...
 
void propagateOptions () override
 Propagate options down to ROOT's Minuit2Minimizer. More...
 
void propagateResults (mumufit::Parameters &parameters)
 Propagates results of minimization to fit parameter set. More...
 
root_minimizer_trootMinimizer ()
 
const root_minimizer_trootMinimizer () const override
 
template<class T >
void setOptionValue (const std::string &optionName, T value)
 
virtual void setParameter (unsigned int index, const mumufit::Parameter &par)
 

Private Attributes

std::unique_ptr< mumufit::ObjectiveFunctionAdapterm_adapter
 
MinimizerInfo m_minimizerInfo
 
std::unique_ptr< ROOT::Minuit2::Minuit2Minimizer > m_minuit2_minimizer
 
MinimizerOptions m_options
 
bool m_status
 

Detailed Description

Wrapper for the CERN ROOT facade of the Minuit2 minimizer.

See Minuit2 user manual https://root.cern.ch/root/htmldoc/guides/minuit2/Minuit2.pdf.

Definition at line 34 of file Minuit2Minimizer.h.

Member Typedef Documentation

◆ root_minimizer_t

typedef ROOT::Math::Minimizer MinimizerAdapter::root_minimizer_t
inherited

Definition at line 45 of file MinimizerAdapter.h.

Constructor & Destructor Documentation

◆ Minuit2Minimizer()

Minuit2Minimizer::Minuit2Minimizer ( const std::string &  algorithmName = "Migrad")

Definition at line 46 of file Minuit2Minimizer.cpp.

48  , m_minuit2_minimizer(new ROOT::Minuit2::Minuit2Minimizer(algorithmName.c_str()))
49 {
50  addOption("Strategy", 1, "Minimization strategy (0-low, 1-medium, 2-high quality)");
51  addOption("ErrorDef", 1.0, "Error definition factor for parameter error calculation");
52  addOption("Tolerance", 0.01, "Tolerance on the function value at the minimum");
53  addOption("Precision", -1.0, "Relative floating point arithmetic precision");
54  addOption("PrintLevel", 0, "Minimizer internal print level");
55  addOption("MaxFunctionCalls", 0, "Maximum number of function calls");
56 }
OptionContainer::option_t addOption(const std::string &optionName, T value, const std::string &description="")
std::string algorithmName() const final
Returns name of the minimization algorithm.
MinimizerAdapter(const MinimizerInfo &minimizerInfo)
static MinimizerInfo buildMinuit2Info(const std::string &defaultAlgo="")
Creates information for Minuit2Minimizer.
std::unique_ptr< ROOT::Minuit2::Minuit2Minimizer > m_minuit2_minimizer

References MinimizerAdapter::addOption().

Here is the call graph for this function:

◆ ~Minuit2Minimizer()

Minuit2Minimizer::~Minuit2Minimizer ( )
default

Member Function Documentation

◆ addOption()

template<class T >
OptionContainer::option_t MinimizerAdapter::addOption ( const std::string &  optionName,
value,
const std::string &  description = "" 
)
protectedinherited

Definition at line 111 of file MinimizerAdapter.h.

113 {
114  return m_options.addOption(optionName, value, description);
115 }
MinimizerOptions m_options
option_t addOption(const std::string &optionName, T value, const std::string &description="")

References OptionContainer::addOption(), and MinimizerAdapter::m_options.

Referenced by GeneticMinimizer::GeneticMinimizer(), GSLLevenbergMarquardtMinimizer::GSLLevenbergMarquardtMinimizer(), GSLMultiMinimizer::GSLMultiMinimizer(), Minuit2Minimizer(), and SimAnMinimizer::SimAnMinimizer().

Here is the call graph for this function:

◆ algorithmName()

std::string MinimizerAdapter::algorithmName ( ) const
finalvirtualinherited

Returns name of the minimization algorithm.

Implements IMinimizer.

Definition at line 71 of file MinimizerAdapter.cpp.

72 {
74 }
MinimizerInfo m_minimizerInfo
std::string algorithmName() const
Definition: MinimizerInfo.h:62

References MinimizerInfo::algorithmName(), and MinimizerAdapter::m_minimizerInfo.

Referenced by requiresResiduals().

Here is the call graph for this function:

◆ clear()

virtual void IMinimizer::clear ( )
inlinevirtualinherited

clear resources (parameters) for consecutives minimizations

Definition at line 49 of file IMinimizer.h.

49 {}

◆ errorDefinition()

double Minuit2Minimizer::errorDefinition ( ) const

Definition at line 75 of file Minuit2Minimizer.cpp.

76 {
77  return optionValue<double>("ErrorDef");
78 }

Referenced by propagateOptions().

◆ fitDimension()

size_t MinimizerAdapter::fitDimension ( ) const
protectedinherited

Returns number of fit parameters defined (i.e. dimension of the function to be minimized).

Definition at line 181 of file MinimizerAdapter.cpp.

182 {
183  return rootMinimizer()->NDim();
184 }
virtual const root_minimizer_t * rootMinimizer() const =0

References MinimizerAdapter::rootMinimizer().

Referenced by MinimizerAdapter::parErrorsAtMinimum(), MinimizerAdapter::parValuesAtMinimum(), and MinimizerAdapter::propagateResults().

Here is the call graph for this function:

◆ maxFunctionCalls()

int Minuit2Minimizer::maxFunctionCalls ( ) const

Definition at line 115 of file Minuit2Minimizer.cpp.

116 {
117  return optionValue<int>("MaxFunctionCalls");
118 }

Referenced by propagateOptions().

◆ minimize()

MinimizerResult MinimizerAdapter::minimize ( mumufit::Parameters  parameters)
protectedinherited

Definition at line 48 of file MinimizerAdapter.cpp.

49 {
50  setParameters(parameters);
52 
53  m_status = rootMinimizer()->Minimize();
54  propagateResults(parameters);
55 
56  MinimizerResult result;
57  result.setParameters(parameters);
58  result.setMinValue(minValue());
59  result.setReport(internal::reportToString(*this));
60  result.setNumberOfCalls(m_adapter->numberOfCalls());
61  result.setNumberOfGradientCalls(m_adapter->numberOfGradientCalls());
62 
63  return result;
64 }
double minValue() const final
Returns minimum function value.
void propagateResults(mumufit::Parameters &parameters)
Propagates results of minimization to fit parameter set.
void setParameters(const mumufit::Parameters &parameters)
virtual void propagateOptions()=0
std::unique_ptr< mumufit::ObjectiveFunctionAdapter > m_adapter
Result of minimization round.
void setReport(const std::string &value)
void setMinValue(double value)
void setNumberOfGradientCalls(int value)
void setNumberOfCalls(int value)
void setParameters(const Parameters &parameters)
std::string reportToString(const MinimizerAdapter &minimizer)
Reports results of minimization in the form of multi-line string.
Definition: Report.cpp:76

References MinimizerAdapter::m_adapter, MinimizerAdapter::m_status, MinimizerAdapter::minValue(), MinimizerAdapter::propagateOptions(), MinimizerAdapter::propagateResults(), mumufit::internal::reportToString(), MinimizerAdapter::rootMinimizer(), mumufit::MinimizerResult::setMinValue(), mumufit::MinimizerResult::setNumberOfCalls(), mumufit::MinimizerResult::setNumberOfGradientCalls(), MinimizerAdapter::setParameters(), mumufit::MinimizerResult::setParameters(), and mumufit::MinimizerResult::setReport().

Referenced by MinimizerAdapter::minimize_residual(), and MinimizerAdapter::minimize_scalar().

Here is the call graph for this function:

◆ minimize_residual()

MinimizerResult MinimizerAdapter::minimize_residual ( fcn_residual_t  fcn,
mumufit::Parameters  parameters 
)
overridevirtualinherited

Reimplemented from IMinimizer.

Definition at line 41 of file MinimizerAdapter.cpp.

42 {
43  // Genetic minimizer requires SetFunction before setParameters, others don't care
44  rootMinimizer()->SetFunction(*m_adapter->rootResidualFunction(fcn, parameters));
45  return minimize(parameters);
46 }
mumufit::MinimizerResult minimize(mumufit::Parameters parameters)

References MinimizerAdapter::m_adapter, MinimizerAdapter::minimize(), and MinimizerAdapter::rootMinimizer().

Here is the call graph for this function:

◆ minimize_scalar()

MinimizerResult MinimizerAdapter::minimize_scalar ( fcn_scalar_t  ,
mumufit::Parameters   
)
overridevirtualinherited

run minimization

Reimplemented from IMinimizer.

Definition at line 34 of file MinimizerAdapter.cpp.

35 {
36  // Genetic minimizer requires SetFunction before setParameters, others don't care
37  rootMinimizer()->SetFunction(*m_adapter->rootObjectiveFunction(fcn, parameters));
38  return minimize(parameters);
39 }

References MinimizerAdapter::m_adapter, MinimizerAdapter::minimize(), and MinimizerAdapter::rootMinimizer().

Here is the call graph for this function:

◆ minimizerName()

std::string MinimizerAdapter::minimizerName ( ) const
finalvirtualinherited

Returns name of the minimizer.

Implements IMinimizer.

Definition at line 66 of file MinimizerAdapter.cpp.

67 {
68  return m_minimizerInfo.name();
69 }
std::string name() const
Definition: MinimizerInfo.h:59

References MinimizerAdapter::m_minimizerInfo, and MinimizerInfo::name().

Here is the call graph for this function:

◆ minValue()

double MinimizerAdapter::minValue ( ) const
finalvirtualinherited

Returns minimum function value.

Reimplemented from IMinimizer.

Definition at line 83 of file MinimizerAdapter.cpp.

84 {
85  return rootMinimizer()->MinValue();
86 }

References MinimizerAdapter::rootMinimizer().

Referenced by MinimizerAdapter::minimize(), and MinimizerAdapter::statusMap().

Here is the call graph for this function:

◆ options() [1/2]

MinimizerOptions& MinimizerAdapter::options ( )
inlineinherited

Definition at line 64 of file MinimizerAdapter.h.

64 { return m_options; }

References MinimizerAdapter::m_options.

Referenced by MinimizerAdapter::setOptions().

◆ options() [2/2]

const MinimizerOptions& MinimizerAdapter::options ( ) const
inlineinherited

Definition at line 65 of file MinimizerAdapter.h.

65 { return m_options; }

References MinimizerAdapter::m_options.

◆ optionValue()

template<class T >
T MinimizerAdapter::optionValue ( const std::string &  optionName) const
protectedinherited

Definition at line 122 of file MinimizerAdapter.h.

123 {
124  return m_options.optionValue<T>(optionName);
125 }
T optionValue(const std::string &optionName) const

References MinimizerAdapter::m_options, and OptionContainer::optionValue().

Here is the call graph for this function:

◆ parErrorsAtMinimum()

std::vector< double > MinimizerAdapter::parErrorsAtMinimum ( ) const
protectedinherited

Returns errors of the variables at minimum.

Definition at line 198 of file MinimizerAdapter.cpp.

199 {
200  std::vector<double> result;
201  result.resize(fitDimension(), 0.0);
202  if (rootMinimizer()->Errors() != 0) {
203  std::copy(rootMinimizer()->Errors(), rootMinimizer()->Errors() + fitDimension(),
204  result.begin());
205  }
206  return result;
207 }
size_t fitDimension() const
Returns number of fit parameters defined (i.e. dimension of the function to be minimized).

References MinimizerAdapter::fitDimension(), and MinimizerAdapter::rootMinimizer().

Referenced by MinimizerAdapter::propagateResults().

Here is the call graph for this function:

◆ parValuesAtMinimum()

std::vector< double > MinimizerAdapter::parValuesAtMinimum ( ) const
protectedinherited

Returns value of the variables at minimum.

Definition at line 188 of file MinimizerAdapter.cpp.

189 {
190  std::vector<double> result;
191  result.resize(fitDimension(), 0.0);
192  std::copy(rootMinimizer()->X(), rootMinimizer()->X() + fitDimension(), result.begin());
193  return result;
194 }

References MinimizerAdapter::fitDimension(), and MinimizerAdapter::rootMinimizer().

Referenced by MinimizerAdapter::propagateResults().

Here is the call graph for this function:

◆ precision()

double Minuit2Minimizer::precision ( ) const

Definition at line 95 of file Minuit2Minimizer.cpp.

96 {
97  return optionValue<double>("Precision");
98 }

Referenced by propagateOptions().

◆ printLevel()

int Minuit2Minimizer::printLevel ( ) const

Definition at line 105 of file Minuit2Minimizer.cpp.

106 {
107  return optionValue<int>("PrintLevel");
108 }

Referenced by propagateOptions().

◆ propagateOptions()

void Minuit2Minimizer::propagateOptions ( )
overrideprotectedvirtual

Propagate options down to ROOT's Minuit2Minimizer.

Implements MinimizerAdapter.

Definition at line 144 of file Minuit2Minimizer.cpp.

145 {
146  m_minuit2_minimizer->SetStrategy(strategy());
147  m_minuit2_minimizer->SetErrorDef(errorDefinition());
148  m_minuit2_minimizer->SetTolerance(tolerance());
149  m_minuit2_minimizer->SetPrecision(precision());
150  m_minuit2_minimizer->SetPrintLevel(printLevel());
151  m_minuit2_minimizer->SetMaxFunctionCalls(static_cast<unsigned int>(maxFunctionCalls()));
152 }
double tolerance() const
int maxFunctionCalls() const
double precision() const
double errorDefinition() const

References errorDefinition(), m_minuit2_minimizer, maxFunctionCalls(), precision(), printLevel(), strategy(), and tolerance().

Here is the call graph for this function:

◆ propagateResults()

void MinimizerAdapter::propagateResults ( mumufit::Parameters parameters)
protectedinherited

Propagates results of minimization to fit parameter set.

Definition at line 120 of file MinimizerAdapter.cpp.

121 {
122  parameters.setValues(parValuesAtMinimum());
123  parameters.setErrors(parErrorsAtMinimum());
124  // sets correlation matrix
125  if (providesError()) {
127  matrix.resize(fitDimension());
128 
129  for (size_t i = 0; i < fitDimension(); ++i) {
130  matrix[i].resize(fitDimension(), 0.0);
131  for (size_t j = 0; j < fitDimension(); ++j)
132  matrix[i][j] = rootMinimizer()->Correlation(static_cast<unsigned int>(i),
133  static_cast<unsigned int>(j));
134  }
135  parameters.setCorrelationMatrix(matrix);
136  }
137 }
std::vector< double > parValuesAtMinimum() const
Returns value of the variables at minimum.
bool providesError() const
Returns true if minimizer provides error and error matrix.
std::vector< double > parErrorsAtMinimum() const
Returns errors of the variables at minimum.
void setValues(const std::vector< double > &values)
Definition: Parameters.cpp:64
void setCorrelationMatrix(const corr_matrix_t &matrix)
Definition: Parameters.cpp:122
void setErrors(const std::vector< double > &errors)
Definition: Parameters.cpp:90
std::vector< std::vector< double > > corr_matrix_t
Definition: Parameters.h:31

References MinimizerAdapter::fitDimension(), MinimizerAdapter::parErrorsAtMinimum(), MinimizerAdapter::parValuesAtMinimum(), MinimizerAdapter::providesError(), MinimizerAdapter::rootMinimizer(), mumufit::Parameters::setCorrelationMatrix(), mumufit::Parameters::setErrors(), and mumufit::Parameters::setValues().

Referenced by MinimizerAdapter::minimize().

Here is the call graph for this function:

◆ providesError()

bool MinimizerAdapter::providesError ( ) const
inherited

Returns true if minimizer provides error and error matrix.

Definition at line 93 of file MinimizerAdapter.cpp.

94 {
95  return rootMinimizer()->ProvidesError();
96 }

References MinimizerAdapter::rootMinimizer().

Referenced by MinimizerAdapter::propagateResults(), and MinimizerAdapter::statusMap().

Here is the call graph for this function:

◆ requiresResiduals()

bool Minuit2Minimizer::requiresResiduals ( )
overridevirtual

Returns true if minimizer computations are residual-based, false otherwise.

Reimplemented from IMinimizer.

Definition at line 137 of file Minuit2Minimizer.cpp.

138 {
139  return algorithmName() == "Fumili";
140 }

References MinimizerAdapter::algorithmName().

Here is the call graph for this function:

◆ rootMinimizer() [1/2]

MinimizerAdapter::root_minimizer_t * MinimizerAdapter::rootMinimizer ( )
protectedinherited

Definition at line 209 of file MinimizerAdapter.cpp.

210 {
211  return const_cast<root_minimizer_t*>(
212  static_cast<const MinimizerAdapter*>(this)->rootMinimizer());
213 }
Abstract base class that adapts the CERN ROOT minimizer to our IMinimizer.
ROOT::Math::Minimizer root_minimizer_t

References MinimizerAdapter::rootMinimizer().

Here is the call graph for this function:

◆ rootMinimizer() [2/2]

const MinimizerAdapter::root_minimizer_t * Minuit2Minimizer::rootMinimizer ( ) const
overrideprotectedvirtual

Implements MinimizerAdapter.

Definition at line 154 of file Minuit2Minimizer.cpp.

155 {
156  return m_minuit2_minimizer.get();
157 }

References m_minuit2_minimizer.

Referenced by statusMap(), and statusToString().

◆ setErrorDefinition()

void Minuit2Minimizer::setErrorDefinition ( double  value)

Sets error definition factor for parameter error calculation.

If objective function (OF) is the usual chisquare function and if the user wants the usual one-standard-deviation errors, then the error definition should be 1.0. If OF is a negative-log-likelihood function, then 0.5. If OF is a chisquare, but the user wants two-standard-deviation errors, 4.0.

Definition at line 70 of file Minuit2Minimizer.cpp.

71 {
72  setOptionValue("ErrorDef", value);
73 }
void setOptionValue(const std::string &optionName, T value)

References MinimizerAdapter::setOptionValue().

Referenced by MinuitMinimizerItem::createMinimizer().

Here is the call graph for this function:

◆ setMaxFunctionCalls()

void Minuit2Minimizer::setMaxFunctionCalls ( int  value)

Sets maximum number of objective function calls.

Definition at line 110 of file Minuit2Minimizer.cpp.

111 {
112  setOptionValue("MaxFunctionCalls", value);
113 }

References MinimizerAdapter::setOptionValue().

Referenced by MinuitMinimizerItem::createMinimizer().

Here is the call graph for this function:

◆ setOptions()

void MinimizerAdapter::setOptions ( const std::string &  optionString)
finalvirtualinherited

Sets option string to the minimizer.

Reimplemented from IMinimizer.

Definition at line 113 of file MinimizerAdapter.cpp.

114 {
115  options().setOptionString(optionString);
116 }
MinimizerOptions & options()
void setOptionString(const std::string &options)
Set options from their string representation.

References MinimizerAdapter::options(), and MinimizerOptions::setOptionString().

Here is the call graph for this function:

◆ setOptionValue()

◆ setParameter()

void MinimizerAdapter::setParameter ( unsigned int  index,
const mumufit::Parameter par 
)
protectedvirtualinherited

Reimplemented in GSLLevenbergMarquardtMinimizer, and GeneticMinimizer.

Definition at line 139 of file MinimizerAdapter.cpp.

140 {
141  bool success;
142  if (par.limits().isFixed()) {
143  success = rootMinimizer()->SetFixedVariable(index, par.name().c_str(), par.value());
144 
145  }
146 
147  else if (par.limits().isLimited()) {
148  success = rootMinimizer()->SetLimitedVariable(index, par.name().c_str(), par.value(),
149  par.step(), par.limits().lowerLimit(),
150  par.limits().upperLimit());
151  }
152 
153  else if (par.limits().isLowerLimited()) {
154  success = rootMinimizer()->SetLowerLimitedVariable(index, par.name().c_str(), par.value(),
155  par.step(), par.limits().lowerLimit());
156  }
157 
158  else if (par.limits().isUpperLimited()) {
159  success = rootMinimizer()->SetUpperLimitedVariable(index, par.name().c_str(), par.value(),
160  par.step(), par.limits().upperLimit());
161  }
162 
163  else if (par.limits().isLimitless()) {
164  success = rootMinimizer()->SetVariable(index, par.name().c_str(), par.value(), par.step());
165  }
166 
167  else {
168  throw std::runtime_error("BasicMinimizer::setParameter() -> Error! Unexpected parameter.");
169  }
170 
171  if (!success) {
172  std::ostringstream ostr;
173  ostr << "BasicMinimizer::setParameter() -> Error! Can't set minimizer's fit parameter";
174  ostr << "Index:" << index << " name '" << par.name() << "'";
175  throw std::runtime_error(ostr.str());
176  }
177 }
double lowerLimit() const
Definition: AttLimits.cpp:86
double upperLimit() const
Definition: AttLimits.cpp:91
bool isUpperLimited() const
Definition: AttLimits.cpp:71
bool isFixed() const
Definition: AttLimits.cpp:61
bool isLimitless() const
Definition: AttLimits.cpp:81
bool isLimited() const
Definition: AttLimits.cpp:66
bool isLowerLimited() const
Definition: AttLimits.cpp:76
double step() const
Definition: Parameter.cpp:69
std::string name() const
Definition: Parameter.cpp:44
AttLimits limits() const
Definition: Parameter.cpp:54
double value() const
Definition: Parameter.cpp:59

References AttLimits::isFixed(), AttLimits::isLimited(), AttLimits::isLimitless(), AttLimits::isLowerLimited(), AttLimits::isUpperLimited(), mumufit::Parameter::limits(), AttLimits::lowerLimit(), mumufit::Parameter::name(), MinimizerAdapter::rootMinimizer(), mumufit::Parameter::step(), AttLimits::upperLimit(), and mumufit::Parameter::value().

Referenced by GeneticMinimizer::setParameter(), GSLLevenbergMarquardtMinimizer::setParameter(), and MinimizerAdapter::setParameters().

Here is the call graph for this function:

◆ setParameters()

void MinimizerAdapter::setParameters ( const mumufit::Parameters parameters)
inherited

Definition at line 76 of file MinimizerAdapter.cpp.

77 {
78  unsigned int index(0);
79  for (const auto& par : parameters)
80  setParameter(index++, par);
81 }
virtual void setParameter(unsigned int index, const mumufit::Parameter &par)

References MinimizerAdapter::setParameter().

Referenced by MinimizerAdapter::minimize().

Here is the call graph for this function:

◆ setPrecision()

void Minuit2Minimizer::setPrecision ( double  value)

Sets relative floating point arithmetic precision.

Should be adjusted when the user knows that objectiove function value is not calculated to the nominal machine accuracy. Typical values are between 10^-5 and 10^-14.

Definition at line 90 of file Minuit2Minimizer.cpp.

91 {
92  setOptionValue("Precision", value);
93 }

References MinimizerAdapter::setOptionValue().

Referenced by MinuitMinimizerItem::createMinimizer().

Here is the call graph for this function:

◆ setPrintLevel()

void Minuit2Minimizer::setPrintLevel ( int  value)

Sets minimizer internal print level.

Default value is 0 (silent).

Definition at line 100 of file Minuit2Minimizer.cpp.

101 {
102  setOptionValue("PrintLevel", value);
103 }

References MinimizerAdapter::setOptionValue().

Here is the call graph for this function:

◆ setStrategy()

void Minuit2Minimizer::setStrategy ( int  value)

Sets minimization strategy (0-low, 1-medium, 2-high minimization quality).

At low quality number of function calls will be economized.

Definition at line 60 of file Minuit2Minimizer.cpp.

61 {
62  setOptionValue("Strategy", value);
63 }

References MinimizerAdapter::setOptionValue().

Referenced by MinuitMinimizerItem::createMinimizer().

Here is the call graph for this function:

◆ setTolerance()

void Minuit2Minimizer::setTolerance ( double  value)

Sets tolerance on the function value at the minimum.

Minimization will stop when the estimated vertical distance to the minimum (EDM) is less than 0.001*tolerance*ErrorDef. Here ErrorDef=1.0 for chi squared fit and ErrorDef=0.5 for negative log likelihood fit.

Definition at line 80 of file Minuit2Minimizer.cpp.

81 {
82  setOptionValue("Tolerance", value);
83 }

References MinimizerAdapter::setOptionValue().

Referenced by MinuitMinimizerItem::createMinimizer().

Here is the call graph for this function:

◆ statusMap()

std::map< std::string, std::string > Minuit2Minimizer::statusMap ( ) const
overridevirtual

Returns map of string representing different minimizer statuses.

Reimplemented from MinimizerAdapter.

Definition at line 125 of file Minuit2Minimizer.cpp.

126 {
127  auto result = MinimizerAdapter::statusMap();
128  result["Edm"] = mumufit::stringUtils::scientific(rootMinimizer()->Edm());
129  result["CovMatrixStatus"] = covmatrixStatusDescription()[rootMinimizer()->CovMatrixStatus()];
130  result["functionCalls"] = std::to_string(rootMinimizer()->NCalls());
131  return result;
132 }
virtual std::map< std::string, std::string > statusMap() const
Returns map of string representing different minimizer statuses.
const root_minimizer_t * rootMinimizer() const override
std::string scientific(const T value, int n=10)
Returns scientific string representing given value of any numeric type.
Definition: StringUtils.h:41

References rootMinimizer(), mumufit::stringUtils::scientific(), and MinimizerAdapter::statusMap().

Here is the call graph for this function:

◆ statusToString()

std::string Minuit2Minimizer::statusToString ( ) const
overridevirtual

Returns string representation of current minimizer status.

Reimplemented from MinimizerAdapter.

Definition at line 120 of file Minuit2Minimizer.cpp.

121 {
122  return statusDescription()[rootMinimizer()->Status()];
123 }

References rootMinimizer().

Here is the call graph for this function:

◆ strategy()

int Minuit2Minimizer::strategy ( ) const

Definition at line 65 of file Minuit2Minimizer.cpp.

66 {
67  return optionValue<int>("Strategy");
68 }

Referenced by propagateOptions().

◆ tolerance()

double Minuit2Minimizer::tolerance ( ) const

Definition at line 85 of file Minuit2Minimizer.cpp.

86 {
87  return optionValue<double>("Tolerance");
88 }

Referenced by propagateOptions().

Member Data Documentation

◆ m_adapter

std::unique_ptr<mumufit::ObjectiveFunctionAdapter> MinimizerAdapter::m_adapter
privateinherited

◆ m_minimizerInfo

MinimizerInfo MinimizerAdapter::m_minimizerInfo
privateinherited

◆ m_minuit2_minimizer

std::unique_ptr<ROOT::Minuit2::Minuit2Minimizer> Minuit2Minimizer::m_minuit2_minimizer
private

Definition at line 84 of file Minuit2Minimizer.h.

Referenced by propagateOptions(), and rootMinimizer().

◆ m_options

◆ m_status

bool MinimizerAdapter::m_status
privateinherited

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