1 / 31

ROOT status and current developments

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.

selena
Download Presentation

ROOT status and current developments

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Situation in 1994 pawlib kernlib packlib hbook zebra paw mathlib cernlib graflib geant3 fluka ROOT developments

  3. Situation in 1996 cernlib objectivity X paw lhc++ root geant3 geant4 fluka ROOT developments

  4. Situation in 2008 geant4 root vmc replacement of cernlib fluka 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 End user Analysis software 0.1 MLOC Experiment Software 2 MLOC Frameworks like ROOT, Geant4 2 MLOC OS & compilers 20 MLOC Hardware Networking Hardware Hardware Hardware Hardware ROOT developments

  9. ROOT Application Domains Data Analysis & Visualization General Framework Data Storage: Local, Network 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 URL You can browse a root file You can execute a script ROOT developments

  26. Macro Manager/Editor plug-in Click on button to execute script with CINT 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 record replay ROOT developments

  28. Dictionary Options – You Choose! Reflex dictionary gccxml parser selection.xml genreflex.py ROOT Cintex Linkdef.h rootcint CINT parser CINT dictionary ROOT developments

  29. Dictionary Options – The Goal Reflex dictionary gccxml parser selection.xml genreflex.py ROOT Linkdef.h rootcint CINT 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. ROOT developments

More Related