Logo ROOT  
Reference Guide
FumiliMinimizer.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_FumiliMinimizer
11#define ROOT_Minuit2_FumiliMinimizer
12
16
17#include <vector>
18
19namespace ROOT {
20
21namespace Minuit2 {
22
23class MinimumSeedGenerator;
24class MinimumBuilder;
25class MinimumSeed;
26class MnFcn;
27class FumiliFcnBase;
28class GradientCalculator;
29class MnUserParameterState;
30class MnUserParameters;
31class MnUserCovariance;
32class MnStrategy;
33
34//______________________________________________________________
35/**
36
37Instantiates the seed generator and Minimum builder for the
38Fumili minimization method. Produces the Minimum via the
39Minimize methods inherited from ModularFunctionMinimizer.
40
41@author Andras Zsenei and Lorenzo Moneta, Creation date: 28 Sep 2004
42
43@ingroup Minuit
44
45*/
46
48
49public:
50 /**
51
52 Constructor initializing the FumiliMinimizer by instantiatiating
53 the SeedGenerator and MinimumBuilder for the Fumili minimization method.
54
55 @see MnSeedGenerator
56
57 @see FumiliBuilder
58
59 */
60
62
63 ~FumiliMinimizer() override {}
64
65 /**
66
67 Accessor to the seed generator of the minimizer.
68
69 @return A reference to the seed generator used by the minimizer
70
71 */
72
73 const MinimumSeedGenerator &SeedGenerator() const override { return fMinSeedGen; }
74
75 /**
76
77 Accessor to the Minimum builder of the minimizer.
78
79 @return a reference to the Minimum builder.
80
81 */
82
83 const FumiliBuilder &Builder() const override { return fMinBuilder; }
84 FumiliBuilder &Builder() override { return fMinBuilder; }
85
86 // for Fumili
87
88 FunctionMinimum Minimize(const FCNBase &, const MnUserParameterState &, const MnStrategy &, unsigned int maxfcn = 0,
89 double toler = 0.1) const override;
90
92 unsigned int maxfcn = 0, double toler = 0.1) const override;
93
94 // need to re-implement all function in ModularFuncitionMinimizer otherwise they will be hided
95
96 FunctionMinimum Minimize(const FCNBase &fcn, const std::vector<double> &par, const std::vector<double> &err,
97 unsigned int stra = 1, unsigned int maxfcn = 0, double toler = 0.1) const override
98 {
99 return ModularFunctionMinimizer::Minimize(fcn, par, err, stra, maxfcn, toler);
100 }
101
102 FunctionMinimum Minimize(const FCNGradientBase &fcn, const std::vector<double> &par,
103 const std::vector<double> &err, unsigned int stra = 1, unsigned int maxfcn = 0,
104 double toler = 0.1) const override
105 {
106 return ModularFunctionMinimizer::Minimize(fcn, par, err, stra, maxfcn, toler);
107 }
108
109 FunctionMinimum Minimize(const FCNBase &fcn, const std::vector<double> &par, unsigned int nrow,
110 const std::vector<double> &cov, unsigned int stra = 1, unsigned int maxfcn = 0,
111 double toler = 0.1) const override
112 {
113 return ModularFunctionMinimizer::Minimize(fcn, par, nrow, cov, stra, maxfcn, toler);
114 }
115
116 FunctionMinimum Minimize(const FCNGradientBase &fcn, const std::vector<double> &par, unsigned int nrow,
117 const std::vector<double> &cov, unsigned int stra = 1, unsigned int maxfcn = 0,
118 double toler = 0.1) const override
119 {
120 return ModularFunctionMinimizer::Minimize(fcn, par, nrow, cov, stra, maxfcn, toler);
121 }
122
123 FunctionMinimum Minimize(const FCNBase &fcn, const MnUserParameters &par, const MnStrategy &stra,
124 unsigned int maxfcn = 0, double toler = 0.1) const override
125 {
126 return ModularFunctionMinimizer::Minimize(fcn, par, stra, maxfcn, toler);
127 }
128
130 unsigned int maxfcn = 0, double toler = 0.1) const override
131 {
132 return ModularFunctionMinimizer::Minimize(fcn, par, stra, maxfcn, toler);
133 }
134
136 const MnStrategy &stra, unsigned int maxfcn = 0, double toler = 0.1) const override
137 {
138 return ModularFunctionMinimizer::Minimize(fcn, par, cov, stra, maxfcn, toler);
139 }
140
142 const MnUserCovariance &cov, const MnStrategy &stra, unsigned int maxfcn = 0,
143 double toler = 0.1) const override
144 {
145 return ModularFunctionMinimizer::Minimize(fcn, par, cov, stra, maxfcn, toler);
146 }
147
149 const MnStrategy &stra, unsigned int maxfcn, double toler) const override
150 {
151 return ModularFunctionMinimizer::Minimize(mfcn, gc, seed, stra, maxfcn, toler);
152 }
153
154private:
157};
158
159} // namespace Minuit2
160
161} // namespace ROOT
162
163#endif // ROOT_Minuit2_FumiliMinimizer
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void gc
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
Definition: FCNBase.h:45
Builds the FunctionMinimum using the Fumili method.
Definition: FumiliBuilder.h:40
Instantiates the seed generator and Minimum builder for the Fumili minimization method.
FunctionMinimum Minimize(const FCNGradientBase &fcn, const std::vector< double > &par, const std::vector< double > &err, unsigned int stra=1, unsigned int maxfcn=0, double toler=0.1) const override
FunctionMinimum Minimize(const FCNBase &, const MnUserParameterState &, const MnStrategy &, unsigned int maxfcn=0, double toler=0.1) const override
const MinimumSeedGenerator & SeedGenerator() const override
Accessor to the seed generator of the minimizer.
FunctionMinimum Minimize(const MnFcn &mfcn, const GradientCalculator &gc, const MinimumSeed &seed, const MnStrategy &stra, unsigned int maxfcn, double toler) const override
FunctionMinimum Minimize(const FCNGradientBase &fcn, const MnUserParameters &par, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const override
FunctionMinimum Minimize(const FCNBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const override
FumiliBuilder & Builder() override
FunctionMinimum Minimize(const FCNBase &fcn, const MnUserParameters &par, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const override
FunctionMinimum Minimize(const FCNGradientBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const override
FunctionMinimum Minimize(const FCNBase &fcn, const std::vector< double > &par, const std::vector< double > &err, unsigned int stra=1, unsigned int maxfcn=0, double toler=0.1) const override
FunctionMinimum Minimize(const FCNGradientBase &fcn, const std::vector< double > &par, unsigned int nrow, const std::vector< double > &cov, unsigned int stra=1, unsigned int maxfcn=0, double toler=0.1) const override
const FumiliBuilder & Builder() const override
Accessor to the Minimum builder of the minimizer.
FunctionMinimum Minimize(const FCNBase &fcn, const std::vector< double > &par, unsigned int nrow, const std::vector< double > &cov, unsigned int stra=1, unsigned int maxfcn=0, double toler=0.1) const override
FumiliMinimizer()
Constructor initializing the FumiliMinimizer by instantiatiating the SeedGenerator and MinimumBuilder...
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
interface class for gradient calculators
base class for seed generators (starting values); the seed generator prepares initial starting values...
Wrapper class to FCNBase interface used internally by Minuit.
Definition: MnFcn.h:30
concrete implementation of the MinimumSeedGenerator interface; used within ModularFunctionMinimizer;
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...
FunctionMinimum Minimize(const FCNBase &, const std::vector< double > &, const std::vector< double > &, unsigned int stra=1, unsigned int maxfcn=0, double toler=0.1) const override
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.