CHEP06, Mumbai, India 13-17 February 2006 General Status of ROOT GUI Ilka Antcheva, Bertrand Bellenot, René Brun, Valeriy Onuchin *, Fons Rademakers CERN,

Slides:



Advertisements
Similar presentations
What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word processor), it must be given the instructions.
Advertisements

© 2011 Delmar, Cengage Learning Chapter 1 Getting Started with Dreamweaver.
COURSE: COMPUTER PLATFORMS
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2004 Go4 v2.8 Analysis Design.
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,
Rapid Application Design with the ROOT GUI Classes 24 April 2007 Ilka Antcheva, Bertrand Bellenot, René Brun, Fons Rademakers, Valeriy Onuchin * CERN,
Data Access Worldwide May 16 – 18, 2007 Copyright 2007, Data Access Worldwide May 16 – 18, 2007 Copyright 2007, Data Access Worldwide Building Great Looking.
MP IP Strategy Stateye-GUI Provided by Edotronik Munich, May 05, 2006.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
Automating Tasks With Macros
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
A Guide to Oracle9i1 Creating an Integrated Database Application Chapter 8.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Introduction To Form Builder
Victor Serbo, SLAC30 September 2004, Interlaken, Switzerland JASSimApp plugin for JAS3: Interactive Geant4 GUI Serbo, Victor (SLAC) - presenter Donszelmann,
Cross-platform approach to create the interactive application based on ROOT and Qt GUI libraries Rene Brun (CERN) Valeri Fine (BNL,
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.
- Circle markers produced by TAsimage: They do not match was is produced on screen. The line width is too thick. Some other markers need to be tune a bit.
Yahoo! User Interface (YUI) Library Natly Mekdara.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
ROOT Tutorials - Session 51 ROOT Tutorials – Session 8 GUI, Signal/Slots, Image Processing, Carrot Fons Rademakers.
June 2001ROOT 2001 FNAL1 What Else is New Since ROOT 2000? Fons Rademakers.
Zubanov Alexei, 2006 Aug 07 – Sep 28 QtROOT package extension with Coin3D lib.
Bertrand Bellenot ROOT Users Workshop Mar ROOT GUI Builder Status & Plans ROOT & External GUI World MFC, FOX, Qt, PVSS… Snapshot of the Future.
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
Designing a Graphical User Interface (GUI) Krisana Chinnasarn, Ph.D. January 2007.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
Forms - An Overview of Oracle Form Builder v.6.0 Abhishek Parag Prashant Arun.
Marcel Casado NCAR/RAP WEATHER WARNING TOOL NCAR.
Session 1 SESSION 1 Working with Dreamweaver 8.0.
3461A Readings from the Swing Tutorial. 3461A Overview  The follow is the Table of Contents from the trail “Creating a GUI with JFC/Swing” in the “The.
FLUKA GUI Status FLUKA Meeting CERN, 10/7/2006.
V. Serbo, SLAC ACAT03, 1-5 December 2003 Interactive GUI for Geant4 by Victor Serbo, SLAC.
Lection №5 Modern integrated development environment.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
Interactive Textures as Spatial User Interfaces in X3D Web3D 2010 Symposium Sabine Webel Y. Jung, M. Olbrich, T. Drevensek, T. Franke, M.Roth, D.Fellner,
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
MS Visual Basic 6 Walter Milner. VB 6 0 Introduction –background to VB, A hello World program 1 Core language 1 –Projects, data types, variables, forms,
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
CITA 342 Section 2 Visual Programming. Allows the use of visual expressions (such as graphics, drawings, or animation) in the process of programming.
CHEP 2013, Amsterdam Reading ROOT files in a browser ROOT I/O IN JAVASCRIPT B. Bellenot, CERN, PH-SFT B. Linev, GSI, CS-EE.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev ROOT 2002 GSI Online Offline Object Oriented Go4.
ROOT Users Workshop September 2005 Ilka Antcheva GUI Status and Development.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
April 27, 2006 The New GANGA GUI 26th LHCb Software Week C L Tan
ROOT I/O in JavaScript Browsing ROOT Files on the Web For more information see: For any questions please use following address:
Graphics Editor in ROOT I l ka Antcheva*, René Brun, Fons Rademakers CERN, Geneva, Switzerland CERN, Geneva, Switzerland * funded by PPARK, Swindon, UK.
LCG AA Meeting 31 October 2007 The new dynamically and extensively customizable ROOT browser Bertrand Bellenot.
Giulio Eulisse, Northeastern University CHEP’04, Interlaken, 27th Sep - 1st Oct, 2004 CHEP’04 IGUANA Interactive Graphics Project:
Overview, Major Developments, Directions1 ROOT Project Status Major developments Directions NSS05 Conference 25 October Ren é Brun CERN Based on my presentation.
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.
Chapter 5 Introduction To Form Builder. Lesson C Objectives  Use sequences to automatically generate primary key values in a form  Create lists of values.
1 G4UIRoot Isidro González ALICE ROOT /10/2002.
ROOT Graphical User Interface The Graphical User Interface (GUI) design is an important component of the ROOT framework. Two sets of classes, recently.
LCG AA Meeting 30 June 2004 Ilka Antcheva Graphics User Interface in ROOT.
Online Data Monitoring Framework Based on Histogram Packaging in Network Distributed Data Acquisition Systems Tomoyuki Konno 1, Anatael Cabrera 2, Masaki.
LCG AA Meeting 26 April 2006 User Interface Developments in ROOT Ilka Antcheva on behalf of ROOT GUI Work Package.
LCG AA Internal Review 30 March 2005 ROOT Graphical User Interface Ilka Antcheva, Bertrand Bellenot, Valeri Fine, Valeriy Onuchin, Fons Rademakers.
Go4 v2.2 Status & Overview CHEP 2003
Forms Concepts Triggers Fired when Internal/External events occur
Working in the Forms Developer Environment
Distributed object monitoring for ROOT analyses with Go4 v.3
1. Introduction to Visual Basic
Go4 CHEP 2001 Multithreaded Inter-Task Communication with ROOT -
User Interface Classes Signals / Slots
Presentation transcript:

CHEP06, Mumbai, India February 2006 General Status of ROOT GUI Ilka Antcheva, Bertrand Bellenot, René Brun, Valeriy Onuchin *, Fons Rademakers CERN, Geneva, Switzerland * IHEP, Protvino, Russia

ROOT GUI CHEP06, Mumbai, India February Overview Basic Features Canvas Interface New and Improved Widgets Graphics Editor Style Manager GUI Builder ROOT and Qt Conclusions

ROOT GUI CHEP06, Mumbai, India February Basic Features (1) ROOT as a high-energy physics (HEP) analysis framework provides a large selection of HEP specific objects and utilities. Graphical capabilities of ROOT range from 2 D primitives to various plots, histograms, and 3 D graphical objects. The GUI class library contains a rich and complete set of widgets and makes it easy to write visually attractive applications that are ready to run on different environments. The object-oriented framework offers considerable benefits for developing object-oriented user interfaces. The user interface developments respond dynamically to the user needs, increasing their productivity and confidence in the system.

ROOT GUI CHEP06, Mumbai, India February fText = new TGTextEntry(fMain, new TGTextBuffer(100)); fText->SetToolTipText("Enter the label and hit Enter key"); fText->Connect("ReturnPressed()", "MyDialog", this, "DoSetlabel()"); fMain->AddFrame(fText, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5)); fGframe = new TGGroupFrame(fMain, "Last File"); fLabel = new TGLabel(fGframe, "No Intut "); fGframe->AddFrame(fLabel, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5)); fMain->AddFrame(fGframe, new TGLayoutHints(kLHintsExpandX, 2, 2, 1, 1)); … // fText = new TGTextEntry(fMain, new TGTextBuffer(100)); // fText->SetToolTipText("Enter the label and hit Enter key"); // fText->Connect("ReturnPressed()", "MyDialog", this, "DoSetlabel()"); // fMain->AddFrame(fText, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5)); fGframe = new TGGroupFrame(fMain, "Last File"); fLabel = new TGLabel(fGframe, "No Intut "); fGframe->AddFrame(fLabel, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5)); fText = new TGTextEntry(fGframe, new TGTextBuffer(100)); fText->SetToolTipText("Enter the label and hit Enter key"); fText->Connect("ReturnPressed()", "MyDialog", this, "DoSetlabel()"); fText->Resize(150, fText->GetDefaultHeight()); fGframe->AddFrame(fText, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5)); fMain->AddFrame(fGframe, new TGLayoutHints(kLHintsExpandX, 2, 2, 1, 1)); root [0].x myDialog.C root [1] root [0].x myDialog.C root [1].x myDialog.C Basic Features (2) Cross-platform GUIs – consistent look; no need to implement specific code for each platform. Fast GUI prototyping thanks to CINT – a command and script interpreter supporting pure C++ code: From simple sequence of statements to complex class and method definitions No need for special preprocessors or compilation

ROOT GUI CHEP06, Mumbai, India February Basic Features (3) Signals/Slots communication mechanism is integrated into ROOT core by TQObject, TQConnection, TQClass Uses dictionary information and the CINT interpreter to connect signal methods to slot methods Facilitates programming since it allows a total independence of the interacting classes Different components snap together like Lego blocks, leaving possibilities for adding new pieces in the future (by just connecting to the signals)

ROOT GUI CHEP06, Mumbai, India February On interactions, widgets send out various signals (event senders) Public object methods can be used as slots (event receivers) Signals and slots can be connected together fHslider1 = new TGTripleHSlider(fHframe1, 190, kDoubleScaleBoth, HSId1,…); fHslider1->Connect("PositionChanged()", "TTripleSliderDemo", this, "DoSlider()"); virtual void PointerPositionChanged() { Emit("PointerPositionChanged()"); } //*SIGNAL* void TTripleSliderDemo::DoSlider() { // Slot method. Redraw the function in the canvas window according to the // parameters and range set by slider after user interactions. … } Basic Features (4)

ROOT GUI CHEP06, Mumbai, India February Basic Features (5) Using Ctrl+S any GUI can be saved as a C++ macro via the widget SavePrimitive() methods. This macro can be edited and then executed via the CINT interpreter. Executing the macro restores the complete original GUI. However, currently, the signal/slot connections are not yet restored. This will be coming though. // transient frame TGTransientFrame *frame2 = new TGTransientFrame(gClient->GetRoot(),760,590); // group frame TGGroupFrame *frame3 = new TGGroupFrame(frame2,"curve"); TGRadioButton *frame4 = new TGRadioButton(frame3,"gaus",10); frame3->AddFrame(frame4); root [0].x example.C

ROOT GUI CHEP06, Mumbai, India February Basic Features ( 6 )

ROOT GUI CHEP06, Mumbai, India February The dockable tool bar provides shortcuts for menu’s and buttons for primitive drawing The Editor pane provides a GUI for editing attributes of the objects drawn in the canvas window The Style Manager handles general graphics settings and style editing The Fit Panel provides the GUI for histograms and graphs fitting Editor Pane Style Manager Toolbar Canvas Interface

ROOT GUI CHEP06, Mumbai, India February New and Improved Widgets (1) TGDockableFrame widget - allows the undocking/docking of menus, tool or status bars, or the collapsing of these bars. MDI (Multiple Document Interface) widgets

ROOT GUI CHEP06, Mumbai, India February New and Improved Widgets (2)  Triple slider widget ‘Pseudo-windows' concept allows to draw & scroll more than items TGListView TGListBox TGListTree TGComboBox

ROOT GUI CHEP06, Mumbai, India February New and Improved Widgets (3) TGListTree Checkboxes on the tree nodes turn on/off pieces of the tree hierarchy

ROOT GUI CHEP06, Mumbai, India February Graphics Editor (1) Object orientation of editor design: Allows the editing of object attributes in the canvas Presents the right editor at the right moment according to the selected object in the canvas Easy-to-use Freedom to expand by using editor plug-ins

ROOT GUI CHEP06, Mumbai, India February Modular – loads corresponding editor Editor according to the of the selected object, e.g. TArrow  TArrowEditor Algorithm: Searches for a class name Editor (correct naming is important). Checks that this class derives from TGedFrame (the editor base class). Makes an instance of the class editor using the TROOT::ProcessLine method. Scans all base classes for corresponding object editors. Can be extended easily by any user-defined object editor - this makes GUI design easier and adaptive to the users expertise. Graphics Editor (2) TArrow TAttMarker TCurlyArc TH1 TPad TAttFill TAttText TCurlyLine TH2 TPaveStats TAttLine TAxis TFrame TGraph...

ROOT GUI CHEP06, Mumbai, India February Manages a collection of TStyle objects that handle graphics attributes. Applies selected style on all canvases or just on the selected object Allows editing of the selected TStyle object Protects users from errors – they can go back to a previous saved state easily Provides dynamic feedback in a preview window The style manager elements are grouped by the functionality they set Style Manager

ROOT GUI CHEP06, Mumbai, India February GUI Builder Allows to create interactively GUIs based on the ROOT widget classes Uses Ctrl+S or the SaveAs dialog; users can generate C++ code in a macro that can be edited and executed via the CINT interpreter: root [0].x example.C // transient frame TGTransientFrame *frame2 = new TGTransientFrame(gClient->GetRoot(),760,590); // group frame TGGroupFrame *frame3 = new TGGroupFrame(frame2,"curve"); TGRadioButton *frame4 = new TGRadioButton(frame3,"gaus",10); frame3->AddFrame(frame4); frame2->SetWindowName(“Fit Panel"); frame2->MapSubwindows(); frame2->Resize(frame2->GetDefaultSize()); frame2->MapWindow(); }

ROOT GUI CHEP06, Mumbai, India February ROOT and Qt (1) Qt BNL (in ROOT CVS since 2004) Uses Qt as a render engine for all ROOT graphics (GUI and Canvas) via TGQt ROOT Canvases can be embedded in Qt widgets See talk 158 by Valeri Fine Qt GSI (works since many years on Linux, Windows port currently under development) Lightweight interface that uses the Qt event loop to drive Qt widgets and the ROOT event loop to handle all ROOT events: GUI, timers, signals, etc. Qt widgets are rendered via Qt, ROOT widgets are rendered either via TGX11 or TGWin32GDK ROOT Canvases can be embedded in Qt widgets

ROOT GUI CHEP06, Mumbai, India February ROOT and Qt (2) Qt BNL Qt GSI

ROOT GUI CHEP06, Mumbai, India February Conclusions The ROOT GUI is a rich and powerful scriptable cross-platform GUI library It provides a solid basis for the development of many additional widgets and GUI components, like a Fit Panel, Help browser, object editors and event displays The GUI builder will make the task of designing complicated GUI’s much easier The different ROOT/Qt integration interfaces give Qt users easy access to the ROOT graphics in their Qt-based GUI’s