You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Gaudi-speak

component -  refers to a block of software with a well defined interface and purpose. ex.) an algorithm or a service

Algorithm - an algorithm class which is derived from Gaudi's IAlgorithm base class.  All algorithms must include:  initialize, execute, and finalize methods.

class GAUDI_API IAlgorithm : virtual public INamedInterface {
public:  /// InterfaceID  DeclareInterfaceID(IAlgorithm,4,0);  /** The version of the algorithm   */ 
virtual StatusCode initialize() = 0; 
virtuanl StatusCode finalize() = 0;

/** The action to be performed by the algorithm on an event. This method is invoked once per event for top level algorithms by the
application manager.  */ 
virtual StatusCode execute() = 0;

Converter - provides translation between the transient representation to the persistent representation and back again.  Converters are part of the persistency service.

Service - a component that is shared among many algorithms, potentially.

 Tool - "a light weight object whose purpose is to help other components to perform their work"

Transient Data Store (TDS)  a mechanism for shared memory; a tree that stores all data pertinent to a particular execution of the code. Gaudi provides an event data store, which is cleared on a per event basis, and a detector data store, which handles longer lasting data such as calibrations.

Persistency Service - handles I/O through the use of converters.

Fermi's Use of Gaudi

Started in 2000 as part of our upgrade of the simulation and reconstruction software named Gleam, now often referred to as GlastRelease.  See this diagram from our online workbook.

Gaudi Provides Services/Tools Fermi Uses

ChronoSvc - monitors the cpu usage for all algorithms and provides a report at the end of the job.

JobOptionsSvc - Handles ASCII jobOptions files which allow setting of runtime parameters for all algorithm, services, tools, etc as well as determining the sequence of execution.  Allows for conditional execution based on user-defined conditions.

MessageSvc - provides logging at prescribed "levels":  DEBUG, INFO, WARNING, ERROR

log << MSG::DEBUG << "Hello World!" << endreq; 
log << MSG::INFO << "Hello World!" << endreq; 
log << MSG::WARNING << "Hello World!" << endreq;

Fermi-defined servies and algorithms

 G4Generator - Algorithm that is our interface to Geant4.  G4 generates one event, and the resulting data are then posted to the TDS.

Detector Description

 Calibrations

ntupleWriterSvc - rather than utilize Gaudi's historgram service we chose to write our own.  Over the years it has been extended to handle not only writing our outupt ROOT ntuples, but also provides a mechanism to read in ntuples for reprocessing. 

References

Some words from Fermi's Online Workbook.

Gaudi Home

  • No labels