Upload
phamminh
View
217
Download
2
Embed Size (px)
Citation preview
G. Brandt Report from ROOT 20071
Report from the
Gerhard Brandt Uni Heidelberg
DESY Computing
Seminar- 2. April 2007
Or: Beyond TH1F::Fill() ...
G. Brandt Report from ROOT 20072
Core Functionality● libCore● CINT / Reflex● BOOT● Reference / Thtml● Maths● I/O
Interfaces & Bindings● PyROOT● SQL & XML I/O● Ajax●OpenGL●Qt, MFC
ROOT in Experiments● Online Data Quality Monitoring● Event Visualization● Simulation● Analysis
Distributed ROOTing● xrootd● PROOF
External Packages● UNU.RAN● TMVA● MadTools / StatTools● RooFit / RooStats
ContentsROOT provides facilities for all steps in the HEP software chain
G. Brandt Report from ROOT 20073
What is ROOT
● Object Oriented Data Analysis Framework● Successor to PAW● Current Pro Version: 5.14 (15 Feb 2007)● Current CVS Version: 5.15/04● Next Pro Version: 5.16 (Planned for 27 June 2007)
History
G. Brandt Report from ROOT 20074
(2007 prospected check-ins: ~5000)
Fulltime ROOT Developers
11 @ CERN 2 @ FNAL
ROOT Development Overview
95 libraries
CVS check-ins
95 Packages
G. Brandt Report from ROOT 20075
ROOT in ExperimentsList from (controversial) Wikipedia entry on ROOT✓
✓
✓
✓
(ATLAS excused - Software Week in Munich)
✓ Talks at ROOT 2007
IRMM, (Geel, Belgium)OPERACBM / GSI (Darmstadt)
✓
✓
✓✓
Astro-Particle PhysicsNeutrino PhysicsNeutron PhysicsNuclear Physics
More contributions /feedback fromcurrent generationexperiments would beuseful
✓✓
Presentations of AOD Modelsof LHC Experiments not shown
G. Brandt Report from ROOT 20076
H1OO 3.0.12
50986
579
578
62498
170193
232691
269582
54
Size of some ROOT-based HEP Software Frameworks
G. Brandt Report from ROOT 20077
ROOT User Support (root.cern.ch)
Static Docu ▼
Dynamic Docu
User Support● R. Brun > 50% working time● Forum 2185 users 14.3 posts/day● Mailing List 1275 users 5.3 mails/day● Bug Reports via LCG Savannah● Class Indices -> THtml● Reference Guide ● ViewCVS ● Wiki (mostly for PROOF/CINT)● New Webserver● Site Redesign planned (remove legacy 1996 info)● ROOT Workshop talks (pdfs / videos)
G. Brandt Report from ROOT 20078
Improved Documentation: The new THtml
Documentation of Modules
Improved Class Hierarchy Diagrams using AT&T GraphViz / dot
Quicklinks Documentation of ClassesToolbox
Faster Navigation
Improved Layout
● THtml generates documentation from source code
also for includes / libs:Helps restructure code
Embedded HTML
G. Brandt Report from ROOT 20079
C o n s o l i d a t i o n
12 years of ROOT have seen 1000s of features addedbut not always in a systematic or optimal way
now prepare for large-scale use at LHC:
For Experiment-Frameworks:
● Guarantee Stability and Performance of I/O● New features only as required
● 64bit + multicore processors● Support (LHC) Experiment Object Models / Use Patterns● GRID
For End-Users (Notebook):
● Simple Installation / Automatic Updates● Lean Core● Modularisation BOOT
ROOT Core Road Map
G. Brandt Report from ROOT 200710
CINT / Reflex
CINT
● ROOTs C++ Interpreter by M. Goto since 1991● Provides ROOT command line● C based – Rewrite in C++ planned (currently in design phase)● Main Job: Reflection Manager● Store Info about available Types, Classes, Functions in structs● Dictionary Code generated by rootcint● Dictionary is compiled● Plans: OO Redesign
Reflex
● C++ Library to store reflection information (part of SEAL)● Store in in a ROOT file: dict.root● Bypass stubs● Generate On-demand dictionary
Plan:CINT + Reflex = CINT7
A. Naumann
G. Brandt Report from ROOT 200711
Virt. Address Pointer
● Remove CINT stubs● Code Size Reduction ~ 3● Lib Size Reduction ~ 1.5
Reducing Dictionary Size
G. Brandt Report from ROOT 200714
Reorganisation of ROOT Libraries - Phase 3
BOOT● Download Minimal Fraction of Source● Compile & Update as needed
The Future:
G. Brandt Report from ROOT 200715
Reorganisation of ROOT Libraries - Implications
Library dependencies ● root.exe only links with -lCore -lCint -lRint● Increased role of plugin-manager● stored in rootmap files ● Used by CINT / TSystem::Load()● Generated by make map / make install
Size of libCore decreases
Backward Incompatibilities● TBuffer now pure virtual● Major reorganisation of header files
G. Brandt Report from ROOT 200716
Reminder on ROOT I/O: TFile and TTree
TTree● Central ROOT Data Structure● Stores Variables and Objects organised in Branches
TFile● .root file containing persistent ROOT objects
G. Brandt Report from ROOT 200717
ROOT General I/O (TFile)
● basic I/O lib, dictionaries no longer depend on it
● calc with double precision / save only single-precision
● TFile Cp(), TFileMerger
● Doesn't block – works only with xrootd
● Improvements to Streamers (ROOT's auto-generated object persistency code)
File stageing● Generic Interface: TFileStager
Existing Implementation: xrootd ● Up-to-date Plugins for Castor / RFIO
Support for SQL / XMLFiles
P. Canal
G. Brandt Report from ROOT 200718
ROOT Tree I/O: New Features
for TRef and TRefArray (persistent pointers)
raw copy of TTree w/o unzipping
Extension of TTreeFriends to TChains
● Import ASCII Data● More formatting for Scan()● Directly Draw Strings and Objects● Draw can execute Scripts● MakeProxy() generates Analysis skeleton
TEntryList TEventList replacement for large Data Setswith extremely high or low selectivity
P. Canal
G. Brandt Report from ROOT 200719
ROOT Tree I/O: Cacheing
Huge, distributed Data Sets mean Problems due to:● Scattered Reads● Network Latency● Network Bandwidth--> Read bigger chunks intelligently
Map of a ROOT Tree
Solution: TFileCache &
TTreeCache
● Different Case-Studies done● Academic examples or does it work in a production environment, too? Trying to use it in H1 ...
L. Franco, R. Brun
G. Brandt Report from ROOT 200720
I. Antcheva
ROOT GUI
TMacroStore Macrosas Objects in ROOT Files
● Fast GUI Prototyping via CINT Macros● Long list of modern dialogs and widgets TGFileDialog TGMenuBar TGListView ColorSelector, Graphics Editor Fit/Minimisation Panel TGHtml
G. Brandt Report from ROOT 200721
B. Bellenot
ROOT GUI 2/2
Graphical GUI BuilderIntegration of TCanvasinto other environmentspossible
The Future: ● ROOT Skins & Shaped Windows● Drag & Drop ROOT Objects
TGSpeedo
Meant forControlRoom Applets
G. Brandt Report from ROOT 200722
O. Couet
ROOT 2D Graphics – New FunctionalityTPolarGraph
TPie
Exclusion Plots● via TGraph::SetLineWidth()
Spectrum Painter
Also:● Improved Image Support● Improved “Transparency”● Long to-do list of detailed wishes ...
G. Brandt Report from ROOT 200723
ROOT 3D Graphics – New FunctionalityO. Couet● Based on Open GL
● Can be used together with 2D in same TCanvas
3D Histogram / Function Representations
Parametric Functions
Plans:● Improved Interaction● Text Rendering via FTGL● 3D Isosurfaces
Neglected in this Talk:Geometry VisualisationMassively used by ALICE(Huge Events)
G. Brandt Report from ROOT 200725
ROOT Math – Recent Developments
MathCore● TRandom, TComplex, TMath ● Moved to libCore Coherent interface to basic math, stat and numerical algorithms (can call GSL Algorithms from MathMore GSL C++ Wrapper)Functors C++ Objects act as functions and can be used by TF1TRandom● Better/faster uniform, Gaussian, Poisson and Landau distributionsPhysics and Geometry Vectors (Fermilab)● Functionality as in CLHEP Vector and Geometry packages● Do not derive from TObject for nowSMatrix Package (HERAb)● Fast for small matrices of fixed sizeFitting● Work on a generic interface for fitters (Minuit, Minuit2, GSL) ongoing● New Fit panel (Fitting GUI)Histograms● FFTs on histograms: TH1::FFT (FFTW package)● Histogram Comparison via 2-Test
+ Statistical Tools as external Packages
● UNU.RAN● TMVA● MadTools● RooStat
Documentation:CERN Mathlibs
L. Moneta
G. Brandt Report from ROOT 200726
Inversion Rejection Composition
● Sample arbitrary non-uniform distributions starting from a uniform random number distribution
UNU.RAN
J. Leydold
G. Brandt Report from ROOT 200727
Input Distributions (Preprocessed)
Trained Estimators
SignalBackground
● Supports many MVA Methods through a “Factory”● Simply switch them on/off
H. Voss
1/2
G. Brandt Report from ROOT 200728
● GUI + many macros to interpret and visualize the results● Helps you choose the best method quantified!● Very interesting – plans to implement this for statistics, too (RooStat)
● Included with ROOT since 5.11/06● Latest Version as stand-alone package available from
● Users Guide available
How to do it:
TMVAnalysis.C● Create Factory● Load signal/background Trees● Preprocess Trees● Train Methods● Test Methods● Evaluate Methods● Save Weights (Parameters)
TMVApplication.C● Read Weights (Reader)● Read data Tree ● Set Variables● In Event Loop
Calculate MVA Output
TMVA 2/2
G. Brandt Report from ROOT 200729
MadTools/StatTools
Implemented so far● Toy MC Algorithm (like TLimit , T. Junk-Method)● FFT Method (like CLFFT)● FFT High-Precision Method
Future Goals:● Background Fits● Unbinned Data
G. Brandt Report from ROOT 200730
RooFit
● Model pdfs too complicated for simple ROOT functions
W. Verkerke
Basic Idea:Math Symbols
▼C++ Objects
=
● Used for 7 years in BaBar● Plans:
● Fixes & Consolidation● Higher Level
Infrastructure: RooStats
G. Brandt Report from ROOT 200731
PyROOT – Python Language BindingsW. Lavrijsen
Example: Python from CINT
● Interactive mixing of interpreters● User transparent
Impressive Amount ofTechnical Work doneand planned ...
● Extensive Mapping of C++ to Python● Python can be used as C++ Wrapper (post-mortem debugging)● Pythonisations of TTree, TClonesArray● Cross Inheritance● Reflex Support● Inner Loop Optimisation
G. Brandt Report from ROOT 200732
PROOF – Parallel ROOT Facility
● Distribute jobs and data (xrootd / xpd) to worker nodes● Stateless Connection - “Interactive Batch”● (Should be) transparent for User● Scalable● Adaptable to Envrionments (Experiments) -> Example for ALICE was shown
G. Ganis
G. Brandt Report from ROOT 200733
Totally neglected in this talk ...
● Online Data Monitoring LHC Tool Developments
● Simulation: Geometry and TrackingGEANT3, 4 FLUKA Interfaces
VMC – Virtual Monte Carlo● Experiment / Lab Analysis Frameworks
FairROOT, GENDARC, OpRelease
● Data AccessScalla, xrootd, SRM
● LHC Experiment AOD Models (Analysis Object Data)
But:All presentations (+ soon tapes) availablefrom ROOT 2007 website
G. Brandt Report from ROOT 200734
● ROOT has come a long way since its beginnings● The ROOT community is incredibly active● Is today the most commonly used HEP data analysis framework with no competitor in sight● Receives strong support from the community (and now also the CERN management)● Is (or will be) used by most HEP experiments for
Online MonitoringSimulation, Reconstruction
Analysis, of course ...
Summary
● Profit from these developmentsAll this is available out-of-the-box at DESY
● ROOT knowledge at DESY should be increasedEducational Talks in a special Seminar planned
● DESY, esp. H1, is a “real” ROOT userOur experience and feedback could be as interesting for LHC analysis
as our physics (HERA-LHC Workshop)
Conclusion