I am trying to find information on how to use the minuit2 implementation in ROOT. I found an example online and got the minimiser working for a simple example. However, when I try to use it in my analysis code I get the error:

“Info in : Minuit2Minimizer::Minimize : Minimization did NOT converge, Edm is above max”

I am guessing Edm is some how the threshold to determine convergence. However, I can’t find out how to change it. In fact, I can’t find any useful description of the different functions of associated with Minuit2 (i.e SetTolerance, what is that and what does it do?! other then set the tolerance. What is the tolerance used for?).
Any help would be greatly appreciated.

Nicholi Shiell.


Thanks very much. I have read through many of those already. Are the ones which related to Minuit (as opposed to Minuit2) applicable when using Minuit2?

hmm, even reading through those links I still can’t find out how to change the edm level.


The Migrad algorithm of Minuit and Minuit2 (the algorithm is the same, the code is different) converges when the EDM (expected distance to the minimum) is less a given tolerance. The tolerance is by default
10^-3 * VAL, where VAL is the value defined in ROOT::Math::MinimizerOptions::Tolerance(). The default value of VAL is 10^-2 and you can change it by doing:


Best Regards


Thanks very much Lorenzo!
Do you know if there is a document which explains all the features of the minuit2 implementation in root? Fpr instance the different “strategies” which can be used?