ROOT   Reference Guide
MnSimplex.h
Go to the documentation of this file.
1// @(#)root/minuit2:$Id$
2// Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005
3
4/**********************************************************************
5 * *
6 * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT *
7 * *
8 **********************************************************************/
9
10#ifndef ROOT_Minuit2_MnSimplex
11#define ROOT_Minuit2_MnSimplex
12
15
16#include <vector>
17
18namespace ROOT {
19
20namespace Minuit2 {
21
22class FCNBase;
23
24//_________________________________________________________________________
25/**
26 API class for minimization using the Simplex method, which does not need and use
27 the derivatives of the function, but only function values.
29 <A HREF="http://seal.web.cern.ch/mathlibs/documents/minuit/mntutorial.pdf">here</A>.
30
31 It allows for user interaction: set/change parameters, do minimization,
32 change parameters, re-do minimization etc.;
33 */
34
35class MnSimplex : public MnApplication {
36
37public:
38 /// construct from FCNBase + std::vector for parameters and errors
39 MnSimplex(const FCNBase &fcn, const std::vector<double> &par, const std::vector<double> &err, unsigned int stra = 1)
41 {
42 }
43
44 /// construct from FCNBase + std::vector for parameters and covariance
45 MnSimplex(const FCNBase &fcn, const std::vector<double> &par, unsigned int nrow, const std::vector<double> &cov,
46 unsigned int stra = 1)
48 {
49 }
50
51 /// construct from FCNBase + std::vector for parameters and MnUserCovariance
52 MnSimplex(const FCNBase &fcn, const std::vector<double> &par, const MnUserCovariance &cov, unsigned int stra = 1)
54 {
55 }
56
57 /// construct from FCNBase + MnUserParameters
58 MnSimplex(const FCNBase &fcn, const MnUserParameters &par, unsigned int stra = 1)
60 {
61 }
62
63 /// construct from FCNBase + MnUserParameters + MnUserCovariance
64 MnSimplex(const FCNBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, unsigned int stra = 1)
66 {
67 }
68
69 /// construct from FCNBase + MnUserParameterState + MnStrategy
70 MnSimplex(const FCNBase &fcn, const MnUserParameterState &par, const MnStrategy &str)
72 {
73 }
74
75 MnSimplex(const MnSimplex &migr)
76 : MnApplication(migr.Fcnbase(), migr.State(), migr.Strategy(), migr.NumOfCalls()), fMinimizer(migr.fMinimizer)
77 {
78 }
79
80 ~MnSimplex() override {}
81
83 const ModularFunctionMinimizer &Minimizer() const override { return fMinimizer; }
84
85private:
87
88private:
89 // forbidden assignment of migrad (const FCNBase& = )
90 MnSimplex &operator=(const MnSimplex &) { return *this; }
91};
92
93} // namespace Minuit2
94
95} // namespace ROOT
96
97#endif // ROOT_Minuit2_MnSimplex
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
Definition: FCNBase.h:45
application interface class for minimizers (migrad, simplex, Minimize, Scan) User normally instantiat...
Definition: MnApplication.h:37
unsigned int NumOfCalls() const
Definition: MnApplication.h:69
const MnStrategy & Strategy() const
Definition: MnApplication.h:68
const MnUserParameterState & State() const
Definition: MnApplication.h:64
virtual const FCNBase & Fcnbase() const
Definition: MnApplication.h:67
API class for minimization using the Simplex method, which does not need and use the derivatives of t...
Definition: MnSimplex.h:35
MnSimplex(const FCNBase &fcn, const MnUserParameterState &par, const MnStrategy &str)
construct from FCNBase + MnUserParameterState + MnStrategy
Definition: MnSimplex.h:70
MnSimplex(const MnSimplex &migr)
Definition: MnSimplex.h:75
MnSimplex(const FCNBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, unsigned int stra=1)
construct from FCNBase + MnUserParameters + MnUserCovariance
Definition: MnSimplex.h:64
MnSimplex(const FCNBase &fcn, const std::vector< double > &par, unsigned int nrow, const std::vector< double > &cov, unsigned int stra=1)
construct from FCNBase + std::vector for parameters and covariance
Definition: MnSimplex.h:45
SimplexMinimizer fMinimizer
Definition: MnSimplex.h:86
MnSimplex & operator=(const MnSimplex &)
Definition: MnSimplex.h:90
MnSimplex(const FCNBase &fcn, const std::vector< double > &par, const MnUserCovariance &cov, unsigned int stra=1)
construct from FCNBase + std::vector for parameters and MnUserCovariance
Definition: MnSimplex.h:52
MnSimplex(const FCNBase &fcn, const std::vector< double > &par, const std::vector< double > &err, unsigned int stra=1)
construct from FCNBase + std::vector for parameters and errors
Definition: MnSimplex.h:39
const ModularFunctionMinimizer & Minimizer() const override
Definition: MnSimplex.h:83
MnSimplex(const FCNBase &fcn, const MnUserParameters &par, unsigned int stra=1)
construct from FCNBase + MnUserParameters
Definition: MnSimplex.h:58
ModularFunctionMinimizer & Minimizer() override
Definition: MnSimplex.h:82
API class for defining three levels of strategies: low (0), medium (1), high (>=2); acts on: Migrad (...
Definition: MnStrategy.h:27
Class containing the covariance matrix data represented as a vector of size n*(n+1)/2 Used to hide in...
class which holds the external user and/or internal Minuit representation of the parameters and error...
API class for the user interaction with the parameters; serves as input to the minimizer as well as o...
Base common class providing the API for all the minimizer Various Minimize methods are provided varyi...
Class implementing the required methods for a minimization using Simplex.
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.