Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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
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
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 { 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;
90
92 unsigned int maxfcn = 0, double toler = 0.1) const;
93
94 // need to re-implement all function in ModularFuncitionMinimizer otherwise they will be hided
95
96 virtual 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
98 {
99 return ModularFunctionMinimizer::Minimize(fcn, par, err, stra, maxfcn, toler);
100 }
101
102 virtual 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
105 {
106 return ModularFunctionMinimizer::Minimize(fcn, par, err, stra, maxfcn, toler);
107 }
108
109 virtual 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
112 {
113 return ModularFunctionMinimizer::Minimize(fcn, par, nrow, cov, stra, maxfcn, toler);
114 }
115
116 virtual 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
119 {
120 return ModularFunctionMinimizer::Minimize(fcn, par, nrow, cov, stra, maxfcn, toler);
121 }
122
123 virtual FunctionMinimum Minimize(const FCNBase &fcn, const MnUserParameters &par, const MnStrategy &stra,
124 unsigned int maxfcn = 0, double toler = 0.1) const
125 {
126 return ModularFunctionMinimizer::Minimize(fcn, par, stra, maxfcn, toler);
127 }
128
129 virtual FunctionMinimum Minimize(const FCNGradientBase &fcn, const MnUserParameters &par, const MnStrategy &stra,
130 unsigned int maxfcn = 0, double toler = 0.1) const
131 {
132 return ModularFunctionMinimizer::Minimize(fcn, par, stra, maxfcn, toler);
133 }
134
135 virtual FunctionMinimum Minimize(const FCNBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov,
136 const MnStrategy &stra, unsigned int maxfcn = 0, double toler = 0.1) const
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
144 {
145 return ModularFunctionMinimizer::Minimize(fcn, par, cov, stra, maxfcn, toler);
146 }
147
148 virtual FunctionMinimum Minimize(const MnFcn &mfcn, const GradientCalculator &gc, const MinimumSeed &seed,
149 const MnStrategy &stra, unsigned int maxfcn, double toler) const
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
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
Definition FCNBase.h:45
Extension of the FCNBase for providing the analytical Gradient of the function.
Builds the FunctionMinimum using the Fumili method.
Instantiates the seed generator and Minimum builder for the Fumili minimization method.
virtual FunctionMinimum Minimize(const FCNBase &fcn, const MnUserParameters &par, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const
virtual FunctionMinimum Minimize(const FCNGradientBase &fcn, const MnUserParameters &par, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const
virtual 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
FunctionMinimum Minimize(const FCNBase &, const MnUserParameterState &, const MnStrategy &, unsigned int maxfcn=0, double toler=0.1) const
const MinimumSeedGenerator & SeedGenerator() const
Accessor to the seed generator of the minimizer.
const FumiliBuilder & Builder() const
Accessor to the Minimum builder of the minimizer.
virtual FunctionMinimum Minimize(const FCNBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const
virtual 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
virtual 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
virtual 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
virtual FunctionMinimum Minimize(const MnFcn &mfcn, const GradientCalculator &gc, const MinimumSeed &seed, const MnStrategy &stra, unsigned int maxfcn, double toler) const
virtual FunctionMinimum Minimize(const FCNGradientBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const
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...
MinimumSeed contains the starting values for the minimization produced by the SeedGenerator.
Definition MinimumSeed.h:31
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...
virtual 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
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...