# Presentation: 359204

## CEPA/SLD

- Three projects described today
- Zoom Cleanup and Reorganization
- Zoom “Export”
- Minimization
- This is not a statement that there are no other projects being done
- Cannot properly brief about too many projects  in 7 minutes!

## Zoom Cleanup and Reorganization

-  Goal:
- Reduce ongoing future effort needed to support and maintain the production Zoom packages at a high quality level
- StakeHolders
- Run II Zoom users, Zoom support group,
- any future users of Zoom
- A bit of background
- Current maintenance burden significant
- Current state of packages starting to become ragged
- Some portions of maintenance could be made significantly easier by cleaning up problems once and for all, and rethinking support procedures

## Zoom Cleanup and Reorganization

-  Deliverables
- Genuinely clean build including all tests on all platforms
- Reorganization of how CLHEP is kept in Zoom, coordinating more closely with the official version
- Cleanup and streamlining of web pages, release procedures, and procedures for considering and tracking enhancements
- Must remain backward compatible with the way Run II is using Zoom libraries, including their build approaches.
- Improved documentation, rectifying gaps that could lead to user confusion
- Progress Status
- Resolving problems affecting the build on various platforms
- D0 now builds all tbins when incorporating any new release, so we have to get this level of polish before cutting the next Zoom release (which contains several requested features)

## Zoom Export

- Goal:
- Prepare each Zoom package such that it can be built and used by users who have only canonical **nix* build tools (not relying on SRT)
- Preparation of updated releases should not represent undue burden on maintainers.
- Existing Run II customers should need at most minimal changes to their build procedures.
- Packages should have automated self-validation capability.

## Zoom Export

- Stakeholders
- Until this is done, we can’t say that the use of Zoom is a sensible option for anybody other than FNAL SRT users!
- HEP experiments and projects that don’t choose SRT as their build mechanism (for example CMS);
- Zoom support group.
- Also, CLHEP (and its users) for incorporation of several Zoom packages
- Deliverables
- Overall
- Framework and umbrella organization for package presentation
- Prototype autotools files to be customized per package.
- Validation policies and script prototypes.
- Per Zoom package
- suitably customized automake, autoconf, and related files
-  tarballs suited for distribution and/or kits inclusion;
- automated validation suite.

## Minimization

- Creation of a well-designed Minimization package with the following properties:
- present the benefits of usage modes associated with object-oriented packages
- fulfill all the capabilities of Minuit
- extend those capabilities, filling various gaps and incorporating newer techniques
- be extensible to new algorithms with minimal effort on the part of the extender (other than developing the mathematical algorithm itself)
- contain mathematical documentation of all algorithms

## Minimization

- Stakeholders – Why is there a need for a (another?) C++ minimization package?
- HEP community
- Minimization packages from outside the community don’t do as good a job on our problems as Minuit
- Minuit wrappers (Gemini, Root minimization) are impossible to extend and hard to maintain if that is ever needed
- There are genuine benefits from being able to treat a minimization problem as an object
- A stand-alone, true C++ package has advantages over wrapped Fortran or f2c code
- Several physicists have reacted “it is about time somebody did this.”  About an equal number reacted “why are you doing *that*, hasn’t somebody else already done it?”

## Minimization

- Deliverables (and progress)
- Quality minimization package design and decomposition into sub-packages.
- Mostly completed; several identified areas where further thought is needed
- Prototype package with Minuit capability.
- An early C++ Minuit implemented as a prototype to explore the design issues was prepared
- Being reworked into a first product acceptable from a design standpoint
- Clear documentation of all algorithms used.
- Largely completed
- Extensible Object-Orriented Minimization package in “good” C++, going beyond Minuit capability.
- Anticipated follow on:
- A subsequent project to add new minimization algorithms is anticipated once this design is solid