M. Fischler (FERMILAB)
A new object-oriented Minimization package is available via the ZOOM cvs repository. This package, designed for use in HEP applications, has all the capabilities of Minuit, but is a re-write from scratch, adhering to modern C++ design principles. A primary goal of this package is extensibility in several directions, so that its capabilities can be kept fresh with as little maintenance effort as possible. These flexibility goals have been met, as demonstrated by extensions of the package to add new types of termination conditions, new domains and restrictions on the solution space, and a new minimization algorithm. Each of these extensions was straightforward to implement. The object-oriented design style also has several advantages at the user level. One such advantage is the ability to consider several problems simultaneously within a single program. Another is that we can make the Minimzer objects easy to coordinate the Minimizer with the use of other products. To verify that this goal is met, we demonstrate examples of using the Minimizer in the context of a Root application, and in an application using the "R" statistical analysis environment and language. We compare and contrast this package with other free C++ Minimization packages suitable for HEP (most of which have origins in Minuit). Following Minuit overly precisely makes it difficult to design an object oriented package without undue distortions. This package is distinguished by the priority that was assigned to C++ design issues, and the focus on producing an extensible system that will resist becoming obsolete.