root status and current developments
DESCRIPTION
ROOT status and current developments. Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT. http://root.cern.ch. Situation in 1994. pawlib. kernlib. packlib hbook zebra. paw. mathlib. cernlib. graflib. geant3. fluka. Situation in 1996. cernlib. objectivity. X. paw. - PowerPoint PPT PresentationTRANSCRIPT
ROOT developments 1
Alice workshop Sibiu21 August 2008
René Brun CERN/PH/SFT
ROOT status andcurrent
developments
http://root.cern.ch
ROOT developments 2
Situation in 1994
kernlib
flukageant3
mathlib
graflib
pawlib
packlibhbookzebra
paw
cernlib
ROOT developments 3
Situation in 1996
fluka
cernlib
lhc++
objectivity
geant4geant3
pawrootX
ROOT developments 4
Situation in 2008
fluka
geant4
root
vmcreplacemen
t
of
cernlib
ROOT developments 5
ROOT in 1995
ROOT started in January 1995 as a replacement for PAW/PAW++ in C++ Histograms Fitting Ntuples Visualization Macros a la kuip/kumacs (very basic C+
+) About 200,000 lines of code
ROOT developments 6
ROOT in 2008
Full replacement for CERNLIB, PAW, ZEBRA
+ many new packages and options Used by all HEP experiments 2000 classes, 2,000,000 lines of code
ROOT developments 7
Team CERN
4 permanent staff 2 short term 1 fellow 2 tech/doct students
FNAL 1 permanent staff
Others Many collaborators( >20) spending a small
fraction of their time in dev ROOT-specific tools
ROOT developments 8
Software Hierarchy
OS & compilers
Networking
Frameworks likeROOT, Geant4
ExperimentSoftware
End userAnalysis software
Hardware
20 MLOC
2 MLOC
2 MLOC
0.1 MLOC
HardwareHardware
HardwareHardware
ROOT developments 9
ROOT Application Domains
Data Storage: Local, Network
Data Analysis & Visualization
General Fram
ework
ROOT developments 10
Priorities
Consolidation and Robustness I/O performance and functionality CINT+Reflex merge ACLIC: more and more auto-compiled code Math, Stats, Fitting 3-D graphics + event displays GUI builder, editors, recorder
ROOT developments 11
ROOT I/O in 1995
Ad hoc per class (manual custom streamer)
Only for histograms, graphs and ntuples Only basic types supported (PAW support)
ROOT developments 12
ROOT I/O in 1996
Generic I/O Rootcint generates the class streamer
functions The TBuffer class TTree split mode for simple types only
ROOT developments 13
ROOT I/O since 1998 The generated Streamer functions are
replaced by the TStreamerInfo system that uses the dictionary info during Streaming.
The TStreamerInfo objects are stored in the file to support schema evolution and the possibility to process a ROOT file without the original classes.
Full support for templates and STL collections or deeply nested collections.
More and more complex cases of schema evolution.
ROOT developments 14
ROOT I/O current developments
Extension of auto schema evolution See
ftp://root.cern.ch/root/SchemaEvolution.pdf
A cat may become a cow Evolution rules set stored with the file
ROOT developments 15
I/O improvements
Performance improvements (thanks to TTreeCache) when accessing remote files with http, rootd or Dcache.
Parallel unzipping in a separate thread on multi-core systems (20 to 25% RT improvement)
Better use of the TreeCache in xrootd
ROOT developments 16
PROOF Stability improvements (new xrootd plugin)
Allows PROOF workers to reconnect in case xrootd needs to be restarted
Improved logging and memory monitoring Needed to find out where things do go wrong
Improved dataset management (TFileCollection) Interfaced to grid file catalogs, DBMS, flat files
Scheduling developments (avoid congestion) Fair share, group priorities & quotas
PROOF Lite prototype working (PROOF on single multi-core machine)
ROOT developments 17
Math libraries
ROOT developments 18
Geometry package
Stable and Robust Improvements in overlap checker G4root interface allowing G4 to use a
ROOT geometry at tracking time.
ROOT developments 19
GL Viewer Many developments (by Matevz/Alja Tadel)
to implement efficient GL data structures supporting caching and partial updates (show only what changes and set level of details).
Implement special lines, markers, cone jets, calorimeter cells required by event displays.
Implement multiple scenes in same canvas and support special transformations (eg fish-eye views, v-plots)
Improve GUI for clipping, cameras, selections, etc
ROOT developments 20
GL in the ROOT TPad
Efficient GL in pad for Parametric 3-D, 4-D functions 3-D,4-D points on a regular grid
(scanner)
ROOT developments 21
GL in TPAD
Working on visualization of 4-D and 5-D data sets with non equidistant points
ROOT developments 22
EVE: Event Displays
New package by Matez, Alja Tadel and Bertrand Bellenot
Many examples of event displays for CMS and Alice.
ROOT developments 23
CMS event display
ROOT developments 24
Hist Browser + stdin/stdout
ROOT developments 25
TGhtml web browser plug-in
URLURL
You can You can browse a root browse a root
filefile
You can execute a You can execute a scriptscript
ROOT developments 26
Macro Manager/Editor plug-in
Click on button to Click on button to execute script with execute script with
CINT or ACLICCINT or ACLIC
ROOT developments 27
ROOT Event Recording System
Goal: To record and replay all kinds of events in ROOT• Commands typed by user in console (“new TBrowser()”)• GUI events in ROOT windows (mouse movement, click, button
press…)
Motivation:• QA purposes (especially ROOT GUI)• Presentations, tutorials• To avoid performing the same operations manually again and
again• Create once and then just replay• Like macros in Excel
Current state:• Creation of window is part of recording
State is recorded and replayed together with events• All events stored in TTree in single TFile
replayrecord
ROOT developments 28
Dictionary Options – You Choose!
CINT dictionaryCINT dictionary
Reflex Reflex dictionarydictionary
selection.xml
Linkdef.h
genreflex.py
rootcint ROOT
Cintex
CINT parser
gccxml parser
ROOT developments 29
Dictionary Options – The Goal
Reflex Reflex dictionarydictionary
selection.xml
Linkdef.h
genreflex.py
rootcint ROOT
CINT parser
gccxml parser
ROOT developments 30
QA
LCG nightly builds check Compilation, link on Linux(ia32,64),
windows, MAC The test suite and tutorials (more than
1000 programs today)
ROOT developments 31
Release procedure
2 production releases/year (June, December)
Monthly development releases Release notes per package automatically
merged in one single html file at release time.