Title: Gaudi Tutorial: Introduction
1Introduction
2What is a Framework?
- Framework Definition 1,2
- Architectural pattern that codifies a particular
domain. It provides the suitable knobs, slots and
tabs that permit clients to use and adapt to
specific applications within a given range of
behavior. - In practice
- A skeleton of an application into which
developers plug in their code and provides most
of the common functionality.
1 G. Booch, Object Solutions, Addison-Wesley
1996
2 E. Gamma, et al., Design Patterns,
Addison-Wesley 1995
3Framework Benefits
- Common vocabulary
- Better specifications of what needs to be done,
better understanding of the system. - Low coupling between concurrent developments
- Smoother integration organization of the
development. - Robustness
- Resilient to change (change-tolerant).
- Fosters code re-use
4Athena-Gaudi Object Diagram
Application Manager
StoreGate Svc
Converter
Converter
Converter
Event Selector
Transient Event Store
Data Files
Persistency Service
Message Service
Event Data Service
JobOptions Service
MC Event Generators
Algorithm
Algorithm
Data Files
Transient Detector Store
Sequencer
Persistency Service
Particle Prop. Service
Detec. Data Service
Other Services
Data Files
Transient Histogram Store
Persistency Service
Histogram Service
Auditors
Scripting Service
5Definition of Terms
- Algorithm building block of user applications,
visible controlled by framework. Simple or
Composite , i.e., delegates process to
sub-Algorithms - inherits from Algorithm class
- Implements three methods for invocation by
framework - initialize(), execute(), finalize()
- Data Object generally produced/accessed by
Algorithms. Visible managed by TDS - e.g., Collection containing Cluster Objects
- Transient Data Store(s)
- Central service and repository for data objects
(data location, life cycle, load on demand, ) - Event store, detector data store, histogram
store, ntuple store - Accessed via StoreGate
6Definition of Terms (2)
- Services
- Globally available software components providing
specific framework capabilities, e.g. Histogram
service
- Data Converter
- Provides explicit/implicit conversion from/to
persistent data format to/from transient data - Decouple Algorithm code from underlying
persistency mechanism(s)
- Properties
- Control and data parameters for Algorithms and
Services. Allow for run-time configuration.
Specified via a startup text file (jobOption
file) or Python script or from the scripting
language shell
7Definition of Terms (3)
- Job Options files
- Conventional text file (default jobOptions.txt)
used to control an Athena application
configuration at run-time
- Auditors
- Monitor various aspects of other framework
components. Currently Athena supports - NameAuditor, ChronoAuditor, MemoryAuditor,
MemStatAuditor
- Sequences
- Lists of members Algorithms managed by a
Sequencer. - Sequences can be nested. By default the Sequencer
terminates a sequence when an event fails a
filter. The StopOverride property overrides
default behavior. - Filters
- Event selection criteria.
8Algorithm
- Users write concrete Algorithms derived from base
class Algorithm - Implements - at least - three methods in
addition to the constructor and destructor - initialize(), execute(), finalize()
- execute is called once per physics event
-
- Algorithm provides hooks to common services
- Other registered services are accessible once
their header file is included in the Algorithm
9Interfaces
ISvcLocator
ApplicationMgr
IDataProviderSvc
IAlgorithm
IProperty
EventDataSvc
Concrete Algorithm
IDataProviderSvc
DetectorDataSvc
IHistogramSvc
HistogramSvc
Obj_B
Obj_A
IMessageSvc
MessageSvc
ParticlePropertySvc
IParticlePropertySvc
10In Practice
IMyInterface.h
class IMyInterface void doSomething( int a,
double b ) 0
ClientAlgoritm.cpp
include IMyInterface.h ClientAlgotihmmyMetho
d() // Declare the interface IMyInterface
myinterface // Get the interface from
somewhere service(MyServiceProvider,
myinterface ) // Use the interface
myinterface-gtdoSomething( 10, 100.5)
11Algorithm Transient Store
Simulated Data Flow
Data T1
Data T1
Transient Event Data Store
Algorithm A
Data T1
Data T2, T3
Data T2
Data T3
Algorithm B
Data T2
Data T4
Algorithm C
Data T3, T4
Data T4
Apparent dataflow
Data T5
Real dataflow
Data T5
12Accessing Services
- Within the Algorithm services are readily
accessible. - The most common are
- msgSvc( ) or messageService( )
- eventSvc( ) or eventDataService( )
- histoSvc( ) or histogramDataService( )
- ntupleSvc( ) or ntupleService( )
- detSvc( ) or detDataService( )
- serviceltTgt() generalized access to Services
- serviceLocator( )
- And more
-
13Documentation
- Athena User Guide v2.0.x (et al.) - release
notes - Gaudi Developer Guide
- Both from http//atlas.web.cern.ch/Atlas/GROUPS/SO
FTWARE/OO/architecture/General/index.html - Athena Tutorials
- http//atlas.web.cern.ch/Atlas/GROUPS/SOFTWARE/OO/
architecture/General/Tutorial/ - Web video stream
- Atlfast guide
- http//www.hep.ucl.ac.uk/atlas/atlfast