why arglist[0] = 0 and the final 2 after SET PRINT??
most importantly, // minimize arglist[0] = 5000; // number of function calls arglist[1] = 0.01; // tolerance minuit->ExecuteCommand("MIGRAD",arglist,2);
this is surely related in the error assignment to each parameter. I am not sure how to change the tolerance and how it would impact the error itself. I can only see it changes WILDLY. I have read the original MINUIT papers for FORTRAN, and it says that ERROR DEF should be 1.0 for a normal ChiSquare…
You are using the old TFitter class that is not recommended anymore.
It is based on the original Fortran API, so if you want to use it you should look at the
Minuit Fortran manual and you understand the meaning of the arlglist parameters passed in
ExecuteCommand
I would suggest you to use directly the ROOT::Fit::Fitter class, which has a C++ API, as in the example
I was actually specifically asking for this one, because I had previously read the original FORTRAN MINUIT manual, but it is a bit unclear how arglist is/would be related to the ERRORDEF.
Sorry I was not clear. The argilst is an array used to pass the input parameters for the MINUIT Fortran commands. The available commands are available in the Users Guide
see https://root.cern.ch/download/minuit.pdf page 19
For example:
the command MIGRAD takes two parameters (maxcalls and tolerance ), so you need to have an argilst of size 2 with argils[0] = maxcalls and arglist[0] = tolerance
arglist[0] = 5000; // number of function calls
arglist[1] = 0.01; // tolerance
minuit->ExecuteCommand("MIGRAD",arglist,2);
the error definition (1 for chi-2 minimisations, 0.5 for negative log-likelihood) is set by using the command SET ERR . The command takes one parameter, the error level (e.g. 1 or 0.5)