For ZOOM purposes, we categorize the sub-packages
that make up CLHEP by level of support:
StdHepC++ implements that functionallity in C++, and takes advantage
of the object-oriented nature to provide conceptually clean
interfaces.
The package is designed to be used independently but,
for Run II projects, interfaces with the
Fermilab SoftRelTools (SRT) package for environment definitions.
Other than speed considerations and
certain flexibility features of LinearAlgebra, including
changing the shape or nature of a matrix and a design that accomodates
defining new specialized matrix models,
this package covers much the same area as ZOOM Linear algebra.
The ZOOM support group is neutral on the question of whether one `should'
use CLHEP Matrix or LinearAlgebra. Applications which directly interact
with Geant4 may wish to use CLHEP Matrix , which Geant4 uses.
Now these classes are derived from CLHEP Vector classes (which have
been given the added ZOOM capabilities).
This package is merged with PhysicsVectors, and the classes are the same
except:
Contents:
This page was last updated on
Sep 13, 2002.
![]()
Allocator module
(Walter Brown)
A simple allocator that
greatly speed up code that frequently builds up many std::vectors of objects.
The Zoom Allocator package provides a memory-management subsystem.
This subsystem has an interface whose design follows the
model of the std::allocator class, while featuring
significantly improved performance for dynamic memory management.
This performance benefit is achieved by
takes advantage of known fixed-size properties to
reduce
the average per-allocation performance overhead,
and using the strategies of recycling deleted storage and bulk allocation.
CLHEP module
(Mark Fischler)
A common version of the CLHEP library, with all sub-packages
compilable on the ZOOM-supported platforms.
CLHEP is a collection of routines
written by physicists around the world,
and an organization for assigning
"editor" responsibility to those packages.
CLHEP Random
(Mark Fischler)
The CLHEP Random package has two principal types of classes:
CLHEP Random validation
(John Marraffino and Mark Fischler)
Validation against randomness test suite, completion of set of
distributions, and additional random engines.
Page is not up to date with regard to validation of distributions.
CLHEP StdHepC++
(Lynn Garren)
StdHep
contains a set of translation routines which convert Herwig,
Jetset, Isajet, or QQ events to and from the standard HEP event format.
StdHep also contains utility routines to work with the
HEPEVT common block and a set of I/O routines.
CovMatrices module
(David Sachs)
Lean and mean classes representing moderate-sized symmetric positive definite
matrices.
Optimized for high speed in the sort of computations need for Kalman
filter and related tracking calculations.
Special case classes for up to 6x6, and templates for larger matrices.
The classes include matrices and column vectors and two-column BiVectors
for tracking through two-diminsional planes.
ErrLogEx module
(Mark Fischler)
Tools involving both the Exceptions and the ErrorLogger
packages. For example, a way to route messages produced by ZMexceptions,
through the output destinations associated with an ErrorLog.
ErrorLogger module
(Mark Fischler)
Flexible multi-destination logging and statistics facility designed for use
in the D0 and CDF frameworks.
Exceptions module
(Mark Fischler)
A mechanism to permit, under user control, selective ignoring, handling,
and throwing of any exceptions potentially raised by ZOOM modules.
Selected features include:
HepTuple module
(Philippe Canal)
An interface to several underlying HEP histogramming and Ntuple
collection packages including HBOOK, Histoscope, and ROOT.
HistTools module
(Joe Boudreau)
Utilities for comparing pairs of histograms produced by HepTuple using
(often different) collection packages (file managers).
ISOcxx module
(Walter Brown)
The goals of the ISOcxx C++ Portability package are to:
LinearAlgebra module
(Leo Michelotti)
Matrix manipulations, with specific attention paid to
efficient operations for small-matrix cases.
Currently in beta release, with the following restrictions/dependencies:
CLHEP
HepPDT Package
(Lynn Garren)
HepPDT is a package in CLHEP providing particle properties and decay
channel information.
It is the lowest layer of the trio of packages replacing the Fortran STDHEP.
It provides all properties (including uncertainties in the values) listed in
the Review of Particle Physics,
and includes decay mode information.
The user can force custom decay tables and entire decay chains, access
properties assumed by various generators including Herwig,
Pythia, and QQ, and utilize
multiple active Particle Data Tables.
CLHEP
HepMC Package
(Lynn Garren)
HepMC is a package in CLHEP providing a concrete particla class
(with momentum, vertices, and so forth) and event and collision container
classes.
It is the middle layer of the trio of packages replacing the Fortran STDHEP.
HepMC originated in a package of the same name developed for ATLAS by Matt
Dobbs.
CLHEP
StdHep Package
(Lynn Garren)
StdHep is a package in CLHEP providing an interface to event generators
such as Pythia, event I/O, and connection to the standard common blocks
defined by the Fortran STDHEP package.
It is the middle layer of the trio of packages replacing the Fortran STDHEP,
depending on HepMC and HepPDT.
CLHEP
Matrix Package
(Mark Fischler)
Matrix and Vector (Nx1 matrix) operations. Includes optimized inversion
for matrices no larger than 6x6, and more optimization for symmetric
positive definite matrices.
PhysicsVectors (3- and 4-Vectors) module
(Mark Fischler)
3-vector and Lorentz Vector concepts commonly used in High Energy
Physics calculations; boosts, rotations, invariant masses, and so forth.
CLHEP
Vector Package
(Mark Fischler)
3-vector and Lorentz Vector concepts commonly used in High Energy
Physics calculations; boosts, rotations, invariant masses, and so forth.
SpecialFunctions (GNU Scientific Library) module
(John Marafino)
Based on the Special Functions section of the Gnu Scientific Library,
this provides various functions such as Bessel functions, Legendre polynomials,
Elliptic integrals, and so forth.
ValuePtr module
(Marc Paterno )
Simple templated class that can serve as a pointer to an object,
with the property that when the ValuePtr is copied, it creates
its own copy of the object pointed to as well.
ZMtimer module
( Walter Brown )
Simple timer classes,
providing semantics similar to those in Tools.h++,
and more.
(This builds on work independently contributed
by Randy Herber and Fritz Bartlett.)
ZMtools module
(Walter Brown)
A collection of useful codes contributed by non-ZOOM physicists
(generally at FNAL) who have solved specific problems that others may share.
Also includes codes developed by ZOOM as needed auxiliaries, which may be
useful to physicists in their own right.
A set of graded assert macros.
Block
Related macros that employ the
ErrorLogger mechanism are given in
ErrorLogger/ELassertN.h .
Simple templated class that behaves like an STL container but
can also be block-initialized like a fixed-size native C++ array.
IteratorFilter
Provides a simple means of
selecting certain of a container's members while traversing
(iterating through) the container.
ZMutility module
(Walter Brown)
A collection of auxiliary headers and small routines
that were needed for other ZOOM packages,
many of which may also be of use to users.
Author: ZOOM contact information:
The following distribution e-mail points have been set up:
ZOOM task force mailing list.
Open participation;
D0 and CDF experimenters particularly encouraged to subscribe.
ZOOM Product Support mailing list.
Users are encouraged to report problems with ZOOM packages or to request
assistance in finding, setting up, and using packages, via this address.
Please use the package name as the first word of the subject.