Gleam User Guide: Package Structure
After you obtain a copy of Gleam, you will note that there are a number of directories - each directory corresponds to a package. Packages help divide our code into more manageable components. There are different types of packages. Each has its own specific purpose:
Package Type | Description |
Checkout Package | Defines a set of packages that work together. This type of package does not necessarily define an application, but it could. Gleam creates an application, Gleam.exe |
Code Package | A typical package that contains code and defines a
shared library, static library, or an application. ex.) TkrRecon, CalRecon, CalDigi |
Interface Package | Interface to an external library.
This package contains no code, it only provides a
requirements file that defines where an external library is
installed. ex.) CLHEP, HTL, ROOT |
Data Package | Contains no code; only data input to code. ex.) xmlGeoDbs |
Policy Package | Contains no code. Defines compiler and linker
settings. ex.) GaudiPolicy, GlastPolicy |
Here is a listing of all the packages used by the Gleam checkout package.
Interface Package Name | Description |
AIDA | Interface package for the AIDA external library. |
CLHEP | Interface package that defines the location of the
CLHEP external library on your local system |
EXTLIB | Defines master path to the external libraries installed
on your local system |
Geant4 | Interface package that defines location of Geant4 libraries and include files on your local system. |
Geant4Runtime | Interface package that defines location of Geant4 libraries (but not include files), appropriate for packages needing runtime-only access. |
HTL | Interface package that defines the location of the
HTL external library on your local system. |
ROOT | Interface package that defines the location of ROOT
include files and libraries on your local system. |
XMLEXT | Interface package that defines location of XML parser (Xerces) include files and libraries on your local system |
Gaudi Package Name | Description |
GaudiAlg | Defines algorithm sequences - used to control algorithm flow based on run-time conditions for each event. |
GaudiAud | Defines Gaudi's auditors: ChronoAuditor, NameAuditor etc. The ChronoAuditor keeps track of the amount of time spent within Gaudi algorithms. |
GaudiKernel | Defines Gaudi interface classes (IAlgorithm, IDataProviderSvc, IHistogram, IRunable, ITime to pick a few at random), base implementations of some of them and other fundamentals like DataObject. |
GaudiIntrospection | Defines Gaudi's Introspection service. |
GaudiPolicy | Defines compiler and linker options - no code in this
package |
GaudiSvc | Defines all default Gaudi services such as NTupleSvc,
IncidentSvc, MessageSvc |
GaudiSys | Checkout package that defines the versions of the Gaudi
framework packages |
GaudiTools | Defines Gaudi supplied tools - currently only contains the Associator Tool |
RootHistCnv | Defines Gaudi's interface to ROOT. This package is not part of the GaudiSys checkout package. |
Gleam Package Name |
Description |
AcdRecon |
ACD reconstruction algorithm - distance of closest
approach |
AcdDigi | ACD digitization algorithms |
astro | Astronomical utility definitions such as EarthOrbit, SkyDir, etc. |
CalDigi | CAL digitization algorithms |
CalRecon |
CAL reconstruction algorithms - energy estimate |
detModel | Reads and interprets XML geometry description. Its services are available to applications via GlastSvc/IGlastDetSvc. |
digiRootData | Digitization ROOT classes |
Event |
Defines the GLAST TDS structure |
facilities | Contains very basic classes (e.g., Timestamp) and utilities (e.g., Util::itoa) |
FluxDisplay | |
FluxSvc |
Classes for defining sources and the interface between
these and the Gaudi
framework |
geometry | Defines a basic set of geometry objects such as Box, Plane, etc |
geomrep | Defines graphical representations for various geometry objects used with the event display. |
gui |
The basic event display classes. |
G4Generator | GLAST interface to Geant4. Uses geomtry services of GlastSvc and sources from FluxSvc as input; it outputs hits and MC particles. |
GlastPolicy |
Defines compiler and linker options - no code in
this package |
GlastSvc |
Provides implementations of several abstract services for application code, including event conversion (IEventSvc), access to geometry parameters (IGlastDetSvc), a propagator (IPropagatorSvc), etc. |
GuiSvc |
Interface between the gui package at the Gaudi
framework |
idents | Defines standard GLAST identifiers |
merit | Implements an algorithm, meritAlg, that does a complete PSF and Aeff analysis. |
mcRootData | Monte Carlo ROOT classes |
ntupleWriterSvc |
Interface to the Gaudi NTupleSvc to provide an
easier mechanism to write out ntuples |
Recon | Provides an interface between Gaudi and gismo code which is used for the event display and a propagator which can be used by other Gaudi components. |
reconRootData | Reconstruction ROOT classes |
RootIo | Gaudi algorithms for writing and reading ROOT files |
TkrDigi |
TKR digitization algorithms |
TkrRecon |
TKR reconstruction algorithms - finds tracks |
Trigger | Defines our trigger algorithms. |
xml |
Generic (non-GLAST-specific) services for parsing, interpreting and writing XML, layered on top of the XML parser Xerces-c. |
xmlGeoDbs |
Data package. Contains the standard XML files
defining the
geometry of the GLAST instrument. |
xmlUtil | Basic utilities used in interpreting xml geometry descriptions, such as evaluation of arithmetic elements. |
If you open any of the package directories you will see they each have a similar directory structure:
Directory | Description |
doc | Documentation and release.notes |
cmt / mgr | Contains CMT specific setup files, ex) requirements file. |
src | Contains source code and private header files |
<packageName> | A directory named after the package, contains public header files. |
xml | Contains any XML files used by the package. |
H. Kelly Last Modified: 2002-09-26 14:45:53 -0700