Logo ROOT  
Reference Guide
MnMigrad.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_MnMigrad
11#define ROOT_Minuit2_MnMigrad
12
15
16#include <vector>
17
18namespace ROOT {
19
20namespace Minuit2 {
21
22class FCNBase;
23
24//_____________________________________________________________________________
25/**
26 API class for minimization using Variable Metric technology ("MIGRAD");
27 allows for user interaction: set/change parameters, do minimization,
28 change parameters, re-do minimization etc.;
29 also used by MnMinos and MnContours;
30 */
31
32class MnMigrad : public MnApplication {
33
34public:
35 /// construct from FCNBase + std::vector for parameters and errors
36 MnMigrad(const FCNBase &fcn, const std::vector<double> &par, const std::vector<double> &err, unsigned int stra = 1)
38 {
39 }
40
41 /// construct from FCNBase + std::vector for parameters and covariance
42 MnMigrad(const FCNBase &fcn, const std::vector<double> &par, unsigned int nrow, const std::vector<double> &cov,
43 unsigned int stra = 1)
44 : MnApplication(fcn, MnUserParameterState(par, cov, nrow), MnStrategy(stra)),
46 {
47 }
48
49 /// construct from FCNBase + std::vector for parameters and MnUserCovariance
50 MnMigrad(const FCNBase &fcn, const std::vector<double> &par, const MnUserCovariance &cov, unsigned int stra = 1)
52 {
53 }
54
55 /// construct from FCNBase + MnUserParameters
56 MnMigrad(const FCNBase &fcn, const MnUserParameters &par, unsigned int stra = 1)
58 {
59 }
60
61 /// construct from FCNBase + MnUserParameters + MnUserCovariance
62 MnMigrad(const FCNBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, unsigned int stra = 1)
64 {
65 }
66
67 /// construct from FCNBase + MnUserParameterState + MnStrategy
68 MnMigrad(const FCNBase &fcn, const MnUserParameterState &par, const MnStrategy &str)
70 {
71 }
72
73 // constructs from gradient FCN
74
75 /// construct from FCNGradientBase + std::vector for parameters and errors
76 MnMigrad(const FCNGradientBase &fcn, const std::vector<double> &par, const std::vector<double> &err,
77 unsigned int stra = 1)
79 {
80 }
81
82 /// construct from FCNGradientBase + std::vector for parameters and covariance
83 MnMigrad(const FCNGradientBase &fcn, const std::vector<double> &par, unsigned int nrow,
84 const std::vector<double> &cov, unsigned int stra = 1)
85 : MnApplication(fcn, MnUserParameterState(par, cov, nrow), MnStrategy(stra)),
87 {
88 }
89
90 /// construct from FCNGradientBase + std::vector for parameters and MnUserCovariance
91 MnMigrad(const FCNGradientBase &fcn, const std::vector<double> &par, const MnUserCovariance &cov,
92 unsigned int stra = 1)
94 {
95 }
96
97 /// construct from FCNGradientBase + MnUserParameters
98 MnMigrad(const FCNGradientBase &fcn, const MnUserParameters &par, unsigned int stra = 1)
100 {
101 }
102
103 /// construct from FCNGradientBase + MnUserParameters + MnUserCovariance
104 MnMigrad(const FCNGradientBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, unsigned int stra = 1)
106 {
107 }
108
109 /// construct from FCNGradientBase + MnUserParameterState + MnStrategy
110 MnMigrad(const FCNGradientBase &fcn, const MnUserParameterState &par, const MnStrategy &str)
112 {
113 }
114
115 ~MnMigrad() override {}
116
117 /// Copy constructor, copy shares the reference to the same FCNBase in MnApplication
118 MnMigrad(const MnMigrad &) = default;
119
120 // Copy assignment deleted, since MnApplication has unassignable reference to FCNBase
121 MnMigrad &operator=(const MnMigrad &) = delete;
122
124 const ModularFunctionMinimizer &Minimizer() const override { return fMinimizer; }
125
126private:
128};
129
130} // namespace Minuit2
131
132} // namespace ROOT
133
134#endif // ROOT_Minuit2_MnMigrad
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
API class for minimization using Variable Metric technology ("MIGRAD"); allows for user interaction: ...
Definition: MnMigrad.h:32
MnMigrad(const FCNBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, unsigned int stra=1)
construct from FCNBase + MnUserParameters + MnUserCovariance
Definition: MnMigrad.h:62
MnMigrad(const FCNGradientBase &fcn, const MnUserParameterState &par, const MnStrategy &str)
construct from FCNGradientBase + MnUserParameterState + MnStrategy
Definition: MnMigrad.h:110
MnMigrad(const FCNGradientBase &fcn, const std::vector< double > &par, unsigned int nrow, const std::vector< double > &cov, unsigned int stra=1)
construct from FCNGradientBase + std::vector for parameters and covariance
Definition: MnMigrad.h:83
MnMigrad(const FCNGradientBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, unsigned int stra=1)
construct from FCNGradientBase + MnUserParameters + MnUserCovariance
Definition: MnMigrad.h:104
const ModularFunctionMinimizer & Minimizer() const override
Definition: MnMigrad.h:124
MnMigrad(const FCNGradientBase &fcn, const std::vector< double > &par, const std::vector< double > &err, unsigned int stra=1)
construct from FCNGradientBase + std::vector for parameters and errors
Definition: MnMigrad.h:76
ModularFunctionMinimizer & Minimizer() override
Definition: MnMigrad.h:123
MnMigrad(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: MnMigrad.h:36
MnMigrad & operator=(const MnMigrad &)=delete
MnMigrad(const FCNBase &fcn, const MnUserParameters &par, unsigned int stra=1)
construct from FCNBase + MnUserParameters
Definition: MnMigrad.h:56
~MnMigrad() override
Definition: MnMigrad.h:115
MnMigrad(const FCNBase &fcn, const MnUserParameterState &par, const MnStrategy &str)
construct from FCNBase + MnUserParameterState + MnStrategy
Definition: MnMigrad.h:68
MnMigrad(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: MnMigrad.h:42
MnMigrad(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: MnMigrad.h:50
MnMigrad(const MnMigrad &)=default
Copy constructor, copy shares the reference to the same FCNBase in MnApplication.
MnMigrad(const FCNGradientBase &fcn, const MnUserParameters &par, unsigned int stra=1)
construct from FCNGradientBase + MnUserParameters
Definition: MnMigrad.h:98
MnMigrad(const FCNGradientBase &fcn, const std::vector< double > &par, const MnUserCovariance &cov, unsigned int stra=1)
construct from FCNGradientBase + std::vector for parameters and MnUserCovariance
Definition: MnMigrad.h:91
VariableMetricMinimizer fMinimizer
Definition: MnMigrad.h:127
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...
Instantiates the SeedGenerator and MinimumBuilder for Variable Metric Minimization method.
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.