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 
15 #include "Minuit2/FumiliBuilder.h"
16 
17 #include <vector>
18 
19 namespace ROOT {
20 
21 namespace Minuit2 {
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 Instantiates the seed generator and Minimum builder for the
38 Fumili minimization method. Produces the Minimum via the
39 Minimize 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 
49 public:
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 
73  const MinimumSeedGenerator &SeedGenerator() const { 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 { 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 
154 private:
157 };
158 
159 } // namespace Minuit2
160 
161 } // namespace ROOT
162 
163 #endif // ROOT_Minuit2_FumiliMinimizer
ROOT::Minuit2::FumiliMinimizer::Builder
const FumiliBuilder & Builder() const
Accessor to the Minimum builder of the minimizer.
Definition: FumiliMinimizer.h:83
ROOT::Minuit2::FumiliMinimizer::Minimize
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
Definition: FumiliMinimizer.h:102
ROOT::Minuit2::FumiliMinimizer::Minimize
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
Definition: FumiliMinimizer.h:96
ROOT::Minuit2::MnFcn
Wrapper class to FCNBase interface used internally by Minuit.
Definition: MnFcn.h:30
MnSeedGenerator.h
ROOT::Minuit2::FumiliMinimizer::Minimize
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
Definition: FumiliMinimizer.h:116
ROOT::Minuit2::FumiliMinimizer::fMinSeedGen
MnSeedGenerator fMinSeedGen
Definition: FumiliMinimizer.h:155
ROOT::Minuit2::FCNBase
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
Definition: FCNBase.h:45
ModularFunctionMinimizer.h
ROOT::Minuit2::FumiliMinimizer::Minimize
FunctionMinimum Minimize(const FCNBase &, const MnUserParameterState &, const MnStrategy &, unsigned int maxfcn=0, double toler=0.1) const
Definition: FumiliMinimizer.cxx:34
ROOT::Minuit2::FumiliMinimizer::fMinBuilder
FumiliBuilder fMinBuilder
Definition: FumiliMinimizer.h:156
ROOT::Minuit2::FumiliMinimizer::Minimize
virtual FunctionMinimum Minimize(const FCNGradientBase &fcn, const MnUserParameters &par, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const
Definition: FumiliMinimizer.h:129
ROOT::Minuit2::MnUserCovariance
Class containing the covariance matrix data represented as a vector of size n*(n+1)/2 Used to hide in...
Definition: MnUserCovariance.h:26
ROOT::Minuit2::FumiliMinimizer::Minimize
virtual FunctionMinimum Minimize(const FCNBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const
Definition: FumiliMinimizer.h:135
ROOT::Minuit2::FumiliMinimizer::Builder
FumiliBuilder & Builder()
Definition: FumiliMinimizer.h:84
ROOT::Minuit2::MnSeedGenerator
concrete implementation of the MinimumSeedGenerator interface; used within ModularFunctionMinimizer;
Definition: MnSeedGenerator.h:23
ROOT::Minuit2::FumiliMinimizer::FumiliMinimizer
FumiliMinimizer()
Constructor initializing the FumiliMinimizer by instantiatiating the SeedGenerator and MinimumBuilder...
Definition: FumiliMinimizer.h:61
ROOT::Minuit2::MnUserParameters
API class for the user interaction with the parameters; serves as input to the minimizer as well as o...
Definition: MnUserParameters.h:36
FumiliBuilder.h
ROOT::Minuit2::FumiliBuilder
Builds the FunctionMinimum using the Fumili method.
Definition: FumiliBuilder.h:40
ROOT::Minuit2::FumiliMinimizer::Minimize
virtual FunctionMinimum Minimize(const MnFcn &mfcn, const GradientCalculator &gc, const MinimumSeed &seed, const MnStrategy &stra, unsigned int maxfcn, double toler) const
Definition: FumiliMinimizer.h:148
ROOT::Minuit2::ModularFunctionMinimizer
Base common class providing the API for all the minimizer Various Minimize methods are provided varyi...
Definition: ModularFunctionMinimizer.h:40
ROOT::Minuit2::FumiliMinimizer::Minimize
virtual FunctionMinimum Minimize(const FCNGradientBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const
Definition: FumiliMinimizer.h:141
ROOT::Minuit2::FumiliMinimizer::Minimize
virtual FunctionMinimum Minimize(const FCNBase &fcn, const MnUserParameters &par, const MnStrategy &stra, unsigned int maxfcn=0, double toler=0.1) const
Definition: FumiliMinimizer.h:123
ROOT::Minuit2::FunctionMinimum
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
Definition: FunctionMinimum.h:36
ROOT::Minuit2::FCNGradientBase
Extension of the FCNBase for providing the analytical Gradient of the function.
Definition: FCNGradientBase.h:34
ROOT::Minuit2::FumiliMinimizer::~FumiliMinimizer
~FumiliMinimizer()
Definition: FumiliMinimizer.h:63
ROOT::Minuit2::MnUserParameterState
class which holds the external user and/or internal Minuit representation of the parameters and error...
Definition: MnUserParameterState.h:33
ROOT::Minuit2::MnStrategy
API class for defining three levels of strategies: low (0), medium (1), high (>=2); acts on: Migrad (...
Definition: MnStrategy.h:27
ROOT::Minuit2::FumiliMinimizer::SeedGenerator
const MinimumSeedGenerator & SeedGenerator() const
Accessor to the seed generator of the minimizer.
Definition: FumiliMinimizer.h:73
ROOT::Minuit2::MinimumSeedGenerator
base class for seed generators (starting values); the seed generator prepares initial starting values...
Definition: MinimumSeedGenerator.h:29
ROOT::Minuit2::FumiliMinimizer::Minimize
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
Definition: FumiliMinimizer.h:109
ROOT::Minuit2::GradientCalculator
interface class for gradient calculators
Definition: GradientCalculator.h:23
ROOT
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
Definition: EExecutionPolicy.hxx:4
ROOT::Minuit2::FumiliMinimizer
Instantiates the seed generator and Minimum builder for the Fumili minimization method.
Definition: FumiliMinimizer.h:47
ROOT::Minuit2::MinimumSeed
Definition: MinimumSeed.h:23
ROOT::Minuit2::ModularFunctionMinimizer::Minimize
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
Definition: ModularFunctionMinimizer.cxx:36