root status and current developments

31
ROOT developments 1 Alice workshop Sibiu 21 August 2008 René Brun CERN/PH/SFT ROOT status and current developments http://root.cern.ch

Upload: selena

Post on 15-Jan-2016

44 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: ROOT status and current developments

ROOT developments 1

Alice workshop Sibiu21 August 2008

René Brun CERN/PH/SFT

ROOT status andcurrent

developments

http://root.cern.ch

Page 2: ROOT status and current developments

ROOT developments 2

Situation in 1994

kernlib

flukageant3

mathlib

graflib

pawlib

packlibhbookzebra

paw

cernlib

Page 3: ROOT status and current developments

ROOT developments 3

Situation in 1996

fluka

cernlib

lhc++

objectivity

geant4geant3

pawrootX

Page 4: ROOT status and current developments

ROOT developments 4

Situation in 2008

fluka

geant4

root

vmcreplacemen

t

of

cernlib

Page 5: ROOT status and current developments

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

Page 6: ROOT status and current developments

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

Page 7: ROOT status and current developments

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

Page 8: ROOT status and current developments

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

Page 9: ROOT status and current developments

ROOT developments 9

ROOT Application Domains

Data Storage: Local, Network

Data Analysis & Visualization

General Fram

ework

Page 10: ROOT status and current developments

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

Page 11: ROOT status and current developments

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)

Page 12: ROOT status and current developments

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

Page 13: ROOT status and current developments

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.

Page 14: ROOT status and current developments

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

Page 15: ROOT status and current developments

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

Page 16: ROOT status and current developments

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)

Page 17: ROOT status and current developments

ROOT developments 17

Math libraries

Page 18: ROOT status and current developments

ROOT developments 18

Geometry package

Stable and Robust Improvements in overlap checker G4root interface allowing G4 to use a

ROOT geometry at tracking time.

Page 19: ROOT status and current developments

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

Page 20: ROOT status and current developments

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)

Page 21: ROOT status and current developments

ROOT developments 21

GL in TPAD

Working on visualization of 4-D and 5-D data sets with non equidistant points

Page 22: ROOT status and current developments

ROOT developments 22

EVE: Event Displays

New package by Matez, Alja Tadel and Bertrand Bellenot

Many examples of event displays for CMS and Alice.

Page 23: ROOT status and current developments

ROOT developments 23

CMS event display

Page 24: ROOT status and current developments

ROOT developments 24

Hist Browser + stdin/stdout

Page 25: ROOT status and current developments

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

Page 26: ROOT status and current developments

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

Page 27: ROOT status and current developments

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

Page 28: ROOT status and current developments

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

Page 29: ROOT status and current developments

ROOT developments 29

Dictionary Options – The Goal

Reflex Reflex dictionarydictionary

selection.xml

Linkdef.h

genreflex.py

rootcint ROOT

CINT parser

gccxml parser

Page 30: ROOT status and current developments

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)

Page 31: ROOT status and current developments

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.