Ianna.Osborne@cern.ch Off-line Graphics Tools Ianna Osborne Northeastern University

Preview:

Citation preview

Ianna.Osborne@cern.ch

Off-line Graphics Tools

Ianna OsborneNortheastern University

Ianna.Osborne@cern.ch

Outline

Graphics and graphics tools

IGUANA

Demo

Ianna.Osborne@cern.ch

Graphics

The New Oxford Dictionary of English defines graphics as:

the products of the graphic arts, especially commercial design or illustration;

the use of diagrams in calculation and design;

visual images produced by computer processing.

the use of computers linked to display screens to generate and manipulate visual images.

Graphics tools for GUI, 2D and 3D graphics

Ianna.Osborne@cern.ch

Graphics Application Layers

X11X11 GLXGLX OpenGLOpenGL

OS

Spe

cifi

c (L

inux

)

GUIGUI 2D2D3D3D

3D/GUI3D/GUI

User ApplicationUser Application

Gra

phic

s T

oolk

itsan

d L

ibra

ries

Ianna.Osborne@cern.ch

Graphics Application Layers

X11X11 GLXGLX OpenGLOpenGL

OS

Spe

cifi

c (L

inux

)

GUIGUI 2D2D3D3D

3D/GUI3D/GUI

User ApplicationUser Application

Gra

phic

s T

oolk

itsan

d L

ibra

ries

Ianna.Osborne@cern.ch

Graphics Application Layers

X11X11 GLXGLX OpenGLOpenGL

OS

Spe

cifi

c (L

inux

)

GUIGUI 2D2D3D3D

3D/GUI3D/GUI

User ApplicationUser Application

Gra

phic

s T

oolk

itsan

d L

ibra

ries

Ianna.Osborne@cern.ch

Graphics Application Layers

X11X11 GLXGLX OpenGLOpenGL

OS

Spe

cifi

c (L

inux

)

GUIGUI 2D2D3D3D

3D/GUI3D/GUI

User ApplicationUser Application

Gra

phic

s T

oolk

itsan

d L

ibra

ries

Ianna.Osborne@cern.ch

Graphics Application Layers

X11X11 GLXGLX OpenGLOpenGL

OS

Spe

cifi

c (L

inux

)

GUIGUI 2D2D3D3D

3D/GUI3D/GUI

User ApplicationUser Application

Gra

phic

s T

oolk

itsan

d L

ibra

ries

Ianna.Osborne@cern.ch

IGUANA

Interactive Graphics for User ANAlysis

Main IGUANA focus - interactivedetector and event visualisation:

High- performance 2D/3D graphics;

Graphical user interfaces;

Data browsers.

Integration of other tools, components

The goal is to provide common look and feel for the CMS interactive graphical applications

Interactive analysis is not considered a primary goal. It is assumed that this functionality will be provided by other tools (JAS, Hippodraw, Lizard, ROOT, or OpenScientist)

Ianna.Osborne@cern.ch

GUI Toolkits

X11 GLX OpenGL

OS

Spe

cifi

c (L

inux

)

GUIGUI2D

3D

3D/GUI

User Application

Gra

phic

s T

oolk

itsan

d L

ibra

ries

Qt

Motif

gtk

Standard DialogsStandard Dialogs

MenusMenus

WidgetsWidgets

Ianna.Osborne@cern.ch

Qt Toolkit

Ianna.Osborne@cern.ch

Qt ToolkitImplicitly and Explicitly Shared Classes that use reference counting for fast copying.

Input/Output and Networking Classes to provide file input and output along with directory and network handling.

Multimedia Classes that provide support for graphics, sound, animation, etc.

The Qt application framework's underlying object model.

Organizers: splitters, tab bars, button groups, etc.

Plugin Classes.

Template Library: container classes.

Text Related and XML Classes (DOM, SAX)

Threading Classes

Widget Classes

Database related classes, e.g. for SQL databases.

Date and Time Classes for handling date and time.

Drag and Drop Classes dealing with drag and drop and mime type encoding and decoding.

Environment Classes to create and handle events and to provide various global services (event handling, access to system settings,internationalization.

Non-GUI Collection Classes such as list, queue, stack and string, along with other classes that can be used without needing QApplication.

Graphics and Printing Classes to provide drawing (and printing) primitives, including OpenGL and digital image encoding, decoding and manipulation.

Layout Management Classes to handle automatic resizing and moving of widgets, for composing complex dialogs.

Ianna.Osborne@cern.ch

Qt Example#include <qapplication.h>#include <qpushbutton.h>#include <qfont.h>

int main( int argc, char **argv ){ QApplication a( argc, argv );

QPushButton quit( "Quit", 0 ); quit.resize( 75, 30 ); quit.setFont( QFont( "Times", 18, QFont::Bold ) );

QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );

a.setMainWidget( &quit ); quit.show(); return a.exec();}

#include <qapplication.h>#include <qpushbutton.h>#include <qfont.h>

int main( int argc, char **argv ){ QApplication a( argc, argv );

QPushButton quit( "Quit", 0 ); quit.resize( 75, 30 ); quit.setFont( QFont( "Times", 18, QFont::Bold ) );

QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );

a.setMainWidget( &quit ); quit.show(); return a.exec();}

Ianna.Osborne@cern.ch

Qt Toolkit

Platforms: Qt/Windows is designed for MS Windows 95/98/Me, NT4, 2000 and XP.

Qt/X11 is designed for Linux, Solaris, HP-UX, IRIX, AIX, and many other Unix variants.

Qt/Mac is designed for Apple Mac OS X.Windows

A non-commercial version of Qt/X11 is the de facto standard C++ toolkit for GUI applications on Linux. The KDE desktop environment is based on Qt/X11.

Used by CMS, LHCb, D0, etc.

Recommended by LCG

Ianna.Osborne@cern.ch

3D Graphics Packages

X11 GLX OpenGL

OS

Spe

cifi

c (L

inux

)

GUI2D

3D3D

3D/GUI

User Application

Gra

phic

s T

oolk

itsan

d L

ibra

ries

Low-level 3D graphics: OpenGL

High-level 3D graphics:Open Inventor

Integration of 3D graphics with GUI toolkit: SoQt

HEP-specific 3D extensions: IGUANA (HEPVis)

Ianna.Osborne@cern.ch

2D Graphics

X11 GLX OpenGL

OS

Spe

cifi

c (L

inux

)

GUI 2D2D3D

3D/GUI

User Application

Gra

phic

s T

oolk

itsan

d L

ibra

ries

Qt

Qwt

Qplotter

Kmatplot

HEPVis

ROOT

Ianna.Osborne@cern.ch

User Application

FederationFederationwizardswizards

Detector/EventDetector/EventDisplayDisplay

Data BrowserData Browser

Analysis jobAnalysis jobwizardswizards

Generic analysis Generic analysis ToolsTools

ORCAORCA

FAMOSFAMOS

ObjyObjytoolstools

GRIDGRID

OSCAROSCAR COBRACOBRADistributedDistributedData StoreData Store

& Computing& ComputingInfrastructureInfrastructure

CMSCMStoolstools

Consistent User Consistent User Interface: IGUANAInterface: IGUANA

Coherent basic tools and Coherent basic tools and mechanismsmechanisms

Ianna.Osborne@cern.ch

IGUANA Plugin Architecture

Plug-InCachePlug-In

Cache

ObjectFactoryObject

FactoryComponentDatabase Plug-In

Cache

Plug-InPlug-In

Plug-InPlug-In

Plug-In ObjectFactory

Attached

Unattached

IGUANA provides a platform that makes it easy to integrate GUIs as a coherent whole, to provide application services and to visualise any application object

Many categories / layers: GUI gadgets & support, application environment, data visualisers, data representation methods, control panels, …

Designed to integrate with and into other applications

Virtually everything is in plug-ins (can still be statically linked)

Ianna.Osborne@cern.ch

Frameworks

ODBMS

GEANT 3 / 4

CLHEPPAW

Replacement

C++ Standard Library

+ Extension Toolkits

CalibrationObjects Generic Generic

Application Application FrameworkFramework

Physics modulesPhysics modulesGrid-UploadableGrid-Uploadable

BasicBasicServicesServices

Adapters and ExtensionsAdapters and Extensions

ConfigurationObjects Event

Objects

(Grid-aware) Data-Products

SpecificSpecificFrameworksFrameworks

EventEventFilterFilter

ReconstructionReconstructionAlgorithmsAlgorithms

PhysicsPhysicsAnalysisAnalysis

DataDataMonitoringMonitoring

Ianna.Osborne@cern.ch

ORCA Visualisation with IGUANAInteractive 3D CMS Detector geometry (Geant3) for sensitive volumes with level of details;Interactive 3D reps of reconstructed and simulated events including visualisation of physics quantities such as tangent of a simhit;Access event by event or automatically fetching events (no batch mode);Event and run number displayed;

Interactive picking;Correlated selection;Projections (a la 2D);Save .iv and print (gif, jpeg, tiff, bitmap and vector postscript);

Multiple (cloned) views;Slices and cuts;Printout for selected objects;Zoom and search;

Context help;Viewpoints;

Ianna.Osborne@cern.ch

OSCAR (Geant4) Visualisation

Ianna.Osborne@cern.ch

Tracker selection map:

display a layer/ring in a 3D window;

open a 2D map of a layer/ring.

2D selection maps:

display a module in a 3D window.

Print information

for selected

module

Draw SimHits

for selected

modules

Custom tracker selection is

implemented by Maria Mennea

and Guiseppe Zito, INFN

Vertex visualisation is

implemented by

Stephanie Moreau, IN2P3

PRS Contributions to IGUANA

Detector units

along

SimTracks

Improved performance;

New development by PRS groups:

● custom tracker selection,

● vertex visualisation

Tracker reconstruction geometry

implemented by

Eric Chabanat and Stephane

Olivie Perries, IN2P3

Ianna.Osborne@cern.ch

A bug in the HCAL noise simulation:"virtual" HCAL barrel towers (No. 16, 17) R = 280 cm (depth = 3) produce noise

Found and Fixed Problems: Digis in HCAL

Recommended