ROOT  6.06/09
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 
15 #include "Minuit2/FumiliBuilder.h"
16 
17 namespace ROOT {
18 
19  namespace Minuit2 {
20 
21 
22 
23 class MinimumSeedGenerator;
24 class MinimumBuilder;
25 class MinimumSeed;
26 class MnFcn;
27 class FumiliFcnBase;
28 class GradientCalculator;
29 class MnUserParameterState;
30 class MnUserParameters;
31 class MnUserCovariance;
32 class MnStrategy;
33 
34 
35 
36 //______________________________________________________________
37 /**
38 
39 Instantiates the seed generator and Minimum builder for the
40 Fumili minimization method. Produces the Minimum via the
41 Minimize 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 
52 public:
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 
143 private:
144 
147 
148 };
149 
150  } // namespace Minuit2
151 
152 } // namespace ROOT
153 
154 #endif // ROOT_Minuit2_FumiliMinimizer
double par[1]
Definition: unuranDistr.cxx:38
FunctionMinimum Minimize(const FCNBase &, const MnUserParameterState &, const MnStrategy &, unsigned int maxfcn=0, double toler=0.1) const
const FumiliBuilder & Builder() const
Accessor to the Minimum builder of the minimizer.
Namespace for new ROOT classes and functions.
Definition: ROOT.py:1
virtual FunctionMinimum Minimize(const FCNGradientBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const
MinimumSeed contains the starting values for the minimization produced by the SeedGenerator.
Definition: MinimumSeed.h:31
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
Extension of the FCNBase for providing the analytical Gradient of the function.
concrete implementation of the MinimumSeedGenerator interface; used within ModularFunctionMinimizer; ...
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
const MinimumSeedGenerator & SeedGenerator() const
Accessor to the seed generator of the minimizer.
Wrapper class to FCNBase interface used internally by Minuit.
Definition: MnFcn.h:33
virtual FunctionMinimum Minimize(const FCNGradientBase &fcn, const MnUserParameters &par, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
Definition: FCNBase.h:47
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 MnFcn &mfcn, const GradientCalculator &gc, const MinimumSeed &seed, const MnStrategy &stra, unsigned int maxfcn, double toler) const
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
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
Instantiates the seed generator and Minimum builder for the Fumili minimization method.
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...
FumiliMinimizer()
Constructor initializing the FumiliMinimizer by instantiatiating the SeedGenerator and MinimumBuilder...
base class for seed generators (starting values); the seed generator prepares initial starting values...
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, 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 MnUserParameters &par, const MnUserCovariance &cov, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const
Builds the FunctionMinimum using the Fumili method.
Definition: FumiliBuilder.h:40
API class for defining three levels of strategies: low (0), medium (1), high (>=2); acts on: Migrad (...
Definition: MnStrategy.h:27
Base common class providing the API for all the minimizer Various Minimize methods are provided varyi...
interface class for gradient calculators
Class containing the covariance matrix data represented as a vector of size n*(n+1)/2 Used to hide in...