00001 // @(#)root/minuit2:$Id: MnFumiliMinimize.cxx 20880 2007-11-19 11:23:41Z rdm $ 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 #include "Minuit2/MnFumiliMinimize.h" 00011 #include "Minuit2/FunctionMinimum.h" 00012 #include "Minuit2/FumiliMinimizer.h" 00013 00014 namespace ROOT { 00015 00016 namespace Minuit2 { 00017 00018 00019 00020 00021 00022 FunctionMinimum MnFumiliMinimize::operator()(unsigned int maxfcn, double toler) { 00023 // minimize using Fumili 00024 // need to reimplement otherwise base class method is done 00025 00026 assert(fState.IsValid()); 00027 unsigned int npar = VariableParameters(); 00028 // assert(npar > 0); 00029 if(maxfcn == 0) maxfcn = 200 + 100*npar + 5*npar*npar; 00030 FunctionMinimum min = Minimizer().Minimize( Fcnbase(), fState, fStrategy, maxfcn, toler); 00031 fNumCall += min.NFcn(); 00032 fState = min.UserState(); 00033 return min; 00034 } 00035 00036 } // namespace Minuit2 00037 00038 } // namespace ROOT