You are on page 1of 25

Computer Physics Communications 10 (1975) 343—367

© North-Holland Publishing Company



Data Handling Division, European Organization for Nuclear Research,
CH-1211 Geneva 23, Switzerland

Department of Nuclear Physics, University of Helsinki,
Sf-001 70 Helsinki, Finland

Received 15 August 1975


Title of program: MINUIT gating the shape of the function near the minimum to deter-
mine the errors. In this essentially statistical problem the
Catalogue number: ACWH
function involved is usually a chisquare or negative log-likeli-
Program obtainable from: CPC Program Library, Queen’s hood function, however many other physical problems of a
University of Belfast, N. Ireland (see application form in this non-statistical nature, such as finding the minimum energy
issue) configuration of a molecule, can be treated using the same
Computer: CDC 7600; Installation: CERN, Geneva, Switzer- techniques.
Method of solution
Operating system: SCOPE 2.1.2 or 2.0 We have chosen to offer the user a large number of different
Programming language used: ANSI FORTRAN techniques which can be conveniently 4pváed by the use of
High-speed storage required: 12000 words command cards. For example, ttsee different minim~ization
algorithms are available (a Monte Carlo search [1 1~the sim-
Number of bits in a word: 60 plex method of Nelder and Mead [21 , and the variable metric
Overlay structure: None method of Fletcher [3J) and they may be “guided” by fixing
and restoring variable parameters in between minimization
Number of magnetic tapes required: None commands, and by putting limits on the values allowed for
Other peripherals used: Card reader, line printer, card punch different parameters. Similarly, error analysis may be carried
Number of cards in combined program and test deck: 2600 out using the covariance matrix of the function, or by calcu-
lating exact MINOS confidence intervals, or by plotting func-
Card punching code: ANSI tion contours. If the function is suspected of having more
Keywords: General purpose, minimization, fitting, error anal- than one local minimum, a global minimization can be at-
ysis, correlation, simplex method, variable metric method, tempted using a simplified version of the algorithm of Gold-
global minimum, contours, stein and Price [41.

Nature of physical problem Restriction of the complexity of the problem

The final stages of the analysis of experimental data often The current version is dimensioned for a maximum of 30
consists of determining (estimating) a certain number of function parameters, of which not more than 15 may be van-
physical parameters and establishing the errors (confidence able.
regions) of these parameters. This in turn generally involves
one or more stages of function minimization to determine Typical running time
the best parameter values and various techniques for investi- In most cases nearly all th~actual running time is spent in the
344 F. James, M. Roos/MINUIT

user-supplied subroutine FCN which is the function being connecting the different algorithms, for example switching
analyzed by MINUIT. Typical applications usually require a from one minimization method to another if the first does
few hundred or a few thousand function evaluations, which not converge rapidly enough.
could in turn require much less than a second or many min-
utes on the CDC 7600 depending on the complexity of FCN. References
[1] F. James, Monte Carlo for Particle Physicists (Section 6.1)
Unusual features of the problem in: Methods in Subnuclear Physics, Ed. M. Nikolic (Gor-
MINUIT is not merely a minimization program, but is more don and Breach Publ.) Vol. IV, Part 3.
properly a system for analysis of functions in the sense that [2] J.A. Nelder and R. Mead, Comput. J. 7 (1965) 308.
its essential element is its structure rather than any of the [3) R. Fletcher, Comput. J. 13 (1970) 317.
algorithms that are actually implemented. This structure al- [4] A.A. Goldstein and J.F. Price, Math. Comp. 25 (1971)
so allows in a very natural way the inclusion of global logic 569.


I. Introduction of any one local minimum, or whether knowledge of

the global minimum is required.
A large class of problems in many different fields Such general considerations on function minimiza-
of research can be reduced to the problem of finding tion and descriptions of the most important algorithms
the smallest value taken on by a function of one or may be found in ref. [lJ.
more variable parameters. The classic example is the MINUIT is a system of programs to solve the prob-
estimation of unknown parameters in a scientific the- lems outlined above. As MINUIT is in principle designed
ory by minimizing the difference (chi-square) be- to handle any function F(X), it is quite general, and it
tween theory and experimental data, theory being may suit the needs of quite different users. A user,
represented by a function F(X), where X are the un- however, who spends much time minimizing a re-
known parameters of the theory. stricted class of functions, may well be able to write
The function F(X) need not be known analytical- faster minimizing routines by making use of known
ly, but it is specified by giving its value at any point properties of his functions. For such a user MINUIT
X in the space of the parameters. The space may be may stifi offer a suitable organizational framework
limited by physical restrictions on the allowed values in which to embed his own routines as subroutines.
of the parameters (constrained minimization). Some-
times additional information about the function may 1.1. Minimization to a local minimum
be available, such as the numerical values of the deriv-
atives ~F/~X at any point X, or analytic expressions To the standard user MINUIT offers the possibii-
to evaluate them. Minimization always proceeds by ty within one program of catering to different kinds
evaluating F(X) repeatedly at different points X deter- of functions since it incorporates three different mm-
mined by the minimization algorithm(s) used, until imization methods, each of which may be used alone
some minimumvalue is attained, or in combination with the others depending on the
At that point the user often wants to have an idea behaviour of the function and the requirements of the
about how sensitive the solution is to variations in the user. The three minimizing subroutines, SEEK,
parameters: how steeply does F(X) increase away SIMPLX and MIGRAD, may be briefly characterized
from Xmin in X-space? Physicists call this informa- as follows (for details of theory see section 2):
tion the “errors of the parameters X”, and we shall i) SEEK a Monte Carlo searching subroutine. It

term in error analysis. may be used at the beginning of a fit when no

Whenever the function may have more than one reasonable starting point is known, or when it is
local minimum, new problems arise in addition to the suspected that there are several minima. It must
problem of local minimization. The user must then not, however, be expected to converge in the usual
decide whether it is sufficient to know the location sense-
F. James, M. Roos/MINUIT 345

ii) SIMPLX a minimizing subroutine using a sim-

— i) The covariance matrix (or error matrix) is a by-
plex method by Nelder and Mead [2] It is very
. product of the MIGRAD minimizer. It may how-
“safe” and reasonably fast when far from mini- ever be calculated separately (and independently
mum, and may also be used to converge to the using second derivatives) by subroutine HESSE.
exact minimum. It does not compute the covar- Based on this matrix, the program prints both the
iance matrix, but gives order-of-magnitude esti- individual correlation coefficients and the global
mates of its diagonal elements (the parameter er- correlation coefficient [4] for each variable pa-
rors). rameter.
iii) MIGRAD a minimization subroutine based on
— ii) Exact confidence intervals [4] for any parameter(s)
a variable metric method by Fletcher [3] It is
- may be calculated by MINOS. These may differ
extremely fast near a minimum or in any “nearly- from the “parabolic” errors derived from the co-
quadratic” region but slower if the function is variance matrix if the model being fitted is high-
badly behaved. It uses the first derivatives of the ly non-linear.
function, which may either be supplied by the iii) Function contours may be plotted in the space
user or estimated by MINUIT. of any two variables at a time. This gives the most
Some “global” logic is built into the program. For detailed description of the shape of the function,
example, if MIGRAD fails, it automatically causes but only when the number of variables is very few.
SIMPLX to be called to make another attempt. In
addition, the minimization can be guided or separated 1.3. Globalminimum search
into steps by the use of FIX, RELEASE, and RE-
STORE commands which cause a variable to be The user in quest of the global minimum may not
fixed at a constant value or restored to variable be satisfied with the local minimum found, and he
status in between minimization steps. The program may even be interested in finding all local minima.
can also be instructed to force the value of any van- The problem of global minimization is very complex,
able parameter(s) to stay within given limits during and we do not know of any really satisfactory algo-
the minimization(s). rithm to solve it. In view of the importance of the
problem MINUIT offers the following options:
1.2. Error analysis i) The IMPROVE command invokes a very elegant
algorithm of Goldstein and Price [5] which, start-
MINUIT is usually used to minimize a “chisquare” ing from a known local minimum with known co-
function or a negative log likelihood function. The variance matrix, “removes” this minimum by di.
error analyses assume that the function has such a viding out the quadratic part and looks for a mm-
statistical meaning, so that the inverse of the second imum of the transformed function.
derivative matrix can be associated (within a constant ii) Mapping the function by the command CONTOUR
factor) with what the scientist calls the “error ma- may reveal the existence of further minima, ap-
trix” of the parameters. More generally, it is assumed pearing as bulges on the contours.
that the point where the function takes on its lowest iii) MINOS can be forced to take arbitrarily large
value FMIN determines the most likely or best-fit steps away from a local minimum, and since it
parameter values, and that the region over which the then minimizes in the subspace of the NPAR.l
function takes on values smaller than (FMIN + UP) remaining variables, it has the capacity of finding
corresponds to a confidence interval or confidence new minima (if UP happens to be chosen right).
region for which the confidence level is determined When this happens MINOS gives a signal and the
by the value of the positive constant UP. For exam- program automatically proceeds to evaluate the
pie, in the simplest case where the function is a “chi- properties of the new minimum.
square” function of one variable parameter, a value
of UP 1.0 determines “one-standard-deviation” er- 1.4. Internal and external parameters
rors corresponding to a confidence level of 68%.
MINUIT performs the following error analyses: In order to eliminate the problem of physical
346 F. James, M. Roos/MINUIT

boundaries on parameters, as well as to simplify the 2.2. General organization

organization of the program, two lists of parameters
have been created, called internal and external. The Control of MINUIT resides in the two subroutines
external parameter list contains all parameters, fixed MINNEW and COMAND. MINNEW takes care of
and variable, arranged according to the way they are all the automatic initialization procedures, whereup-
referenced by the user in FCN. Those parameters on it calls COMAND, according to the flow scheme
which are variable have corresponding entries in the in fig. I. COMAND takes orders from the user in the
internal parameters list, to which they are connected form of command cards and executes them.
by transformations so that as the internal parameters Below we list the subroutines in alphabetical or-
approach ±rnr/2 the external values approach their der, spcifying briefly their function. In section 3 we
physical limits if bounded. The minimizing subrou- give more details under the description of command
tines SIMPLX and MIGRAD see only the internal val- cards.
ues, which behave smoothly, even near the physical
limits. The function FCN sees only the external val- 2.3. Functions and subroutines
ues, which remain always within the physical limits.
Subroutine BINSIZ (Al, A2, NAA, BL, BH, NB, SWID)
Subroutine to determine reasonable intervals given
2. MINUIT organization absolute upper and lower bounds Al and A2 and de-
sired maximum number of bins NAA.
2.1. Ristory
Function CALFCN (FVEC)
MINUIT has been under continuous development Called only from IMPROV. Transforms the function
at CERN since 1967. During this time the program FCN by dividing out the quadratic part in order to
has had enormous exposure to users at CERN and find further minima. Calculates (F-FMIN)/(X-XMIN)
elsewhere. Although MINUIT is a framework capable *V*(X-XMIN).
in principle of offering any number of different algo-
rithms, practical considerations require us to limit Subroutine COMAND
the number of possibilities. Over the years we have Reads the command cards and takes appropriate ac-
incorporated several different methods into standard tion, either directly by skipping to the correspond-
MINUIT versions, and have withdrawn those which ing code in COMMAND, or by setting up a call to a
compare less favourably in the light of experience, subroutine. For command cards, see section 3.2.
Thus we have replaced the Rosenbrock (TAUROS)
method [6] by Nelder and Mead’s simplex technique Subroutine CONTOU
[2] and we have replaced Davidon’s rank-one van. Finds points lying on contours of a given FCN value,
able-metric method (old MIGRAD) [7] by Fletcher’s as a function of two variable parameters specified by
“switching” variation [3] of the more stable Davidon— the CONTOUR command. The contours are then
Fletcher—Powell [8] variable-metric method (new plotted by PLTCON.
MIGRAD). This does not mean that functions cannot
be found for which our “rejected” methods will per- Subroutine DERIVE (GG, GG2)
form better than the “accepted” ones, but merely If first derivatives of the function are required (i.e. if
reflects our experience and theoretical understanding. MIGRAD is used or called by MINOS) they are cal-
The present version of MINUIT is dimensioned culated by subroutine DERIVE, If they are not sup-
for a maximum number of free parameters NPAR = plied by the user, a finite-difference approximation
15. Redimensioning for larger problems is straight- is used, and we have chosen the symmetric formula:
forward, and indeed another standard version (known ai~’ 1~tK0+d) F(X0 d)
— —

as MINUITL) exists for 55 free parameters and re- —

quires about twice as much storage.

which requires 2n function calls for n parameters, but
F. James, M. Roos/MINUIT 347


cards _________ —- INTOEX

calls ~
subroutine __________ FIXPAR



and other commands similarly



Fig. 1. Simplified flow scheme of MINULT.

for which the error is, to lowest order, independent Subroutine FIXPAR(I2, KODE, ILAX)
of the step-size d. An asymmetric formula requiring Removes parameter 12 from the internal (variable)
only n+1 points would result in an error proportional parameter list, and arranges the rest of the list to fill
to d. The symmetric formula thus allows us to avoid the hole. If KODE = 0, 12 is an external number,
the difficult problem of choosing d optimally, and otherwise internal. ILAX is returned as the external
makes MIGRAD behave well near the minimum number of the parameter.
where the first derivativesapproach zero. It also of-
fers an estimate of the error on the derivatives as a Function FTIME (BIDON)
by-product. Gives the elapsedjob time in floating-point minutes
If the user calculates first derivativesinside FCN, by calling some installation-dependent subroutine.
then DERIVE simply transforms these derivatives
(if necessary) from external to internal coordinates. Subroutine HESSE
Calculates the full second-derivative matrix of FCN
Subroutine EXTOIN (PINT) by taking finite differences. Includes some safeguards
Transforms the external parameter values X to inter- against non-positive-definite matrices, and may set
nal values in the dense array PINT. Function PINTF off-diagonal elements to zero in attempt to force p0-
is used. sitivity.

Subroutine FCN(NPAR, G, F, X, IFLAG) Subroutine IMFROV

User subroutine, see section 4. Attempts to improve on a good local minimum by
finding a better one. The quadratic part of FCN is
348 F. James, M. Roos/MINUIT

removed by CALFCN and this transformed function until some convergence criteria are satisfied.
is minimized using the SIMPLEX method from sever- The updating formula used in MIGRAD is either
a! random starting points [5]. the original Davidon formula [8] or Fletcher’s dual
formula [3] depending on Fletcher’s “switching”

Subroutine INTOEX (PINT) criterion [3] Recent theoretical studies have shown

Transforms from internal coordinates (PINT) to ex- that there is in fact little practical difference between
ternal parameters (U). The minimizing routines which the two formulas (no difference at all in the limit
work in internal coordinates call this routine before that the linear minimizations are exact), and both
calling FCN. formulas are in the Fletcher “convex class” of stable
formulas guaranteeing monotonic convergence of V
Subroutine MA TOUT(TRA CE,KODE) toward the true covariance matrix. (The Davidon
Prints the covaniance matrix V. Calculates and prints rank-one formula of 1968 [7] used in earlier version
the individual correlation coefficients and global cor- of MINUIT, is not in the “convex class” and indeed
relations, experience has shown it to be highly unstable.)
The linear minimization performed by MIGRAD
Subroutine MIDATA in the direction of the Newton step is a rather rough
Reads the data cards (title card and parameter cards) one, using at most two points in addition to the New-
and sets up the starting parameter lists. Control then ton point. The gradient is of course required only at
passes to COMAND for reading the command cards. the best of these points which becomes the starting
point for the next Newton step.
Subroutine MIGRAD The convergence criteria are based on the “esti-
Performs a local function minimization using a gra- mated distance to minimum” (EDM), which is just
dient supplied by the user (GRADIENT command) EDM = GST ~ GS
or calculated by subroutine DERIVE. * *
The algorithm used is Fletcher’s “switching” varia- This would be exactly twice the vertical distance
tion [3] of the original Davidon—Fletcher—Powell (F-Fmin) if the function were exactly quadratic with
algorithm [8] It belongs to the class of variable met-
. covariance matrix V. Since this estimate is only as
nc methods which are characterized by the following good as the estimate of V, an additional criterion is
general approach: applied, namely that the successive estimates of V be
a) Starting values are given for the parameters X(I), not very different. The measure of difference used is
the first derivatives GS(I) and the covariance ma- (VTEST = the average fractional change in the diago-
tnix V(I, J). Although GS(I) is supposed to be a nal elements). These criteria may be set by the user
very good approximation for the gradient at X(I), (see under the MIGRAD command). Default values
the starting matrix V(I,J) may be only a diagonal currently are
matrix or even the unit matrix. ( —

b) A “Newton’s step” is taken to X = X V*GS

— both: iEDM<EPSI*UP-0.l*UP
which would be the minimum if F were quadratic ~VTEST<0.01
and if V(I,J) were the true covariance matrix. or
Since X’(I) is not generally the position of the alone: EDM < l0~*EPSI*UP = 10~6*UP
minimum it is usual to perform a imear search
along this direction, finding the a which minimizes where UP is the error definition constant (default val-
F(X a*V*GS). Let this new point be called
— ue 1 .0). The convergence criteria used are printed
X’(I), and let the gradient calculated at X’(I) be at the beginning of each MIGRAD minimization.
c) The matrix V(I J) is “corrected” using an updat-
, Subroutine MINNEW
ing formula of the general form V’ = V + f(V, X, This is the main program, disguised as a subroutine
X’, GS, GS’). Then GS is replaced by GS’, X by for reasons of compatibility between systems. It mi-
X’, and V by V’, and steps (a) and (b) are repeated tializes some constants in COMMON (including the
F. James, M. Roos/MINUIT 349



Fig. 2.Calculation of MINOS errors of parameter i. The (symmetric) dotted parabola FP is predicted from the covariance matrix,
but the nonlinearity of the problem results in the solid curve FM which gives the asymmetric errors EPOS and ENEG (see text).

logical I/O unit nos.) which would have to be in MINOS then determines where the function FM(X1)
block data for many compilers. Then verifies that attains the value F0 + UP, where FM(X,) is the mini-
FCN gives the same value when called twice with mum ofF with respect to all parameters except the
the same arguments, and passes control to COMAND. ith parameter X~,and F0 is the overall minimum val-
ue ofF. The MINUS error are then given by these
SubroutineMINOS crossing points as indicated in fig. 2 by EPOS1 and
Finds the true confidence intervals (errors) on the ENEG1.
parameters by examining the exact behaviour of the The details of the procedure are as follows: first,
(likelihood or chisquare) function over the interval on the basis of the known covariance matrix of the
in question. Only the numerical method wifi be de- function, MINUS predicts that the crossing point will
scribed here; the theory that the intervals so defined be at A, and it also predicts the values of the other
do indeed correspond to confidence intervals is given parameters at the minimum FM(A). It then deter-
in reference 4, pages 203—205. We point out here mines FM(A) by using FIXPAR to fix parameter i
that in the limit that the model being fitted is linear, at X1 = A and using MIGRAD to minimize F with
or in the limit of infinite data (asymptotic statistics), respect to the remaining variable parameters (if any!).
the MINOS errors will be symmetric and equal to the If the case is not too pathological, the minimization
errors derived from the covariance matrix (so-called proceeds very quickly since MINUS supplies MIGRAD
“parabolic” errors). with the reduced covariance matrix calculated from
The MINOS errors are defined in terms of the size the full covariance matrix with parameter i fixed. In
(probability content) of the confidence interval as the case shown in fig. 2, the prediction A was not
specified by the user through the ERROR DEF corn- very good, and another point B must be tried. This
mand which sets the value of UP (default value = 1.0). time the starting values for the variable parameters
350 F. James, M. Roos/MINUIT

are chosen by extrapolating from their values at Xmin S~th~’o~tj~wSEEK

through A to B. Point B is chosen by a parabolic ex- The Monte Carlo technique [9] is used here in pref-
trapolation from A corrected to avoid the well-known erence to the earlier methods of searching over a rec-
instability whereby A could predict B and B could tangular grid because of its higher efficiency in many
predict A, etc. The starting value for the covariance variables. The function F(X) is evaluated by calling
matrix for MIGRAD at B is the one resulting from FCN a given number of times (specified by the user).
the minimization at A. The procedure terminates For each call, all of the variable parameter values X1
when one predicted point of FM is within a certain are chosen randomly according to uniform distribu-
tolerance of F0 ÷UP (currently this tolerance is tion at the best previous values with widths equal to
0.1 *UP). When the program has difficulty converging the starting parameter errors a(X1). When finished,
it plots the curve of fig. 2 as determined by all the the program prints out the best function value and
points attempted so that the user can get a feeling corresponding parameter values. Depending on the
for the nonlinearity of his problem. PRINTOUT option chosen, every tenth new mini-
mum, or every minimum may also be printed during
Subroutine MPRINT (IKODE, FVAL) the search.
Prints the values of the parameters at the time of the
call. Also prints other relevant information such as Subroutine SIMPLX
function value, estimated distance to minimum, pa- In the minimization method of Nelder and Mead [2]
rameter errors, step sizes. According to the value of the information about the function F(X1 X~)con-
IKODE, the printout is long format, short format, sists in n + 1 points, forming a simplex. (A simplex is
or MINUS format (0, 1,2). the smallest n-dimensional geometrical figure with
n + 1 corners: a triangle for n = 2, a tetrahedron for
Subroutine MPUNCH n = 3, etc.). By reflecting one point in the hyperplane
Punches current parameter values and step sizes onto of the other points,one continually forms new sim-
cards in format which can be reread by MINUIT for plices. The simplex adapts itself to the local function
restarting. The covariance matrix is also punched if landscape, elongating down long inclined planes,
it exists. changing direction on encountering a valley at an
angle, and contracting in the neighbourhood of a
Function PINTF(PEXIT, I) minimum.
Calculates the internal parameter value PINTF cor- In SIMPLX the initial simplex is formed by coor-
responding to the external value PEXT for param- dinate variation. From the starting point (read in
eter I. from cards), the program proceeds to find a local
minimum along each coordinate axis. These NPAR
Subroutine PLTCON (NSPT, SPT) local minima and the starting point define the initial
Plots points in array SPT onto page with labelled axes simplex. This procedure assures that the simplex has
NSPT is the number of points to be plotted, a reasonable size in each direction. (If no minimum
is found, the search will not go beyond certain limits,
Subroutine RAZZIA (YNEW,PNEW) depending on the starting error read in from cards.)
Called only by SIMPLX (and IMPROV) to add a new Depending on how good F(P*) is, relative to the
point and remove an old one from the current sim- known simplex points, the program either replaces
plex, and get the estimated distance to minimum. ~H by P*, or evaluates F at a new point p** on the
line (~H’~)’ ~ may be beyondP* or between PH
Subroutine RESTOR (K) and F. Depending on how good F(P*) and F(P**)
Restores a fixed parameter to variable status by in- are, relative to the known simplex points, the pro-
serting it into the internal parameter list at the ap-
propriate place. ~H ~ 1~,**

Fig. 3.
F. James, M. Roos/MINUIT 351

are, relative to the known simplex points, the pro- 2.4. Internal storage ofparameters and errors
gram may now
— replace ~H by P”, or The user may find it convenient to have direct ac-
— replace ~H by F” or cess to some of the COMMON blocks used internally
— replace ~H by the point where a parabola through by MINUIT to store lists of parameter values, errors,
~H’ p* anti F”’”’ has a minimum, or etc. We therefore list below the contents of the
— reduce the simplex linearly in every direction by blocks most likely to be of use.
a factor 0.5, keeping only the best point ~L’ or In MINUITS:
— use the best point ~L as a starting and evaluate a COMMON blocks
new starting simplex, as described above. JPAREXT/ U(30),NAM(30),WERR(30), MAXEXT,
The program always has a rough idea of the param- NU
etererrors, of the order of the size of the simplex, /VARIAN/ V(15, 15)
and of the vertical distance to the minimum, EDM, /MINERR/ ERP(30), ERN(30)
of the order of ~(~H) F(PL). Convergence is con-
— contain:
sidered to be attained when EDM F(PH) F(PL)
— U(I) value of external parameter I
<EPSI. NAM(I) = name (AlO format)
In the last step, SIMPLX evaluates F(P), which WERR(I) = parabolic error
should be smaller than F(PL). The minimum value ERP(I) = positive MINUS error if> 0
of the function is then minFlPL), F(P), and the last ERN(I) = negative MINUS error if < 0
EDM printed is V(J,K) = internal covariance matrix element of in-
— ternal parameters J and K
EDM=F(PH)_min[F(PL),F(P)]. MAXEXT= 30
If it then turns out that EDM> 2 EPSI, the minimiza- NU = highest external parameter used.

tion recommences.
MIGRAD of course has the advantage of produc- Warnings:
ing a full covariance matrix, whereas SIMPLX only 1. The contents of these COMMON blocks must not
gives estimates (which may be poor) of the diagonal be changed by the user.
elements. Thus the choice between MIGRAD and 2. The con~tentsare constantly changing during mm-
SIMPLX depends on what information one requires. imizations and may at any time be undefined,
On the other hand, a good estimate of the covariance meaningless, or inconsistent. The safest time to
matrix can usually be obtained after SIMPLX simply use them is when IFLAG = 3.
by the command MATOUT or HESSE.
SIMPLX does not use derivatives. The diagonal
error matrix which results from SIMPLX is not con- 3. Data cards and command cards
sidered sufficient for use in MINOS.
3.1. Data cards
Subroutine STAND
Optional user-supplied subroutine is called whenever The order of data cards is as follows:
the command “STANDARD” appears. See section 4. 1. Title card.
2. Parameter definition cards, one card per parameter.
Subroutine UCOPY (FROM, TO, N) 3. Blank card.
Copies N words from array FROM to array TO. 4. Cards read by FCN, if any.
5. Command cards, controlling the actions taken by
Inverts a symmetric matrix. The matrix is first scaled The above sequence of cards constitutes one data
to have all ones on the diagonal (equivalent to change block, and as many data blocks as desired may be
of units) but no pivoting is done since the matrix is executed, one after the other (using the same func-
positive-definite. tion FCN). A more detailed description of these cards
352 F. James, M. Roos/MINUIT


(D.V. = default value)

1—10 11—20 21—30 31—40 40—


Causes a call to FCN CALL..FCN IFLAG

Read in covariance matrix COVARIANCE NPAR

from cards followed by Covariance matrix elements

Traces contours of con— CONTOUR Param No. Param No. No.of con-
stant FCN value (X—AXI5) (Y—AXIS) tours (D.V.=2)

Signals end of data block END (See text)

Signals end of data block. END.RETURN (see text)

Control returns to main
program ___________ _________________ _______________ _____________ ______________

Sets value of UP, defin— ERROILDEF UP(D.V.1.0)

ing errors

Signals end of run EXIT (see text)

Makes a paraia.constant FIX Extern.Param No.

Indicates derivatives GRADIENT (see text)

calculated by FCN

Estimates and prints RESSE Max.No.cails

covariance matrix (D.V. —1000)

If minimum is found, looks IMPROVE Max.No.calls No.of tries

for another one (D.V..l000) (D.V.NPAR+2)

Prints covariance matrix MATOUT

Does a MIGRAD minimiza— MIGRAD Max.No.calls Tolerance VTEST

tion (D.V.=l000) (D.V.—O.l) (fl.v.=O.1)

Minimize FCN (=SIMPLEX + MINIMIZE Max.No.calls (DV.0.l)

MIGRAD) (D.V.=I000)

Perform MINOS error MINOS Max.No.calls Param. No.

analysis (D.V. —1000) (see text)

Sets ISW(5) controlling PRINTOUT Printout level

printout (D.V.’l)

Causes parameters & error PUNCH

matrix to be punched on
cards ___________ _________________ _______________ _____________ ______________

Restores one or more RELEASE Extern.param.No. External External External etc

previously fixed para— param. No. param No. param No
meters to variable status __________ _______________ ______________ ____________ _____________

RESTORE 0 for all

I for last
__________________________ ___________ parsm. fixed ______________ ____________

Does Monte Carlo mini— SEER No.calls to FCN

mization ___________ _______________

Does a SIMPLX minimization SIMPLEX Max.No.calls Tolerance

_______________________ _________ (D.V.—l000) (D.V.—O.1) __________ ____________

Calls subroutine STAND STANDARD Parameters avai~ab1eto STAND through COMMON block
F. James, M. Roos/MINUIT 353

follows: mand (A4)

1. Title card Any alphanumeric characters, serving
— CWORD3 the last two characters of the command
as the title for the printout. (A2)
2. Parameter cards are in the format: WORD7(I) = the Ith argument in floating point.
Col. 1—10 Parameter number as referenced in The contents of this COMMON block always refer
FCN (~ 30) to the last command card read. (This COMMON block
Col. 11 —20 Alphanumeric name for the parameter is not normally of interest to the user.)
Col. 21—30 Starting value
Col. 31—40 Approximate error or step size (if CALL FCN Command
zero, parameter is constant) This causes a call to FCN, with a given value of IFLAG
Col. 4 1—50 Lower bound indicated as the first argument of the command.
on parameter if both blank, not Example
Col. 5 1—60 Upper bound bounded. CALL FCN 3
on parameter
Remaining columns are not used. All numbers may The above example causes FCN to be called with
be punched either as right-adjusted integers or with IFLAG = 3. This is usually used to indicate to FCN
decimal point. Not more than 15 parameters may that it should print our final curves, tables, etc. If the
be variable, above command does not appear explicitly before
3. One blank card signals end of parameter cards. the end of a block of command cards, an automatic
4. Next come the cards read by FCN, if any. These call to FCN with IFLAG = 3 is made upon encoun-
may be followed by one or more blank cards if tering the END or EXIT command (see description
desired. of END and EXIT).
5. The COMMAND cards are all in the format AlO, MINUIT uses only IFLAG = 1,2,3, and 4 and re-
7F10.0, that is, left-adjusted ten-letter command, serves 5 for possible future use. Any other value of
followed by several numeric arguments which may IFLAG may be used to cause any special action de-
be punched either as right-adjusted integers or as sired by the user in FCN. In order to permit the
floating point, greatest possible flexibility, it is allowed in FCN,
when IFLAG is greater than 5, to change any param-
3.2. Command cards eter values or internal constants (but not NPAR)
which affect the value of the function (such changes
Each of the commands recognized by MINUIT are not normally permitted for obvious reasons). Thus
is described in this section in some detail. Since most a command CALL FCN with IFLAG greater than 5,
commands correspond to MINUIT subroutines, ad- causes MINUIT to “forget” where it was before, to
ditional information on these commands may some- call FCN again with IFLAG = 4 in order to get the
times be found in section 2.2, and indeed the separa- new function value, and to arrange internal param-
tion between commands and subroutines is necessari- eter lists to take account of any possible parameter
ly somewhat arbitrary. changes. (Note that the number of variable param-
Table 1 contains a summary of the recognized eters (NPAR) can only be changed through RELEASE,
commands and their formats. FIX and RESTORE commands.) Example of possible
Each command, as it is read, is stored temporarily, use of CALL FCN command: Suppose it is desired
with its arguments in COMMON/CARD! as follows: to fit a theoretical model to a mass spectrum between
COMMON /CARD/ CWORD, CWORD2, CWORD3, 600 and 800 MeV, then to use the resulting param-
W0RD717”/ eter
500 toas 900
MeV.values for a similar fit over the
‘- A possible command sequence
where is:
CWORD = the first four characters of the command
CWORD2 = the second four characters of the corn-
354 F. James, M~Roos/MINUIT

MIGRAD The matrix elements are read in FORMAT (7 F 10.0),

CALL FCN 3 but normally one need not worry about the format
CALL FCN 9 since one uses only cards which are punched by pre-
MIGRAD vious MINUIT runs, which are of course punched in
CALL FCN 3 the proper format. Since the matrix must be syrn-
EXIT metric, it does not matter whether it is read by
rows or by columns. It is, however, important that
Inside FCN, when IFLAG = 3, fitted curves would be the matrix should correspond to the parameters
printed as usual. When IFLAG = 8, the mass range for which are variable at the time that the matrix is
the fit would be set at 600—800 MeV, and when read in.
IFLAG = 9, the range would be set to 500—900 MeV.
END Command
CONTOUR Command This command is the last command in a data block,
The CONTOUR command has the following format: but it implies that there is at least one more data block
to follow. The end of the last data block should be
CONTOUR i j k signalled by the command EXIT, without a command
where i and / are parameter numbers and k is the de- END. When the END card is encountered, before going
sired number of contours. This command causes the to the next data block, the program asks whether a
program to trace contours of constant value of FCN command CALL FCN 3 3 has yet been made in this
as a function of the two parameters i and / (all others data block. If not, an automatic call to FCN will be
being fixed at their value at that time). It is assumed suppressed if the first argument of the END command
that FCN has already been minimized, and it is re- is 1.

quired that a covariance matrix exist, so that CON-

TOUR will normally be preceded by a MIGRAD corn- END=RETURN Command
mand. Parameters i andj must be variable parameters This command causes control to return to the main
at the time of the command. If k 0, it is taken = 2.
‘~ program, and should be used only when the main pro-
If k> 5, it is taken = 5 gram has been written by the user. This option allows
The first (innermost) contour corresponds to an MINUIT to be used as a subroutine called by the user’s
FCN value F = FMIN + UP, where FMIN is the cur- main program (see fig. 1). Example:
rent value (assumed to be a local minimum) and UP CALL PRIVAT
is the error definition previously specified (see B—230). CALL MINNEW
If more than one contour is requested, then Nth con- CALL MYCALC
tour corresponds to F = FMIN + UP*N**2. The result- CALL MINNEW
ing contours are plotted on one page using the line CALL MYCALC
printer, but the actual coordinates of the points are STOP
printed only if the PRINTOUT level ~ 2. (See PRINT- END
OUT command.)
Each call to MINNEW causes the processing of one
COVARIAJVCE Command full data block which should be terminated by the END
This causes the program to read in a covariance ma- RETURN command. The other calls in this example
trix from cards, to be used in MIGRAD minimization perform private calculations.
or MINUS error analysis. The first argument gives the
number of parameters to which the matrix corresponds, EXIT Command
that is the square root of the number of matrix ele- This is exactly the same as the END Command, ex-
ments to be read. Example: cept that it signals the end of the last data block.
2 1.443 17.212 17.2 12 46.28 This card serves to define what the user means by the
F. James, M. Roos/MINUIT 355

errors on the parameters. The first argument of this The above command causes parameter No. 4 to be
command specifies the quantity UP, which is the fixed. If this parameter is already constant or not defined,
change in the function value produced by changing the command is ignored and a short error message is prin-
a parameter by one “error”. Example: ted.
If, at the time of execution of a FIX command, a co-
ERROR DEF 0.5 variance matrix exists which is not positive definite, the
The above card would be used for example, if the matrix will be destroyed by the FIX command, and this
FCN was the negative of a log likelihood function in condition will be signalled to the rest of the program
one parameter and the user wanted the 68% confi- through ISW(2) = 0.
dence interval. For a chisquared function, the value Not more than 15 parameters may be FIXed at any
of UP would be twice as great. one time.
If no ERROR DEF command appears, UP is taken
to be equal to one. GRADIENT Command
Since UP is used by SIMPLEX, MIGRAD, MINOS, This command, which has one argument, indicates that
CONTOUR, IMPROVE, and PUNCH, the ERROR FCN is prepared to calculate its own derivatives. The
DEF command should precede these commands if UP main program then assumes that when FCN is called
is different from one, with IFLAG = 2, all the first partial derivatives of FCN
The error definition may of course be changed dur- with respect to all variable parameters will be calcula-
ing a run to get MINOS errors or contours correspond- ted by FCN and returned in the vector G which is the
ing to different numbers of standard deviations. For second formal argument of the Subroutine FCN. In ad-
example: dition, of course, the function value must be calcula-
ERROR DEF 0 ted as for all FCN calls. When FCN is called with
MIGRAD IFLAG ~ 2, the gradient need not be calculated. Only
MINUS Subroutine MIGRAD uses the derivatives of FCN, and
ERROR DEF 40 the GRADIENT command therefore has no effect if
MINOS ‘ no MIGRAD or MINUS commands are present.
EXIT If the argument of the GRADIENT command is
zero or blank, the derivative calculation in FCN is com-
pared with a numerical calculation by finite differences,
FIX Command and the results of the comparison are printed. If the viii-
This command causes a parameter to be removed from ues of the derivatives do not agree within the errors on
the variable list and its value to be fixed at the value it the numerical estimation, MINUIT does not accept the
has when the command is executed. The number of derivatives from FCN.
variable parameters (NPAR) is reduced by one, If a In order to suppress the above test (when derivatives
covariance matrix exists at the time of the execution are known to be calculated correctly), use the corn-
of the FIX command, it is properly reduced (in general mand
all elements are modified), but the new matrix is not GRADIENT 1 0
automatically printed (the MATOUT command may
of course be used). Although the parameter fixed may
later be restored to variable status by a RELEASE or HESSE Command
a RESTORE command, it is important to note that The command causes the covariance matrix to be cal-
the information in the covariance matrix concerning culated and printed. If a covariance matrix already ex-
this parameter is irretrievably lost. ists from previous calculations, it is destroyed and re-
The first argument of the FIX command is the (cx. placed by the newly calculated matrix.
ternal) parameter number of the parameter to be fixed. 4~
The calculation requires about NPAR**2 calls to
For example: FCN (it does not use derivatives from FCN) to deter-
FIX 4 mine all the mixed partial second derivatives, and then
inverts the resulting matrix. If a diagonal second deriva-
356 F, James, M. Roos/MINUIT

tive is negative, the calculation is stopped with an er- searching. If this point is far away from the original
ror message, since there is then no meaningful way to minimum, it usually indicates the existence of a second-
force the matrix to be positive-definite. If the square ary minimum in the neighbourhood of the stopping
of an off-diagonal second derivative is bigger than the point.
product of the corresponding diagonal elements, the
off-diagonal element is set to zero and a message is MA TOUT Command
printed. Some other crude checks for positive definite- This command causes the printing of the parameter
ness are made, but there is no absolute guarantee that value and all the individual correlation coefficients
the resulting covariance matrix is positive-definite, normalized off-diagonal elements of the covariance
See also MATOUT command, matrix V~1/SQRT(V~,*V11)and the global correlation
coefficients *IV’\ ~-i
This command Command
causes the program to try to jump out ~k21 — kk ‘~

of a good local minimum in order to find a better In addition, if the printout level is greater than one,
(lower) minimum, It should be used only after con- the full (internal) covariance matrix is printed.
vergence to a local minimum with the covariance ma- When the covariance matrix does not exist, or is
trix already determined (i.e., usually the IMPROVE not meaningful, it is calculated by subroutine HESSE.
command will follow a MIGRAD command). (See HESSE command.)
The method used is due to Goldstein and Price [5].
It consists essentially of transforming the function by MIGRAD Command
dividing it by its quadratic part (i.e. “removing” the This command causes the program to perform a mini-
local minimum) and seeking a minimum of the trans- mization using the MIGRAD technique, which is des-
formed function. cribed under subroutine MIGRAD. The command may
If IMPROVE fails to find a new minimum or finds have three arguments controlling the convergence. They
a local minimum not as good as the original, it tries are:
again starting with a new (random) search direction. Arg 1: NFCNMX Maximum number of calls to

If it does not find an improved minimum, it continues FCN. The minimization will be stopped after
searching until it exceeds either the maximum no. of this number of calls, even if convergence is
FCN calls or the maximum no. of searches as specified not attained, If this argument is blank, zero,
by the user on the command card. Example: or negative, NFCNMX is set equal to 1000.
IMPROVE 1500 8 The number
NFCMX onlyofonce
is checked
This causes IMPROVE to stop after 1500. FCN calls or NFCNMX may be somewhat exceeded.
8.searches. If these arguments are blank, standard val- Arg. 2: EPSI Tolerance on the minimum function

ues of 1000 and NPAR+2 are assumed, value. The program has the ability to predict
The subroutine considers itself successful only if it how far it is (vertically) from the true mini-
finds an improvement on the original minimum where mum, based on the covariance matrix and the
the new minimum is at least 0,1 standard deviations first derivatives of FCN. When this predicted
away from the previous minimum in at least one van- distance p becomes smaller than EPSI for two
able, In this case it prints the message “Improve has consecutive iterations, this convergence en-
found a truly new minimum”. tenon is satisfied. If argument is blank or zero,
The message “Improve has returned to region of EPSI is set equal to 0.1 *UP. (See ERROR DEF
original minimum” means that either (1) no minimum command.)
was found, or (2) a new minimum was not as deep as Arg. 3: VTEST Tolerance on the stability of the

the original one, or (3) a new minimum was very close error matrix. The program calculates the aver-
to the original so is in fact just a better point in the age fractional change in the diagonal elements
same hole. In case (2) and sometimes in case (1), a of the covaniance matrix from one iteration
printout will give the point where the program stopped to the next. When this quantity is smaller than
F. James, M. Roos/MINUIT 357

VTEST for two consecutive iterations, this with a limit of 300 calls for the analysis of each param-
convergence criterion is satisfied. Ifargument eter.
is blank or zero, VTEST is set equal to 0.01. An ERROR DEF Command must appear before the
Convergence is attained when both the EPSI and MINUS command if it is desired that UP= 1.
VTEST criteria are satisfied simultaneously, or when If a new minimum is found during MINUS error analy-
p (defined above) becomes smaller than l0~*EpSI, sis, a new MIGRAD minimization (in the full variable
space) is attempted, with
This command causes the program to attempt to mini- VTEST = 0.5 * VTEST
mize FCN by calling first SIMPLX and then MIGRAD.
The arguments are the same as for SIMPLEX, namely: After this step the MINUS error analysis recommences
First argument: maximum number of FCN calls from the beginning (with the original NFCNMX). If a
(default value 1000). new minimum is found a second time, a final MIGRAD
Second argument: tolerance on FCN value (default minimization is attempted (without changes in
value 0.1). NFCNMX or VTEST).
The limit on the number of FCN calls is applied global-
lyto SIMPLX and MIGRAD together. PRINTOUT Command
This command by itself does not cause any printing,
MINOS Command but it sets the value of ISW(5)whicy is used internally
This command causes a MINUS error analysis to be in other subroutines to indicate the amount of print-
performed on all or certain indicated parameters. For out desired, This value is the first argument. Example:
details on the meaning of MINUS errors, see subroutine I PRINTOUT I 3
MINOS. MINUS in turn calls either MIGRAD or
SIMPLX, depending on how good the initial error esti- ISW(5) can take on values between zero and five inclu-
mate is. (MINUS cannot operate unless at least an ap- sive, and in general the higher the value, the more print-
proximate covariance matrix exists. When not, MINOS out is generated during the minimization,
writes a message. It is then advisable to precede the Before this card appears, the printout level is taken
MINUS command by a MIGRAD command.) as =
The first argument of the MINOS command gives General guidelines on printout levels are:
NFCNMX the limit of the number of FCN calls which
- 0 = absolute minimum, but usually enough
may be made during the MINUS analysis of each param-
1 normai printout
eter. When this limit is exceeded MINOS goes on to the
2 extra prmtout often useful for difficult cases
next parameter even if it has not finished the analysis
>2 = very voluminous, usually used only for debuggmg
for the current parameter. If this first argument is blank
- MINUIT itself.
or zero, it is taken as 1000.
Starting in column 21 of the MINUS command card,
a special format is used, for it is here that are punched PUNCH Command
the parameter numbers of those parameters for which This command causes the current parameter names,
a MINOS analysis is desired. If nothing is punched after values, errors and limits to be punched on cards in the
column 20, MINUS is performed for all parameters. The same format as for input data. These cards can then be
special format is 3012, that is, a one-digit parameter used in future runs for restarting, continuing or modify-
number should be punched in an even-numbered column, ing the minimization procedure.
and a two-digit number should start in an odd-numbered In addition, if a covaniance matrix exists at the time
column. All blanks and zeros are ignored. Example: the PUNCH command is executed, this covariance ma-
IMINOS 300. blb3bb22b4j trx is also punched in suitable format to be used in con-
tinuing or modifying the minimization procedure in fu-
The above card would result in MINUS analysis for ture nuns,
parameters numbered 1, 3, 22 and 4 (in that order),
358 F, James, M. Roos/MINUIT

RELEASE Command this number of calls, even if convengence is

This command causes a fixed parameter to become not attained. If this argument is blank, zero
variable again. It can only operate on parameters which or negative, NFCNMX is set equal to 1000.
were originally variable and which have been fixed by a Ang. 2: EPSI Tolerance on the minimum function

FiX command. On the command card the user only has value. If blank or zero, it is set to 0.1 *UP,
to specify the external numbers of the fixed parameters (See ERROR DEF command.)
to be released. If the parameter requested is not fixed, Convergence is attained when the function values at
the command is ignored and an error message is printed, the NPAR+ 1 simplex points differ by less than EPSI.
If a covariance matrix exists at the time of execution of
a RELEASE command it is destroyed. (See also COM- STANDARD Command
MAND RESTORE.) This command causes MINUIT to call Subroutine
STAND, This subroutine must be supplied by the user,
RESTORE Command and it may be used to perform any desired actions.
This command is similar to RELEASE, except that the A limited amount of information may be transmit-
user does not specify which parameter is to be released, ted to STAND using the arguments of the STANDARD
According to whether the argument of the RESTORE command. These arguments are automatically stored in
command is zero or one, either all fixed parameters, COMMON block /CARD/, which is accessible also to
or the last one fixed, are restored to variable status. STAND.
3,3. UsingMINUIT Some sample command sequences

FIX 3. In this section we give some idea of the possibilities
FIX 7.
available with MINUIT by suggesting some command
FIX 11.
MIGRAD sequences suitable for certain types of problems.

RESTORE 1. (restores parameter 11) Example 1: A simple problem

massuser has a chisquared function whichare
is amasses,
fit to a
RESTORE 0. (restores parameters 7 and 3) histogram. The variable parameters
widths and percentages of resonances, all of which can
SEEK Command roughly be estimated by eye, so that reasonable start-
This command causes a Monte Carlo search of FCN.
ing values are known for the parameters. An estimate
(For details on this procedure, see subroutine SEEK.) of the parameter errors is desired, but it is suspected
The first argument is the number of FCN calls to be that more fits will be done later, so that no time should
made during the search. For each FCN call from SEEK, be wasted calculating exact errors with MINUS. The
all variable parameters are chosen randomly according command cards required are:
to uniform distributions centered at the best param-
eter values with widths equal to the previous step sizes MINIMIZE
(or equal to the approximate errors given on the data PUNCH
cards if no previous minimizations were done). At the EXIT
end of SEEK, the parameters are set equal to the best With the above command, printout level one is assumed
values found, (short printout) and errors are evaluated using UP = 1,0
(function increment defining errors) since no ERROR
using firstisSIMPLEX
present. The
andfunction will be mini-
This command causes the program to perform a mini- then MIGRAD. Since
mization using the technique described under subrou- the call limit is not specified, a limit of 1000 FCN calls
tine SIMPLX. The command may have two arguments will be placed on the minimization, The PUNCH corn-
controlling the convergence. They are: mand will punch the last parameter values found, even
Arg. 1: NFCNMX Maximum number of calls to
— if the minimizing failed to converge, so that it may be
FCN. The minimization will be stopped after restarted at a better point. When the EXIT card is en-
F: James, M. Roos/MINUIT 359

countered, FCN is called with IFLAG = 3 since no PUNCH

CALL FCN 3 command has appeared. EXIT

Example 2: A simple but more difficult problem The second call to FCN with IFLAG = 3 is now
The user has a log likelihood function which is a fit necessary, because the EXIT command no longer calls
over all of phase space. The variable parameters are FCN automatically, since it already has been called
complex reaction amplitudes for which no reasonable once,
starting values can be estimated. As in example 1, only
minimization is desired, but in the present example, Example 3: A continuing investigation
this is expected to be more difficult. Suggested corn- The user’s FCN has already been minimized in a pre-
mands are: vious run, but it gave a surprizingly high value for
ERROR DEF 0 5 parameter 3. It is desired to see if there is another mini-
PRINTOUT 2’ mum with parameter 3 closer to its starting value, and
SEEK 100’ also to investigate the behaviour of parameter 3 by a
SIMPLEX 300’ 1 MINUS error analysis and by tracing FCN contours as
PUNCH - ‘ a function of parameters 3 and 5. A reasonable corn-
MIGRAD mand sequence is:
The first command sets UP = 0.5 smce this corresponds MIGRAD
to one standard deviation for likelihood. Since we wish IMPROVE 200
to follow the progress of the fit, but do not wish too MINOS 500’ 03
much printout, we set the printout level to two, which CONTOUR 3 2
reports every tenth new minimum in SIMPLEX and EXIT ‘ -

MIGRAD and also gives some extra information in

SEEK. Then we ask for 100 Monte Carlo calls to get
a reasonable starting point. Then SIMPLEX is called 4. User subroutines
with weak convergence and a limit of 300 FCN calls,
to get us to the region of the minimum. At this point, The principal subroutine which must be supplied by
we punch the current parameter values just in case the the user is FCN, since it is in FCN that the function to
program is cut for time limit later on. Then MIGRAD be minimized (F) must be calculated.
is called for full normal convergence and error matrix, In addition the user may supply (optional) subrou-
which are punched for further use, and FCN is auto- tine STAND which is meant to take the place of a se-
matically called with IFLAG = 3 by EXIT. quence of COMMAND cards or to perform any opera-
Alternatively one may wish to have the IFLAG = 3 tions which are not performed automatically by COM.
printout already after SIMPLEX in case the program MAND cards. That is, it allows the possibility of direct-
is cut in MIGRAD for time limit. The command card ing MINUIT from a FORTRAN subroutine instead of
sequence then is using COMMAND cards Subroutine STAND is called

ERROR DEF whenever the COMMAND card STANDARD appears.

PRINTOUT 4.1. Subroutine FCN(NPAR, G, F, X, IFLAG)

SIMPLEX 300. 1. .

CALL FCN 3 Subroutine FCN calculates the value of the function

PUNCH to be minimized or studied. The arguments have the
MIGRAD following meaning (the actual names are of course dum-
CALL FCN 3 mies and may be changed):
360 F. James, M~Roos/MINUIT

NPAR* The number of variable parameters (at 4.2. FCN structure

most 15).
For the example below we suppose that F is a function
G A vector into which the derivatives are to
be put.
F The function value calculated in FCN. i) adjustable parameters contained in the vector X
X” A vector containing the external param- ii) constants C
eter values. iii) constant vectors E(I), the use of which imply
IFLAG* A marker whose meaning is described below, loops over I.
In order to make FCN as fast as possible, no con-
The arguments marked with * above are input to FCN stants C or vectors E(I) must be computed more than
and must not be changed by FCN (that is, they must once. In particular one should avoid unnecessary loops
never appear on the left side of an equals sign). The over I.
marker IFLAG instructs FCN on what it should do at Note that the user may (but need not) calculate the
the particular call in question, according to the defini- gradient G of the function F.
tions given in table 2.
DIMENSION G(15), X(15)
Table 2 COMMON/DUMMY (see note below)
GO TO (10,20,30,40,50, 60)IFLAG
Value of
Calculation or operation to be performed by FCN 10 CONTINUE
IF LAG [ Read data cards.
Set the Constants C.
i. Initializing entry. Read in all necessary special Compute function ofC.
data to FCN, calculate constants, print input Compute function of C and E(l).]
tables if desired, etc. 20 CONTINUE
I Compute function of X and C needed for G.
2. Normal entry with gradient. Calculate the deriva- Compute functions of X, C and E(l) needed for G.
tives in vector G and the function value in F at Compute G.]
the point X. 40 CONTINUE
I Compute functions of X and C needed for F.
3. Terminating entry. Write out any special summa- Compute functions of X, C and E(I) needed for F,
ries, output tables, etc. for the minimum point. Compute F.]
4. Normal entry without gradient, Calculate only 30 CONTINUE
the function value F at point X. [ Execute all operations which require the parameter
values X at the minimum ofF. For instance, print
5. Not used (reserved), out final tables, plot curves punch cards, etc.]
GO TO 40
Other Follow any special procedure acôording to the 50 [ Do not use]
user’s own private convention. (The parameter 60 Follow any special procedure according to own con-
values may be changed by the user whenever ventions]
IFLAG> 5 according to the convention given RETURN
under the CALL FCN command.) END

Note that the constants C, E(I) and variables X must

Since most of the computing time is spent inside FCN, not be changed under 20 or 40, The variables X are
it should be carefully optimized for calles when IFLAG changed in other parts of MINUIT, and any other
4 (or = 2 if derivatives are calculated). changes will hinder MINUIT to find the minimum.
For an example of the structure of a typical FCN,
see below. 4.3. Unphysical regions

The variable parameters may be assigned physical

limits outside of which they will not be allowed to
F. James, M~Roos/MINUIT 361

vary. (It is advised to allow for rounding errors of read, before being acted upon. This printout can al-
‘~—l0~ in setting physical limits.) ways be distinguished by three short rows of asterisks
If the problems involve “non-rectangular” con- at the extreme left-hand side of the page, followed at
straints (i.e. constraints which cannot be expressed the right by the Command and its arguments. The ar-
by imposing simple independent limits of the form guments may be punched as floating-point numbers
A < X(I) < B), the user must devise a way to “fool” or as right-adjusted integers, but they are immediately
MINUIT into thinking it has an unconstrained prob- transformed always to floating-point numbers and are
lem. The recommended way to do this is by the pen- printed out in FORMAT F 15.4. All arguments which
alty function method as follows: are not printed are blank or zero, If a COMMAND is
Suppose we wish to minimize the function f(X) not recognized by MINUIT (i.e. if it is a comment or
subject to the condition that g(X) >0. Then define if it is misspelled) it is ignored and the words CUM..
the FCN value F to be: MAND IGNORED are printed under the COMMAND.
If mistakes on the MINUS command card are found
F = f(X) g(X)> 0,
if (i.e. some specified parameter number is outside the
F=f(X) +ag2(X) if g(X)< 0, allowed range or corresponds to a fixed parameter) the
rest of the card is treated normally and a warning mes-
where a is a constant, large compared with!. Note sage is printed indicating simply that there are some
that this method requires f(X) to be defined every- mistakes,
where, and continuous at g(X) = 0, which may some- Note that the printed Command arguments are
times be difficult to arrange, but otherwise the method taken directly from the Command card before any de-
is usually found to work well and is perfectly general fault values have been assumed for these arguments.
(i.e. independent of the method used for minimization).
5.3. Normal parameter printout (subroutine MPR!NT)

5. Output formats For each printout, the current value of the function
is printed, as well as the total number of FCN calls since
The printed output should be self-explanatory, but the beginning of the data black, the total time in mm-
a few comments may be in order. utes since the beginning of the job, and the current
estimate of the vertical distance to the minimum (EDM)
5.1. Data card printout (subroutine MIDA TA) if such an estimate exists.
For each parameter, the following quantities are
The starting values and step sizes for the parameters printed:
are printed in FORMAT F15.6, so that in some cases, 1. internal parameter number only variable param-

perfectly good data may overflow or underfiow this etens have internal numbers.
format, but values between l0~ and 10~will be prin- 2. external parameter number as referenced by FCN.

ted in an easy-to-read format. In any case, the values 3. parameter name appearing on parameter data card.
used by the program are those punched on the card, 4. external parameter value this is the real value of

while the values printed by the program may be differ- the parameter as used inside FCN.
ent due to truncation by the format. 5. external parameter error this is the current best

Self-explanatory diagnostic messages are printed estimate of the real parameter error,taking account
whenever fatal or non-fatal errors are detected. If one of UP (see ERROR DEF command). If a covariance
or more fatal errors occur, the program stops, but first matrix exists, the error is calculated inside MPRINT
reads all the data cards if possible in order to find fur- from the appropriate diagonal element.
ther errors. 6. internal parameter value this is the value of the

parameter transformed for internal use (see section

5.2. Command card printout (subroutine COMMAND) 4C). If the parameter is unbounded, it is the same
as the external value.
All COMMAND cards are printed as soon as they are 7. internal step size at the beginning of the program,

362 F. James, M~Roos/MINUIT

this is the starting enror read from data cards, trans- highly correlated with it. All such coefficients
formed into internal coordinates. During or after a should be between zero and one for a positive-
minimization, it is equal to the last step taken. In- definite covariance matrix.
ternal values are always used since these are the val-
ues used directly by the minimizing routines. This 5.5. CONTOUR printout
quantity is not defined in SEEK.
At the end of a MINUS error analysis, a block of Before each contour is calculated, the specifications
printout is produced in Subroutine MINOS, which as- of the contour are printed. After the contour is finished,
sembles all the principal results from the minimization a message is printed stating that the calculation was suc-
and error analysis in handy form. If a MINUS error is cessful (and giving the number of points determined on
zero, it means either that the MINUS error was not re- the contour) or giving the reason for failure if unseccess-
quested, or that MINUS has failed to find the true er- ful.
ron (usually because it lies outside the allowed region If the printout level is ~ 2 (see PRINTOUT com-
or because too many FCN calls are required). mand), one line additional information is printed for
each contour point determined (usually between and -~

5.4. Covariance matrix and error correlation matrix 1 page per contour). This line gives the actual coordi-
printout (subroutine MA TOUT) nates of the point (both absolute and relative to the
minimum), an indication of the possible error (differ-
When the covariance matrix is printed, it is always ence between FCN value on contour and FCN value at
in internal coordinates (see 4C), which are the same as closest point where FCN was actually evaluated to de-
the real external parameter values only if there are no termine contour point), the separation between the
limits on the parameters. The matrix is always sym- last two points, the slope of the line joining the last
metric, so the elements above the diagonal are not two points (theta in degrees) and the total number of
printed. FCN calls at that point.
Unfortunately, the internal covariance matrix used After all contours of a given set are calculated, they
by MINUIT is not usually of direct interest to the user, are automatically plotted on one page. The scaling of
For this reason, the following interesting numbers which the plot is chosen so that intervals are round numbers
can be derived from the covaniance matrix are printed (subroutine BINSIZ), which usually results in different
separately: scaling for X- and Y-axes.
1. The square roots of the diagonal elements, trans-
formed to external coordinates if the parameters
are bounded, and scaled by the error definition References
UP, are the parameter errors appearing in the param- (1] F. James,
CERN Functionand
Computing Minimization in Proc.
Data Processmg of theCERN
School, 1972
eter printout. 72—2 1 (1972). (Separate reprints of the minimization
2. The off-diagonal elements give the correlation coef- lectures alone are also available from the author).
ficients p between parameters from [21 J.A. Nelder and R. Mead, Comput. J. 7 (1965) 308.
[3] R. Fletcher, Comput. J. 13(1970) 317,
11 = V~1/~.JV~~V11, [4] W.T. Eadie, D. Drijard, F.E. James, M. Roos, and
B. Sadoulet, Statistical Methods in Experimental Physics
where V is the covaniance matrix in internal or ex- (North-Holland Pub!. Co., Amsterdam 1971).
ternal coordinates. If Vis positive-definite, P~<1 [5] A.A. Goldstein and J.F, Price, Math. Comp. 25 (1971)
for all elements. If p = 0, the two parameters are 569.
uncorrelated, and if IpI = 1, the two parameters [6] H.H. Rosenbrock, Comput. J. 3 (1960) 175.
are comnletelv
r correlated
~‘ , ‘ , . [7] W.C.
[8] R. Davidon,
Fletcher andComput. I. 10 (1968)
M.J.D. Powell, 406.J. 6 (1963) 163.
3. The global correlation coefficient [4] for a given [9] F. James, Monte Carlo for Particle Physicists (Section
parameter is the correlation between it and that 6,1) in: Methods in Subnuclear Physics, Ed. M. Nikolic,
linear combination of the other parameters most (Gordon and Breach Pub!.) Vol. IV, Part 3.
F. James, M. Roos/MINUIT 363

~fl.4 UI LU
Ni 000 0 0 1-i N (Li Ni ~. 9’
I I ~ ‘-‘~~
U) 4 4 4 LU UI (~) I I U) I 8
C.. ~‘ C’ C’ .—~ .+~ a r C’ O_ IA 9’
- W.•’= W~)~
1.-CO I—I’)P-
U) D C) C) U) DO C/) 00’
- 44~1 • C4 I’,l • (0
4-.—. 4-4- I.’ — 4-.
_i_I ~ Z
31)*4 4 — . . - — —.
4.184 4
3.484 4
• • 4 3 3 LU .4 LU LU C,I.4
4 5 0 0 C)
* 4 3 3 ~J 3 LU 4- -~ _i S I
5 3 3 4 .4 LU —.4 .4 .4 Ui Li!
* LU 4 3 4 0
4E 3 3 8 - 0 . - -‘09’
3’ 3 3 . 8 Z 0 ~ Ui 2 2 0 9’
34-33 4 0 5’J ca
3 3 3 * LU .4 — 2 Ui LU 9’ 0’
• 43 3 1.-..~ 2< 8—’- 4-.•
* 83 8 ZOO --.— ZoO 2 0
3 83 3 22 — a
5 #8 3 .4 0
• 33 ~•. 3 . a
3 33000 4 00* 4- ~ DC)
• 8 8 4 I I i 00 C) Z C) 0 00 .4
• 84 8 +•3 W 33 44
3 8 4 8 Ui LU LU . U LU LU UI U!
3 8 8 4 2 LU ~0’C’4 ~‘O’C
3 85 8 .0C)aC <0 000 ONO’
• 3 3 * C) 0 1— 2 ~ 0’ .4 2.49’
• 4 3 3 2000 (0 .4 29’ 8/) 20.1 L
• 3 • 8 Ui .4 .4.4 -. 2 Ui .4.4 W NI CU 0
• #4 4 . -. a
• .3 8 . (0
3 58 8 . 0_J 0 9’

US 2
• 4 3 3 - * 8 .4 0 40 N .4.4 a 2 . 0
• 4 3 0 C) C) S C) 0 * a o C.) -
• 433*1 5 83 —I— *944
• 8 8 3 LU UI 4— U UI W LU LU 2
$ 5 4 * W C) 0 (I) ~ UI Lii U) .400 0
4: 84 4 00 LIZ ~‘ —
•8-434 *4 . 4 ..t *~ L~! Jo*** P.- (4)
• 8 8 8 4 .4 0.0 .4 a a .0 C.) .4
3 .48 4* 8 .4* a ~ >*0’.-I* 2 2
3(4) 3 48 • I,~ —. ~
3 4- Ii’. 8 4. • 4 a a .4 00 U. LU
4.J...$: •$ . . .
•~ *08 $4000 8 <0 . 0 2
•Z~Z8 • ~ • . 4- <
5— 8 8 3 a a a 4 6 2 4 ~ 2 2
* 2 X 8 3 3 a a a 3 . Lii <<4— LU U! - LU <4 LU <<I’. 0 U
3 2 1..) 8 3 8 a a a 8 I-I-I-U 2 I—. C) 1+ I-’ I- 4-. 4-’ I’ U 2 2
• e 0 3 8 8 .4.4.4 3 Lii LU LU.4 .4 W LU LU LU LU LU’S 0 .4
• —,,J4 •4~.S 3 4 2-2 2 .4 0.. ‘S
.‘OV)U)* .3 4 <.J051— U 440 <..JCJZP-’ U) 2
4O~ 4 34 8 2442...! (ZS’S 2<42.1 Ui 0
•:irw<. 8 4 :4LUZOW Us • 4ujZ <wzow :25 —
• 0 ~ i- 4 • • • & 5 — Z a . U 4— Q~2~ C. 5 —20 4-
• 04 3
8 U)
)- 3
4 8
• 3
3 — 2 _J•
LU — — 0
C.) U
8. 3 .4 3 • 4 I— 4(Li 80 9’ . 0 4- *4 N 4- .4 (‘.1 80 9
4. 4 4. 3 3 (.3 3 4 3 )( . 2 x In U.
• W 3 8 00 0 C) 8~ LU LU 0 W U! 5
0 • • 0 a aa • ~ LU 3 0 I—
• # 4 0 a a 0 3 8— .4 N ~ ~ ~ .4 (Li 1.- .1 N 5 II)
8 U 4 8 aa a a 3 z . a 2 2 2
*‘ 3 3 0 a a ‘0 5 — C.) C U! ..J
•038 ~.•_3
SI—S 800.4 3
4 . a ‘C
$W*4 8 C) 0
s_is. 4 3 3
3 4 3 3 . 2 2 iii 1: W
30 3 8 4 0 (Li 00’
4. 2 * 8 Ui LU U) LU (Li
• LU 3 4 4 0 - —
3 N4 * 9 3 0 0 2 U)
• ~ 3 3 .444- . a a I— I—
3 C., 9
• 8 LU
4 4 l-~4-U
LU .4 5 38 0
a .4 LU
s 2
#0 8 4 U.. < S LU 80 LUlo 5 WI0
* 3 3 0 5 I’- 3 5.-I (0 5.1 W 5.4 LU U
3: 5 • 3 .4 .4 ~ ,,J 3 .-..-I ~ .‘.,4 U —
# I— 3 8 L S OW 8 I— 4- - I— - ~ U..
3 CO 3 8 5 2 0 3 0 <U..
4094 . 4 2 U ‘-‘Ui
90 8 3 3 0 20
5.33 5 — (4, <U
8 Ui 4 3 3: . 9,. (4) .4 (4) .
• ~ 4 8 3: _i.4 < _i N. 2 _J I— :
E . 3 * ‘3..
4 4- • 3.4 N1.) 9’ 4
8 .3 .
.4 .

.4 2 —~(Li
.4 U0
3 3 8 3 2 . C.) S U C C.)
80*3 4 U: ~‘ —.
31— 8 8 3 C.. 0 2 4- . 2.3 0
—, 3 4 3 8 .4 — .4 2 tU.-I ‘0
O ~ 4- 4 8 0 .4 2 2 .4 Ni .4 Lii 2 ‘0
8•” 3 9 3 4- 0 >( C) : C) — 0 I— 5
~:I~. • 8 iii + —. — :o LU 3 .2 Ui 3 2 0
3- ~ LU C.. 2 .4 ~ : — — U -
5 ._t 0 8 8 3 3 8 8 8 3 32 ...$U) S _i N. . 1.- C’S
4- <It\ 4888393*30 480 — <2 2
— 2 >‘—I 44*43438 •‘- >‘.C S
iLl U) ••$4843*4r U) (Li
2 8 8 .-8 8 8 CU 3 3 1.) 3 2 9 0 2 9’
I— U ‘0 8 3 8 3 3 84- Ci ‘0 .4 UP’)
U) U.. I’-. 9 3 3 9 4: 3 ~ ,... ~ : ~,
5 : 934444539< •
3833*333*4- S
364 F. James, M. Roos/MINUIT

00 Ni ‘08/) N (4*0 ‘0.0
II: ~ ~~_U.i0
C) ‘3 (/)111
U! U! LU (I~S It U!
. Lii LU
.4.4 C..-IN-C’ C.Y)N-N
U*.-I9’ “ WIA9’
4-’00’C’ 1-9”09’
U) 0(0 C) U) a AID
‘0.-U’s .P-N.
4-I— 8-. I-.
2 2 I I

2.-’ WC’J.4.-I W.-I.-40
0 C, ~ 000 000
WI-’ 41,. 4.1+
2 ~‘w.$o ~.*.1U.
S *‘C9’o *4)14)0
ZU 20*0
XU)0D 2*0,0
—Z Uá*0..-I WP’)-40’
Z4 8- 4-
2 I
‘4 0
0> 0
3— 00.4 00.-I •
2 000 000 .1
W’ ++I +41
ZW 2P’.P’)P. 2O.NII’)
.4C~ 0*’0O’ 0P~I’~0’
8-2 TN.-I’q 5*oà’0
(04 5IA’00’ 59’AJ* C.~
— ‘5 W.4 .4 * W (8(01.-, 0
2 OC.) — •. 0, 2
o (ii CI~ 0
04 0 ‘0 —
4-4- Lii’S 2 (‘4 8-4-
42 4-2 -4 0 4Z
.4 Lii 0.0’ <0 N .-4.-4 .4.400 2 a .4 Ui 9’ 4-0
LU —r) 4) 2’ C) o C) 0000 U UI — a
Cr ULA LA — 4 I I • I I 8 8 2 (.30 0 4’.
2 ‘-‘I’) 80 I- U U! W UI U! U! LU LU 2 2.-.N. IA’0
0 C.. *9 CO-S Lii U) .40 UI * .40.0 0 Q C.. III N. WI
.3... • 152 ~C*0 ~‘0’0’C0 * .J... —• —
Lii 1*, -j 09’ 0 .490.0’ 0 *4 CI’S LU U) U)
40 4 2’! 00 ‘4 £‘. N’O’O U ‘S 40 0
‘(U ‘ 0 > * 0’ .4 > 4) .40’ 9’ 2 2 <C.) 0
U) 32 -—— - -— 0 0 0
o — ‘4 I I C.. U! 0 0 0
.4 UI (6 .4 0 0
0 .4 <a a z 0 • -
0. 4 4- 4
544 ‘S 2 + 2 2 2 24<4-
LU 4—I- — Ui LU LU’S ‘C I- LU .4<4- 0 Ci U! 8-I- (.3
P-Ui Ui 2 8- 0 1-4--I-U 1-8-8-U E 2 I- U~Ui’S
Ui .4 —.4 LUWLU< uiww< Q LU 1.. 3 4
2.40 > 5 • 2 C.. ~ U.’4 0, ‘S 2.402
44< U 44 (~S ‘44024- (4) 2 ‘44< 5 2 2
2UJS 0 24<2 5<<24 LU 0 2LUSO — —
<‘2 — I— U! • <UI S 0 <Ui 2 0 U! 5 — <5 — 2 5 £
C. Ci4- C.2.-,Z C.x~Z0 5 4- C. 1.. U.
0 2_I 0 U
LU * U 4 II N
.1 N 2 0 8- *4 C’S 4) 4’ .4 N 4)9 2 .41’S 4)
O 22 )C 35 (6 ~. a ~. 1..
I- UJO LU UI 5 0
U) >‘W 0 I- 0
U! 2 4- .4 (‘14) 4- .4 NP) 2 (6 0
‘2 02 2 2 2 ‘S a
U0 — ‘-‘ LU —8 ~ .4 CU
I- ‘2 ‘2
‘4 C) 0’ C) (4) 0 U)
C.. C) 0 I- I— I- 4-
5 p 2 2 2 2
‘2 ~ LU S Ui 0 — a —
0 00’ 0.4 U 0 Ci 0
S W.4 LU Ni )C 0. 0.
• / — C)
C) IA U)
• 0 4-I- 0 9’ 9’
I’) LU 42 C)
0 2W 0
WI’S 5 WI’) —
5.4 LU 5.4 UI U .4 I
‘2 .4.4 > .-*.4 U— 4- I—
W I-” 2 4” IL.. — —
I- - 0 ‘SC.. CU 2 (‘.1 2
2 0 20 a a
.4 — U) <U UI UI
5 I- U) 4 U) N 0 I- 0 I-
.4 ‘4 -.14) 2 410 Q Z N I’) 2 U! 2 U!
C. 1.4 41’) .4 I’. ~‘t1
C 54 ‘4 _J ‘4 .4
— 4 Z 4 — • C. C.
S Ci 0 C.) .JP- .4 2 .-C 2
U! — -‘ 4< 2 0 0
‘2 0 2 4- 2.3 *0. (.3 Ci
0 .4 — 4 2w_s P5,4 0
I- ‘2 5 .4 (.1 .4 U! ~‘..4. 4- - (4) - (4)
2 0 0
.1.1 =8
(4) 0 — 1-2
LU D — —
Ui — C) 2 + 20 a S
2 2 ‘S OU! 0 Ui —‘(.3 • U
• * 3 3 8 42 .3 N’. 2 .4 N-. 4-N 10 8 3: 4 CO (I)
4 • 9 * 9 3 0 ‘42 .-‘ 49’ 2 4 8 3 ‘2 .4 ‘2 C’!
* 8 3 9 9 8 — 1.. 2 ~‘ IA — 8 * $ LU LU
883 83*2 N 1.’. 349 4- ‘2 4- ‘2
• 9’ * 8 IA 4 29 0 21’) 8 ‘0 8 U.. LU
• 3 4 8 I— UI’) 4 U,-I 3 * 5 0 5 0
$ 3 8 32 U.. P. 2 C.. N’ 3 8 .4 I— .4 4-
488 489< • 0 • 388 ‘2 2 ‘2 2
*3* *3+4- 8*4 ‘S 0 ‘S 0
••• •**U) 2 453 C. C.) 0.. U
F. James, M. Roos/MINUIT 365


• (‘4 c~i • . .•‘.a
• (‘.8 * . — (0
• . (‘1 • (0
• N . —
• (‘i .
• 1’! .
• . (‘S •
~ . C.
- (C! • —
• •L’4•
• •C4

• • N —

C) 4 C
C) •C”i ,4’.-4 . —
O - (‘S .4 .4
0• 4 .4 —
O ‘-I .4’ (‘1
• • Cd .4 .4
.4 • _. • -
• . .4 • . —

4 Cl -
• (‘4 . . 4 —
2 . . . .4 • . .4

~ . . .4 . . . ‘O.
C.. — • — ‘3
— (Ci
N o . • . — *
• ~‘4 . .4 — IA
.4 — . - “3
• . . S . — . a
‘2 I ‘1 119tP—~ •11’ •I •~ •I •l *8 ‘1 •I .841. — S.C •I’I’I •~ •I •I *8 ‘.5 • I •~ 9I•~ .‘l ‘I—I •1 I ‘I *1 •
—, — . — •8
O • 04 • NJ
:8- ‘ . .4 . .4 —
2 •

• Ci: •~ .. . . : •: . —
— C)
.4 . . a
.4 1.. . — U)
• . . • a
- . Cl 0
• . C’! • —I
— : . . . a
(‘4 : • . Cl - *
• . . .4.
• . : : _ : .4
* : — : .4
4 : : • . .4.
* : ‘ Cl Cl Ni —
• . . — : -. N
• : : . .4
• . . . — .4 .4 • 5
• . (‘4 • .4.4 2
• . . : : .
4. (Ci.: .3

. . .
— :
. .• a
• . • ‘ U
• . : . • LU
• . . . . •‘ 2
• . . . C . . • . 0
.4: ‘ . : : • : —
• : . . . (‘Ci
— . . . . . .

(4) • . C . -
‘2 - - CM
Ui : . -
4-. 4 • (‘1’
Ui •
5 * : .
“4 • . . - (‘4 CM’
‘2 • —

0.. • CM’

:2. • • . . (CJ.: ‘2
:0: : . (Cl • W
• : . . 4-

S • : I~ NJ CV (‘S V • UI
C . . C : N . — .05
.2 a
.0 • • * 4 4 * 02
0 . — C * * 0<
S (CJ ~ a D 0 0. 0 C) 0 0 0 0 0. 0 C) a a 0 0 0 0 0 0 00 DC.
Ci 0
C) 0
C) 0
C) 0
C)’ 0
C) 0
C) 0
C) 0
C) 0
C) 0
C) 0
C) 0
C) 0
C) a
C) C)
C) C)
C) C)
C) 0
0 C)
0 C)
0 0
0 0
0 00
00 IA-
‘2 0 C) C) C) 0. 0 0 C) C) 0 0 0 0 0 0 0 0 C) C) C) 0 0. D I
U! C) C) C) 0’ 0 0’ 0 0 0. 0 0 0 0 0 0 0 0 0. 0 0 C) C) 0.0
0 4-”) (‘4 ~ 9’ 0 ‘0 (‘S 2 9’ C) .0 C.’ CV .0 0 9’ 2 CM ‘C a 9’ 2 CV 9’

‘4 ~. i . $ I. I 8 * I 8 I I V II
.0 .4
Li. Q :
366 F. James, M. Roos/MINUIT

.7137547E.O1 239 •~~~•5 •21E.09 1 1 REAL ETA . ..3R444E—01 •24439E+O0 ‘.354340.01 40453E—05
2 2 IMAG ETA ~,l20iiE.O1 .322320.00 —.12031E—01. —.72647E—u6
3 3 NORMFACT ..96*69E*O0 .74693E.01 •96669E.bO —.704020—u6
4 DELTA M •460U0E*QQ


* 9* *** * 4*4

4 *4* 4* *9 4*

~** 8****MINOS .1,00001




PARAMETER ~ SET TQ —,3~4E—O1* .244E.00 ~ ,209E.00 . .


PARAMETER I. SET TO —,354E—0j, • ,206E”OO I ,1730.O0




PARAMETER 3. SET TO —.354E—02, * ‘,244E•I0 $ -,28IE.00


PARAMETER .X.SET 10 •.354E.-03. • . •.29I0•Q0 ; -,3.25E’OO .




PARAMETER. .2. SET TO .,i200.0.X.*.. ,322E+OO. I . .33.00*0.0


PARAMETER 2 SET TO —.1200—01 • •307E’00 • ,295E•00





PARAMETER 2 SET TO —.1200—03. • —,322E’OO ~ •,334E.00


PARAMETER . 2 SET TO .,1,20E—01, * •,3400.*O0 I —.3520+00




PARAMETER 3 SET TO ,9670.0O • ,747E.01 • •104E+0I.



. . . .


PARAMETER 3 SET TO ,967E+O0 • •.747E.0.1 •. .8920100

- - - - - .
F. James, M. Roos/MIN(lIT 367

C)DCl - -
‘W4 $ I
I— ~Ni.-4
<0’ .40’
ii) 00’ 9’ IA
t LU (~45) (C.
05 ‘
‘2 I I I
(4) 00.4 - -
o oaa

I-’ON - -
•Cfl,’$C)C’4 -

‘a. - -
C C)

C) -

C) -
ao.4 -
- 000
Ci 4+8
O C (01’) 0’
<‘2*N* C..
6W4C1P4)P-. 0
‘4 C
18, Ui C)
Z 8-4-.
.4 .45
Cl) 8 .4.40 a 2 .3 (U * N. ‘0
—. C) C) DC) (3 U “D (Ci .4
Cli 8 I I $ 3 ‘21.) 02 P..
~‘- * U! U! Ui LU 2 ‘2 — I’.. (0.0
.38 Ui9’.4010 0 0L...(f85-(A
<4 0”)’)O — .3...
58 UI
<8 <AN’O’o U .30
+ ~ 45) .40’ 9’ 5 ‘SC.)
6* — — . 0
03 II C.. 0
2* .3
68 0 0
4 ‘2
U) * (4) U!< .44- 0 (UI— 8.- Ci
0 * )“ 4-4-4-US Z I—Ui LU’S
Z 3:: ~ - U! U! UI’S 0 : - UI Li.
—8 1..) 5 1..’S 0.. 5.305
2 8 Lii ‘4.3024- Cl) <<<‘2
4. 0 6.4< ‘2_i U! : 2W 2 0
.3* ‘4U~ZOW IX
.33 Ci 0.. 6.’-20 ‘2
03 — 0
2 — C.)
3 0 4— .4 N. 1’) * —. (‘4 85)
14 I’- 34
04 0. Lii ‘2
3 LU a
(4)8 .3 I”.$NI’~ ‘2
4-I Z ‘2
_.I. Q — UI
04 ~
(4)4 UI
63 ~ 0.
I.. I
C) 2114
‘2 LUN
- I-~ : — —
(47 ‘2(l)
— 8-4-
I <S
UI 114.0 -~
5.-I 11.1.3
-‘ ‘-‘.4 Ci.’.
4- 4-. 2’I~.

O —w
<C.. 45)
4- ‘20 ‘4
I- U) ~‘ CC! 0
— .3.0 02CC! 1’) .4
Li. _iU) (30 1. .3
<4’~ — - C.,
Z..J *0’ 2
‘2LU .1 1’3.4
1142 - 4- 4-

C) ~O
I-~ - . 34

OW ~‘.L) - LU S
I-N”) 8 8 8 Ci
‘49’ 3: 4*3 C.,
>‘IA — 384
N.. 33* 0
SC’) *04 4-
4 +
C..N. 3 3 .3
* 833
334 .4
*44 Ci