00001 // @(#)root/minuit2:$Id: SimplexMinimizer.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_SimplexMinimizer 00011 #define ROOT_Minuit2_SimplexMinimizer 00012 00013 #include "Minuit2/MnConfig.h" 00014 #include "Minuit2/ModularFunctionMinimizer.h" 00015 #include "Minuit2/SimplexBuilder.h" 00016 #include "Minuit2/SimplexSeedGenerator.h" 00017 00018 #include <vector> 00019 00020 namespace ROOT { 00021 00022 namespace Minuit2 { 00023 00024 //_____________________________________________________________ 00025 /** 00026 Class implementing the required methods for a minimization using Simplex. 00027 API is provided in the upper ROOT::Minuit2::ModularFunctionMinimizer class 00028 */ 00029 00030 class SimplexMinimizer : public ModularFunctionMinimizer { 00031 00032 public: 00033 00034 SimplexMinimizer() : fSeedGenerator(SimplexSeedGenerator()), 00035 fBuilder(SimplexBuilder()) {} 00036 00037 ~SimplexMinimizer() {} 00038 00039 const MinimumSeedGenerator& SeedGenerator() const {return fSeedGenerator;} 00040 const MinimumBuilder& Builder() const {return fBuilder;} 00041 00042 private: 00043 00044 SimplexSeedGenerator fSeedGenerator; 00045 SimplexBuilder fBuilder; 00046 }; 00047 00048 } // namespace Minuit2 00049 00050 } // namespace ROOT 00051 00052 #endif // ROOT_Minuit2_SimplexMinimizer