ROOT  6.06/09
Reference Guide
ModularFunctionMinimizer.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_ModularFunctionMinimizer
11 #define ROOT_Minuit2_ModularFunctionMinimizer
12 
13 
14 #ifndef ROOT_Minuit2_MnConfig
15 #include "Minuit2/MnConfig.h"
16 #endif
17 
18 #ifndef ROOT_Minuit2_FunctionMinimizer
20 #endif
21 
22 #include <vector>
23 
24 namespace ROOT {
25 
26  namespace Minuit2 {
27 
28 
29 
30 class MinimumSeedGenerator;
31 class MinimumBuilder;
32 class MinimumSeed;
33 class MnFcn;
34 class GradientCalculator;
35 class MnUserParameterState;
36 class MnUserParameters;
37 class MnUserCovariance;
38 class MnStrategy;
39 class FumiliFCNBase;
40 
41 //_____________________________________________________________
42 /**
43  Base common class providing the API for all the minimizer
44  Various Minimize methods are provided varying on the type of
45  FCN function passesd and on the objects used for the parameters
46  */
48 
49 public:
50 
52 
53 // inherited interface
54  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;
55 
56  virtual FunctionMinimum Minimize(const FCNGradientBase&, const std::vector<double>&, const std::vector<double>&, unsigned int stra=1, unsigned int maxfcn = 0, double toler = 0.1) const;
57 
58  virtual FunctionMinimum Minimize(const FCNBase&, const std::vector<double>&, unsigned int, const std::vector<double>&, unsigned int stra=1, unsigned int maxfcn = 0, double toler = 0.1) const;
59 
60  virtual FunctionMinimum Minimize(const FCNGradientBase&, const std::vector<double>&, unsigned int, const std::vector<double>&, unsigned int stra=1, unsigned int maxfcn = 0, double toler = 0.1) const;
61 
62 // extension
63  virtual FunctionMinimum Minimize(const FCNBase&, const MnUserParameters&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
64 
65  virtual FunctionMinimum Minimize(const FCNGradientBase&, const MnUserParameters&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
66 
67  virtual FunctionMinimum Minimize(const FCNBase&, const MnUserParameters&, const MnUserCovariance&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
68 
69  virtual FunctionMinimum Minimize(const FCNGradientBase&, const MnUserParameters&, const MnUserCovariance&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
70 
71  virtual FunctionMinimum Minimize(const FCNBase&, const MnUserParameterState&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
72 
73  virtual FunctionMinimum Minimize(const FCNGradientBase&, const MnUserParameterState&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
74 
75  // for Fumili
76 
77 // virtual FunctionMinimum Minimize(const FumiliFCNBase&, const std::vector<double>&, const std::vector<double>&, unsigned int stra=1, unsigned int maxfcn = 0, double toler = 0.1) const;
78 
79 // virtual FunctionMinimum Minimize(const FumiliFCNBase&, const MnUserParameters&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
80 
81 // virtual FunctionMinimum Minimize(const FumiliFCNBase&, const MnUserParameters&, const MnUserCovariance&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
82 
83 // virtual FunctionMinimum Minimize(const FumiliFCNBase&, const MnUserParameterState&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
84 
85 
86  virtual const MinimumSeedGenerator& SeedGenerator() const = 0;
87  virtual const MinimumBuilder& Builder() const = 0;
88  virtual MinimumBuilder& Builder() = 0;
89 
90 public:
91 
92  virtual FunctionMinimum Minimize(const MnFcn&, const GradientCalculator&, const MinimumSeed&, const MnStrategy&, unsigned int, double) const;
93 
94 };
95 
96  } // namespace Minuit2
97 
98 } // namespace ROOT
99 
100 #endif // ROOT_Minuit2_ModularFunctionMinimizer
Namespace for new ROOT classes and functions.
Definition: ROOT.py:1
MinimumSeed contains the starting values for the minimization produced by the SeedGenerator.
Definition: MinimumSeed.h:31
virtual const MinimumSeedGenerator & SeedGenerator() const =0
Extension of the FCNBase for providing the analytical Gradient of the function.
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
Wrapper class to FCNBase interface used internally by Minuit.
Definition: MnFcn.h:33
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 &, const std::vector< double > &, const std::vector< double > &, unsigned int stra=1, unsigned int maxfcn=0, double toler=0.1) const
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 class for seed generators (starting values); the seed generator prepares initial starting values...
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...
base class for function minimizers; user may give FCN or FCN with Gradient, Parameter starting values...
interface class for gradient calculators
virtual const MinimumBuilder & Builder() const =0
Class containing the covariance matrix data represented as a vector of size n*(n+1)/2 Used to hide in...