In this chapter we give pointers to some of the third party software libraries that we use within Gaudi or recommend for use by algorithms implemented in Gaudi.
CLHEP ("Class Library for High Energy Physics") is a set of HEP-specific foundation and utility classes such as random generators, physics vectors, geometry and linear algebra. It is structured in a set of packages independent of any external package. The documentation for CLHEP can be found on WWW at http://wwwinfo.cern.ch/asd/lhc++/clhep/index.html
CLHEP is used extensively inside Gaudi, in particular in the
GaudiSvc
,
LHCbEvent
and
SicbCnv
packages.
HTL ("Histogram Template Library") is used internally in Gaudi (GaudiSvc package) to provide histogramming functionality. It is accessed through its abstract AIDA compliant interfaces. Gaudi uses only the transient part of HTL. Histogram persistency is available with ROOT or HBOOK.
The documentation on HTL is available at http://wwwinfo.cern.ch/asd/lhc++/HTL/index.html . Documentation on AIDA can be found at http://wwwinfo.cern.ch/asd/lhc++/AIDA/index.html.
The NAG C library is a commercial mathematical library providing a similar functionality to the FORTRAN mathlib (part of CERNLIB). It is organised into chapters, each chapter devoted to a branch of numerical or statistical computation. A full list of the functions is available at http://wwwinfo.cern.ch/asd/lhc++/Nag_C/html/doc.html
NAG C is not explicitly used in the Gaudi framework, but developers are encouraged to use it for mathematical computations. Instructions for linking NAG C with Gaudi can be found at http://cern.ch/lhcb-comp/Components/html/nagC.html
Some NAG C functions print error messages to stdout by default, without any information about the calling algorithm and without filtering on severity level. A facility is provided by Gaudi to redirect these messages to the Gaudi MessageSvc. This is documented at http://cern.ch/lhcb-comp/Components/html/GaudiNagC.html
ROOT is used by Gaudi for I/O and as a persistency solution for event data, histograms and n-tuples. In addition, it can be used for interactive analysis, as discussed in Chapter 10. Information about ROOT can be found at http://root.cern.ch/