00001 // @(#)root/minuit2:$Id: VariableMetricMinimizer.h 21530 2007-12-20 11:14:35Z moneta $ 00002 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005 00003 00004 /********************************************************************** 00005 * * 00006 * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT * 00007 * * 00008 **********************************************************************/ 00009 00010 #ifndef ROOT_Minuit2_VariableMetricMinimizer 00011 #define ROOT_Minuit2_VariableMetricMinimizer 00012 00013 #include "Minuit2/MnConfig.h" 00014 #include "Minuit2/ModularFunctionMinimizer.h" 00015 #include "Minuit2/MnSeedGenerator.h" 00016 #include "Minuit2/VariableMetricBuilder.h" 00017 00018 namespace ROOT { 00019 00020 namespace Minuit2 { 00021 00022 //______________________________________________________________________________ 00023 /** 00024 Instantiates the SeedGenerator and MinimumBuilder for 00025 Variable Metric Minimization method. 00026 API is provided in the upper ROOT::Minuit2::ModularFunctionMinimizer class 00027 00028 */ 00029 00030 class VariableMetricMinimizer : public ModularFunctionMinimizer { 00031 00032 public: 00033 00034 VariableMetricMinimizer() : fMinSeedGen(MnSeedGenerator()), 00035 fMinBuilder(VariableMetricBuilder()) {} 00036 00037 ~VariableMetricMinimizer() {} 00038 00039 const MinimumSeedGenerator& SeedGenerator() const {return fMinSeedGen;} 00040 const MinimumBuilder& Builder() const {return fMinBuilder;} 00041 00042 private: 00043 00044 MnSeedGenerator fMinSeedGen; 00045 VariableMetricBuilder fMinBuilder; 00046 }; 00047 00048 } // namespace Minuit2 00049 00050 } // namespace ROOT 00051 00052 #endif // ROOT_Minuit2_VariableMetricMinimizer