G.Barrand / LAL / AA-26-April-2006

Slides:



Advertisements
Similar presentations
CHEP'04G.Barrand, permanent debugger of CERN software at LAL.1 OpenScientist (13.0) An integration to do scientific visualization and data analysis
Advertisements

G.Barrand / LAL / IN2P3 / CNRS AIDA analysis tools and Geant4 A user roadmap.
15-Jul-15 Getting Ready for Java. What is Java? Java is a programming language: a language that you can learn to write, and the computer can be made to.
G.Barrand, LAL-Orsay Geant4 and interactive frameworks.
CHEP'04 InterlakenG.Barrand, eXtreme debugger at LAL 1 Panoramix A visualization environment for LHCb.
Zubanov Alexei, 2006 Aug 07 – Sep 28 QtROOT package extension with Coin3D lib.
1 port BOSS on Wenjing Wu (IHEP-CC)
IT Essentials 1 v4.0 Chapters 4 & 5 JEOPARDY RouterModesWANEncapsulationWANServicesRouterBasicsRouterCommands RouterModesWANEncapsulationWANServicesRouterBasicsRouterCommands.
G.Barrand, LAL-Orsay GaudiLab Some news. G.Barrand, LAL-Orsay Open Scientist (v5) coherent set HEPVis SoFree OpenGL Scientist Riot Rio KUIP HCL Midnight.
Progress in Multi-platform Software Deployment (Linux and Windows) Tim Kwiatkowski Welcome Consortium Members November 29,
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
G.Barrand, LAL-Orsay OpenScientist Status (v11) Relationship with AIDA
Institute of Informatics & Telecommunications – NCSR “Demokritos” TileQt and TileGtk: current status Georgios Petasis Software and Knowledge Engineering.
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.
OpenPAW A reimplementation of PAW with OpenScientist tools. Commands : Today the C part of KUIP extracted from old.
1 Planning for Reuse (based on some ideas currently being discussed in LHCb ) m Obstacles to reuse m Process for reuse m Project organisation for reuse.
MINER A Software The Goals Software being developed have to be portable maintainable over the expected lifetime of the experiment extensible accessible.
1 Control Software (CAT) Introduction USB Interface implementation Calorimeter Electronics Upgrade Meeting Frédéric Machefert Wednesday 5 th May, 2010.
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
OnX & ROOT1 OnX & ROOT on behalf of Guy Barrand ROOT Workshop 2001 June 13 FNAL Ren é Brun CERN.
Computer Software Types Three layers of software Operation.
Mantid Stakeholder Review Nick Draper 01/11/2007.
Servicing HEP experiments with a complete set of ready integrated and configured common software components Stefan Roiser 1, Ana Gaspar 1, Yves Perrin.
April 27, 2006 The New GANGA GUI 26th LHCb Software Week C L Tan
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
GTK+
GLAST 1 Event Display VRVS meeting Glast software collaboration Pisa experience with ROOT N Lumb and G Spandre INFN-Pisa.
Geant4 User Workshop 15, 2002 Lassi A. Tuura, Northeastern University IGUANA Overview Lassi A. Tuura Northeastern University,
K. Harrison CERN, 21st February 2005 GANGA: ADA USER INTERFACE - Ganga release Python client for ADA - ADA job builder - Ganga release Conclusions.
1 G4UIRoot Isidro González ALICE ROOT /10/2002.
1 SLAC simulation workshop, May 2003 Ties Behnke Mokka and LCDG4 Ties Behnke, DESY and SLAC MOKKA: european (france) developed GEANT4 based simulation.
SPI Report for the LHCC Comprehensive Review Stefan Roiser for the SPI project.
G.Barrand, LAL-Orsay G4Lab / v5r0. G.Barrand, LAL-Orsay Come with OpenScientist-10.0 –G4Lab : adapter Geant4/OSC. –G4LabSimple : example Run time kits.
September 24th 2006, aKademy The Design and Implementation of KJSEmbed Richard Moore,
Computer System Structures
GridOS: Operating System Services for Grid Architectures
CST 1101 Problem Solving Using Computers
Operating System & Application Software
GUI plans of work Revisit (reimplement) a new TreeViewer, possibly based on something like Viewpoints (see next slide) (
Operating System Concepts
Managing the Project Lifecycle
Nonogram Solver Cs491b Software Design Prepared by :
Operating Systems •The kernel is a program that constitutes the central core of a computer operating system. It has complete control over everything that.
Chapter 5: Using System Software
Getting Started with R.
SPI external software build tool and distribution mechanism
Cross Platform Development using Software Matrix
Distributed object monitoring for ROOT analyses with Go4 v.3
Introduction to .NET Framework Ch2 – Deitel’s Book
Geant4 Geometry Objects Persistency using ROOT
GLAST Release Manager Automated code compilation via the Release Manager Navid Golpayegani, GSFC/SSAI Overview The Release Manager is a program responsible.
Project Status and Plan
Exploring the Basics of Windows XP
Chapter 2: Operating-System Structures
An example design for an Amadeus APIv2 Web Server Application
Geant4 Qt Interface Geant4 Collaboration Workshop Hebden Bridge 18 September 2007 Laurent Garnier and Guy Barrand (shown by Joseph Perl) 18 Sept 2007 Garnier.
Chapter 2: System Structures
X Windows.
Unit 20 Software Part 2.
Geant3 All collaborations are using G3 to a certain extent
G4/analysis G.Barrand, LAL-Orsay.
Unit 20 Software Part 2.
Experience with the process automation at SORS
Simulation and Physics
Summary Computing Model SICb Event Model Detector Description
FEATURES OF PYTHON.
Chapter 4: Threads.
CMPE 135: Object-Oriented Analysis and Design March 14 Class Meeting
Presentation transcript:

G.Barrand / LAL / AA-26-April-2006 Panoramix / Qt(4) Interactivity integration through Qt. Visualization integration through OpenGL. G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 OnX / Qt Panoramix interactivity handled by OpenScientist / OnX. See CHEP’04 papers. We remember that the GUI “problem” had been identified for long ; no GUI standard emerged from “desktop providers” (Apple, Microsoft, KDE, GNOME, etc…) OnX : describe the GUI with an “home-made” XML and exploit native GUI of desktop providers (for performance reason). The XML GUI description includes also the “callbacks” that are then scripted. OnX handles in a very clean way multiple GUI toolkits and scripting systems. For scripting, the “DLD” (simple string API to the dynamic loading) and Python ones are used in Panoramix. OnX today “GUI drivers” are : Xt/Motif, WIN32, NextStep, gtk(1-2) and Qt. G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 Panoramix / Qt Panoramix interactivity being on OnX, then, in principle all GUI drivers are at hand : the delivery of them in the “final application” is a question of release / installation procedures. LHCb supports Windows and Linux. Then in practice, is regularly released the WIN32 and Xt/OpenMotif OnX GUI drivers through the OpenScientist installations put under /afs/cern.ch/sw/contrib. But it appears that the Qt3 OnX GUI driver is in fact also used in UK. Qt4 being free on Windows clearly changes the game : at last we have now a good “cross platform” GUI candidate satisfying a lot of criterions including : natively C++, free versions on all today “interactive platforms” and integrating nicely the LHCb graphics (coin3d over OpenGL). G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 OnX / Qt4 At LAL, we have looked at Qt4 on the three interactive platforms. This consisted to migrate the OnX/Qt-driver but also the coin3d/SoQt and HEPVis packages over Qt4 for Mac, Windows, SLC3. All the modifications will come in an OSC-16 delivered “for summer”. OnX/Qt : still use the “Qt3 support”. The code run over Qt4 but not yet fully exploiting the new widgets. It had been needed also to migrate the coin related code to more recent code. This touched the OpenScientist packages : CoinGL, CoinQt, HEPVis, OnX plus some “CMT Interfaces” packages. G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 OnX / Qt4 / platforms Windows : a “hidden” point in the Trolltech “Qt4 being open source on Windows” announcement was that the binaries are delivered free only for g++ and not VisualC++. But, thanks to the reactivity of the open source world, some free build procedure can now be found at least on source forge : With the upper, the chain Qt4, CoinGL, CoinQt, HEPVis, OnX/Qt4 works on Windows-XP with a vc-71. (At head and delivered in some OSC-16 for summer.) SLC3-g++-3.2.3 : the same is ok too. MacOSX-Tiger-(10.4.6)-g++-4.0 : the same is ok now too. (End of 2005 had been a pain on Mac due to the arrival at the same moment of major releases of MacOSX-Tiger, g++-4.0, Qt4. set CVSROOT=:pserver:anonymous@cvs.sourceforge.net:/cvsroot/qtwin cvs co qt-4 qconfigure msvc G.Barrand / LAL / AA-26-April-2006

GUI integration through Qt(4) Graphics integration through OpenGL G.Barrand / LAL / AA-26-April-2006

HEP visualization (and then GUIs) HEP graphics / interactivity needs to handle three kinds of “scenes” : Event visualization (experiment specific) Detector visualization (experiment / HEP specific) Plotting : histograms, functions, tuples visualization (not experiment / HEP specific) At the engineering point of view, what needs to be put in place so that someone can manipulate the uppers is the same : a rendering layer, a scene-manager layer, a GUI layer, a viewer layer, a scripting layer. Panoramix, through OSC, comes now with a solutions for the three kinds of visualizations, but it appears that for the last kind of scene, which is not really experiment or even HEP specific, some dedicated applications / libraries can also be found and people may be glad to have them at hand and, if possible, to have a tight integration of them in a consistent GUI. An example is hippodraw and ROOT. G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 Example G.Barrand / LAL / AA-26-April-2006

GUI organization paradigm Having a GUI toolkit is fine, but not sufficient ; someone needs a GUI paradigm to organize things. “Flying around windows” paradigm : bof. Within LHCb, it had been demonstrated that from a Python shell, someone can : create some Panoramix-GUI panel to visualize an event or a piece of detector, spawn hippodraw that will create then its own GUI “shell” windows driven with its own logic and even create some ROOT/TCanvas coming then also in its own “shell window” and with its own logic. OK, FINE. But do we really want that ? No : at the end we pass time to “hunt windows” on a crowded desktop and fight with piece of GUIs having heterogeneous logics : a pain. Panoramix GUI done by using the document paradigm found in a lot of applications now and in particular in the various familiar “office applications”. Having a common GUI backend clearly permits to do that and a lot of software are now on Qt or have some “Qt-driver” to operate on Qt. G.Barrand / LAL / AA-26-April-2006

Hippo / OnX / integration through Qt Hippodraw GUI is Qt. Due to the good coarse graining design of hippodraw, the integration of the hippo Qt canvas within a OnX/Qt GUI had been straightforward. Now try to integrate also the inspector And…. G.Barrand / LAL / AA-26-April-2006

Hippo / OnX / integration through OpenGL Hippodraw graphic is done with Qt but due to a good coarse graining design of hippodraw, it had been easy to have an OpenGL driver of its graphic (LAL contribution). G.Barrand / LAL / AA-26-April-2006

Hippodraw / Panoramix / integration through OpenGL or Qt Mainly a question of release synchronisation scheduling « of everything » Could be delivered before the start up. G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 Panoramix / ROOT I WANT TO BE ABLE TO DO THE SAME WITH ROOT. Be able to integrate the plotting at the level of : The GUI (then through Qt4) (integrate the TCanvas) The graphic (then through OpenGL) (integrate the T?) Knowing that, with OpenScientist, Panoramix has already a (nice) solution… In fact having first the “OpenGL driver” would be the top priority. G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 Panoramix / SoPlotter (Sorry people, but with ROOT, I can’t do that…) G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 Geant4 / Qt There is definitely now user interest in having Qt “drivers for the visualization”… In principle nothing prevent to do it ; the whole structure (build system, interfaces and visualization categories organization) is ready for it. Job consists mainly in cloning what had been done for Motif : Having some interfaces/G4Qt global steering class. Have some interfaces/G4UIQt minimal terminal GUI for handling commands. Clone the vis/OpenGL and vis/OpenInventor Motif class that handles “viewers”. Any volunteer ? (no, as usual). G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 Online / Qt PVSS is going to be on Qt (right ?) A Panoramix/Qt (with event, detector, plot scenes) would be then embeddable in this environment ; which would be great ! (A lot of things could be explored here…) G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 Conclusions I LHCb has already a « unified » graphics covering the three kinds of scene in a consistent GUI, and this by heavily exploiting (through OpenScientist) the open source world resources (which minimize the home made developments). The « plotting scene » not yet exploited, probably due to the strong psychological « idée reçue » that only one software in the world can plot histogram. Qt4 is the best GUI candidate that, at last, emerged. LHCb has to consider this « thread » seriously. It could be put in place before the end of the year for Windows and Linux (and MacOSX). If satisfactory, LHCb could even avoid the OnX package which would aleviate the LAL engineering task (for LHCb) and do everything by using the python wrapping for Qt and Inventor. G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 Conclusions II « weak integration » through a python shell of hippodraw and ROOT in a Gaudi context already demonstrated. With some reachable efforts, LHCb could have hippodraw « strongly integrated » within Panoramix through the GUI with Qt4 but also « Higgs integrated » directly through the graphic with OpenGL. This had been possible because hippodraw is not some kind of quantum entanglement of everything ; then because it has a good coarse graining architecture. The delivering to the users is more now a synchronisation release question which is more in the hand of the « infrastructure » then in LCG/SPI. This could be done before the start up. G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 Conclusions IV Concerning ROOT, engineering requests are : Be able to integrate the plotting in applications for which the GUI is not based over the TGUI classes. Be able to integrate in a Qt4 based application the TCanvas : have a QTCanvas widget. Have an OpenGL driver for the 1D plotting and in fact for the whole ROOT graphics (which would permit integration at the level of the graphics (and not only at the level of the GUI)). Have all that coming with regular releases of ROOT. Within the LCG release area, have all that delivered over a common Qt4 installation for Windows, Linux and Mac. (by passing along, could be fine to have the same done for freetype2 and CINT). Is the organization of ROOT ready for that ? (It is long now that I have made my mind on that…). Developments around the SoPlotter will continue… (because, in fact the real problem in HEP graphics is here). (and mainly because I have no illusions on what is going to be done by CERN/LCG/ROOT in the upper list). G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 Conclusions V Nothing had been said about the python wrapping of all that. And there are issues here, especially knowing that, for example, the LCG reinvention of a C++ / Python wrapper is unable to treat properly the Inventor API (in fact CINT can’t do it too (strange)). PyQt status versus Qt4 ? PyQt wraps with SIP. pivy (coin3d wrapping) uses SWIG (the SWIG-1.3.28 is great). Compatibility with LCG/wrapper ? G.Barrand / LAL / AA-26-April-2006

G.Barrand / LAL / AA-26-April-2006 Meta-conclusions Apple-Jobs and Micro-Gates are not on Qt… Which means that the GUI story is not finished and due to the long life time of experiments, people must arrange things in order to be able to move on that point (then be able to discard today GUI solution to move on something else if needed). G.Barrand / LAL / AA-26-April-2006