Paul Scherrer Institut 5232 Villigen PSI ROME / 1.12.2004 / Matthias Schneebeli ROME Collaboration Meeting in Pisa Presented by Matthias Schneebeli.

Slides:



Advertisements
Similar presentations
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2004 Go4 v2.8 Analysis Design.
Advertisements

Guide To UNIX Using Linux Third Edition
C++ fundamentals.
Copyright © 2001 by Wiley. All rights reserved. Chapter 1: Introduction to Programming and Visual Basic Computer Operations What is Programming? OOED Programming.
Types of software. Sonam Dema..
New Features of APV-SRS-LabVIEW Data Acquisition Program Eraldo Oliveri on behalf of Riccardo de Asmundis INFN Napoli [Certified LabVIEW Developer] NYC,
Python quick start guide
CLEO’s User Centric Data Access System Christopher D. Jones Cornell University.
JCE A Java-based Commissioning Environment tool Hiroyuki Sako, JAEA Hiroshi Ikeda, Visible Information Center Inc. SAD Workshop.
AIT 616 Fall 2002 PHP. AIT 616 Fall 2002 PHP  Special scripting language used to dynamically generate web documents  Open source – Free!!!  Performs.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
UNIX SVR4 COSC513 Zhaohui Chen Jiefei Huang. UNIX SVR4 UNIX system V release 4 is a major new release of the UNIX operating system, developed by AT&T.
SVX Software Overview Sasha Lebedev VTX meeting 09/07/ SVX Software web page:
Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Root based Object oriented Midas Extension Presented by Matthias.
Shuei MEG review meeting, 2 July MEG Software Status MEG Software Group Framework Large Prototype software updates Database ROME Monte Carlo.
Introduction to Hall-D Software February 27, 2009 David Lawrence - JLab.
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
Web Services Week 2 Aims: Getting started with creating simple C# applications within Visual Studio.NET Objectives: –An introduction to the syntax of C#.NET.
Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Root based Object oriented Midas Extension Presented by Matthias.
An Introduction to Java Chapter 11 Object-Oriented Application Development: Part I.
Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Softies Meeting Presented by Matthias Schneebeli.
Basics of Java IMPORTANT: Read Chap 1-6 of How to think like a… Lecture 3.
As of 28 Juni 2005Getting Starged with GEM - Shuei Yamada 1 Getting Started with GEM Shuei YAMADA ICEPP, University of Tokyo What is GEM? Before you start.
Update on the new reconstruction software F. Noferini E. Fermi center INFN CNAF EEE Analysis Meeting - 14/09/20151.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME CHEP 2006 Presented by Matthias Schneebeli a universally applicable.
1 Control Software (CAT) Introduction USB Interface implementation Calorimeter Electronics Upgrade Meeting Frédéric Machefert Wednesday 5 th May, 2010.
CMS pixel data quality monitoring Petra Merkel, Purdue University For the CMS Pixel DQM Group Vertex 2008, Sweden.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
5/2/  Online  Offline 5/2/20072  Online  Raw data : within the DAQ monitoring framework  Reconstructed data : with the HLT monitoring framework.
OCR GCSE Computing © Hodder Education 2013 Slide 1 OCR GCSE Computing Python programming 1: Introduction.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
Chapter 3 Top-Down Design with Functions Part II J. H. Wang ( 王正豪 ), Ph. D. Assistant Professor Dept. Computer Science and Information Engineering National.
Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME CHEP 2006 Presented by Matthias Schneebeli a universally applicable.
David Adams ATLAS DIAL: Distributed Interactive Analysis of Large datasets David Adams BNL August 5, 2002 BNL OMEGA talk.
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
Paul Scherrer Institut 5232 Villigen PSI CHEP 2006 in Mumbay / / Matthias Schneebeli ROME CHEP 2006 Presented by Matthias Schneebeli a universally.
Talk. Paul Scherrer Institut 5232 Villigen PSI CHEP 2006 in Mumbay / / Matthias Schneebeli ROME CHEP 2006 Presented by Matthias Schneebeli a.
M1G Introduction to Programming 2 5. Completing the program.
Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Root based Object oriented Midas Extension Presented by Matthias.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev ROOT 2002 GSI Online Offline Object Oriented Go4.
DØ Offline Reconstruction and Analysis Control Framework J.Kowalkowski, H.Greenlee, Q.Li, S.Protopopescu, G.Watts, V.White, J.Yu.
Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Wednesday Seminar Presented by Matthias Schneebeli a universally.
SAP DEVELOPMENT BASICS Bohuslav Tesar. TRAINING OVERVIEW Amazing life of ABAP developer ;) SAP introduction ABAP basics ABAP Reporting.
G4MICE’s DataQualityCheck application G4MICE’s DataQualityCheck application: Preliminary thoughts Mark Rayner 23 rd February 2010.
Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Root based Object oriented Midas Extension Presented by Matthias.
TDAQ Experience in the BNL Liquid Argon Calorimeter Test Facility Denis Oliveira Damazio (BNL), George Redlinger (BNL).
Overview of Previous Lesson(s) Over View 3 Program.
October Test Beam DAQ. Framework sketch Only DAQs subprograms works during spills Each subprogram produces an output each spill Each dependant subprogram.
The MEG Offline Project General Architecture Offline Organization Responsibilities Milestones PSI 2/7/2004Corrado Gatto INFN.
Quality assurance for TPC. Quality assurance ● Process: ● Detect the problems ● Define, what is the problem ● What do we expect? ● Defined in the TDR.
1 G4UIRoot Isidro González ALICE ROOT /10/2002.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Softies Meeting Presented by Matthias Schneebeli.
AliRoot Classes for access to Calibration and Alignment objects Magali Gruwé CERN PH/AIP ALICE Offline Meeting February 17 th 2005 To be presented to detector.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Wednesday Seminar Presented by Matthias Schneebeli a universally.
Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Root based Object oriented Midas Extension Presented by Matthias.
Solvency II Tripartite template V2 and V3 Presentation of the conversion tools proposed by FundsXML France.
1 GlueX Software Oct. 21, 2004 D. Lawrence, JLab.
HYDRA Framework. Setup of software environment Setup of software environment Using the documentation Using the documentation How to compile a program.
DANA David Lawrence Oct. 21, D. Lawrence, JLab GlueX Software Workshop Oct Outline Requirements Philosophy Overview of Features Open Questions.
Go4 v2.2 Status & Overview CHEP 2003
Presented by Matthias Schneebeli
Key Ideas from day 1 slides
ROME Root based Object oriented Midas Extension
Operating Systems Overview
Talk.
ESRM 250/CFR 520 Autumn 2009 Phil Hurvitz
Programming Logic and Design Eighth Edition
Presentation transcript:

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Collaboration Meeting in Pisa Presented by Matthias Schneebeli

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Index Introduction to the ROME Environment o Requirements on the Framework o Objects inside ROME Projects o Structure of Analysis with ROME o ROMEBuilder o Installation Sample of a ROME generated framework

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Introduction to ROME

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Framework Requirements Universal The framework should be usable by as many experiments as possible. Modular Possibility to exchange calculation modules without changing the program. Object oriented Program should deal with objects, not with single values. Easy to use The user should write as less and as simple code as possible.

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Universality ROME is clearly separated into an experiment independent part of the framework Works for all event based experiments e.g. Event loop, IO. an experiment dependent part of the framework Summarized in a framework definition file. e.g. Data structure, program structure the calculation code Has to be written by the experimenter

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Modularity ROME is based on Tasks and Folders. Tasks are independent calculation modules. The interface to the tasks are folders. Tasks can be combined or exchanged arbitrarily, as long as the interface matches. E.g. one can execute different calibration tasks without re-linking. A1A2B1A3B2 A4  Possible even during runtime

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Objects Folders Data objects in memory Tasks Calculation objects Trees Data objects saved to disc Histograms Graphical data objects Steering Parameters Framework steering Midas Banks Midas raw data objects ROME Objects : Only 6 different objects. Only access methods are visible to the user Access methods have same naming conventions

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Interconnections Folders Tasks Fill Read Trees Fill Flag Histograms Fill Disk (Output) Write (ROOT) Disk (Input) Read (any Format)

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Easy to use User can summarize the experiment dependent part of the framework in a XML file. The XML file is then translated by the romebuilder into c++ code. The user adds only calculation code to predefined event methods of the tasks. Calculation code is ‘c-code’.

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli The ROME Environment Experiment independent ‘ROME’-Classes o Base classes for the generated, experiment dependent classes. ROMEBuilder o Builds all experiment dependent classes out of simple XML Files. o XML files describe Tasks, Folders, Trees, Histos, Steering Parameters and Midas Banks. o Links the generated project. o Documents the generated project. o Like the MAKE command in ODBEdit ROME classes XML File ROME classes Exp. classes ROMEBuilder Executable Documentation Project ROME Environment

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli XML Project Definition File Folder definitions … Task definitions … Tree definitions … Steering Parameters definitions … Midas Bank definitions … Folder Classes Analyzer Class Task Classes

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Single Folders [Field Type 1] Get[Folder Name]()->Get[Field Name 1](); void Get[Folder Name]()->Set[Field Name 1]([Field Type 1] value); Folder Arrays [Field Type 1] Get[Folder Name]At(int index)->Get[Field Name 1](); void Get[Folder Name]At(int index)->Set[Field Name 1]([Field Type 1] value); Folders Folder Name Array Size yes/no Field Name 1 Field Type 1 Field Name 2 Field Type 2 XML File Code

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Task Name Histo Name 1 XML File void [Experiment Shortcut]T[Task Name]::Init() { } void [Experiment Shortcut]T[Task Name]::BeginOfRun() { } void [Experiment Shortcut]T[Task Name]::Event() { } void [Experiment Shortcut]T[Task Name]::EndOfRun() { } void [Experiment Shortcut]T[Task Name]::Terminate() { } Fill[Histo Name 1](double value,double weight) Draw[Histo Name 1]() Get[Histo Name 1]Handle() Fill[Histo Name 1]At(int index,double value,double weight) Draw[Histo Name 1]At(int index) Get[Histo Name 1]HandleAt(int index) Code Tasks Histogram Arrays Single Histograms

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Installation Installation of ROOT Installation of LIBXML2 (only Linux) Installation of MIDAS (only online, Linux) [~]$ setenv ROMESYS ~/ROME [~]$ setenv PATH $ROMESYS/bin:$PATH [~]$ cvs checkout ROME [~/ROME]$ make [../MyExp]$ romebuilder myExp.xml [-o Output Path] [~/MyExp]$ progname Linux CVS checkout of ROME Define environment variable ROMESYS Define environment variable ‘Path’ C:\> set ROMESYS=C:/ROME C:\> set Path=%Path%;%ROMESYS%/bin C:\> cvs checkout ROME C:\ROME> nmake –f Makefile.win C:\MyExp> ROMEBuilder.exe myExp.xml –v [–o Output Path] C:\MyExp> progname Windows

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Configuration File 1001, offline midas Task 1 yes/no Tree1 yes/no Value 123 XML File

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Summary ROME is a framework generator. Only 6 different objects with up to 6 access methods. All classes are generated, only event methods have to be written. No knowledge about object oriented programming is needed. Folders and Tasks support a very clear program structure. Modularity : tasks can be exchanged even at runtime.

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Sample Experiment

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Sample Overview 2 Folders o PMTData o Calib(Data base) 2 Tasks o ReadMidas o ADCCalib 1 Midas Bank o ADC0

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli XML Definition File I PMTData 228 ADC Float_t PMTCalib 228 true ADCPedestal Float_t /RunCatalog(id=#)/LPCalib[0,227]/pedestal sample.xml

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli XML Definition File II ReadMidas ADCCalib ADCHisto TH1F ADC0 unsigned short sample.xml

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Read Midas Task void XYZTReadMidas::Event() { for (int i=0;i<228;i++) { Float_t adcValue = gAnalyzer->GetADC0BankAt(i); gAnalyzer->GetPMTDataAt(i)->SetADC(adcValue); } XYZTReadMidas.cpp

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ADC Calibration Task void XYZTADCCalib::Event() { for (int i=0;i<228;i++) { float pmtData = gAnalyzer->GetPMTDataAt(i)->GetADC(); float pedestal = gAnalyzer->GetCalibAt(i)->GetADCPedestal(); FillADCHistoAt(i,pmtData - pedestal); } void XYZTADCCalib::EndOfRun() { for (int i=0;i<228;i++) { DrawADCHistoAt(i); } XYZTADCCalib.cpp

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Run Program C:\Sample> ROMEBuilder.exe sample.xml link messages C:\Sample> XYZ q : Terminates the program e : Ends the program s : Stops the program r : Restarts the program c : Continuous Analysis o : Step by step Analysis g : Run until event # i : Root interpreter root [0] TBrowser t root [1] cout GetPMTData()->GetADC() Windows

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Comparison of AliROOT and ROME

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME vs. AliROOT ROMEAliROOT Usable for MEG ?Used by the ALICE collaboration. (Maybe also others) Used for the LP. Midas Analyzer used for PiBeta. Needed modifications ?Classes have to be modified to match the data structure. Calculation code has to be rewritten. Classes holding data structure have to be generated. Calculation code has to be written. Requirements on the user ?Good knowledge of C++ and object oriented programming. Knowledge of C, no knowledge about OO- programming needed. Question

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Modifications AliROOTFeatures Control ClassesLittle modifications.No changes. Detector Classes (Geometry, clustering, reconstruction, …) Have to be completely rewritten. Classes can only be used as templates. Data structure will be generated. Calculations have to be written. Virtual Monte CarloLittle changes.Can be added easily (ROOT feature). MonitorNeeds modifications.LP monitor. ROME’s online monitor can be used offline! Data baseNeeds modifications.No changes. ROME  Info about AliROOT form Federico Carminati (AliROOT Offline Project Leader)

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Differences between ROME and AliROOT ROMEAliROOT Objects are classes containing calculations and data. Objects are composite items. Calculations and data are strictly separated. C D AB A1A2B1A3B2 A’ A4  Has to be relinked  Tasks have a clearly defined interface  The interfaces are automatically documented by the romebuilder  Possible even during runtime

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Monitors AliROOT LPMonitor

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Summary Both frameworks need about the same amount of work to adopt for MEG. The only question is, which framework is better suited for the MEG collaboration? oLittle experienced programmers can use ROME. oROME is easier to use. oROME generates a framework.