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
17namespace ROOT {
18
19 namespace Minuit2 {
20
21
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//______________________________________________________________
37/**
38
39Instantiates the seed generator and Minimum builder for the
40Fumili minimization method. Produces the Minimum via the
41Minimize methods inherited from ModularFunctionMinimizer.
42
43@author Andras Zsenei and Lorenzo Moneta, Creation date: 28 Sep 2004
44
45@ingroup Minuit
46
47*/
48
49
51
52public:
53
54
55 /**
56
57 Constructor initializing the FumiliMinimizer by instantiatiating
58 the SeedGenerator and MinimumBuilder for the Fumili minimization method.
59
60 @see MnSeedGenerator
61
62 @see FumiliBuilder
63
64 */
65
68
70
71
72 /**
73
74 Accessor to the seed generator of the minimizer.
75
76 @return A reference to the seed generator used by the minimizer
77
78 */
79
81
82
83 /**
84
85 Accessor to the Minimum builder of the minimizer.
86
87 @return a reference to the Minimum builder.
88
89 */
90
91 const FumiliBuilder& Builder() const {return fMinBuilder;}
93
94
95 // for Fumili
96
97 FunctionMinimum Minimize(const FCNBase&, const MnUserParameterState&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
98
99 virtual FunctionMinimum Minimize(const FCNGradientBase&, const MnUserParameterState&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
100
101 // need to re-implement all function in ModularFuncitionMinimizer otherwise they will be hided
102
103 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 {
104 return ModularFunctionMinimizer::Minimize(fcn, par, err, stra, maxfcn,toler);
105 }
106
107 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 {
108 return ModularFunctionMinimizer::Minimize(fcn,par,err,stra,maxfcn,toler);
109 }
110
111 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 {
112 return ModularFunctionMinimizer::Minimize(fcn,par,nrow,cov,stra,maxfcn,toler);
113 }
114
115 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 {
116 return ModularFunctionMinimizer::Minimize(fcn,par,nrow,cov,stra,maxfcn,toler);
117 }
118
119
120 virtual FunctionMinimum Minimize(const FCNBase& fcn, const MnUserParameters& par, const MnStrategy& stra, unsigned int maxfcn = 0, double toler = 0.1) const {
121 return ModularFunctionMinimizer::Minimize(fcn,par,stra,maxfcn,toler);
122 }
123
124 virtual FunctionMinimum Minimize(const FCNGradientBase& fcn, const MnUserParameters& par, const MnStrategy& stra, unsigned int maxfcn = 0, double toler = 0.1) const {
125 return ModularFunctionMinimizer::Minimize(fcn,par,stra,maxfcn,toler);
126 }
127
128 virtual FunctionMinimum Minimize(const FCNBase& fcn, const MnUserParameters& par, const MnUserCovariance& cov, const MnStrategy& stra, unsigned int maxfcn = 0, double toler = 0.1) const {
129 return ModularFunctionMinimizer::Minimize(fcn,par,cov,stra,maxfcn,toler);
130 }
131
132 virtual FunctionMinimum Minimize(const FCNGradientBase& fcn, const MnUserParameters& par, const MnUserCovariance& cov, const MnStrategy& stra, unsigned int maxfcn = 0, double toler = 0.1) const {
133 return ModularFunctionMinimizer::Minimize(fcn,par,cov,stra,maxfcn,toler);
134 }
135
136
137
138 virtual FunctionMinimum Minimize(const MnFcn& mfcn, const GradientCalculator& gc, const MinimumSeed& seed, const MnStrategy& stra, unsigned int maxfcn, double toler) const {
139 return ModularFunctionMinimizer::Minimize(mfcn, gc, seed, stra, maxfcn, toler);
140 }
141
142
143private:
144
147
148};
149
150 } // namespace Minuit2
151
152} // namespace ROOT
153
154#endif // ROOT_Minuit2_FumiliMinimizer
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
Definition: FCNBase.h:47
Extension of the FCNBase for providing the analytical Gradient of the function.
Builds the FunctionMinimum using the Fumili method.
Definition: FumiliBuilder.h:40
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:33
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...
Definition: StringConv.hxx:21