Title: Go4 version 3
1Go4 version 3
J.Adamczewski, H.G.Essel, S.Linev
IT/EE Palaver
2Go4 v3
- Go4 features
- Status of usage
- Analysis framework review
- New developments for v.3.0
3The Go4 features
- Framework for many kinds of experiments (Atomic
Nuclear Physics) - The analysis is written by the user (unlimited
ROOT) - Services and interfaces for analysis
- Batch mode (CINT or compiled, on/off-line)
- Interactive mode (on/off-line)
- A non blocking GUI controls and steers the
analysis - Analysis runs independently and can update
graphics asynchronously - ROOT object transport between analysis and GUI
task - Qt based GUI interfaces ROOT and Qt graphics
- User defined GUI supported (Qt designer)
4Go4 Package Layers
Go4 Framework
User Analysis
Go4 GUI
Go4TaskHandler
Qt Library
Go4ThreadManager
MBS
ROOT
5Screenshot of Go4 v3
6Go4 history and status
- Development start April 1999
- Go4 v.1.0 May 2002
- Go4 v.2.0 November 2002
- Go4 v.2.9 April 2005 (stable?)
- Go4 v.3.0 (and final v2.10) December 2005
- Users
- At GSI FRS, SHIP, AP, ESR, Rising, HypHi, HADES
online, ... - Outside TU Darmstadt, Uni Mainz, Uni Giessen,
INFN Milano, Weizman institute, IMPCAS,...
7Analysis framework
- TGo4Analysis baseclass
- Analysis setup (chain of analysis steps)
- Object organization, dynamic histograms
- Implicit / explicit event loop
- Virtual methods to be defined in user analysis
subclass - TGo4AnalysisStep defines one stage of the
analysis, implements event classes - User may design own subclass of TGo4Analysis
8Event Base classes
- TGo4EventElement Event structure (input and
output event) - TGo4EventSource Fills event structure with
data - TGo4EventStore Stores event structure
- TGo4EventProcessor Converts input event into
output event subclass of TGo4EventSource - TGo4EventFactory Defines the user
implementations of all the above at
initialization
9Analysis steps
TGo4Analysis
TObjArray
Input
Input
Input
Step
Step
Step
Process
Process
Process
Output
Output
Output
TUserAnalysis
Steps definition and control
10Analysis steps
Chain of analysis steps processed
sequentially Each step can be en/disabled
(framework) Input/output can be switched
(framework)
output
process
output
process
output
process
input
input
input
11Analysis Setup from GUI
Event input
Event output
Object persistency
Load/save config
12Implemented Services
- GSI standard DAQ (Mbs)
- TGo4MbsEvent, TGo4MbsSubEvent (format 10,1)
- TGo4MbsFile (read from .lmd)
- TGo4MbsEventServer, TGo4MbsStream,
TGo4MbsTransport (connect to Mbs) - TGo4RevServ (connect to remote event server
mrevserv) - Complex event structures toolbox
TGo4CompositeEvent - Root I/O
- TGo4FileSource, TGo4FileStore wraps 1 TTree
in 1 TFile - TGo4BackStore 1 TTree in memory only ( lt-
online TTreeDraw() )
13Analysis event loop
init objects
histograming
TTree registry
dynamic histograming
online TTreeDraw()
reset objects
14Developments for v.3
- Inter-task communication redesign multiple
viewers at one analysis server - New Object manager for GUI organization
decoupling of functionality and surface - Redesign of GUI elements browser, viewpanel,
editors, new MBS monitor,... - ROOT session (macro) may be controlled by Go4
GUI - ROOT session (TBrowser) may control Go4 analysis
- Go4 distribution for Windows XP (without Qt!)
15Improved communication mechanism
16New concept for objects organization
- Requirements
- central registry for all data
- naming like Analysis/Histograms/His1
- common API to browse and access data from
different sources like TFolder, TDirectory,
remote analysis and so on - decouple functionality and graphical surface
- possibility of interactive interface
17Proxy approach
- Instead of direct objects hierarchy (like
TFolder) mediator proxies are used. Proxy
functionality - Holds object pointer (with or without ownership)
- Provides iterator over object structure
- Provides metainformation about contained data
- Via the names gives an access to object data
- Correctly store/restore object to file
- Delivers messages, when object is inserted,
modified or deleted
18GUI object manager
- hierarchical structure of containers
- special proxies for different data sources
- single iterator for looping over complete
structure - message passing between different branches for
notification purposes - ROOT cleanup mechanism
- Supported data sources
- TFolder
- TDirectory (TFile)
- TTree
- TCanvas
- Remote Go4 analysis
- GSI histogram server
TSocket connection
19New Go4 browser
- Implemented as special OM proxy functionality
independent from graphical surface - One browser for all data sources (analysis,
file, histogram server, memory,...) - Full control by context menu
- Properties displayed in definable columns
- Monitoring is set as object property
- Object filter tool by state (monitored, fetched,
all) - Local memory workspace with user
subdirectories copy paste, dragn drop, create
subdir, rename
20New Go4 browser
browser
column popup
21New Go4 browser
monitor and filter tool
context menu
22View panel
- View management done by object manager
- Show same histogram in different views (ranges,
line and fill colors) - Improved marker editor, may also edit conditions
- Info on time/date and full object path
23Condition editor
2D polygon
1D limits
24Parameter editor
Remote editing of object (data structure)
contents
25Dynamic list editor
Histogramming on the fly
26New Mbs status monitor
Online event ratemeters, trending, remotely
inspect status and setup
27Remote dispatching of ROOT macro
object monitor
Go4 GUI
ROOT
hsimplego4.C
28Remote dispatching of ROOT macro
- Use regular ROOT session
- Init script to loads Go4 libraries and starts up
analysis server task - root .x go4Init.C
- All methods of TGo4AnalysisInstance() available
in CINT via go4-gt...(), - Register Root objects in CINT / analysis script
go4RegisterAll() (all histograms in root
memory), or go4-gtAddHistogram(TH1),
go4-gtAddObject(TNamed),... - Optional run control methods for macro
go4-gtWaitForStart() - suspend macro until start
button pressed go4-gtProcess() - break
eventloop when stop button pressed
29ROOT (TBrowser) for Go4 control
object monitor
ROOT
run control
Go4 analysis
hsimplego4.C
ROOT
30ROOT for remote analysis control
- Use regular ROOT session
- Instantiate TGo4Interface instance root
TGo4InterfaceInstance() - Connect to running analysis
- root go4-gtConnectAnalysis(host.domain,
5000, 2) - Create TBrowser instance root new TBrowser
- ROOT TBrowser will contain go4 folder, where
all objects in analysis will be displayed - CINT API (go4-gt...) for remote
control LaunchAnalysis(..), ConnectAnalysis(..),
SubmitAnalysisConfig(), StartAnalysis(),
StopAnalysis(), ExecuteLine(....),...
31Conclusions
- Go4 well established as GSI standard analysis
framework - v2.10 development finished, used in production
- new v.3.0
- First internal redesign stage (OM,
communication) - GUI layout and functionality improved
- Other graphical surfaces than Qt? possible now!
- ROOT session can control Go4 analysis
- ROOT macros can be controlled from Go4 GUI
- Port to other OS than Linux? WindowsXP
partially done MacOS(?) - v3.0 to do
- Testing, bug fixes, user interface improvements
- Replace analysis object management with new OM
- Redesign of analysis framework? Backward
compatibility! - Go4 v3.0 released and available at
http//go4.gsi.de