34
G. Brandt Report from ROOT 2007 1 Report from the Gerhard Brandt Uni Heidelberg DESY Computing Seminar - 2. April 2007 Or: Beyond TH1F::Fill() ...

Report from the - · PDF fileG. Brandt Report from ROOT 2007 1 Report from the Gerhard Brandt Uni Heidelberg DESY Computing Seminar - 2. April 2007 ... TPie Exclusion Plots

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 200712

Reorganisation of ROOT Libraries - Phase 1

5.14

G. Brandt Report from ROOT 200713

5.16(Goal)

Reorganisation of ROOT Libraries - Phase 2

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 200724

ROOT Math – New Library Structure

L. Moneta

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