Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
VariableMetricMinimizer.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_VariableMetricMinimizer
11 #define ROOT_Minuit2_VariableMetricMinimizer
12 
13 #include "Minuit2/MnConfig.h"
17 
18 namespace ROOT {
19 
20  namespace Minuit2 {
21 
22  class BFGSMinimizerType {};
23 
24 //______________________________________________________________________________
25 /**
26  Instantiates the SeedGenerator and MinimumBuilder for
27  Variable Metric Minimization method.
28  API is provided in the upper ROOT::Minuit2::ModularFunctionMinimizer class
29 
30  */
31 
32 
33 
34 class VariableMetricMinimizer : public ModularFunctionMinimizer {
35 
36 
37 
38 public:
39 
40  class BFGSType {};
41 
42  VariableMetricMinimizer() : fMinSeedGen(MnSeedGenerator()),
43  fMinBuilder(VariableMetricBuilder()) {}
44 
45  VariableMetricMinimizer(BFGSType) :
46  fMinSeedGen(MnSeedGenerator()),
47  fMinBuilder(VariableMetricBuilder(VariableMetricBuilder::kBFGS)) {}
48 
49  ~VariableMetricMinimizer() {}
50 
51  const MinimumSeedGenerator& SeedGenerator() const {return fMinSeedGen;}
52  const MinimumBuilder& Builder() const {return fMinBuilder;}
53  MinimumBuilder& Builder() {return fMinBuilder;}
54 
55 private:
56 
57  MnSeedGenerator fMinSeedGen;
58  VariableMetricBuilder fMinBuilder;
59 };
60 
61  } // namespace Minuit2
62 
63 } // namespace ROOT
64 
65 #endif // ROOT_Minuit2_VariableMetricMinimizer