Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / 16.9.2004 / Matthias Schneebeli ROME Root based Object oriented Midas Extension Presented by Matthias.

Slides:



Advertisements
Similar presentations
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Introduction to Rails.
Advertisements

H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2004 Go4 v2.8 Analysis Design.
The Event as an Object-Relational Database: Avoiding the Dependency Nightmare Christopher D. Jones Cornell University, USA.
C++ fundamentals.
Copyright © 2001 by Wiley. All rights reserved. Chapter 1: Introduction to Programming and Visual Basic Computer Operations What is Programming? OOED Programming.
New Features of APV-SRS-LabVIEW Data Acquisition Program Eraldo Oliveri on behalf of Riccardo de Asmundis INFN Napoli [Certified LabVIEW Developer] NYC,
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
CLEO’s User Centric Data Access System Christopher D. Jones Cornell University.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Java Beans.
Spreadsheet-Based Decision Support Systems Chapter 22:
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.
Form printing with SAP Smart Forms Instructor: Dylan Liu
Imperial College Tracker Slow Control & Monitoring.
Winrunner Usage - Best Practices S.A.Christopher.
Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Root based Object oriented Midas Extension Presented by Matthias.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Softies Meeting Presented by Matthias Schneebeli.
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.
Guide to Linux Installation and Administration, 2e1 Chapter 7 The Role of the System Administrator.
CSE 219 Computer Science III Program Design Principles.
Updating JUPITER framework using XML interface Kobe University Susumu Kishimoto.
Update on the new reconstruction software F. Noferini E. Fermi center INFN CNAF EEE Analysis Meeting - 14/09/20151.
FlexElink Winter presentation 26 February 2002 Flexible linking (and formatting) management software Hector Sanchez Universitat Jaume I Ing. Informatica.
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.
C++ Programming Basic Learning Prepared By The Smartpath Information systems
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
News on GEM Readout with the SRS, DATE & AMORE
Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME CHEP 2006 Presented by Matthias Schneebeli a universally applicable.
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.
SoLID simulation with GEMC Zhiwen Zhao 2015/03/26.
Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Collaboration Meeting in Pisa Presented by Matthias Schneebeli.
Source Controller software Ianos Schmidt The University of Iowa.
Development of the CMS Databases and Interfaces for CMS Experiment: Current Status and Future Plans D.A Oleinik, A.Sh. Petrosyan, R.N.Semenov, I.A. Filozova,
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.
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).
October Test Beam DAQ. Framework sketch Only DAQs subprograms works during spills Each subprogram produces an output each spill Each dependant subprogram.
Chapter 4 Software. Introduction Program: is a set of sequence instructions that tell the computer what to do. Software: is a collection of programs,
The MEG Offline Project General Architecture Offline Organization Responsibilities Milestones PSI 2/7/2004Corrado Gatto INFN.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Go4 Workshop J.Adamczewski-Musch, S.Linev Go4 advanced features.
Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Softies Meeting Presented by Matthias Schneebeli.
XML scheme for configuration data V.Černý on behalf of the Bratislava group Initiated by Marco’s call:...a software layer for implementing the handling.
LonWorks Introduction Hwayoung Chae.
The Database Project a starting work by Arnauld Albert, Cristiano Bozza.
Analysis framework plans A.Gheata Offline week 13 July 2011.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
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.
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
Solvency II Tripartite template V2 and V3 Presentation of the conversion tools proposed by FundsXML France.
HYDRA Framework. Setup of software environment Setup of software environment Using the documentation Using the documentation How to compile a program.
IS 350 Course Introduction. Slide 2 Objectives Identify the steps performed in the software development life cycle Describe selected tools used to design.
CSC 222: Object-Oriented Programming
Database System Concepts and Architecture
Presented by Matthias Schneebeli
ROME Root based Object oriented Midas Extension
Functions CIS 40 – Introduction to Programming in Python
Talk.
Smart Integration Express
CSCI N317 Computation for Scientific Applications Unit 1 – 1 MATLAB
Presentation transcript:

Talk

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Root based Object oriented Midas Extension Presented by Matthias Schneebeli

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Index Introduction to the ROME Environment o Requirements to a 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. User friendly The user should write as less code possible (only physics).

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 an experiment dependent part of the framework Can be summarized in a framework definition file. the physical calculations Have to be written by the physicist

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Modularity ROME is based on Tasks. Tasks are root objects, which are executed by the framework. The interface to the tasks are Folders. Tasks can be combined arbitrarily, as long as the interface matches. For example: One can execute different calibration tasks without changing the framework

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Object Oriented ROME is based on Objects. Values, which belong together, are stored in the same object Objects reflect real objects, like a sub-detector (e.g. a PMT) Objects are easier to use Objects support the modularity

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ADC Bank Value 1 Value 2... DMND Bank Value 1 Value 2... From Banks to Objects PMT Folder ADC TDC X x PMT Folder ADC TDC X x PMT Folder ADC TDC HV demand HV measured HV current Scaler Readout values of a sub-detectors Sub-detector with all it’s readout values TDC Bank Value 1 Value 2... SCLR Bank Value 1 Value 2... MSRD Bank Value 1 Value 2... CRNT Bank Value 1 Value 2...

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Objects Folders Objects, where data is stored in Stores the data of one detector (or sub detector) component Hierarchically arranged Data inside of Folders is structured Tasks Tasks are objects, which provides actions They make calculations Store and read data in folders Fill trees and histograms Hierarchically arranged. Task also own histograms Trees Data Objects (contains folder content) Used to write data on files Histograms Graphical Data Objects : only written Belong to one Task Steering Parameters Framework steering Task steering

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

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ADC counts TDC header chn./value Pedestal subtraction Counts -> Charge Decoding (chn./crate/… -> number) Offset correction Mapping ADC/TDC -> counter Raw data *.root Decoded data *.root Object data *.root Optional analysis of decoded data High level analysis Task Banks ROME folder Proposed Analysis Structure ADC charge TDC time Hit charge time HV scaler Hit charge time HV scaler Hit charge time HV scaler

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Advantages of Proposed Analysis Structure High level analysis accesses data in objects –no knowledge of cable mapping or ADC/TDC decoding necessary ADC/TDC decoding is decoupled from mapping and high level analysis –If ADC/TDC module is changed, only decoding task needs to be changed –If counter is reconnected to different ADC/TDC, only mapping task needs to be changed Data can be stored/retrieved between different tasks in ROOT format –Analyze raw data –Analyze decoded data –Analyze object data

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli User Friendly Experiment dependent part of the framework can be summarized in a XML file. The XML file is then translated by the romebuilder into c++ code The user adds only physical calculation to predefined event methods

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 Object Arrays [Field Type 1] Get[Folder Name]At(int index)->Get[Field 1](); void Get[Folder Name]At(int index)->Set[Field 1]([Field Type 1] value); Single Objects [Field Type 1] Get[Folder Name]Object()->Get[Field 1](); void Get[Folder Name]Object()->Set[Field 1]([Field Type 1] value); Folders XML File Code

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli 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](double value,double weight) Draw[Histo Name]() Get[Histo Name]Handle() Fill[Histo Name]At(int index,double value,double weight) Draw[Histo Name]At(int index) Get[Histo Name]HandleAt(int index) Code Tasks Histogram Arrays Single Histograms

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli XML Editors XMLSpy -Table Format -Commercial Software (50 Euro) -Only for Windows EditiX -Nice Tree Format -Commercial Software (30 Euro) -Windows, Linux, Mac ROME works with any Editor

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Benefit of a generated Framework Consistent Program Structure o All classes look the same o Better readability Less Handwritten Code o Code of a class is written once (in the builder) and reproduced many times Easier Maintenance o Modification are done once (in the builder) and then available in the whole framework

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 –v [-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 XML-File for steering the program 100 XML File

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME vs. Midas Analyzer ROMEMidas Analyzer Banks -> Arrays or structures Folders -> Objects (Classes) odbedit> make -> experim.h containing data structure romebuilder -> classes containing data structure and access methods Midas required for online and offlineMidas not needed for offline Calibration and configuration data in ODBCalibration and configuration data in mySQL, XML,... User code added to BOR,EVENT,EOR functions User code added to BeginOfRun, Event, EndOfRun functions Input format : midasInput format : midas, root Output format : midas, rootOutput format : root

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

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

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli XML Configuration File I sample.xml

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli XML Configuration File II sample.xml

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Read Midas Task void XYZTReadMidas::Event() { for (int i=0;i<257;i++) { int iadc = fAnalyzer->GetPMTInfoAt(i)->GetADCID(); Float_t adcValue = fAnalyzer->GetADC0BankAt(iadc); fAnalyzer->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<257;i++) { float pmtData = fAnalyzer->GetPMTDataAt(i)->GetADC(); float pedestal = fAnalyzer->GetCalibAt(i)->GetADCPedestal(); FillADCHistoAt(i,pmtData - pedestal); } void XYZTADCCalib::EndOfRun() { for (int i=0;i<257;i++) { DrawADCHistoAt(i); } XYZTADCCalib.cpp

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Run Program C:\Sample> ROMEBuilder.exe sample.xml –v link messages C:\Sample> XYZ events processed Task 'ReadMidas' : run time = 00:00:00 Task 'ADCCalib' : run time = 00:00:02 Windows

Additional Slides

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Features Tool for Event based Data Analysis Fully Object Oriented Root based Full connection to the Midas Environment Online and Offline Based on Tasks and Folders for an easy Data and Program Structure Experiment independent Base Classes Experiment dependent Classes are generated out of simple XML-Files The Users write only experiment specific code (physics) Administrative code is implemented in the generated code Self Documenting Code Self Linking Project

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME classes Tasks Classes in the Generated Project The generated classes are : Task classes o Implement 5 user methods : Init(), BeginOfRun(), Event(), EndOfRun(), Terminate(). Folder classes o Define how the data is stored. Analyzer class o Main class. The Analyzer provides all user-methods. IO class o The IO handles all input and output. Folders ROMEEventLoop Analyzer Folders Steering fAnalyzer IO Trees Data base

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Trees XML File

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli General Steering Parameters XML File [Type 1] GetGSP()->Get[Field 1]() [Type 2] GetGSP()->Get[SubClass]()->Get[Field 2]() Code XML File

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Midas Banks XML File [Type 1] Get[Bank 1]BankAt(int index) Int Get[Bank 1]BankEntries() [Structure Name]* Get[Bank 2]BankAt(int index) Int Get[Bank 2]BankEntries() e.g. : [Type 2] Get[Bank 2]BankAt(int index)->[Field 2] Code Simple BanksStructured Banks

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Comparing to Midas ASUM - Sum - Average In the Online Data Base : In the XML-File : Midas Library is not used for offline analysis

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli class [Experiment Shortcut][Folder Name] : public TObject { protected: [Field Type 1] f[Field Name 1]; // [Comment 1] public: [Experiment Shortcut][Folder Name]([Field Type 1] value1=[Init Value 1] ) { f[Field Name 1] = value1; }; [Field Type 1] Get[Field Name 1]() { return f[Field Name 1]; }; void Set[Field Name 1]([Field Type 1] value1) { f[Field Name 1] = value1; }; ClassDef([Experiment Shortcut][Folder Name],[Version Number]) }; Code Generated Code XML File

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Data base SQL Data base see Ryu’s presentation XML data base If no network connection available

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Read and Write Data Input Data o Root files o Midas files o Online buffer o Data base Output Data o Root files o Database Read by the Framework. Data accessed via Midas Bank access methods. Read and filled to the Folder by the Framework Written by the Framework, can be flagged Written with : fAnalyzer->Write[Folder]DataBase(this);

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Summary Structure of the framework is defined in XML-files All code is generated, except the physical calculations The framework provides access functions for the user SQL Data base XML Configuration file