9/28/2005 ROOT 2005 Workshop CERN 1 Qt and ROOT by Valeri Fine STAR Brookhaven National Laboratory.

Slides:



Advertisements
Similar presentations
1. Reasons for logging on as a root •Most people are familiar with Windows systems with regard to administrative privileges. Many user running windows.
Advertisements

Valeri Fine (BNL, STAR) Qt/QtRoot in STAR and EventDisplay development.
1 Mind Visual Diff An architecture comparison tool December 16 th, 2014 – v0.2.2 Seyvoz Stephane Assystem.
Goals Give you a feeling of what Eclipse is.
Edoclite and Managing Client Engagements What is Edoclite? How is it used at IU? Development Process?
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
June ACAT2002, Moscow Cross-Platform Qt-Based Implementation of Low Level GUI Layer of ROOT V.Fine BNL, Upton.
Graphical User Interface (GUI) Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Object-Oriented Analysis and Design
Cross-platform approach to create the interactive application based on ROOT and Qt GUI libraries Rene Brun (CERN) Valeri Fine (BNL,
An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying.
Oct ROOT 2002, CERN, Geneva Qt-Based Implementation of Low Level ROOT Graphical Layer By V.Fine.
John Sinclair Oak Ridge National Laboratory
DAT602 Database Application Development Lecture 15 Java Server Pages Part 1.
Chapter 11 Adding Media and Interactivity. Flash is a software program that allows you to create low-bandwidth, high-quality animations and interactive.
Section 6.1 Explain the development of operating systems Differentiate between operating systems Section 6.2 Demonstrate knowledge of basic GUI components.
© 2011 Delmar, Cengage Learning Chapter 11 Adding Media and Interactivity with Flash and Spry.
Chapter 1 Introduction to Visual Basic Programming and Applications 1 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta.
V.Fine The STAR “Integrated" Geometry Browser. 12/6/2006 STAR BNL S&C STAR weekly meeting. V.Fine
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
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.
Zubanov Alexei, 2006 Aug 07 – Sep 28 QtROOT package extension with Coin3D lib.
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
Valeri Fine (BNL, STAR) Whether it is feasible to benefit just from the two best technologies Using the Qt framework to create GUI.
Eyeblaster Video Enhancements for RMP 6.1. Agenda Video Enhancements Goals Main features and Creative Process Flash Video Components Bandwidth Optimization.
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.
CNIT 133 Interactive Web Pags – JavaScript and AJAX JavaScript Environment.
Max Planck Institute for Psycholinguistics Tool development report H. Brugman MPI Nijmegen.
Presented by Abirami Poonkundran.  Introduction  Current Work  Current Tools  Solution  Tesseract  Tesseract Usage Scenarios  Information Flow.
THttpServer class Sergey Linev (GSI). Some history Development was inspired by JSRootIO why not achieve similar functionality with online ROOT application?
Adobe Flash CS3 Revealed Chapter 1 - GETTING STARTED WITH FLASH.
(c) University of Washington08-1 CSC 143 Models and Views Reading: Ch. 18.
Axel Naumann University of Nijmegen / NIKHEF, NL ROOT 2004 Users Workshop The Future of THtml Plans and Status of ROOT’s documentation facility.
1 Chapter Overview Publishing Resources in Active Directory Service Redirecting Folders Using Group Policies Deploying Applications Using Group Policies.
ROOT Team Meeting October 1 st 2010 GUI thinking and testing ideas OpenGL GUI Root Team meeting 01/10/2010.
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.
SiD Workshop October 2013, SLACDmitry Onoprienko SiD Workshop SLAC, October 2013 Dmitry Onoprienko SLAC, SCA FreeHEP based software status: Jas 3, WIRED,
ACAT 2005 Workshop, May UAL Interactive Analysis Environment Interactive Analysis Environment of Unified Accelerator Libraries V. Fine, N. Malitsky,
ROOT’s graphics on iOS. ROOT’s graphics (general scheme):
Go4 v3 - J.Adamczewski, H.G.Essel, S.Linev IT/EE Palaver Go4 version 3.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
SWGData and Software Access - 1 UCB, Nov 15/16, 2006 THEMIS SCIENCE WORKING TEAM MEETING Data and Software Access Ken Bromund GST Inc., at NASA/GSFC.
The Object Model to Construct the Mixed “Open Inventor” / ROOT 3D scenes by Valeri Fine, Jerome Lauret STAR Brookhaven National Laboratory.
Using the Qt to create complex interactive HENP applications at STAR by V.Fine, J.Lauret, V.Perevoztchikov.
WorldWide Telescope WWT HTML5 SDK WEB CONTROL WEB CLIENT DEVELOPMENT OVERVIEW RON GILCHRIST (WEB ON GITHUB NOV 7, 2015.
13 June 2001M.Al-Turany/Root20011 Mohammad Al-Turany Go4 GSI Darmstadt 13 June 2001.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev ROOT 2002 GSI Online Offline Object Oriented Go4.
GUIs Basic Concepts. GUI GUI : Graphical User Interface Window/Frame : a window on the screen Controls/Widgets : GUI components.
ROOT Users Workshop September 2005 Ilka Antcheva GUI Status and Development.
Chapter 11 Adding Media and Interactivity. Chapter 11 Lessons Introduction 1.Add and modify Flash objects 2.Add rollover images 3.Add behaviors 4.Add.
LCG AA Meeting 31 October 2007 The new dynamically and extensively customizable ROOT browser Bertrand Bellenot.
S.Linev: Go4 - J.Adamczewski, H.G.Essel, S.Linev ROOT 2005 New development in Go4.
CHEP06, Mumbai, India February 2006 General Status of ROOT GUI Ilka Antcheva, Bertrand Bellenot, René Brun, Valeriy Onuchin *, Fons Rademakers CERN,
JavaScript and Ajax (JavaScript Environment) Week 6 Web site:
LCG AA Meeting 30 June 2004 Ilka Antcheva Graphics User Interface in ROOT.
LCG AA Meeting 26 April 2006 User Interface Developments in ROOT Ilka Antcheva on behalf of ROOT GUI Work Package.
2001 ROOT Workshop The Summary. Content Most Requested Request already satisfied Build and Distribution Web Page Information and Documentation.
Tutorial 1 Getting Started with Adobe Dreamweaver CS5.
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
GUI plans of work Revisit (reimplement) a new TreeViewer, possibly based on something like Viewpoints (see next slide) (
QtRoot project status and examples of its use at STAR
Distributed object monitoring for ROOT analyses with Go4 v.3
Go4 CHEP 2001 Multithreaded Inter-Task Communication with ROOT -
User Interface Classes Signals / Slots
Go4 GUI and GSI's QtROOT interface
Go4 GUI and GSI's QtROOT interface
Presentation transcript:

9/28/2005 ROOT 2005 Workshop CERN 1 Qt and ROOT by Valeri Fine STAR Brookhaven National Laboratory

9/28/2005 ROOT 2005 Workshop CERN 2 Overview It presents the "user” components and tools of the QtRoot layer to facilitate: creation the Qt-based ROOT application and shared library; the ROOT-based Qt-application; using QT GUI "designer" and Qt "project file"; generating the class HTML documentation of the Qt/Root-based user classes; ROOT-based and stand-alone QtRoot layer installation; embedding 2D and 3D Qt widgets rendering the ROOT graphical objects. The list of the features, achievements and problems along with the "ToDo" list are present also.

9/28/2005 ROOT 2005 Workshop CERN 3 TGQt – Qt-based implementation of TVirutalX Qt-ROOT implementation of TVirtualX (Qt-layer) is to provide a convenient way of creating the complex end-user applications those require both Qt GUI and ROOT features. The primary goal is to allow “embedding” the ROOT classes like TCanvas and TPad into the arbitrary Qt widgets and using it seamlessly with other Qt-based components and Qt- based third party libraries. TGQt ROOT class, a Qt-based implementation of TVirtualX interface is an optional ROOT component. The implementation was developed and is supported by STAR collaboration at Brookhaven National Laboratory. The history of the project and the QtRoot technical implementation details were present at ACAT 2002 (Moscow) and ACAT 2003 (Tsukuba).

9/28/2005 ROOT 2005 Workshop CERN 4 “Spitted” repository At the moment the project is “splitted” by two separate CVS Repository: “Qt layer” and “Qt Extension” The full version that “Qt-layer” + “Qt Extension” is available from BNL CVS Repository –CVSROOT –Web (STAR): –Mail list: The “Qt-layer” is a part of the official ROOT repository. See:

9/28/2005 ROOT 2005 Workshop CERN 5 Two QtRoot end-user “use cases” User’s code TCanvas/TPad TVirtualX TGX11 TGQt TQtWidget QWidget TQtGLViewerWidget QGLViewer Even though the TGQt class is a “soul” of the Qt layer it just implements at the TVirtualX interface and is normally hidden from the end-user code 1.Qt-based ROOT applications use “TCanvas” 2.ROOT-based Qt application use TQtWidget TQtGLViewerWidget BNL CVS Repository

9/28/2005 ROOT 2005 Workshop CERN 6 Use case: “Qt-based ROOT applications” “ROOT application” is the application that either instantiates the ROOT TApplication / TRint class and enters the ROOT event loop or is the shared library that can be loaded into the already running ROOT application via TSystem::Load method or via ROOT plug-in mechanism. You must neither initialize Qt QApplication nor enter the Qt event loop. Qt- layer takes care about both of these steps. What you need is just to instantiate the Qt object of your choice and keeps playing ROOT rules.

9/28/2005 ROOT 2005 Workshop CERN 7 Use case: “ROOT-based Qt applications” “Qt application” is the application that either instantiates the Qt QApplication and enters the Qt event loop or is the shared library that can be loaded into the already running Qt application via Qt plug-in mechanism. You must neither initialize ROOT TApplication / TRint nor enter the ROOT event loop. Qt-layer takes care about both of these steps. What you need is just to instantiate the embedded and regular ROOT objects of your choice and keep playing Qt rules.

9/28/2005 ROOT 2005 Workshop CERN 8 Benefits One can include Qt GUI components and packages into both cases Coin3D GO4 Qwt QGLViewer

9/28/2005 ROOT 2005 Workshop CERN 9 2D ROOT graphics: TQtWidget – QWidget for embedded TCanvas Can be used with Qt “designer” Provided with a bunch of the proxy-methods to access the embedded TCanvas object Provided with the convenient Qt signals to notify the client code about the object selection, mouse events and interactions Can be subclassed to meet some special needs.

9/28/2005 ROOT 2005 Workshop CERN 10 Simple histogram browser (60 lines of C++ code) GO4 “design”

9/28/2005 ROOT 2005 Workshop CERN 11 3D ROOT graphics – QtGLViewerWidget Can be used with Qt “designer” Very simple the end-user interface to pass the “GL list” to be rendered Provided with the convenient Qt signals to notify about the GL object selection Can be subclassed to meet somke custome needs also

9/28/2005 ROOT 2005 Workshop CERN 12 Qt implementation of ROOT 3D viewer interface classical: Model-View-Controller TVirtualViewer3D ROOT > 4.01 (ROOT > 4.01) TQtRootViewer3D TQtGLViewer TGLViewer ROOT < 4.01 (ROOT < 4.01) TPad TObject GL list Coin Node model controllerview TQtGLViewerWidget QGLWidget QGLViewer QWidget GL attrib GL list ROOT plug-in

9/28/2005 ROOT 2005 Workshop CERN 13 Qt 3D features No “soft” matrix / coordinate transformations –it is as fast as your GL video hardware One to one “model-matrix” “view-matrix”, “model-points” “view-points”, “hierarchical model” “hierarchical view” –Trivial navigation “model->view” and “view->mode” –Change the model does entail change neither in the controller not in view source code –“Controller” and “view” implementations are trivial, therefore it is robust and stable Unlimited number of the simultaneously rendered views / sub- views / widgets / objects No user’s model (TObject for example) pointer needed –The destruction of the model does not entail the viewer crash and versa verse. Functionality satisfies the most STAR collaboration requirements

9/28/2005 ROOT 2005 Workshop CERN 14 Click mouse action of QGLViewer

9/28/2005 ROOT 2005 Workshop CERN 15 Mouse action of QGLViewer

9/28/2005 ROOT 2005 Workshop CERN 16 Combination of the different GL attributes Original Original + wired Solid + wired Solid Wired “Sliced” The number of the possible combinations and its complexity are unlimited

9/28/2005 ROOT 2005 Workshop CERN 17 3D selection and highlighting “Full” wired Status bar ROOT context menu Satellite widget

9/28/2005 ROOT 2005 Workshop CERN 18 3D customization Is trivial and it is defined by the Qt and QGLViewer implementation, “philosophy” and design 3D viewer attributes – base class –Use – predefined subclasses –Subclass yourself and use Rendering –Ask controller to generate the view for the “known” ROOT classes –Provide your own custom view factory for your class or for the “know” ROOT class –Provide the Qt slot to respond the “QGLViewer “draw” Qt signal Selection ( like “Rendering”) –Provide the Qt slot to respond to the QGLViewer “select” signal Provide your own “controller”/”view” (see “UAL” talk )

9/28/2005 ROOT 2005 Workshop CERN 19 Installation ROOT bundle./configure […] --enable-qt Stand-alone, either from ROOT CVS or from full version BNL CVS qmake.pro make See :

9/28/2005 ROOT 2005 Workshop CERN 20 Qt project and Qt designer Qt designer Import the pre-defined Qt “Custom widget” definition: $ROOTSYS/include/TQtWidget.cw $ROOTSYS/include/TQtGLViewerWidget.cw Qt “qmake” utility Include the qmake include file into your project $ROOTSYS/include/rootcint.pri

9/28/2005 ROOT 2005 Workshop CERN 21 Documentation tools On-line documentation is prepared with the ROOT THtml class. In addition there is a script to post- process the output of the THtml class. It replaces all references of the Qt classes with the proper hyperlinks to TrollTech or QGLViewer online documentation. To be useful for the other application as well. There is a Qt section with the latest ROOT 4.04 User’s Manual

9/28/2005 ROOT 2005 Workshop CERN 22 Readiness Works on UNIX and “native” Mac. It was tested on Windows with ROOT D / 3D Qt Root widget are working and stable ROOT GUI needs work inside TGQt class that affects no end-user interface In other words, QtRoot interface is stable and it is safe to use it within Qt-based applications.

9/28/2005 ROOT 2005 Workshop CERN 23 Obstacles Splitted repository –inconvenient, cost some man-power ROOT GUI “unusual” design –Normally, the ROOT philosophy (see: CERNLIB, PAW, ROOT I/O, ROOT 2D graphics, TSystem elsewhere) use the system feature as low / less as “reasonable” –ROOT GUI uses very X11 as hard as possible (Not a ROOT team fault by the way) –The same problem see with the GL branch It has little impact on the “ROOT-based Qt application”

9/28/2005 ROOT 2005 Workshop CERN 24 To Do Find and fix the remaining bugs Negotiate ROOT team to adopt more project “pieces” To make Qt an optional plug-in (need remove compile-time dependency from the ROOT code. #ifdef WIN32GDK Add QtThreadImp class to the official CERN distribution. Improve support for mouse manipulation keyboard grabbing for vanilla ROOT Gui (That does not affect Qt application) – needs change on ROIT GUI side Qt Proxy for ROOT Editor classes

9/28/2005 ROOT 2005 Workshop CERN 25 References CINT status, Masa Goto Cross-platform approach to create the interactive application based on ROOT and Qt GUI libraries. ROOT in GO4, Joern Adamczewski Cross-platform Qt-based implementation of low level GUI layer of ROOT Cross-platform approach to create the interactive application based on ROOT and Qt GUI libraries Visualization of the ROOT 3D class objects with Open Inventor-like viewers C++ GUI Programming with Qt3 ROOT 4.04 User’s Manual

9/28/2005 ROOT 2005 Workshop CERN 26 Au-Au Collision (seen at DOE booth) v/STAR/comp/vis/Star Collision.wmvhttp:// v/STAR/comp/vis/Star Collision.wmv