00001 // @(#)root/minuit2:$Id: CombinedMinimizer.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_CombinedMinimizer 00011 #define ROOT_Minuit2_CombinedMinimizer 00012 00013 #include "Minuit2/ModularFunctionMinimizer.h" 00014 #include "Minuit2/MnSeedGenerator.h" 00015 #include "Minuit2/CombinedMinimumBuilder.h" 00016 00017 namespace ROOT { 00018 00019 namespace Minuit2 { 00020 00021 //__________________________________________________________________________ 00022 /** 00023 Combined minimizer: combination of Migrad and Simplex. I 00024 If the Migrad method fails at first attempt, a simplex 00025 minimization is performed and then migrad is tried again. 00026 00027 00028 */ 00029 00030 class CombinedMinimizer : public ModularFunctionMinimizer { 00031 00032 public: 00033 00034 CombinedMinimizer() : fMinSeedGen(MnSeedGenerator()), 00035 fMinBuilder(CombinedMinimumBuilder()) {} 00036 00037 ~CombinedMinimizer() {} 00038 00039 const MinimumSeedGenerator& SeedGenerator() const {return fMinSeedGen;} 00040 const MinimumBuilder& Builder() const {return fMinBuilder;} 00041 00042 private: 00043 00044 MnSeedGenerator fMinSeedGen; 00045 CombinedMinimumBuilder fMinBuilder; 00046 }; 00047 00048 } // namespace Minuit2 00049 00050 } // namespace ROOT 00051 00052 #endif // ROOT_Minuit2_CombinedMinimizer