QtRoot project status and examples of its use at STAR

Slides:



Advertisements
Similar presentations
Introduction to Java 2 Programming
Advertisements

Improving your OpenEdge® Development Productivity David Lund Sr. Training Program Manager, Progress.
9/28/2005 ROOT 2005 Workshop CERN 1 Qt and ROOT by Valeri Fine STAR Brookhaven National Laboratory.
June ACAT2002, Moscow Cross-Platform Qt-Based Implementation of Low Level GUI Layer of ROOT V.Fine BNL, Upton.
Macromedia Flash MX 2004 – Design Professional Macromedia Flash MX GETTING STARTED WITH.
Cross-platform approach to create the interactive application based on ROOT and Qt GUI libraries Rene Brun (CERN) Valeri Fine (BNL,
1 Agenda Overview Review Roles Lists Libraries Columns.
Oct ROOT 2002, CERN, Geneva Qt-Based Implementation of Low Level ROOT Graphical Layer By V.Fine.
Written by Liron Blecher
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.
ROOT Tutorials - Session 51 ROOT Tutorials – Session 8 GUI, Signal/Slots, Image Processing, Carrot Fons Rademakers.
Zubanov Alexei, 2006 Aug 07 – Sep 28 QtROOT package extension with Coin3D lib.
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
Bertrand Bellenot ROOT Users Workshop Mar ROOT GUI Builder Status & Plans ROOT & External GUI World MFC, FOX, Qt, PVSS… Snapshot of the Future.
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
Adobe Flash CS3 Revealed Chapter 1 - GETTING STARTED WITH FLASH.
Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy
Root based event display Dmitry Romanov October 19, 2010.
THttpServer for ROOT Bertrand Bellenot, CERN Sergey Linev, GSI Darmstadt
DotNetNuke Workshop Presented by: Sara Sharick. Topics What is DotNetNuke Components Requesting a DDN Site Creating Pages Modules Adding Content Document.
ROOT’s graphics on iOS. ROOT’s graphics (general scheme):
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
The Object Model to Construct the Mixed “Open Inventor” / ROOT 3D scenes by Valeri Fine, Jerome Lauret STAR Brookhaven National Laboratory.
Confidential © 2008 Teleca AB Creating Custom Widgets Author: Patricia Jiang Date: July 29, 2010 Version: 1.0 Teleca Chengdu.
Using the Qt to create complex interactive HENP applications at STAR by V.Fine, J.Lauret, V.Perevoztchikov.
QT Programming QT Programming Ruku Roychowdhury. Background QT is a cross platform application framework. Widely used to develop GUI applications. Originally.
06/13/2001Dmitry Litvintsev CDF Event Display Dmitry Litvintsev, Fermilab CDF Collaboration Introduction Elements of CDF Run II Event.
ROOT: 3D Graphics R. Maunder 1), T.Pocheptsov 4) 1) CERN – European Organization for Nuclear Research, Geneva, Switzerland 4) Joint Institute for Nuclear.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev ROOT 2002 GSI Online Offline Object Oriented Go4.
Advanced workflows for creating 3D Web Scenes in ArcGIS Online Javier Gutierrez and Janett Baresel.
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:
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,
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
LCG AA Meeting 30 June 2004 Ilka Antcheva Graphics User Interface in ROOT.
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.
The Palantir Platform… …Changes in 2.3
Getting Started with Dreamweaver
Go4 v2.2 Status & Overview CHEP 2003
Adobe Premiere interface overview
Developing Online Tools To Support The Visualization Of Ocean Data For Educational Applications Poster #1767 Michael Mills, S. Lichtenwalner,
Dive Into® Visual Basic 2010 Express
EVE as the base of AliEve and Fireworks event-displays Matevž Tadel.
OVERVIEW Objectives Follow a design document to prepare images for inclusion in a Web page Run a batch process to prepare multiple images in one step Use.
What is Microsoft Internet Explorer?
Gadgets and Dashboards
Working in the Forms Developer Environment
AESA – Module 8: Using Dashboards and Data Monitors
Developer 2000 CSE 4504/6504 Lab.
IBM Rational Rhapsody Advanced Systems Training v7.5
Chapter Lessons Understand the Macromedia Flash workspace
Distributed object monitoring for ROOT analyses with Go4 v.3
CHAPTER 8 Multimedia Authoring Tools
Introduction to Events
Introduction to Opnet Mobile Networks Introduction to Opnet
MS PowerPoint 2010 Week 2.
Mobile Application Development with MeeGo™ - Programming with SDK
Create and edit web pages 2
Embedding Graphics in Web Pages
Java Applets.
Citation Map Visualizing citation data in the Web of Science
Creating Images for the Web
Getting Started with Dreamweaver
User Interface Classes Signals / Slots
Web Development Using ASP .NET
Go4 GUI and GSI's QtROOT interface
Go4 GUI and GSI's QtROOT interface
Adobe Flash CS3 Revealed
Presentation transcript:

QtRoot project status and examples of its use at STAR by Valeri Fine STAR Brookhaven National Laboratory

Overview Qt Root project comprises the “Qt-layer, ?Qt Extensions” and “Qt Examples” those used by STAR to facilitate: Online monitoring – Real time Detector simulation – Full-fledged geometry ( hierarchy ) navigation, Selection. Comparison of the different versions. Event reconstruction – Event representation. Event (flat or simple hierarchy) Navigation and Selection on the top of the simplified detector geometry. Data analysis – big statistic, mostly the large number of the histograms. 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Batch and interactive stages GUI is not the first concern of the STAR framework. We worry whether we are capable to collect, preserve, re-distribute our hard-earned PBytes. However the final stages of the job are mainly interactive. The very first steps of the data-taking in the “control rooms” are interactive also 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Abstraction layers To satisfy the different requirement mentioned above several abstraction layers are needed to be designed and implemented Do not reinvent the wheel – use the proven ROOT design. ROOT plug-in does allow to do that. That way we reach several goals in one shot: Re-use STAR component across of the application Made it useful for ROOT community also 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

TGQt – Qt-based implementation of TVirtualX The history of the project and the QtRoot technical implementation details were present at ACAT 2002 (Moscow), ACAT 2003 (Tsukuba), ROOT2005 workshop (Geneva), CHEP 2006 (Mumbai). 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Platforms: X11 – Unix / MacOS (need volunteers to test it under Cygwin/X11) “Native” MacOS “Native WIN32” PyQt Qt-layer does work from a single source as one had promised . 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Build As ROOT bundle. Configure ROOT with “--enable-qt” Stand-alone with the Qt project file provided: “qmake qt.pro” The later means one can add the “Qt-layer” plug-in (and upgrade it) to the existent ROOT version and upgrade undependably of the ROOT version as well 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

“Qt-layer” package New singleton “TQtRootSlot class to connect Qt signals with ROOT “slots”: New TGQt method to decorate ROOT TPad’s using the Qt graphics: bool QConnectCint(const QObject * sender, const char * signal) { // Connect the Qt signal to the "execute C++ statement" via CINT SLOT // The first parameter of the Qt signal must be "const char*" return QObject::connect(sender,signal ,TQtRootSlot::CintSlot(),SLOT(ProcessLine(const char*))); } virtual void TGQt::CopyPixmap(const QPixmap &p, Int_t px1, Int_t py1); 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Qt Extensions: qtgui (shared lib QtRootGui) qtgl qtged qtthread TContextMenuImp TCanvasImp TBrowserImp TControlBarImp TInspectorImp qtgl TVirtuasViewer3D qtged TVirtualPadEditor qtthread TThreadImp Since all of those are ROOT plug-in no change of the ROOT user code is required 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Qt “Hello Word” Examples HelloWord - Qt-based ROOT application HelloCanvas - ROOT-based Qt-application HelloCint(*) - ROOT-based shared library QtGBrowser(*) - "Advanced version of the Qt application built with the Qt "designer" CustomWidgets( 7 widgets) – TQtFloatSpinBox, TQtColorSelectButton, TQtPatternSelectButton etc HelloLife - the example made of the original Qt "life" example HelloPixmap - the example shows how to decorate ROOT TPad with QPainter CustomCanvasMenu - It demonstrates how one can customize the automatically generated ROOT Context Menu. macros - The set of the simple ROOT macros using Qt classes directly 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

“Embedded” TPads example: 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

TGQt::CopyPixmap medyhod to decorate ROOT TCanvas 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Two QtRoot end-user “use cases” BNL CVS Repository Qt-based ROOT applications use “TCanvas”/ VirtualViewer3D ROOT-based Qt application use TQtWidget/TQtCoinWidget TQtGLViewerWidget 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

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 some customer needs also 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Qt implementation of ROOT 3D viewer interface classical: Model-View-Controller (see ROOT 2005 talk) TVirtualViewer3D (ROOT > 4.01) QWidget TObject ROOT plug-in QGLWidget TPad TQtRootViewer3D ROOT plug-in QGLViewer GL list TQtGLViewerWidget Coin Node TQtGLViewer GL attrib signals: void ObjectSelected(TObject *, const QPoint&); void HandleSelected(ULong_t, const QPoint&); void ImageSaved(QString &fileName, . . . ); GL list 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Coin3D implementation of ROOT 3D viewer interface controller view model TVirtualViewer3D (ROOT > 4.01) QWidget TObject ROOT plug-in TPad TQtRootViewer3D ROOT plug-in GL list TQtGLViewer TQtCoinWidget Coin Node SoQtFullViewer TQtCoinViewer signals: void ObjectSelected(TObject *, const QPoint&); void HandleSelected(ULong_t, const QPoint&); void ImageSaved(QString &fileName, . . . ); SoNode 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Qt object editor framework The design follows one from the ROOT “ged” deliberately If one knows how to create the ROOT Object editor one should find no trouble creating the one for Qt TQtGedAttInterface QDockWidget TQtGedAttFrame<T> void BuildView(QWidget *editorPanel) = 0; void ChangeView() = 0; void SetUpdatesEnabled(Bool_t) = 0; void ConnectSignals2Slots() = 0; Where <T> is the class name one is going to provide the edtior for 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Combination of the different GL attributes Original + wired Original Solid The number of the possible combinations and its complexity are unlimited “Sliced” Wired Solid + wired 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

3D selection and highlighting ROOT context menu “Full” wired Status bar Satellite widget 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

The Default Selection Slot To select object one has to Turn the Coin viewer “selection” tool on Use the left mouse button to point the image on the 3D view The browser should: Highlight the selected shape Popup the label with the text provided by the selected object TObject::Info method Find the object in the left tree pane of the Geometry Browser and select the found object there The object selected in the “tree” list should be painted in the right upper TCanvas widget 1 2 5 4 3 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

The “Menu” Selection Slot The Browser provides another “selection” slot. The SLOT is activated via the drop-down “Options” menu. To select the object user should follow the previous slide. The only difference, instead of the label the browser will pop the ROOT “Context menu” 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

The “GeomBrowse” Custom Selection The STAR Geometry Browser provides the custom selection slot in addition to the two built-in slots described above The SLOT is activated via the icon. To select the object user should follow the previous slides. The only difference, in addition to the built-in action, the application is to popup the text edit window with the source code of the selected volume highlighted. 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Multiply 3D widgets / attributes The Qt-based ROOT 3D plug-ins do allow creating as many OpenGL widgets as your local video hardware can sustain and set the video attributes for each widget separately as the short animation on the right demonstrates: 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Mixed ROOT / Coin3D 3D scene It is simple to create the ROOT objects with the mixing ROOT 3D and Coin3D objects. For example the ROOT objects define the geometry (shapes, color and positions) and Coin3D define the animations, lighting, clipping, 3D labels etc. The mixed objects can be saved/ restored using the regular either ROOT (root file) or Coin3D (see slide 4) I/O The rootgeom_coin.C ROOT macro creates such object and renders it with non-Coin3D TCanvas and Coin3D ROOT plug-in. 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Detector simulation Compare two versions of the STAR detector 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Data Analysis One click: TCanvas is converted to the HTML image map and each TPad is kept as a separate Web page linked by the image map. 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Online monitoring During this Run we will be using the 3d generation of the Monitor 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Event reconstruction (cont) 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN

Upcoming Qt4 is imminent. STAR plans to complete it by July, 2007 Needs to understand how long we should keep the Qt3 brand if any. Ideally, would like to switch to qt4 support (only) in 2008 Will support longer depending on community needs (please, feedback) 3/27/2007 fine@bnl.gov ROOT 2007 Workshop, CERN