Prototype of the ALICE Event Visualization Framework

Authors: Alja & Matevz Tadel




Event display is an application offering "graphical user interface to" and "visualization of":





  1. visual debugging ---> need complex selections and simultaneous display of many elements

  2. facilitate preparation of "scientific results" and "documentary material"

  3. help users understand the detector, event structure and reconstruction algorithms

  4. presentations, demonstrations & outreach activities

Basic Considerations & Design Guidelines


Very wide ---> "event display" is a many headed dragon.

Instead of designing it as a monolithic application ... build the skeleton and internal organs first. Call these an

Event Visualization Framework (EVF)

Common base on which different and specialized front-ends can be attached (eg. for on-line monitoring).

Basic elements/operations:

  1. convert ALICE data into visualization-optimized structures

    ALICE is an extreme case (event size, # of tracks)

  2. visualization of basic components (geometry, kinematics, hits, ...)

  3. provide mechanisms for data-selection

    queries that consider simulated AND reconstructed data (cross-selections)

  4. open design ---> allow extensions/specializations by user-code on all levels

  5. support for custom front-end building

Software prerequisites


Absolute prerequisite --- the mother of everything.

Rely heavily on ROOT I/O and advanced features of TTree's (indices, friends).

Ideally would only need a thin library including:


ALICE specific part mandatory for:

  1. data conversion

  2. raw-data or digit visualization

  3. interaction with reconstruction & analysis algorithms

It should be possible to run basic visualization without ALICE libraries.


ROOT-based framework for object-collection management, dynamic visualization & distributed computing (

General plan

Build a complete prototype of Event Visualization Framework

Complete: reading & displaying all levels of ALICE data

Prototype: can be somewhat sloppy about implementation details; provide only rudimentary GUI elements

Needed to:

The prototye is basically done.

Sorely missing: visualization of digits raw-data (only TPC done).


Family project: Alja working since mid Nov-04, I began contributing directly in Jan-05


ROOT geometry (TGeo) visualization


basic interface to AliROOT; kinematics


simulated hits, TPC digits

Beginning of Jun-05

TPC clusters, reconstructed tracks and V0's, prototype of cross-selections

End of Jun-05

ITS clusters (trivial) and digits (painful)


No separation on ALICE specific .vs. VisCore part yet.

Read ALICE data and produce Visualization Summary Data (VSD) file.

The VSD can be read back and used without the presence of ALICE data.


A general visualization tool for ROOT TGeo geometries


thumbs/rootgeo-alice-1.png thumbs/rootgeo-alice-2.png

ALICE geometry: a) geo-volume browser; b) overlaps and extrusions

Simulation data

Kinematics done

Hits done for ITS, TPC, TRD, TOF (easy to add others)

TPC hits are thinned by a factor of 10.

thumbs/cent-full-persp.png thumbs/kine_hits.png

a) primary charged particles in a central event; b) kinematics and hits

Digits & Clusters

Done for TPC and ITS.

Clusters for other sub-detectors easy to add.

Digits diplay is detector specific, need further input.

Creating a complete digit-viewer is a daunting task (need special layout of elements, navigation mechanisms, histogram output ...).


thumbs/TPCplates.png thumbs/TPCdigits.png

a) TPC clusters and digits; b) hits also added

Maximal pad-value is drawn.


thumbs/itsdig_10k_persp.png thumbs/itsdigrec_100_z.png

a) coctail 10k: full its digits; b) small event (coctail 100): z-view of ITS clusters and reconstructed tracks

thumbs/itsdigpix_10k_persp.png thumbs/itsdigspd_10k_persp.png

coctail 10k: a) pixels; b) silicon drift

Reconstructed tracks and V0's

thumbs/rec_abstract.png thumbs/V0.png

a) Reconstructed tracks, clusters and kinematics; b) reconstructed V0


Installation available on afs, eg:

 /afs/ -- AliLoader.C

Use 'aligled -help' to get confused.

Available scripts:


event visualization


full ALICE geometry (somewhat dated, though)


check for overlaps and extrusions in full geometry


simple geometry, as used for the event visuzalization

Random notes

  1. If possible, use hardware accelerated graphics drivers.

    For ATI and NVIDIA this might help

  2. To navigate in the 3D window, use:

     left-drag          forward/backwards slide left/right
     ctrl-left-drag     slide up/down     slide left/right
     mid-drag           turn up/down      turn left/right
     ctrl-mid-drag      turn down/up      roll left/right
     <Home>		    return to the origin
     <F1>               spawn view-control window
     <F2>               spawn camera-position window
  3. Some documentation available from Somewhat rotten and/or incomplete, but not misleading.


Split development of functionality and framework structure

Functionality: be pragmatic and opportunistic

  1. keep the prototype working (in case somebody needs a picture for his talk)

  2. fill-in the missing parts and extend it to accommodate user's needs

  3. raw-data visualization

Framework structure:

  1. separate ALICE specific part

  2. prepare mechanisms for attachment of specialized GUI front-ends (especially for pure ROOT GUI)

  3. bridge the gaps between ROOT and GLED GUI & OpenGL rendering