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

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

C Language.
P5, M1, D1.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2004 Go4 v2.8 Analysis Design.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
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.
JCE A Java-based Commissioning Environment tool Hiroyuki Sako, JAEA Hiroshi Ikeda, Visible Information Center Inc. SAD Workshop.
Native Support for Web Services  Native Web services access  Enables cross platform interoperability  Reduces middle-tier dependency (no IIS)  Simplifies.
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.
Form printing with SAP Smart Forms Instructor: Dylan Liu
Imperial College Tracker Slow Control & Monitoring.
Business Unit or Product Name © 2007 IBM Corporation Introduction of Autotest Qing Lin.
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.
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.
DBSQL 14-1 Copyright © Genetic Computer School 2009 Chapter 14 Microsoft SQL Server.
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.
Update on the new reconstruction software F. Noferini E. Fermi center INFN CNAF EEE Analysis Meeting - 14/09/20151.
Oracle 10g Database Administrator: Implementation and Administration Chapter 2 Tools and Architecture.
14 February 2007Fabrizio Cei1 INFN and University of Pisa PSI Review Meeting PSI, 14 February 2007 Status of MEG Software.
Copyright © 2015 McGraw-Hill Education. All rights reserved. No reproduction or distribution without the prior written consent of McGraw-Hill Education.
The european ITM Task Force data structure F. Imbeaux.
5 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
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.
Update on the new reconstruction software F. Noferini E. Fermi center INFN CNAF EEE Analysis Meeting - 15/06/20151.
C++ Programming Basic Learning Prepared By The Smartpath Information systems
Introduction CMS database workshop 23 rd to 25 th of February 2004 Frank Glege.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
Java Beans. Definitions A reusable software component that can be manipulated visually in a ‘builder tool’. (from JavaBean Specification) The JavaBeans.
Tracker Visualization Tool: integration in ORCA Maria S. Mennea, Giuseppe Zito University & INFN Bari, Italy Tracker b-tau Cosmic Challenge preparation.
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.
Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Root based Object oriented Midas Extension Presented by Matthias.
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.
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.
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.
The MEG Offline Project General Architecture Offline Organization Responsibilities Milestones PSI 2/7/2004Corrado Gatto INFN.
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
MINIX Presented by: Clinton Morse, Joseph Paetz, Theresa Sullivan, and Angela Volk.
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.
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.
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.
Talk. Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Wednesday Seminar Presented by Matthias Schneebeli a universally.
May 18th, 2003 RT2003, Montreal1/100 MIDAS Short Course Stefan Ritt (Paul Scherrer Institute, Switzerland) Pierre André Amaudruz (TRIUMF, Canada)
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
1 GlueX Software Oct. 21, 2004 D. Lawrence, JLab.
David Lawrence JLab May 11, /11/101Reconstruction Framework -- GlueX Collab. meeting -- D. Lawrence.
HYDRA Framework. Setup of software environment Setup of software environment Using the documentation Using the documentation How to compile a program.
Go4 v2.2 Status & Overview CHEP 2003
CSC 222: Object-Oriented Programming
Operating System.
Presented by Matthias Schneebeli
ROME Root based Object oriented Midas Extension
Talk.
CSCI N317 Computation for Scientific Applications Unit 1 – 1 MATLAB
Presentation transcript:

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 Objects inside ROME Projects o ROMEBuilder o Data Base 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 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 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 : only written, never read Used to write data on files Histograms Graphical Data Objects : only written Belong to one Task Steering Parameters Task steering Framework 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 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. ROME classes XML File ROME classes Exp. classes ROMEBuilder Executable Documentation Project ROME Environment

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 XML Project Definition File Folder definitions … Task definitions … Tree definitions … Steering Parameters definitions … Midas Bank definitions … Folder Classes Analyzer and IO Class Task Classes

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Object Arrays [Field Type 1] Get[Folder Name]ObjectAt(int index)->Get[Field 1](); void Get[Folder Name]ObjectAt(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() Get[Histo Name]HandleAt(int index) Code Tasks Histogram Arrays Single Histograms

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Trees XML File Bool_t is[Tree Name]FillEvent() void Set[Tree Name]FillEvent(true/false) Code

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

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> XYZSample events processed Task 'ReadMidas' : run time = 00:00:00 Task 'ADCCalib' : run time = 00:00:02 Windows

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli The MEG Experiment

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli MEG Experiment CMDCTC CMScaler Scaler CMHV HV Environment Env Trigger MEG CMHit Hit Hit Tree CMRefCMPMTData Ref PMT Data Tree PMT Data CMPMTInfo Info Data base CMCalib Calib Data base

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli Referencies CMHit Hit CMPMTInfo Info CMCalib Calib CMScaler Scaler CMHV HV Environment Env Trigger MEG PMT Data CMPMTData ADC0 ADC1 TDC Info CMRef Scaler HV Env Trigger

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

Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Classes ROMEAnalyzer o Main Class o Provides general steering methods ROMEEventLoop o Implements the event loop ROMETask ROMETree ROMERunTable