Which minimization interface to use

@moneta I’ve been asked to advise on which minimization interface to use. I guess the function to minimize will be a standard hand-written “chi2”.

Which of them is more “future-oriented” / better supported:

Did I miss something on this list?

I think they will want to get “contours”, too. I know “Minuit” and “Minuit2” can automatically create them. Are there any other minimizers (e.g., “Fumili”, “GSLMultiMin”, “GSLMultiFit”, “GSLSimAn”, “Genetic”, “RMinimizer”) which could easily be used, too?


If you are performing a fit it is more convenient to use the ROOT::Fit::Fitter class, since it will have the interface to fit starting from data and model function, building internally the likelihood or the chi2 function and in addition produce a Fit result object that you can store and have a better integration with the TH1 and TF1 classes.
If you are just interested in minimising a function with a given Minimiser the ROOT::Math::Minimiser interface can be used. Some functionality like “contours” or “minos” is not available for all minimiser, but only for Minuit and Minuit2. So in these case it is more convenient using the Fitter class.
Moreover, if using “Fumili” or “GSLMultiFit” a special interface to the function is required. In this case it is more convenient to use the “Fitter” class.
The TVirtualFitter interface is deprecated and it is not recommended to use it.


This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.