13 June 2001M.Al-Turany/Root20011 Mohammad Al-Turany Go4 GSI Darmstadt 13 June 2001
M.Al-Turany/Root20012 Go4 Project GSI object-oriented online-offline system Go4 Requirements GSI: Heavy Ion and Atomic Physics various (~40) DAQ systems installed small to medium sized experiments on-line analysis required (Non-Blocking GUI) GUI shall control running analysis » Tasks and Threads selected ROOT as framework
13 June 2001M.Al-Turany/Root20013 Task Handler Thread Manager GUI Event Analysis Display Go4 package Overview
13 June 2001M.Al-Turany/Root20014 Command Thread Status Thread Data Thread Command Thread Status Thread Data Thread Work Thread Watcher Thread Logging Thread Connector Thread Launch Thread GUI Callback Data Loop queue IP Network Drawing Thread Display Task (Server) Analysis Tasks (Client 1,2,...) Task Handler Functional overview of the Go4
13 June 2001M.Al-Turany/Root20015 Analysis and GUI in separate tasks Multi-threading Communication through socket threads Object streaming by ROOT Use of ROOT native GUIs as well as Qt GUIs Go4 features
13 June 2001M.Al-Turany/Root20016 First Experiance with GUI Go4 Viewer Features: 1.Remote: Histogram API client for LEA, GOOSY and MBS servers at the GSILEAGOOSYMBS Auto preview of histograms header data Histograms can be directly imported into ROOTROOT 2. Local: Full functional file browser Direct conversion of Ntuple and Hbook files to ROOT files 3. Archive: API client for mass storage at the GSI
13 June 2001M.Al-Turany/Root20017 First Experiance with GUI Go4 Viewer (Remote)
13 June 2001M.Al-Turany/Root20018 First Experiance with GUI Go4 Viewer (Local)
13 June 2001M.Al-Turany/Root20019 First Experiance with GUI Go4 Viewer (Archive)
13 June 2001M.Al-Turany/Root Go4 GUI Requirements Non Blocking GUI Dynamical exchange of data between different windows Updating the status of a GUI window even if it is not being displayed Possibility to restore the status of a closed windowat any time
13 June 2001M.Al-Turany/Root Design of the Go4 GUI Root GUI Qt GUI
13 June 2001M.Al-Turany/Root Registering a slot objects
13 June 2001M.Al-Turany/Root Getting a registered slot objects pointer
13 June 2001M.Al-Turany/Root Updating dependents objects
13 June 2001M.Al-Turany/Root Register a dependent object
13 June 2001M.Al-Turany/Root Conclusions This Design was implemented and tested with ROOT widgets and/or Qt widgets successfully The Qt-ROOT interface was tested successfully in the multi- tasking and multi-threading environment of the Go4 Base Classes for building GUIs were designed and implemented go4.gsi.de