GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-1 GLAST Event Data Model and Persistency.

Slides:



Advertisements
Similar presentations
CT213 – Computing system Organization
Advertisements

Mantid Architecture Straw man proposal Nick Draper 24 th August 2007.
Athena/POOL integration
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
25 th March 2003 V.Fine, H.Ma CHEP 2003, San Diego 1 Root Based Persistency in Athena (ATLAS) by Valeri Fine and Hong Ma.
15 March, 2000LHCb Computing1 Software Review Panel LHCb Answers to Architecture, Data Model and Program Infrastructure Pere Mato for the LHCb Collaboration.
GLAST LAT Offline SoftwareWorkshop - SLAC, Jan , 2001 TDS objects and Converters. (Transient Data Store) Ian Gable Software Workshop Jan 2001.
Calibration Infrastructure & Gaudi Design and Status.
Gaudi Framework Tutorial, April Introduction.
LHCb Software week November, 1999 M.Frank LHCb/CERN N-Tuples within Gaudi ã Definition ã Usage ä Run through simplified example ã The persistent.
M.Frank LHCb/CERN - In behalf of the LHCb GAUDI team Data Persistency Solution for LHCb ã Motivation ã Data access ã Generic model ã Experience & Conclusions.
Root, GLAST, and IDL Heather Kelly NASA/GSFC Emergent Corporation.
Data File Access API : Under the Hood Simon Horwith CTO Etrilogy Ltd.
Conditions DB in LHCb LCG Conditions DB Workshop 8-9 December 2003 P. Mato / CERN.
GLAST CHEP 03 March R.Dubois1/17 GLAST Large Area Telescope: Overview of GLAST Offline Software Richard Dubois Stanford Linear Accelerator Center.
Nick Brook Current status Future Collaboration Plans Future UK plans.
N ATIONAL E NERGY R ESEARCH S CIENTIFIC C OMPUTING C ENTER Charles Leggett The Athena Control Framework in Production, New Developments and Lessons Learned.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
MINER A Software The Goals Software being developed have to be portable maintainable over the expected lifetime of the experiment extensible accessible.
Introduction to Gaudi LHCb software tutorial - September
M.Frank LHCb/CERN Using Shared Libraries ã The traditional way ã How to build shared images? ã Benefits ã Process configuration ã Fortran.
Use of Gaudi in Reconstruction Weidong Li 23/06/2004.
CHEP /21/03 Detector Description Framework in LHCb Sébastien Ponce CERN.
STAR Event data storage and management in STAR V. Perevoztchikov Brookhaven National Laboratory,USA.
08 - StructuralCSC4071 Structural Patterns concerned with how classes and objects are composed to form larger structures –Adapter interface converter Bridge.
- Early Adopters (09mar00) May 2000 Prototype Framework Early Adopters Craig E. Tull HCG/NERSC/LBNL ATLAS Arch CERN March 9, 2000.
GLAST LAT Offline SoftwareCore review, Jan. 17, 2001 Review of the “Core” software: Introduction Environment: THB, Thomas, Ian, Heather Geometry: Joanne.
CHEP 2004, Core Software Integration of POOL into three Experiment Software Frameworks Giacomo Govi CERN IT-DB & LCG-POOL K. Karr, D. Malon, A. Vaniachine.
CHEP /21/03 Detector Description Framework in LHCb Sébastien Ponce CERN.
Detector Description in LHCb Detector Description Workshop 13 June 2002 S. Ponce, P. Mato / CERN.
GAUDI Muon Software  Algorithms : Muon Digitization MuonL0Trigger MuonIdentification  Detector Description Database  Transient Detector Store  Detector.
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
April 6, 2000 LHCb Event Data Model Pavel Binko, Gloria Corti LHCb / CERN 1 LHCb Software week LHCb Event Data Model Pavel Binko Gloria Corti LHCb / CERN.
Tutorial: Examples (09may00 - ATLAS Software LBNL) May 2000 Prototype Framework Tutorial: Examples Paolo Calafiura, Charles Leggett HCG/NERSC/LBNL.
GLAST LAT Project Science Tools - 12 June 2002 T. Burnett 1 The Science Analysis Software Development Environment -- for tools too! T. Burnett.
Valeri Fine Athena/POOL integration.
General requirements for BES III offline & EF selection software Weidong Li.
CERN Tutorial, February Introduction to Gaudi.
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
25th Nov, 1999 LHCb Event Data Model Pavel Binko, LHCb / CERN 1 LHCb Software Week LHCb Event Data Model Pavel Binko LHCb / CERN.
Athena Tutorial: Liquid Argon Example ATHENA The ATLAS Control Framework Tutorial: Liquid Argon Example Based on original by S. Rajagopalan BNL.
ATLAS Data Dictionary A. Bazan, T. Bouedo, P. Ghez, T. Le Flour, S. Lieunard M. Marino, C. Tull.
N ATIONAL E NERGY R ESEARCH S CIENTIFIC C OMPUTING C ENTER Charles Leggett Prototype GEANT4 Service for ATHENA framework ATLAS Software Workshop Dec 3.
9 Associators How to relate objects to each other Create relations Save relations Use relations: Associators.
4 Dec., 2001 Software Week Data flow in the LArG Reconstruction software chain Updated status for various reconstruction algorithm LAr Converters and miscellaneous.
David Adams ATLAS Hybrid Event Store Integration with Athena/StoreGate David Adams BNL March 5, 2002 ATLAS Software Week Event Data Model and Detector.
N ATIONAL E NERGY R ESEARCH S CIENTIFIC C OMPUTING C ENTER Charles Leggett Transient Conditions/Detector Store using StoreGate ATLAS Software Workshop.
Chapter 3: Windows7 Part 5.
Root I/O and the Gaudi Framework
WP12 - General Development News Sandro Wenzel
GLAST Gaudi Review T. Burnett H.Kelly 10 Sept 02 Gaudi code review
POOL persistency framework for LHC
Decorator Design Pattern
Chapter 3: Windows7 Part 5.
SW Architecture SG meeting 22 July 1999 P. Mato, CERN
LHCb Detector Description Framework Radovan Chytracek CERN Switzerland
Data Persistency Solution for LHCb
Detector Description in LHCb
Chapter 8: Memory management
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
Chapter 9: Virtual Memory
Operating Systems Lecture 3.
Raw Event Conversion Service in BOSS framework
What’s new in version 4 of GAUDI
Use Of GAUDI framework in Online Environment
OPERATING SYSTEMS MEMORY MANAGEMENT BY DR.V.R.ELANGOVAN.
Planning next release of GAUDI
Accessing Event Data Schedule: Timing Topic 20 minutes Lecture
LHCb Detector Description Framework Radovan Chytracek CERN Switzerland
Calibration Infrastructure Design
Presentation transcript:

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-1 GLAST Event Data Model and Persistency

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-2 Data Stores  “All data which comes from persistent storage, or which is transferred between algorithms, or which is to be made persistent must reside within a data store.”  GAUDI implements four data stores: event detector histogram n-tuple

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-3 Event Data Store  Of primary interest is the Event Data Store, often referred to as the TDS (transient data store).  As the name implies, this store deals with Event data. At the end of each event, the TDS is cleared and all allocated memory is released.  Our Event Data structure strongly resembles the LHCb model.

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-4 GLAST TDS Structure /Event /MC /McParticleCol /McPositionHitCol /McIntegratingHitCol /Digi /AcdDigiCol /CalDigiCol /TkrDigiCol /AcdRecon /CalRecon /CalXtalRecCol /CalClusterCol /TkrRecon /TkrClusterCol /TkrPatRecCol /TkrFitTrackCol /TkrVertexCol All TDS classes reside in the Event package

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-5 What Can be put on the Data Store?  All objects must derive from Gaudi’s DataObject or ContainedObject class.  Two Implemented ContainedObject classes: ObjectVector and ObjectList  Each class has a classId.  Checklist Do not delete objects you have registered Do not delete contained objects you have registered Do not register local objects (must use new) Do not delete objects retrieved via retrieveObject Delete objects allocated on heap which are not registered

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-6 How does Data get on the TDS?  Beginning of each event, /Event object is created and placed on TDS.  Branches of the TDS tree are created during event execution - A Gaudi Component calls registerObject to put an object on the TDS. Event::McParticleCol* pTdsCol = new Event::McParticleCol; sc = eventSvc()->registerObject(EventModel::MC::McParticleCol, pTdsCol); - A request is made via a retrieveObject or SmartDataPtr call If the data is on the TDS, the object is returned to the caller. If the data is currently unavailable, the appropriate Persistency Service is called to retrieve the data from a persistent store. DataObject* pnode =0; sc = eventSvc()->retrieveObject(EventModel::TkrRecon::Event, pnode); OR SmartDataPtr posHits(eventSvc(), EventModel::MC::McPositionHitCol);

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-7 Conversion Process  Collaboration between A service derived from IConversionSvc coordinates conversion by calling appropriate IConverter A set of converters each derived from IConverter does the work of converting transient type persistent type IOpaqueAddresses creates association between converters and paths on TDS For more information, see Chapter 13 of the Gaudi Developers Guide:  Our persistency service is a placeholder.

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-8 IConversionSvc EventCnvSvc EventCnv MCEventCnv IConverter BaseCnv Converter Address GenericAddress IOpaqueAddress GLAST Persistency Service Contains Inherits from Resides in GlastSvc package

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-9 How does it work?  Add EventCnvSvc to the list of EventPersistencySvc in the jobOptions EventPersistencySvc.CnvServices = {"EventCnvSvc"};  EventCnvSvc::initialize will load all converters that match its storage type.  As each converter is loaded, an association between TDS path and converter is created using the IOpaqueAddress interface.  When the Persistency Service is asked to retrieve data for the TDS – the appropriate converter is called based on the IOpaqueAddress.

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-10 TDS and Converter Questions  Our implementation is strongly based on LHCb’s.  There are parts that are unnecessary for our purposes.  We should be able to simplify our implementation.  Gaudi Object Description and Introspection Can this be used to avoid the explicit definition DataObject classes?  Should we consider using Atlas’ StoreGate?

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-11 RootIo – The rest of the story  GLAST Persistency Service not fully utilized  Why? We want real ROOT I/O. Gaudi’s default support for ROOT uses TBlobs.  Short-term solution Gaudi algorithms handle ROOT I/O The package is called RootIo.  Our ROOT classes mirror our TDS classes.

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-12 RootIo GLAST Event Data Store mcRootWriterAlg digiRootWriterAlg reconRootWriterAlg mcRootReaderAlg digiRootReaderAlg reconRootReaderAlg mc.root digi.root recon.root mc.root digi.root recon.root Writing Reading RootIo

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-13 Problems with RootIo  Use of algorithms is inconsistent with the spirit of Gaudi’s Persistency Service.  Does not provide fine control over what is read/written – it’s all or nothing as currently implemented.  Monolithic algorithms are more difficult to maintain versus light weight converters.

GLAST Gaudi Code Review, 10 Sept. 2002, H. Kelly, 2-14 ROOT Persistency Service Athena has produced a “real” ROOT service ROOT I/O -ROOT interactive session by demand -ROOT share library dynamic loading by demand -ROOT control over the Gaudi algorithms Using this example, we plan to develop our own ROOT Persistency Service.