Re: mnscan() in Minuit

Rene Brun (Rene.Brun@cern.ch)
Fri, 04 Jun 1999 08:08:15 +0000


Scott Sampson wrote:
>
> The documentation for TMinuit::mnscan() says
>
> //*-*-*-*-*Scans the values of FCN as a function of one parameter*-*-*
> //*-* ======================================================
> //*-* and plots the resulting values as a curve using MNPLOT.
> //*-* It may be called to scan one parameter or all parameters.
> //*-* retains the best function and parameter values found.
> //*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
>
> when I run mnscan() it only scans the first parameter. How can I make it
> scan the second as well? (I'm doing a 2-parameter fit)
>

Hi Scott,
The documentation is OK, but this is an internal routine (should be
protected).
If you type
gMinuit->Help();
you will get the list of all possible Minuit commmands to be executed
via TMinuit::mncomd.
For example gMinuit->Help("scan"); produces the following help:
***>SCAn [parno] [numpts] [from] [to]
Scans the value of the user function by varying parameter
number [parno], leaving all other parameters fixed at the
current value. If [parno] is not specified, all variable
parameters are scanned in sequence.
The number of points [numpts] in the scan is 40 by default,
and cannot exceed 100. The range of the scan is by default
2 standard deviations on each side of the current best value,
but can be specified as from [from] to [to].
After each scan, if a new minimum is found, the best parameter
values are retained as start values for future scans or
minimizations. The curve resulting from each scan is plotted
on the output unit in order to show the approximate behaviour
of the function.
This command is not intended for minimization, but is sometimes
useful for debugging the user function or finding a
reasonable starting point.

Example of use
==============
Root > hpx->Fit("gaus");
Root > int istat;
Root > gMinuit->mncomd("scan 2",istat);

When I converted the Fortran version of Minuit to C++, I kept the
original Fortran calls. This interface should be revisited. In
particular
the return parameter (istat above) is not very convenient interactively.
This should be changed to a return value from the function instead.

Rene Brun