Gaudi Tutorial: Introduction - PowerPoint PPT Presentation

About This Presentation
Title:

Gaudi Tutorial: Introduction

Description:

Architectural pattern that codifies a ... Athena-Gaudi Object Diagram. Converter. Algorithm. Event Data. Service. Persistency. Service ... Gaudi Developer Guide ... – PowerPoint PPT presentation

Number of Views:35
Avg rating:3.0/5.0
Slides: 14
Provided by: Pere59
Category:

less

Transcript and Presenter's Notes

Title: Gaudi Tutorial: Introduction


1
Introduction
2
What 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
3
Framework 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

4
Athena-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
5
Definition 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

6
Definition 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

7
Definition 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.

8
Algorithm
  • 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

9
Interfaces
ISvcLocator
ApplicationMgr
IDataProviderSvc
IAlgorithm
IProperty
EventDataSvc
Concrete Algorithm
IDataProviderSvc
DetectorDataSvc
IHistogramSvc
HistogramSvc
Obj_B
Obj_A
IMessageSvc
MessageSvc
ParticlePropertySvc
IParticlePropertySvc
10
In 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)
11
Algorithm 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
12
Accessing 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

13
Documentation
  • 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
Write a Comment
User Comments (0)
About PowerShow.com