Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) ROOT and ROOT4STAR framework V. Fine or Software for “C++ speaking” people.

Slides:



Advertisements
Similar presentations
Introduction to Visual Basic.NET Uploaded By: M.Sheraz anjum.
Advertisements

Why ROOT?. ROOT ROOT: is an object_oriented frame work aimed at solving the data analysis challenges of high energy physics Object _oriented: by encapsulation,
Blueprint RTAGs1 Coherent Software Framework a Proposal LCG meeting CERN- 11 June Ren é Brun ftp://root.cern.ch/root/blueprint.ppt.
Pavel Nevski STAR simulations and ROOT GSTAR root interface.
O. Stézowski IPN Lyon AGATA Week September 2003 Legnaro Data Analysis – Team #3 ROOT as a framework for AGATA.
Object-Oriented Databases v OO systems associated with – graphical user interface (GUI) – powerful modeling techniques – advanced data management capabilities.
Two main requirements: 1. Implementation Inspection policies (scheduling algorithms) that will extand the current AutoSched software : Taking to account.
Object Oriented System Development with VB .NET
File Systems and Databases
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Cross-platform approach to create the interactive application based on ROOT and Qt GUI libraries Rene Brun (CERN) Valeri Fine (BNL,
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Introduction To System Analysis and design
JCE A Java-based Commissioning Environment tool Hiroyuki Sako, JAEA Hiroshi Ikeda, Visible Information Center Inc. SAD Workshop.
Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1.
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
Microsoft Visual Basic 2005: Reloaded Second Edition
STAR C OMPUTING Maker and I/O Model in STAR Victor Perevoztchikov.
Introduction to Object-oriented programming and software development Lecture 1.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
An Introduction to Software Architecture
IE 411/511: Visual Programming for Industrial Applications
SOFTWARE REUSE 28 March 2013 William W. McMillan.
Prepared by: Sanaz Helmi Hoda Akbari Zahra Ahmadi Sharif University of Tech. Summer 2006 An Introduction to.
Chapter 9 Moving to Design
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Learning to Use Root for STAR Gene Van Buren (UCLA) for the STAR Collaboration Accessing STAR Data Programming for STAR (Makers) Star => Computing => Tutorials.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
5 May 98 1 Jürgen Knobloch Computing Planning for ATLAS ATLAS Software Week 5 May 1998 Jürgen Knobloch Slides also on:
Java Applets. 2 Introduction to Java Applet Programs Applications are ___________________ programs –executed with Java interpreter Applet is a small program.
5 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
MINER A Software The Goals Software being developed have to be portable maintainable over the expected lifetime of the experiment extensible accessible.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
Acat OctoberRene Brun1 Future of Analysis Environments Personal views Rene Brun CERN.
ROOT Tutorials - Session 51 ROOT Tutorials – Session 5 Dictionary Generation, rootcint, Simple I/O, Hands-on Fons Rademakers.
Windows Programming, C.-S. Shieh, KUAS EC, Chapter 0 Overview.
GLAST LAT Offline SoftwareCore review, Jan. 17, 2001 Review of the “Core” software: Introduction Environment: THB, Thomas, Ian, Heather Geometry: Joanne.
ANU comp2110 Software Design lecture 8 COMP2110 Software Design in 2004 lecture 8 Software Architecture 1 of 2 (design, lecture 3 of 6) Goal of this small.
V.Fine ALICE-STAR Joint meeting April, 9, 2000 The STAR offline framework* V. Fine *) See also:
V.Fine for STAR collaboration The STAR offline framework and 3D visualization V. Fine, Y. Fisyak, V. Perevoztchikov, T.Wenaus.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Jerome Lauret – ROOT Workshop 2005, CERN, CH ROOT4STAR: a ROOT based framework for user analysis and data mining J é r ô me Lauret -
General requirements for BES III offline & EF selection software Weidong Li.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
CINT & Reflex – The Future CINT’s Future Layout Reflex API Work In Progress: Use Reflex to store dictionary data Smaller memory footprint First step to.
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
S.Linev: Go4 - J.Adamczewski, H.G.Essel, S.Linev ROOT 2005 New development in Go4.
V.Fine for STAR collaboration The STAR offline framework V. Fine, Y. Fisyak, V. Perevoztchikov, T.Wenaus.
The V-Atlas Event Visualization Program J. Boudreau, L. Hines, V. Tsulaia University of Pittsburgh A. Abdesselam University of Oxford T. Cornelissen NIKHEF.
CHEP06, Mumbai, India February 2006 General Status of ROOT GUI Ilka Antcheva, Bertrand Bellenot, René Brun, Valeriy Onuchin *, Fons Rademakers CERN,
StEvent I/O Model And Writing a Maker Or How to Add a New Detector Akio Ogawa BNL 2003 Nov Dubna.
1 G4UIRoot Isidro González ALICE ROOT /10/2002.
Go4 Workshop J.Adamczewski-Musch, S.Linev Go4 advanced features.
Follow-up to SFT Review (2009/2010) Priorities and Organization for 2011 and 2012.
Pavel Nevski STAR simulations GSTAR framework OO geometry/event model NOVA components.
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.
Basic Characteristics of Object-Oriented Systems
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Elements of LCG Architecture Application Architecture Blueprint RTAG 8 th June 2002 P. Mato / CERN.
LCG AA Internal Review 30 March 2005 ROOT Graphical User Interface Ilka Antcheva, Bertrand Bellenot, Valeri Fine, Valeriy Onuchin, Fons Rademakers.
MAITRAYEE MUKERJI Object Oriented Programming in C++
HYDRA Framework. Setup of software environment Setup of software environment Using the documentation Using the documentation How to compile a program.
A C++ generic model for the GLAST Geometric Description
Distributed object monitoring for ROOT analyses with Go4 v.3
Hierarchical Architecture
An Introduction to Software Architecture
Database System Concepts and Architecture
ROOT Support and Developments at FNAL
V.Fine, P.Nevski, BNL GSTAR framework OO geometry model event access
Presentation transcript:

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) ROOT and ROOT4STAR framework V. Fine or Software for “C++ speaking” people

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) OO approach C++ adoption left us alone with a language that has no built-n tools to provide I/O and debug the code Encapsulated data access via class methods (no direct access to bare data) The hidden methods – access via “virtual method” / “abstract class” An it is a tool for community that collects data and WRITE the code to save and analyze it. Object-Oriented (OO) programming had been identified and adopted by HEP communities as an efficient and powerful approach to developing capable, robust, maintainable software in this environment.

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) C++ interpreter CINT The Software Tower of Babel Programming language Data-definition language Data-base query language (SQL) Script language Standard program library language Problem-oriented “user-friendly packages friendly offers its own very easy to use very friendly language that is very easy to learn” The only problem how to express what one wants in this language.

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) In 1994, fundamental divergence of opinions in Application Software group in IT. The PAW/Geant3 team is dismantled. Project History Jan 95: Thinking/writing/rewriting/??? November 95: Public seminar, show Root 0.5 Spring 96: decision to use CINT Jan 97: Root version 1.0 Jan 98: Root version 2.0 Mar 99: Root version 2.21/08 (1st Intl Root workshop FNAL) Feb 00: Root version 2.23/12 (2nd Intl Root workshop CERN) Sep 00: Root version 2.25/03 Dec 00: Root version 3.00/01 Jun 01: 3rd International Root workshop at FNAL Fortran90 ??? C++, Commercial Software C++, Open Source ROOT See: “Evolution with ROOT” by Rene Brun, HepVIS’01 ROOT – optional data-analysis package of NA49

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) ROOT overview CINT – C++ C++ header files

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) ROOT's Services/Utilities  Histogramming and Fitting  Graphics (2D, 3D)  I/O to file or socket: specialized for histograms, Ntuples (Trees)  Collection Classes and Run Time Type Identification User Interface  GUI: Browsers, Panels, Tree Viewer  Command Line interface: C++ interpreter CINT  Script Processor (C++ compiled  C++ interpreted)

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) How to apply ROOT to solve the concrete task. Build OO model. Express it C++ language. Create a ROOT/Cint dictionary (which is a plain C++ code) Compile that dictionary to create a share library Create ROOT macro to load the brand-new library and instantiate your class object It is a recurrent task and needs time to be completed (may be infinite one:-)

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) “pure” ROOT integration C++ RootCint C++ codeC++ compiler library C++ language

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) Three User Interfaces GUI windows, buttons, menus Root Command line CINT (C++ interpreter) Macros, applications, libraries (C++ compiler and interpreter) See: “Evolution with ROOT” by Rene Brun, HepVIS’01

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) STAR reconstruction framework* * “… a set of cooperating classes that make up a reusable design for a specific class of software...” by Erich Gamma,et al. “Design Patterns: Elements of Reusable Object-Oriented Software”, Addison-Wesley Pub Co, “The framework dictates the architecture of your application. It defines the over-all structure, its partitioning into classes and objects, the key responsibilities thereof, how the classes and objects collaborate, and the thread of control. “ A framework predefines these design parameters so physicists can design their solutions using a proven programming model and can concentrate on the specifics of their applications.

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) Object­Oriented Design Issues Visualization Toolkit (GE Corp. R&D) 3.3 Object­Oriented Design Issues To the OO purist, the design of our visualization system poses some problems. In usual OO design, data structures and methods are encapsulated into objects. In our design, algorithms (i.e., methods) and datasets (i.e., data structures) are encapsulated separately. Our departure from what might be considered a purer OO design is based on three factors. First, combining complex algorithms and datasets into a single object would result in excessively large objects. The simplicity and modularity of the resulting design would be compromised. Second, combining algorithms and datasets into objects would result in repeating code, since the implementation of an algorithm for different data types often differs only in regions of data access. Third, users naturally view algorithms as objects that operate on data objects. Thus the design is comfortable to users, which is a key element of good system design. Other researchers differ from our view.

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) STAR framework is designed to support the chained components, which can themselves be composite sub- chains, with components (“makers”) managing “datasets” they have created and are responsible for. An TDataSet class from which data sets and makers inherit allows the construction of hierarchical organizations of components and data, and centralizes almost all system tasks: data set navigation, I/O, database access, inter-component communication.

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) Basic TDataSet properites Dataset Member. Any object from the collection above is called “DataSet Member” Structural member. The “Dataset Member” is its “Structural member” if its “back pointer” points to this object Dataset Owner (parent). We will say this TDataSet object “owns” (or is an owner / parent of ) another TDataSet object if the last one is its “Structural Member” Associated member. If some object is not “Structural member” of this object we will say it is an “Associated Member” of this dataset Orphan dataset. If some dataset is a member of NO other TDataSet object it is called an “orphan” dataset object TDataSetTDataSet object ::= the "named" collection of TDataSet objectsTDataSet

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) OO model of the STAR simulation / reconstruction chain: TDataSet TDataSetIter “base” container class TObjectSet TTable TTableSorter TFileSet TVolumeTVolume/ TVolumeView StMaker Data definition “ abstract” TObject “file system” description GEANT Geometry structure Flow control TDataSetTDataSet object ::= the "named" collection of TDataSet objectsTDataSet

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) StMaker.maker.data.const.data 1. Init() 2. Make() 2.1 InitRun() GetDataSet() AddData() “regular” makers communication

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) StMaker.maker.data.const.garb +100 different makers

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) Typical STAR TDataSet/TTable structure Since TTable's are subclasses of TDataSet it is easy to combine them in the various hierarchical structure. This way we compensate lacking of pointers within TTable objects

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) StMaker I/O StMakerStMaker.maker.data.const.data 1. Init() 2. Make() GetDataSet(“name”) AddData() I/O maker File formats: xdf, root, ASCII, MySQL

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) STAR reconstruction OO model: 1.STAR reconstruction code is one single instance of StBFChain class 2.StBFChain is a class derived from StChain class 3.StChain class is a class derived from StMaker class 4.StMaker class is derived from TDataSet 5.TDataSet is a collection of TDataSet or empty. In other words STAR reconstruction code is a hierarchical collection of STAR Makers.

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) A Framework provides utilities and services.

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) How to create your own maker cvs co StRoot/St_TLA_Maker mv St_TLA_Maker St Maker mv St_TLA_Maker.h St Maker.h mv St_TLA_Maker.cxx St Maker.cxx cons “Maker”s are called in the order they were being created by the steering object “StBFChain” or by the custom user macro like “doEvents.C”

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) class StMaker : public TDataSet{ public: enum {kSTAFCV_BAD, kSTAFCV_OK, kSTAFCV_ERR=2, kSTAFCV_FATAL=3} EModule_return_Status; StMaker(const char *name="",const char *dummy=0); virtual ~StMaker(); virtual Int_t IsChain() const {return 0;} /// User defined functions virtual void Clear(Option_t *option=""); virtual Int_t InitRun(int runumber); virtual Int_t Init(); virtual void StartMaker(); virtual Int_t Make(); virtual Int_t Finish(); virtual Int_t FinishRun(int oldrunumber); // Get methods virtual TDataSet *GetData(const char *name, const char* dir=".data") const; virtual TDataSet *GetDataSet (const char* logInput) const {return FindDataSet(logInput);} virtual Int_t GetEventNumber() const ; virtual Int_t GetRunNumber() const ; virtual TDatime GetDateTime() const; virtual Int_t GetDate() const ; virtual Int_t GetTime() const ; virtual const Char_t *GetEventType() const ;

Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) Real “life” There are 4 “offline” layers: –Production (bfc) –Analysis (muDst) –Intermediate (StEvent) –Simulation (gstar)