IGUANA Architecture, Framework and Toolkit for Interactive Graphics

Similar documents
CMS event display and data quality monitoring at LHC start-up

FAMOS: A Dynamically Configurable System for Fast Simulation and Reconstruction for CMS

INTRODUCTION TO THE ANAPHE/LHC++ SOFTWARE SUITE

Trivial And Non-Trivial Data Analysis for Geant4

Geant4 application in a Web browser

(for the CMS Collaboration) CHEP 03, La Jolla, 24th March 2003

CMS Simulation Software

Introduction to Geant4 Visualization Geant4 v10.0.p3

JAIDA, JAS3, WIRED4 and the AIDA tag library experience and new developments

A Geometrical Modeller for HEP

Trivial Data Analysis for Geant4 Geant4 v9.3p01

Geant4 Visualization Status

VISPA: Visual Physics Analysis Environment

1 Introduction. V. Fine, Y. l%yak,?? Perevoztchikov, T.Wenaus

The CMS data quality monitoring software: experience and future prospects

A Prototype of the CMS Object Oriented Reconstruction and Analysis Framework for the Beam Test Data

8 Novembre How to install

AADL Graphical Editor Design

Status Report of PRS/m

v1.5 Latest version: v16r2 Panoramix: Interactive Data Visualization for LHCb Author: Guy Barrand (Framework) + contribution from many individuals

Andrea Sciabà CERN, Switzerland

Experiences with Open Inventor. 1 Introduction. 2 HEP Visualization in an Object-Oriented Environment

The Compact Muon Solenoid Experiment. Conference Report. Mailing address: CMS CERN, CH-1211 GENEVA 23, Switzerland

LCDG4 at NIU Status and Plans

Monitoring the software quality in FairRoot. Gesellschaft für Schwerionenforschung, Plankstrasse 1, Darmstadt, Germany

CS 4300 Computer Graphics

Interactive 3D graphics in HEP

Visualizing the evolution of software using softchange

First experiences with the ATLAS pixel detector control system at the combined test beam 2004

Atlantis event display tutorial

Fast pattern recognition with the ATLAS L1Track trigger for the HL-LHC

HippoDraw and Hippoplotamus*

HepRep: a Generic Interface Definition for HEP Event Display Representables

GraXML. Modular Geometric Modeler History Architecture. Data Sources Applications. Generic Model Geometric Model Core

Wakanda Architecture. Wakanda is made up of three main components: Wakanda Server Wakanda Studio Wakanda Client Framework

Physics and Detector Simulations. Norman Graf (SLAC) 2nd ECFA/DESY Workshop September 24, 2000

Xton Access Manager GETTING STARTED GUIDE

RenderMonkey 1.6. Natalya Tatarchuk ATI Research

Using the VMware vcenter Orchestrator Client. vrealize Orchestrator 5.5.1

A Generic Multi-node State Monitoring Subsystem

The CORAL Project. Dirk Düllmann for the CORAL team Open Grid Forum, Database Workshop Barcelona, 4 June 2008

PoS(ACAT08)100. FROG: The Fast & Realistic OPENGL Event Displayer

Geometry 3. I.Hrivnacova IPN, Orsay. Most slides thanks to M. Asai, SLAC. Cours Paris June 2007

UI, Graphics & EFL. Carsten Haitzler Principal Engineer Samsung Electronics Korea Founder/Leader Enlightenment / EFL

RenderMonkey SDK Version 1.71

org.lcsim Reconstruction and Analysis framework for ILC Detectors Tony Johnson SLAC July 2006

Common Software for Controlling and Monitoring the Upgraded CMS Level-1 Trigger

INTRODUCTION... 3 INSTALLATION GUIDE FOR ECLIPSE 3.1 AND INSTALLATION GUIDE FOR ECLIPSE 3.3 TO

iplots extreme Next-generation interactive graphics for analysis of large data Simon Urbanek AT&T Labs Statistics Research

I. Overview. General User Interface Development Flow

ATLAS Tracking Detector Upgrade studies using the Fast Simulation Engine

Like It Or Not Web Applications and Mashups Will Be Hot

GAUDI - The Software Architecture and Framework for building LHCb data processing applications. Marco Cattaneo, CERN February 2000

Introduction to Eclipse

inway SA 102, avenue des Champs-Elysées PARIS FAX

CMS data quality monitoring: Systems and experiences

The Road to CCSv4. Status Update

Laboratory Assignment #3 Eclipse CDT

SAS 9.2 Foundation Services. Administrator s Guide

Tools to Develop New Linux Applications

CLAS12 Offline Software Tools. G.Gavalian (Jlab) CLAS Collaboration Meeting (June 15, 2016)

Simulation and data reconstruction framework slic & lcsim. Norman Graf, Jeremy McCormick SLAC HPS Collaboration Meeting May 27, 2011

PTN-202: Advanced Python Programming Course Description. Course Outline

Suez: Job Control and User Interface for CLEO III

CMS - HLT Configuration Management System

Creating and Running Mobile Agents with XJ DOME

The full detector simulation for the ATLAS experiment: status and outlook

Metview 4 ECMWF s next generation meteorological workstation

Configuration and Build System

Rapid Application Prototyping Environment. Currently 920+ Standard modules in the MeVisLab SDK core, modules delivered in total

Improved ATLAS HammerCloud Monitoring for Local Site Administration

Atlantis: Visualization Tool in Particle Physics

Distributed Engineering Data Management (EDM) using HyperText

Enterprise Architect Training Courses

Software Engineering (CSC 4350/6350) Rao Casturi

The FRED Event Display: an Extensible HepRep Client for GLAST

Data Quality Monitoring Display for ATLAS experiment

org.lcsim Reconstruction and Analysis package

Visualization in GEANT4. 1 Introduction. 2 User Requirements. University of Manchester, UK. John Allison

Managing custom montage files Quick montages How custom montage files are applied Markers Adding markers...

Regular Forum of Lreis. Speechmaker: Gao Ang

Event visualisation for the ATLAS experiment - the technologies involved

Implementing a Numerical Data Access Service

Simile Tools Workshop Summary MacKenzie Smith, MIT Libraries

Empower Data Exporter. The Empower Data Exporter is for use with Empower 2154 and requires the Microsoft.NET Framework version 2.0.

Geant4 Installation Guide

Getting the Most from Eclipse

Spark processor programming guide

Binary Markup Toolkit Quick Start Guide Release v November 2016

Geant4 Computing Performance Benchmarking and Monitoring

Enterprise Architect. User Guide Series. Ribbons. Author: Sparx Systems Date: 27/05/2016 Version: 1.0 CREATED WITH

Extended Search Administration

Software Tools. Scott Klemmer Autumn 2009

Enterprise Architect. User Guide Series. Ribbons. Author: Sparx Systems Date: 15/07/2016 Version: 1.0 CREATED WITH

AppDev StudioTM 3.2 SAS. Migration Guide

Training Course Content

CPPsim User Guide. Table of Contents Page 2 Installation Guide Page 10 Computer Setup Page 13 Running CPPsim Page 15 Possible Future Issues

HippoDraw and Python

Code architecture and organisation

Zend Studio 3.0. Quick Start Guide

Transcription:

IGUANA Architecture, Framework and Toolkit for Interactive Graphics George Alverson, Giulio Eulisse, Shahzad Muzaffar, Ianna Osborne, Lassi A. Tuura, Lucas Taylor Northeastern University, Boston, USA IGUANA is a generic interactive visualisation framework based on a C++ component model. It provides powerful user interface and visualisation primitives in a way that is not tied to any particular physics experiment or detector design. The article describes interactive visualisation tools built using IGUANA for the CMS and D0 experiments, as well as generic GEANT4 and GEANT3 applications. It covers features of the graphical user interfaces, 3D and 2D graphics, high-quality vector graphics output for print media, various textual, tabular and hierarchical data views, and integration with the application through control panels, a command line and different multi-threading models. 1. INTRODUCTION IGUANA - Interactive Graphics for User ANAlysis - is a modular C++ toolkit for interactive visualisation. The project mainly focuses on interactive detector and event visualisation with emphasis on: High performance 2D and 3D graphics; Graphical user interfaces; User access to the experiment services: data access framework, application execution framework, etc. The goal of the project is to provide easy-to-use coherent interactive graphical application interface for the physicist, where the main application - IGUANA studio - interfaces to other tools and components. Interactive histogram, ntuple analysis is not considered a primary goal. It is assumed that this functionality will be provided by other tools and projects such as JAS [4], Hippodraw [10], ROOT [3], or OpenScientist [12], which may (or may not) ultimately be integrated with IGUANA. IGUANA development is mainly driven by the needs of the CMS and D0 experiments, but most of IGUANA is independent of CMS or D0 and can be freely used by others. In CMS, IGUANA releases are available directly via SCRAM [11] which keeps a list of the IGUANA project releases. Instructions versioned by release on how to download and install IGUANA are available for any selected version. IGUANA is currently supported on Linux, Solaris and Windows. Porting to other unix varieties is reasonably straightforward. 2. ARCHITECTURE AND FRAMEWORK IGUANA architecture is designed to provide a generic tool that can integrate with a specific experiment or even a single task within it without having to specify a fixed list of abstract interfaces or having to standardise on a common object description. IGUANA has a small kernel, everything else is implemented in demand-loaded extensions which negotiate the specific services they need. This allows new services to be added quickly, to be propagated into existing code gradually, and existing services to be altered to do new things easily. The full documentation is available on the project website 1 automatically generated for every release from the sources kept in CVS. 2.1. Core Overview The main units relating to the IGUANA architecture are: A thin portability and utilities layer; A small kernel that manages a number of plugins: application personalities; session with extensions forming the shared application state; user interface components: sites, browsers; representation methods to map between the experiment objects and the various browsers; External software imported into IGUANA for convenience of building and distribution, and external software which remains outside IGUANA. The portability layer, is mostly implemented by the classlib package which in future will be distributed by the LHC Computing Grid (LCG) SEAL project [2]. The kernel is implemented by IgPluginManager, a generic plug-in manager package, which is extended by the architecture kernel package IgObjectBrowser that 1 http://iguana.cern.ch 1

Figure 1: ORCA visualisation based on IGUANA: IgSplitter sites (horisontal and vertical) host the 3D browser, the Twig browser, and the Text browser. Communication is established among all the browsers: correlated picking from the 3D browser window broadcasts selection. The Twig browser responds by highlighting corresponding Twig leaf and the text rep in the form of an html text is displayed in the Text browser. provides the core functionality: session objects, extensions, user interface components, representations, etc. and base interfaces for the various plug-in types. The plug-ins are in the Ig Modules subsystem which includes the event display core, application management services, and thin adaptors to export external software in forms understood by the architecture. For more details see [8]. 2.2. Application Personalities When an IGUANA program runs, it first creates a session object into which it then attaches an application personality: the main program that determines all subsequent behaviour (IgSession, IgDriver). Typically the personality immediately extends the session object with services pertinent to the purpose of the application (IgExtension). For example, a graphical personality would create a main window and add services that give access to the menus and maintain GUI event loops. The personality then loads a number of extensions into the session; a graphical personality would tell the system to load all GUI extensions (IgExtension). The personality and the extensions form the application. The personality exposes features by installing service interfaces into the session, based on which other extensions can provide further services and make features available to the user. 2.3. Browsers and Sites An interactive application personality creates its user interface based on one of the user interface components: browsers and sites (IgBrowser, IgSite). A browser is a way to look at and interact with application objects (see Figure 1). It may also control other things, such as a cut in a histogram display. A browser does not however have to be graphical: it might just sit on the background and respond to other browsers queries such as What actions can be invoked on this object? Sites host browsers, by providing for example a window for a 3D browser view. More generally sites expose objects such as GUI widgets as hosts for other sites and browsers. Sites need not to be graphical either: a pipe site might host a browser communicating to a subprocess. 2.4. Object Representations Application objects can be represented in many different browsers. A browser typically has a model made of a number of object reps (IgModel, IgRep). The use of model-specific reps, such as 3D shape objects, is encouraged rather then the application objects themselves. This permits an object s representation to be separated from the object itself. It is possible to correlate the object s reps in different browsers and to create a rep in a right context in each browser. 2

This implementation requires representable application objects to inherit from a common base type (IgRepresentable) or make it an alias for another class. The only requirement is that the type must be polymorphic; IgRepresentable simply defines a virtual destructor and no other methods. In CMS there is however no base type shared by all objects; for visualisation the proxies are used that inherit IgRepresentable and point to other CMS objects. The primary reason for this choice is the framework s support for virtual objects that can be materialized upon request. The object rep mappings are extensions loaded dynamically on demand. IGUANA discovers and chooses the right mapping automatically; the extension code simply does whatever is appropriate for that combination. It is not necessary to have a global list of all the pairings: code for new reps and views can be dropped in without any changes to existing code. 2.5. Communication Communication takes place through three channels: session extensions, message services, and the object mapping methods. The first has already been covered. The message services allow browsers to share messages such as I selected this : all observers of a service can maintain together a coherent state and to answer queries from each other while still knowing next to nothing about the message sender (see Figure 1). The final channel is the object rep model operations, one of which was already mentioned: the creation of a rep. Another operation commits a changed rep back to the object, yet another lazily expands an object rep (for example to read data only when it is requested). The operations can be extended, both to handle new argument combinations and with new methods with arbitrary parameter types (IgBrowser- Methods). 3. VISUALISATION FRAMEWORK FOR GEANT4 IGUANA provides an interactive visualisation subframework for GEANT4 [5]. The framework implements DCUT, DTREE-like functionality (as in Geant3). It allows to explore and visualise the volume tree, with all the usual IGUANA 3D features: view, correlated picking, slices per object, etc. with the Geant4 command line still accessible. Navigation in the volume tree can be done either by logical or physical volumes, or subsets. There are quick operations for common tasks. Volume property window shows additional information about selected object or volume. Volume tree selectors provide various types of selection: by material: show all silicon ; by sensitive: show only sensitive detectors ; for a sub-tree, predefined viewpoints/settings; forward + reverse: show where this is used. The framework is used in the CMS OSCAR simulation project where an IGUANA wizard is used to guide through GEANT4/OSCAR settings. The application is integrated with Martin Liendl s overlap detection: overlaps are found and the result details are shown in a list. Two generic examples showing how to use an arbitrary GEANT4 geometry with the framework are distributed with IGUANA experiment-independent core: the GEANT4 example number two and the ATLAS calorimeter example. 4. APPLICATIONS There are several applications based on IGUANA plug-in architecture. Among those are OSCAR and ORCA visualisation which are well known in CMS and actively used for visualising simulated and reconstructed CMS data. D0Scan (see Figure 2) currently uses IGUANA as a toolkit. It is used at D0 for event and detector visualisation. 4.1. Experiment Specific Plug-ins IGUANA is used by other software projects to define experiment-specific views. Among these projects are the CMS experiment projects 2 : COBRA - core framework, OSCAR - simulation project, ORCA [6] - reconstruction project, FAMOS - fast simulation project, DDD - detector geometry description and the D0 experiment project: D0Scan. The integration with experiment-specific frameworks is an IGUANA dependent part, usually a sub-system, which is located within the experiment project. Even though IGUANA core knows nothing about these sub-systems, the main driver can still load experiment-specific plug-ins providing that the location of those plug-ins is listed in the IGUANA PLUGINS environment variable as path defined by a colon-separated list of directories and the experiment-specific shared libraries are available at run-time. 2 http://cmsdoc.cern.ch/cmsoo/cmsoo.html 3

Figure 2: D0 event display based on IGUANA. The projects build plug-ins similar to the described above (section 2.1). Usually, each project has a dedicated sub-system called Visualisation for that purpose. The sub-system contains project specific modules, or plug-ins. The kernel loads the modules dynamically as required. Currently a user selects what to load at the interactive setup phase or via a resource file. The plug-ins are normally demand-loaded shared libraries but IGUANA also supports statically linked applications, therefore no shared libraries need to be involved. 4.2. ORCA Visualisation Visualisation for the CMS reconstruction project (ORCA) (see Figure 1 and Figure 3) provides access via COBRA plug-ins to both simulated (cmsim) and reconstructed event data, and Geant3 based CMS geometry as well as reconstructed geometry. Events are requested interactively one by one from a specified data collection. The IGUANA GUI runs in a separate thread. Communication between the GUI thread and the event thread is handled by the COBRA-based event processor plug-in. The visualisation content is defined at run-time. Plug-ins for different ORCA sub-systems can be loaded independently. A user can define the content of the application in an ASCII text resource file. Various visualisation cuts can also be defined in the resource file. The on-line configuration editor implemented as an IGUANA service allows to change them interactively or set new configurables during the run. 4.3. D0Scan D0Scan is an event viewer for D0 using IGUANA. The D0Scan design is based upon the IGUANA IgVis module which provides a very flexible set of tools for organizing an OpenInventor scene, creating a GUI to control visibility of items in the scene, and centralizing picking callback. Items such as detector components, hits, tracks, and so forth are implemented as IgQt- Twigs and arranged in a hierarchical structure similar to the OpenInventor scene graph. This structure is represented in the Twig browser that controls visibility of graphical objects. D0Scan makes heavy use of the ability of IgVis to support multiple windows with different characteristics. User demand has led to the development of specialized displays as, for instance, in the η φ projection of the distribution of energy in the calorimetry. 4

Figure 3: ORCA visualisation based on IGUANA: Z view (left) of H > eeµµ event and sliced Y view of the same event (right). CMS detector description based on Geant3 and reconstructed geometry is shown for the tracker silicon detector. Simulated tracks: muons shown with red color, electrons - green, pions - blue, all other particles - cyan. 4.4. OSCAR Visualisation 5.1. LCG Software and Services Visualisation for CMS simulation project using GEANT4 - OSCAR visualisation - is based on the interactive visualisation sub-framework of IGUANA for GEANT4 described above in section 3. CMS detector geometry is described in XML by DDD - Detector Description Database project. This description is converted to the GEANT4 one and visualised. IGUANA team actively participates in the LCG project. Part of the software has already migrated to SEAL such as the classlib and plug-in manager. IGUANA uses services provided by SPI such as Savannah bug reporting system. POOL is used indirectly via experiment specific plug-ins. 5. TOOLKIT IGUANA makes use of suitable existing software where possible and integrates the whole in a coherent fashion. Application developers select from the toolkit only those parts which are relevant for a particular application. External software used by IGUANA includes the 3D graphics libraries: OpenGL and OpenInventor, the Qt toolkit as a GUI kernel, public-domain Qt and Inventor extensions, various packages for plotting and interactive analysis, an XML parser, etc. Being accessible via IGUANA services with dedicated GUI extensions, both Oprofile and Jprof are used for debugging. IgNominy [7] - an IGUANA tool for dependency analysis depends on Graphviz for drawing diagrams. Doxygen is used for auto generated reference documentation. IGUANA studio printing services integrate gl2ps for producing high quality vector postscript. The team has improved culling algorithms of the package which reduce the size of the printed file dramatically and fed them back to the author. 6. FUTURE PLANS IGUANA will provide wider selection of 2D and 3D representations and specialized viewers including the time snapshots of visualized data, algorithm dependent views, and animation. The project progresses toward coherent physicist desktop emphasizing the role of wizards for experiment specific environment, control center, and other services. Future possibilities are open for discussion in context of the LHC LCG project, e.g. PI - Physicist Interface project. Among those there are issues of integration and future relationship with ROOT, JAS, etc. and potential front-end GUI for GRID applications. Acknowledgments This work is supported by the US National Science Foundation. 5

References [1] V. Innocente, CMS Data Analysis: Current Status and Future Strategy, these proceedings, CHEP03, La Jolla, March, 2003. [2] P. Mato, L. Tuura, et al., SEAL: Common core libraries and services for LHC applications, these proceedings, CHEP03, La Jolla, March, 2003. [3] R. Brun, et al., ROOT Status and Future Developments, these proceedings, CHEP03, La Jolla, March, 2003. [4] T. Johnson, et al., JAS3 - A general purpose data analysis framework for HENP and beyond, these proceedings, CHEP03, La Jolla, March, 2003. [5] J. Apostolakis, et al., An overview of Geant4 s recent developments, these proceedings, CHEP03, La Jolla, March, 2003. [6] V. Innocente, D. Stickland, Design, Implementation and Deployment of a Functional Prototype OO Reconstruction Software for CMS. The ORCA Project., Proceedings to CHEP-2000, Padua. http://cmsdoc.cern.ch/orca [7] L. Tuura, Ignominy: Tool for Analysing Software Dependencies and For Reducing Complexity in Large Software Systems, Proceedings of the VIII International Workshop on Advanced Computing and Analysis Techniques in Physics Research, Moscow, Russia, June, 2002. [8] G. Alverson, I. Osborne, L. Taylor, L. Tuura A Coherent and Non-Invasive Open Analysis Architecture and Framework with Applications in CMS, Proceedings of CHEP 2001, Beijing, September, 2001. [9] G. Alverson, I. Osborne, L. Taylor, L. Tuura The IGUANA Interactive Graphics Toolkit with Examples from CMS and D0, Proceedings of CHEP 2001, Beijing, September, 2001. [10] P. Kunz, The HippoDraw Application and the HippoPlot C++ Toolkit Upon which it is Built, Proceedings of CHEP 2001, Beijing, September, 2001. [11] S. Ashby, I. Osborne, J.P. Wellisch, C. Williams, Code Organization and Configuration Management, Proceedings of CHEP 2001, Beijing, September, 2001. [12] G. Barrand, Lessons from the Open Scientist Project, Proceedings of CHEP 2000, Padova, February, 2000. 6