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