Gleam User Guide:  Package Structure

Package Types

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

Gleam Packages

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. 

 

Package Directory Structure

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