CERN Tutorial, February 2010 2 Introduction to Gaudi.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

K A Assamagan Analysis Tutorial – December 19, Tucson, 2004 Overview of ATLAS Software and the Athena Framework (extracted from an earlier talk by S. R.
15 March, 2000LHCb Computing1 Software Review Panel LHCb Answers to Architecture, Data Model and Program Infrastructure Pere Mato for the LHCb Collaboration.
LHCb Software Vanya BELYAEV Vanya BELYAEV. Preface It is NOT a tutorial for beginners It is NOT a tutorial for beginners If you need – the tutorial will.
25/03/2003Simulation Application for the LHCb Experiment CHEP March 2003 Presented by: W. Pokorski / CERN Authors: I. Belyaev, Ph. Charpentier,
Framework for Online Alignment 4th LHCb Computing Workshop 6 November 2014 Beat Jost / Cern.
SEAL V1 Status 12 February 2003 P. Mato / CERN Shared Environment for Applications at LHC.
LAr Athena Tutorial – November 2, 2004 Software Tutorial (Minimally modified transparencies from Offline Software Tutorial of Srini R., Hong M., David.
Gaudi Framework Tutorial, April Introduction.
Design patterns. What is a design pattern? Christopher Alexander: «The pattern describes a problem which again and again occurs in the work, as well as.
3 Sept 2001F HARRIS CHEP, Beijing 1 Moving the LHCb Monte Carlo production system to the GRID D.Galli,U.Marconi,V.Vagnoni INFN Bologna N Brook Bristol.
David Adams ATLAS ATLAS Distributed Analysis David Adams BNL March 18, 2004 ATLAS Software Workshop Grid session.
LC Software Workshop, May 2009, CERN P. Mato /CERN.
1 GAUDI - The Software Architecture and Framework for building LHCb data processing applications Marco Cattaneo, CERN February 2000.
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.
5 May 98 1 Jürgen Knobloch Computing Planning for ATLAS ATLAS Software Week 5 May 1998 Jürgen Knobloch Slides also on:
N ATIONAL E NERGY R ESEARCH S CIENTIFIC C OMPUTING C ENTER 1 ACAT 2000, Fermilab Oct Control States... Control States for the Atlas Software Framework.
A Short Course on Geant4 Simulation Toolkit How to learn more?
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
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
Use of Gaudi in Reconstruction Weidong Li 23/06/2004.
Gaudi Framework Tutorial, April Algorithm Tools: what they are, how to write them, how to use them.
9-13/9/03 Atlas Overview WeekPeter Sherwood 1 Atlfast, Artemis and Atlantis What, Where and How.
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
Mantid Stakeholder Review Nick Draper 01/11/2007.
GDB Meeting - 10 June 2003 ATLAS Offline Software David R. Quarrie Lawrence Berkeley National Laboratory
Marco Cattaneo, 15-Sep OO software plans  Major milestone (presented last June) Fully functional SICB replacement by mid-2000  How to get there?
- 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.
Detector Description in LHCb Detector Description Workshop 13 June 2002 S. Ponce, P. Mato / CERN.
Computing R&D and Milestones LHCb Plenary June 18th, 1998 These slides are on WWW at:
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
GLAST LAT Project Science Tools - 12 June 2002 T. Burnett 1 The Science Analysis Software Development Environment -- for tools too! T. Burnett.
General requirements for BES III offline & EF selection software Weidong Li.
- GMA Athena (24mar03 - CHEP La Jolla, CA) GMA Instrumentation of the Athena Framework using NetLogger Dan Gunter, Wim Lavrijsen,
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
David Adams ATLAS ATLAS Distributed Analysis and proposal for ATLAS-LHCb system David Adams BNL March 22, 2004 ATLAS-LHCb-GANGA Meeting.
SuperB Computing R&D Workshop 9-12 March 2010, IUSS, Ferrara, Italy P. Mato /CERN.
Geant4 Training 2003 A Short Course on Geant4 Simulation Toolkit How to learn more? The full set of lecture notes of this Geant4.
Elements of LCG Architecture Application Architecture Blueprint RTAG 8 th June 2002 P. Mato / CERN.
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
David Adams ATLAS Hybrid Event Store Integration with Athena/StoreGate David Adams BNL March 5, 2002 ATLAS Software Week Event Data Model and Detector.
LHCb Software Week 25/11/99 Gonzalo Gracia Abril 1 r Status of Geant4 in LHCb. r Ideas on how to populate the LHCb Detector Description Data Base (LHCb.
Moving the LHCb Monte Carlo production system to the GRID
GLAST Gaudi Review T. Burnett H.Kelly 10 Sept 02 Gaudi code review
The LHCb Software and Computing NSS/IEEE workshop Ph. Charpentier, CERN B00le.
LHCb Software Tutorial
User Documents and Examples I
Introduction to Gaudi LHCb software tutorial - December 2010.
Marco Cattaneo, CERN February 2000
SW Architecture SG meeting 22 July 1999 P. Mato, CERN
Tag based analysis Ziyan DENG.
LHCb Detector Description Framework Radovan Chytracek CERN Switzerland
Various News From Detector Description
Detector Description in LHCb
What’s new in version 5 of GAUDI
GAUSS - GEANT4 based simulation for LHCb
Raw Event Conversion Service in BOSS framework
Simulation and Physics
Geant4 in HARP V.Ivanchenko For the HARP Collaboration
Major Design Criteria Clear separation between “data” and “algorithms”
What’s new in version 4 of GAUDI
Introduction to Gaudi Schedule: Timing Topic 20 minutes Lecture
Use Of GAUDI framework in Online Environment
Planning next release of GAUDI
LHCb Detector Description Framework Radovan Chytracek CERN Switzerland
Presentation transcript:

CERN Tutorial, February Introduction to Gaudi

2-2 CERN Tutorial, February 2010 LHCb Software Strategy Develop an Architecture (‘blueprint’) and a Framework (real code) to be used at all stages of LHCb data processing HLT, simulation, reconstruction, analysis Avoid fragmentation and duplication of computing efforts Transparent use of third-party components wherever possible Applications are developed by customizing the Framework

2-3 CERN Tutorial, February 2010 What is a Framework? Framework Definition [1,2] An 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. Framework Definition [1,2] An 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

2-4 CERN Tutorial, February 2010 Framework Benefits Common vocabulary, better specifications of what needs to be done, better understanding of the system. Low coupling between concurrent developments. Smooth integration. Organization of the development. Robustness, resilient to change (change-tolerant). Fostering code re-use Common vocabulary, better specifications of what needs to be done, better understanding of the system. Low coupling between concurrent developments. Smooth integration. Organization of the development. Robustness, resilient to change (change-tolerant). Fostering code re-use

2-5 CERN Tutorial, February 2010 Software Organization Frameworks Toolkits ReconstructionSimulation Analysis Foundation Libraries High level triggers One framework for basic services + various specialized frameworks: detector description, visualization, persistency, interactivity, simulation, etc. A series of widely used basic libraries: Boost, GSL, Root etc. Applications built on top of frameworks and implementing the required algorithms.

2-6 CERN Tutorial, February 2010 Gaudi Architecture GAUDI is an architecture and framework for event- processing applications (simulation, reconstruction, etc.) Initially developed for LHCb, it has been adopted and extended by ATLAS and adopted by several other experiments including Fermi Space Telescope, HARP, Minerva, Daya Bay Main Design Choices best illustrated by looking at the Gaudi Object diagram A snapshot of the components in memory, once the job is initialized and running

2-7 CERN Tutorial, February 2010 Gaudi Object Diagram Converter Algorithm Event Data Service Persistency Service Data Files Algorithm Detec. Data Service Persistency Service Data Files Transient Detector Store Message Service JobOptions Service Particle Prop. Service Other Services Histogram Service Persistency Service Data Files Transient Histogram Store Application Manager Converter Event Selector Transient Event Store

2-8 CERN Tutorial, February 2010 Separation between “data” and “algorithms” Converter Algorithm Event Data Service Persistency Service Data Files Algorithm Detec. Data Service Persistency Service Data Files Transient Detector Store Message Service JobOptions Service Particle Prop. Service Other Services Histogram Service Persistency Service Data Files Transient Histogram Store Application Manager Converter Event Selector Transient Event Store

2-9 CERN Tutorial, February 2010 Three basic categories of data characterized by their “lifetime” in the job Converter Algorithm Event Data Service Persistency Service Data Files Algorithm Detec. Data Service Persistency Service Data Files Transient Detector Store Message Service JobOptions Service Particle Prop. Service Other Services Histogram Service Persistency Service Data Files Transient Histogram Store Application Manager Converter Event Selector Transient Event Store

2-10 CERN Tutorial, February 2010 Separation between “transient” and “persistent” representations of the data Converter Algorithm Event Data Service Persistency Service Data Files Algorithm Detec. Data Service Persistency Service Data Files Transient Detector Store Message Service JobOptions Service Particle Prop. Service Other Services Histogram Service Persistency Service Data Files Transient Histogram Store Application Manager Converter Event Selector Transient Event Store

2-11 CERN Tutorial, February 2010 Data store-centered (“blackboard”) architectural style Converter Algorithm Event Data Service Persistency Service Data Files Algorithm Detec. Data Service Persistency Service Data Files Transient Detector Store Message Service JobOptions Service Particle Prop. Service Other Services Histogram Service Persistency Service Data Files Transient Histogram Store Application Manager Converter Event Selector Transient Event Store

2-12 CERN Tutorial, February 2010 “User code” encapsulated in few specific places Converter Algorithm Event Data Service Persistency Service Data Files Algorithm Detec. Data Service Persistency Service Data Files Transient Detector Store Message Service JobOptions Service Particle Prop. Service Other Services Histogram Service Persistency Service Data Files Transient Histogram Store Application Manager Converter Event Selector Transient Event Store

2-13 CERN Tutorial, February 2010 Well defined component “interfaces” Converter Algorithm Event Data Service Persistency Service Data Files Algorithm Detec. Data Service Persistency Service Data Files Transient Detector Store Message Service JobOptions Service Particle Prop. Service Other Services Histogram Service Persistency Service Data Files Transient Histogram Store Application Manager Converter Event Selector Transient Event Store

2-14 CERN Tutorial, February 2010 Gaudi Interface model Concrete Algorithm EventDataSvc IDataProviderSvc IHistogramSvc IMessageSvc IAlgorithm IProperty Obj_B DetectorDataSvc HistogramSvc MessageSvc ToolSvc IToolSvc ApplicationMgr ISvcLocator Obj_A

2-15 CERN Tutorial, February 2010 Laptop Interface Model IDVIConnector IWiFiPort IKeyboard IUSBConnector Each interface is specialized in a domain. Interfaces are independent of concrete implementations. You can mix devices from several constructors. Application built by composing. Standardizing on the interfaces gives us big leverage. IVGAConnector

2-16 CERN Tutorial, February 2010 Electrical plug interface model Don’t define too many interfaces for the same job!

2-17 CERN Tutorial, February 2010 Interfaces in Practice class IMyInterface: virtual public IAlgTool { virtual double doSomething( int a, double b ) = 0; } class IMyInterface: virtual public IAlgTool { virtual double doSomething( int a, double b ) = 0; } IMyInterface.h #include “IMyInterface.h” class MyDoSomethingTool : public GaudiTool, virtual public IMyInterface { inline double doSomething( int a, double b ) { return b * (double)a; } } #include “IMyInterface.h” class MyDoSomethingTool : public GaudiTool, virtual public IMyInterface { inline double doSomething( int a, double b ) { return b * (double)a; } } MyDoSomethingTool.h

2-18 CERN Tutorial, February 2010 #include “IMyInterface.h” ClientAlgorithm::myMethod() { // Declare the interface IMyInterface* myInterface; // Get the interface from somewhere myInterface = tool (“MyDoSomethingTool”); // Use the interface double result = myInterface->doSomething( 10, 100.5); } #include “IMyInterface.h” ClientAlgorithm::myMethod() { // Declare the interface IMyInterface* myInterface; // Get the interface from somewhere myInterface = tool (“MyDoSomethingTool”); // Use the interface double result = myInterface->doSomething( 10, 100.5); } ClientAlgorithm.cpp

2-19 CERN Tutorial, February 2010 Gaudi Component Model Algorithms, Converters, Services and Tools are known as Components –Self contained objects with behaviour –Loaded at run time from component libraries (“plugins”) –Interact with the framework and with each other via Interfaces –Behaviour controlled by Properties (“Job options”) Properties –Control and data parameters for Algorithms, Services and Tools

2-20 CERN Tutorial, February 2010 Algorithm Users write Concrete Algorithms – Most of the tutorial will be devoted to that It is called once per physics event Implements three methods in addition to the constructor and destructor – initialize(), execute(), finalize()

2-21 CERN Tutorial, February 2010 Data Data Object –Atomic data unit (visible and managed by transient data store) –No algorithmic code Transient Data Store –Central service and repository for data objects –Manages data location, life cycle, load on demand, … Data Converter –Provides explicit/implicit conversion from/to persistent data format to/from transient data

2-22 CERN Tutorial, February 2010 Algorithm & Transient Store Algorithm A Algorithm B Algorithm C Transient Event Data Store Data T1 Data T2, T3 Data T2 Data T3, T4 Data T4 Data T5 Data T1 Data T5 Real dataflow Apparent dataflow

2-23 CERN Tutorial, February 2010 Services and Tools – Services –Globally available software components providing framework functionality JobOptions Service, Message Service, Particle Properties Service, Event Data Service, Histogram Service, N-tuple Service, Detector Data Service, Magnetic Field Service, Random Number Service, Chrono Service, (Persistency Services), (User Interface & Visualization Services), (Geant4 Services) – Tools –Globally or locally available components providing algorithmic functionality –Callable many times per event, through specific interface and with arguments IBdlTool, IDistanceCalculator, IHltSummaryTool, IMassVertexFit, IProtoParticleFilter, ISTReadoutTool, ITrackFitter….

2-24 CERN Tutorial, February 2010 Gaudi Product Sheet Current release – v21r7 (Jan 2010) Supported Platforms – Scientific Linux (CERN) 5 & gcc 4.3 – Scientific Linux (CERN) 4 & gcc 3.4 – Windows XP & VisualC – (gcc 4.3 with OSX 10.5) Web address. –

2-25 CERN Tutorial, February 2010 Documentation Gaudi User Guide – A 220 pages document targeted to end-users FAQ: Mixture of Gaudi and LHCb specific topics – C++ Documentation (generated from code) – Doxygen: –Uses special comments in code, e.g. Tutorial solutions – – Lbglimpse: indexed search within released code –Lbglimpse Lbglimpse IJobOptionsSvc Gaudi v21r7 Self help mailing lists: