ROOT Dreams & Facts ROOT Users Workshop: Saas Fe September 15 2015 René Brun.

Slides:



Advertisements
Similar presentations
Physicist Interfaces Project an overview Physicist Interfaces Project an overview Jakub T. Moscicki CERN June 2003.
Advertisements

D. Düllmann - IT/DB LCG - POOL Project1 POOL Release Plan for 2003 Dirk Düllmann LCG Application Area Meeting, 5 th March 2003.
Blueprint RTAGs1 Coherent Software Framework a Proposal LCG meeting CERN- 11 June Ren é Brun ftp://root.cern.ch/root/blueprint.ppt.
Simulation Project Major achievements (past 6 months 2007)
O. Stézowski IPN Lyon AGATA Week September 2003 Legnaro Data Analysis – Team #3 ROOT as a framework for AGATA.
Large Data Bases in High Energy Physics Frontiers in Diagnostic Technologies Frascati November 26 Frascati November 26 Rene Brun/CERN.
This chapter is extracted from Sommerville’s slides. Text book chapter
SEAL V1 Status 12 February 2003 P. Mato / CERN Shared Environment for Applications at LHC.
Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1.
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
Click to edit Master title style 21 st Nov, 2003 Valeri Fine (BNL) ROOT and ROOT4STAR framework V. Fine or Software for “C++ speaking” people.
Zubanov Alexei, 2006 Aug 07 – Sep 28 QtROOT package extension with Coin3D lib.
CINT Retrospect ROOT Workshop Mar 2013 Agilent Technologies Masaharu Goto.
Introduction to Hall-D Software February 27, 2009 David Lawrence - JLab.
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help.
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Java Root IO Part of the FreeHEP Java Library Tony Johnson Mark Dönszelmann
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
V. Serbo, SLAC ACAT03, 1-5 December 2003 Interactive GUI for Geant4 by Victor Serbo, SLAC.
5 May 98 1 Jürgen Knobloch Computing Planning for ATLAS ATLAS Software Week 5 May 1998 Jürgen Knobloch Slides also on:
ROOT Application Area Internal Review September 2006.
JAS3 - A general purpose data analysis framework for HENP and beyond Tony Johnson, Victor Serbo, Max Turri, Mark Dönszelmann, Joseph Perl SLAC.
Acat OctoberRene Brun1 Future of Analysis Environments Personal views Rene Brun CERN.
Rene Brun Booting ROOT with BOOT René Brun, Fons Rademakers CERN Geneva, Switzerland.
ROOT Future1 Some views on the ROOT future ROOT Workshop 2001 June 13 FNAL Ren é Brun CERN Interesting to look at our programme of work 16 months ago.
ROOT Future1 Some views on the ROOT future ROOT Workshop 2001 June 13 FNAL Ren é Brun CERN.
Virtual Monte Carlo and new geometry description in STAR Maxim Potekhin STAR Collaboration Meeting, BNL July 17, 2004 July 17, 2004.
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
SEAL Project Core Libraries and Services 18 December 2002 P. Mato / CERN Shared Environment for Applications at LHC.
Java Analysis Studio - Status CHEP 98 - September 1998 Tony Johnson - SLAC Jonas Gifford + Kevin Garwood - University of Victoria.
OnX & ROOT1 OnX & ROOT on behalf of Guy Barrand ROOT Workshop 2001 June 13 FNAL Ren é Brun CERN.
STAR Event data storage and management in STAR V. Perevoztchikov Brookhaven National Laboratory,USA.
GDB Meeting - 10 June 2003 ATLAS Offline Software David R. Quarrie Lawrence Berkeley National Laboratory
March 2003 Conference for Computing in High Energy and Nuclear Physics1 ROOT Status and Future Developments CHEP 2003 La Jolla, CA March 24th Ren.
Introduction What is detector simulation? A detector simulation program must provide the possibility of describing accurately an experimental setup (both.
Overview & Major Developments1 ROOT Project Status Summary of major developments ROOT Workshop 2004 SLAC 25 February Ren é Brun CERN.
ROOT Progress Report1 ROOT Workshop 2001 FNAL June 13 Ren é Brun CERN
The LHC Computing Grid Project (LCG) and ROOT Torre Wenaus, BNL/CERN LCG Applications Area Manager John Harvey, CERN EP/SFT Group Leader
STAR Schema Evolution Implementation in ROOT I/O V. Perevoztchikov Brookhaven National Laboratory,USA.
Feedback from LHC Experiments on using CLHEP Lorenzo Moneta CLHEP workshop 28 January 2003.
LCIO A persistency framework and data model for the linear collider CHEP 04, Interlaken Core Software, Wednesday Frank Gaede, DESY -IT-
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
K. Harrison CERN, 3rd March 2004 GANGA CONTRIBUTIONS TO ADA RELEASE IN MAY - Outline of Ganga project - Python support for AJDL - LCG analysis service.
- LCG Blueprint (19dec02 - Caltech Pasadena, CA) LCG BluePrint: PI and SEAL Craig E. Tull Trillium Analysis Environment for the.
JAS and JACO – Status Report Atlas Graphics Group August 2000 Tony Johnson.
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Dictionary and POOL Dirk Duellmann.
SEAL Project Status SC2 Meeting 16th April 2003 P. Mato / CERN.
Overview, Major Developments, Directions1 ROOT Project Status Major developments Directions NSS05 Conference 25 October Ren é Brun CERN Based on my presentation.
Summary of the AIDA workshop AIDA Workshop, July What is AIDA  AIDA defines today interfaces for some common analysis data objects  IHistogram,
Trees: New Developments1 Trees: New Developments Folders and Tasks ROOT Workshop 2001 June 13 FNAL Ren é Brun CERN
Ianna Gaponenko, Northeastern University, Boston The CMS IGUANA Project1 George Alverson, Ianna Gaponenko and Lucas Taylor Northeastern University, Boston.
News from EP SFT John Harvey FOCUS Meeting – October 3 rd 2003.
1 G4UIRoot Isidro González ALICE ROOT /10/2002.
CompSci Today’s topics Industry Practice Software Engineering Upcoming The Killer Robot Reading Great Ideas, Chapters 7.
Follow-up to SFT Review (2009/2010) Priorities and Organization for 2011 and 2012.
Current Status of the Tracking Trigger Software Andrew W. Rose.
2001 ROOT Workshop The Summary. Content Most Requested Request already satisfied Build and Distribution Web Page Information and Documentation.
ACAT 2008 Axel Naumann (CERN), Philippe Canal (Fermilab) The Role of Interpreters in High Performance Computing.
LCG AA Internal Review 30 March 2005 ROOT Graphical User Interface Ilka Antcheva, Bertrand Bellenot, Valeri Fine, Valeriy Onuchin, Fons Rademakers.
HYDRA Framework. Setup of software environment Setup of software environment Using the documentation Using the documentation How to compile a program.
LCG Applications Area Milestones
ROOT Base and SealBase Fons Rademakers Ilka Antcheva Bertrand Bellenot
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
First Internal Pool Release 0.1
Support for ”interactive batch”
Simulation Framework Subproject cern
ROOT Support and Developments at FNAL
Presentation transcript:

ROOT Dreams & Facts ROOT Users Workshop: Saas Fe September René Brun

A posteriori Looking at the birth of the system 1994  2004 (basement and main walls) Main ideas and dreams Trying to understand the silent majority Some messages Now a set of slides (transparencies) showing the birth and growth of ROOT in first decade.

Ren é Brun CHEP03Perspective on Future Data Analysis3 Once upon a time (seventies) With the first electronic (as opposed to bubble chamber) experiments, data analysis was experiment specific, an activity after the data taking. The only common software was the histogram package (eg Hbook (1973) ),graphics with Hplot (1975) and GD3 (1966), the fitting package (eg Minuit (1970) ), some plotting packages and independent routines in cernlib (1958) (linear algebra and small utilities) Data structures = Fortran common blocks

Ren é Brun CHEP03Perspective on Future Data Analysis4 Early Eighties With the growing complexity of the experiments and corresponding software, we see the development of Data Structures management systems (hydra (1971), zbook (1974) -->zebra (1982), bos (1976) ) (memory and I/O). These systems are able to write/read complex bank collections. Zebra had a self-describing bank format with built-in support for bank evolution. Most data processed in batch, but many prototypes of interactive systems start to appear (htv (1981) ), zcedex (1981), gep (1982, then paw (1985)..)

Ren é Brun CHEP03Perspective on Future Data Analysis5 PAW Designed in based on Hbook, Hplot,Minuit, Zebra with full compatibility. Row-Wise-Ntuples. OK for small data sets, interactive histograming with cuts. Column-Wise-Ntuples. A major step illustrating the advantage of structured data sets. PAW: a success (still users in 2015) – Not only because of its technical merits – but perceived as a tool widely available – Stability for many years after 1992: an important element

1991  1994 Attempts to upgrade/replace zebra with Fortran90. (facing a wall with modules & common blocks) Erice workshop (languages & data structures) Moose project (Objective-C, Eiffel, C++, F90,.. OODBMS (the obvious future) ZOO (zebra with C++) WEB effects Big crisis

Learning C++ Thinking Designing Prototyping Moving to Prevessin site NA49 software ? Learning C++ Thinking Designing Prototyping Moving to Prevessin site NA49 software ? Facing a big unknown Alone ? Fons:please join YES, we can !! Facing a big unknown Alone ? Fons:please join YES, we can !!

ROOT is 21 :./core/base/inc/TDirectory.h:// Author: Rene Brun 28/11/94./core/base/inc/TAttLine.h:// Author: Rene Brun 28/11/94./graf2d/x11/inc/TGX11.h:// Author: Rene Brun, Olivier Couet, Fons Rademakers 28/11/94./core/base/inc/TROOT.h:// Author: Rene Brun 08/12/94./core/base/inc/TAttAxis.h:// Author: Rene Brun 12/12/94./core/base/inc/TAttFill.h:// Author: Rene Brun 12/12/94./core/base/inc/TAttText.h:// Author: Rene Brun 12/12/94./core/base/inc/TBenchmark.h:// Author: Rene Brun 12/12/94./core/base/inc/TColor.h:// Author: Rene Brun 12/12/94./core/base/inc/TStyle.h:// Author: Rene Brun 12/12/94./graf2d/gpad/inc/TAttCanvas.h:// Author: Rene Brun 12/12/94./graf2d/gpad/inc/TCanvas.h:// Author: Rene Brun 12/12/94./graf2d/gpad/inc/TPad.h:// Author: Rene Brun 12/12/94./graf2d/graf/inc/TBox.h:// Author: Rene Brun 12/12/94./graf2d/graf/inc/TGaxis.h:// Author: Rene Brun, Olivier Couet 12/12/94./graf2d/graf/inc/TLine.h:// Author: Rene Brun 12/12/94./graf2d/graf/inc/TPolyLine.h:// Author: Rene Brun 12/12/94./graf2d/graf/inc/TText.h:// Author: Nicolas Brun 12/12/94./graf2d/graf/inc/TWbox.h:// Author: Rene Brun 12/12/94./hist/hist/inc/TAxis.h:// Author: Rene Brun 12/12/94./hist/hist/inc/TGraph.h:// Author: Rene Brun, Olivier Couet 12/12/94./hist/hist/inc/TPolyMarker.h:// Author: Rene Brun 12/12/94./core/base/inc/TNamed.h:// Author: Rene Brun 26/12/94./core/base/inc/TObject.h:// Author: Rene Brun 26/12/94./hist/hist/inc/TH1.h:// Author: Rene Brun 26/12/94./hist/hist/inc/TH2.h:// Author: Rene Brun 26/12/94./hist/histpainter/inc/TLego.h:// Author: Rene Brun 26/12/94./hist/histpainter/inc/TPainter3dAlgorithms.h:// Author: Rene Brun, Evgueni Tcherniaev, Olivier Couet 12/12/94./html/html/inc/Thtml.h:// Author: Nenad Buncic 18/10/95 CMZ CVS SVN GIT

January 2001The ROOT framework9 Towards the ROOT Framework Following our many years of experience with the development of the PAW system, we decided in 1995 to start the design and the implementation of a system capable of doing at least the same thing in an OO context, but also to serve as a complete framework from data taking to data analysis. During a few months, we learnt the basics ingredients of an OO system by implementing several variants of an histogram package. We quickly implemented a rudimentary I/O sub system and also some very basic collection classes. It became rapidly clear to us that a more ambitious persistency mechanism had to be developed. There was no point in developing a system supporting only the PAW CWNs in a world dealing with classes and complex object hierarchies. OODBMS could have been the solution to our problem, but we were convinced that the corresponding proposed commercial tools were not appropriate for a flexible data analysis environment.

Objectivity: a chance for ROOT Transient object model = persistent model!! Object streaming only Max data base size = 16 Terabytes !! No query mechanism, etc… It is unbelievable that these fundamental limitations were not analyzed seriously by the various committees After having mentioned. these limitations many times, we decided to shut up. Being convinced that the “opposition” was going against a wall. Fantastic opportunity!!! After having mentioned. these limitations many times, we decided to shut up. Being convinced that the “opposition” was going against a wall. Fantastic opportunity!!!

LCG seminar 7 November Rene Brun ROOT Framework11 ROOT Project basic principles Born with minimal CERN staff (by constraint) Try to involve as many developers as possible from outside CERN ==>Open Source project Try to get as many users asap to validate the ideas. We knew many PAW users. Transition from PAW and Fortran must be easy. Release early, Release often principle, but solid releases (roottest essential component). Target maximum portability (OS & compilers) Target maximum functionality and simplicity Roottalk newsgroup: vital importance

November 1995 Public IT seminar. We present ROOT 0.5 in a super-crowded IT amphitheater We take the decision to use CINT

January 2001The ROOT framework13 The Choice of CINT Our goal was to combine the advantages of an interpreted and/or compiled language in one single framework. To achieve this goal, we had to develop a powerful object persistency system with as few limitations as possible to support the main stream proposed OO language C++. We were lucky to find an existing C++ interpreter CINT capable of parsing the complex C++ header files and to support a very large subset of the language interactively. CINT was developed by Masa Goto from HP/Japan since We developed an extended Run Time Type Information (RTTI) used in the I/O system but also in many other places including the Graphical user Interface. This RTTI goes far beyond the C++ RTTI and looks more like the Introspection mechanism in Java.

Our first web page (1995)

Our first documentation with html and graphics

1996 Bad news. The director of computing L.Foa to the LHC exp: “ROOT is a private exercise within NA49, forget it for LHC” DRDC committees: RD44, RD45, LHC++ Good news: We escape the committee system for a few years. We are free to create, test and we make a fantastic progress. – AIHEP 96 (ACAT) at EPFL – ATLFAST demonstrator Unique opportunity!!! If we want to succeed we must be the best Unique opportunity!!! If we want to succeed we must be the best

September 1996 Slides generated by a CINT script

R.Brun LCGROOT corses18 All what you need to known to navigate in a ROOT file The file format Description of 1996 is still valid today The file format Description of 1996 is still valid today

R.Brun LCGROOT corses19 ROOT files can be structured like a Unix file system

January 2001The ROOT framework20 The ATLAST fast simulation converted from Fortran to C++ + I/O in a ROOT Tree + event display + The ATLAST fast simulation converted from Fortran to C++ + I/O in a ROOT Tree + event display + Presented to an ATLAS collaboration meeting in November 96 The conversion took 3 days during a boring meeting in Mont St Odile (Strasbourg)

Tree browser OpenGL viewer OpenGL viewer

January 2001The ROOT framework22 ROOT vs PAW ATLAS benchmark file size (MB) PAW ROOT variables Time to analyze events ============================ Process all events, fill 15 histograms PAW f77 RT= 4s CP= 3.27s PAW COMIS RT= 8s CP= 7.21s ROOT C++ RT= 4s CP= 1.46s We produced many benchmarks comparing ROOT with PAW, Objectivity, Oracle, JAS, etc

Sept. 2000CERN School of Computing23 ROOT Quality assurance Based on the number of check-ins to CMZ/CVS mentioning a bug fix :

1997 The hype peak for Objectivity JAVA, JAS: May be? The hype peak for Objectivity JAVA, JAS: May be?

1998 : Revolution In 1997, FermiLab launches 2 projects to select the best candidate for Tevatron Run II – for data storage – for data analysis and visualization Many meetings at FNAL in 1998 with possible candidates (Histoscope, JAS, LHC++, ROOT,..) CHEP98 (Intercontinental Chicago) FNAL decision: ROOT for both !!!

The 1999 ROOT team during 1st ROOT workshop at FNAL

R.Brun LCGROOT corses27 Old Streamers in 0.90 (1996) Evolution illustrated with the ROOT class TAxis class TAxis : public TNamed, public TAttAxis { private: Int_t fNbins; Float_t fXmin; Float_t fXmax; TArrayF fXbins; void TAxis::Streamer(TBuffer &b) { if (b.IsReading()) { Version_t v = b.ReadVersion(); TNamed::Streamer(b); TAttAxis::Streamer(b); b >> fNbins; b >> fXmin; b >> fXmax; fXbins.Streamer(b); } else { b.WriteVersion(TAxis::IsA()); TNamed::Streamer(b); TAttAxis::Streamer(b); b << fNbins; b << fXmin; b << fXmax; fXbins.Streamer(b); } rootcint TBuffer b; object.Streamer(b); TAxis.h Dict.cxx

R.Brun LCGROOT corses28 Old Streamers in 2.25 (1999) class TAxis : public TNamed, public TAttAxis { private: Int_t fNbins; Float_t fXmin; Float_t fXmax; TArrayF fXbins; Int_t fFirst; Int_t fLast; TString fTimeFormat; Bool_t fTimeDisplay; void TAxis::Streamer(TBuffer &b) { UInt_t R__s, R__c; if (b.IsReading()) { Version_t v = b.ReadVersion(&R__s, &R__c); TNamed::Streamer(b); TAttAxis::Streamer(b); b >> fNbins; b >> fXmin; b >> fXmax; fXbins.Streamer(b); if (v > 2) { b >> fFirst; b >> fLast; } if (v > 3) { b >> fTimeDisplay; fTimeFormat.Streamer(b); } else { SetTimeFormat(); } b.CheckByteCount(R__s, R__c, TAxis::IsA()); } else { R__c = b.WriteVersion(TAxis::IsA(), kTRUE); TNamed::Streamer(b); TAttAxis::Streamer(b); b << fNbins; b << fXmin; b << fXmax; fXbins.Streamer(b); b << fFirst; b << fLast; b << fTimeDisplay; fTimeFormat.Streamer(b); b.SetByteCount(R__c, kTRUE); } rootcint CDF requirement: “customize generated streamers” CDF requirement: “customize generated streamers”

R.Brun LCGROOT corses29 New Streamers in 3.00 class TAxis : public TNamed, public TAttAxis { private: Int_t fNbins; Double_t fXmin; Double_t fXmax; TArrayD fXbins; Char_t *fXlabels; //! Int_t fFirst; Int_t fLast; TString fTimeFormat; Bool_t fTimeDisplay; TObject *fParent; //! void TAxis::Streamer(TBuffer &b) { // Stream an object of class TAxis. if (b.IsReading()) TAxis::Class()->ReadBuffer(b, this); else TAxis::Class()->WriteBuffer(b,this); } rootcint Huge step forward Automatic streamers Schema evolution Huge step forward Automatic streamers Schema evolution

R.Brun LCGROOT corses30 Self-describing files Dictionary for persistent classes written to the file when closing the file. ROOT files can be read by foreign readers (eg JavaRoot (Tony Johnson) Support for Backward and Forward compatibility Files created in 2003 must be readable in 2015 Classes (data objects) for all objects in a file can be regenerated via TFile::MakeProject Root >TFile f( “ demo.root ” ); Root > f.MakeProject( “ dir ”, ” * ”, ” new++ ” );

Rene BrunROOT Status & Current Developments31 Evolution of ROOT I/O Hand-written Streamers Streamers generated via rootcint Support for Class Versions Support for ByteCount Several attempts to introduce automatic class evolution Persistent class Dictionary (StreamerInfo) written to files rootcint modified to generate automatic Streamers can generate code for “ DataObjects ” classes in a file Support for STL and more complex C++ cases Trees take advantage of the new scheme Can read files without the classes Persistent Reference pointers Support for foreign classes New 3.03

Rene BrunROOT Status & Current Developments32 Supported platforms May 2002

Rene BrunROOT Status & Current Developments33 ROOT team today (2002) Masa: continuous upgrade of CINT Suzanne: Great job with doc & recently Carrot doc Valery Fine moving to Atlas Philippe: Main developer - I/O, Dictionary, - CINT - Tree Queries Olivier Couet: was in PAW:will work on graphics Valeriy Onuchin: Carrot,GRID GUIs and graphics Ilka Antcheva: joining in June. Will work on GUIs

Rene BrunROOT Status & Current Developments /95 Official line projects start – RD44 (Geant4), RD45 (Objectivity) Jan ROOT project starts in NA49,ALICE Sep LHC++ (CERNLIB replacement) starts (later Anaphe) Oct JAS (Java Analysis Studio) starts (SLAC) Nov FNAL supports ROOT, followed by STAR, RHIC,etc Apr CERN Computing Review Oct CMS changes its baseline from Objectivity to ROOT Apr LHC Persistency project based on ROOT I/O LCG/SC2 committees. ROOT official support A bit of History (2002) In 1994, fundamental divergence of opinions in Application Software group in IT. The PAW/Geant3 team is dismantled. Fortran90 ??? C++, Commercial Software C++, Open Source ROOT

ROOT2002 Rene BrunOverview & Major Developments35 Applications Area Organisation Applications manager Architects forum Applications area meeting Simulation project PI project SEAL project POOL project SPI project decisions strategy consultation ROOT User - provider We are currently discussing with our colleagues in LCG/AA to see if a convergence on key items is possible in the medium & long term. With SEAL a possible cooperation is envisaged for - a common Dictionary approach - the design/implementation of a MATHLIB

ROOT2002 Rene BrunOverview & Major Developments36 Today full time on the project – Ilka Antcheva (LCG staff) (since 1st Aug 2002) GUI/Doc – Maarten Ballintijn (MIT/Phobos) PROOF (since Sep 2001) – Rene Brun: PH/SFT group and Alice part time – Philippe Canal (FNAL/CD) (since 1998) – Olivier Couet CERN (since 1st Jun 2002) Graphics – Gerri Ganis (LCG) (since Dec 2002) Authentication – Andrei Gheata: (Alice) Geometry package (since Sep 2001) – Masa Goto (Agilent technologies) CINT fulltime! – Eddy Offermann (from Finance world. Sabbatical for 1 year) – Valeriy Onuchin (LCG) GUI/Win32gdk (since 1st Feb 2002) – Fons Rademakers: Alice and PH/SFT group

ROOT2002 Rene BrunOverview & Major Developments37 Also a substantial fraction of their time – Bertrand Bellenot (Alcan) Win32gdk (since June 2000) – Valery Fine (BNL/STAR) TVirtualX/Qt + Coin3D – Victor Perevoztchikov (BNL/STAR) STL, foreign classes – AND more than 70 important contributions from people spending a substantial fraction of their time on the project. See $ROOTSYS/README/CREDITS

January 2001The ROOT framework38 Modularity and Dependencies in ROOT By dependency, we mean binary dependency, when one module (shared library) forces the loading of another library. In the past this was a weak point of the system. For example, if you wanted to produce in a batch program some histograms you were required to link your app with all ROOT graphics libs up to X11. Like with PAW This problem was rightly pointed out by many users as something to be fixed. We did this. In the current system only a small set of base libraries are needed when creating e.g. histograms, in batch mode. Besides the decoupling of the graphics system many more abstract layers were introduced to decouple other parts of the system: histogram from its painter, the tree storage system from its query mechanism (treeplayer), fitting from minuit, etc. Following this reorganization none of the lower level libraries depend anymore on higher level libraries. These changes improved besides modularity also overal system performance. Several deficiencies pointed by “friends”

ROOT2002 Rene BrunOverview & Major Developments39 Plug-in Manager Plugin.TFile: ^rfio: TRFIOFile RFIO "TRFIOFile(const char*,Option_t*,const char*,Int_t)" +Plugin.TFile: ^castor: TCastorFile RFIO "TCastorFile(const char*,Option_t*,const char*,Int_t,Int_t)" +Plugin.TFile: ^dcache: TDCacheFile DCache "TDCacheFile(const char*,Option_t*,const char*,Int_t)" +Plugin.TFile: ^chirp: TChirpFile Chirp "TChirpFile(const char*,Option_t*,const char*,Int_t)" Plugin.TSystem: ^rfio: TRFIOSystem RFIO "TRFIOSystem()" Plugin.TSQLServer: ^mysql: TMySQLServer MySQL "TMySQLServer(const char*,const char*,const char*)" +Plugin.TSQLServer: ^pgsql: TPgSQLServer PgSQL "TPgSQLServer(const char*,const char*,const char*)" +Plugin.TSQLServer: ^sapdb: TSapDBServer SapDB "TSapDBServer(const char*,const char*,const char*)" +Plugin.TSQLServer: ^oracle: TOracleServer Oracle "TOracleServer(const char*,const char*,const char*)" Plugin.TGrid: ^alien TAlien RAliEn "TAlien(const char*,const char*,const char*,const char*)" Plugin.TVirtualPad: * TPad Gpad "TPad()" Plugin.TVirtualHistPainter: * THistPainter HistPainter "THistPainter()" Plugin.TVirtualTreePlayer: * TTreePlayer TreePlayer "TTreePlayer()" Plugin.TVirtualTreeViewer: * TTreeViewer TreeViewer "TTreeViewer(const TTree*)" Plugin.TVirtualGeoPainter: * TGeoPainter GeomPainter "TGeoPainter()" Plugin.TVirtualUtil3D: * TUtil3D Graf3d "TUtil3D()" Plugin.TVirtualUtilHist: * TUtilHist Hist "TUtilHist()" Plugin.TVirtualUtilPad: * TUtilPad Gpad "TUtilPad()" Plugin.TVirtualFitter: Minuit TFitter Minuit "TFitter(Int_t)" +Plugin.TVirtualFitter: Fumili TFumili Fumili "TFumili(Int_t)" Plugin.TVirtualPS: ps TPostScript Postscript "TPostScript()" +Plugin.TVirtualPS: svg TSVG Postscript "TSVG()" Plugin.TViewerX3D: x11 TViewerX3D X3d "TViewerX3D(TVirtualPad*,Option_t*) ” +Plugin.TViewerX3D: qt TQtViewerX3D QtX3d "TQtViewerX3D(TVirtualPad*,Option_t*) ” nameclassShared libHow to call

January 2001The ROOT framework40 Root Users Guide Available as: pdf files MS Word Send comments and suggestions to:

Rene BrunROOT Status & Current Developments41 Multi-Language environment ? Normal C++ StreamerInfo ROOT Files ROOT Dictionary in memory JAVA/JAS Tony Johnson C# JAVA/JNI Subir Sarkar Python Pere Mato stubs

ROOT2002 Rene BrunOverview & Major Developments42 Project History (2003) Jan 95: Thinking/writing/rewriting/??? November 95: Public seminar, show Root 0.5 Spring 96: decision to use CINT Jan 97: Root version 1.0 Jan 98: Root version 2.0 Mar 99: Root version 2.21/08 (1st Root workshop FNAL) Feb 00: Root version 2.23/12 (2nd Root workshop CERN) Mar 01: Root version 3.00/06 Jun 01: Root version 3.01/05 (3rd Root workshop FNAL) Jan 02: Root version 3.02/07 (LCG project starts: RTAGs) Oct 02: Root version 3.03/09 (4th Root workshop CERN) Dec 03: Root version 3.10/02 (last PRO release) Feb 04: Towards version 4.00 (5 th Root workshop SLAC) 9 years !!

ROOT2002 Rene BrunOverview & Major Developments43 Short summary of main developments since ROOT2002 Dec 2002: version 3.04/07 Jun 2003: version 3.05/07 Dec 2003: version 3.10/02 Feb 2004: version 4.00/02 (released in June) We have implemented more than 80% of our plan announced at the previous workshop in October See: ftp://root.cern.ch/root/R2002/future.pdf We have implemented many new features not foreseen in Oct 2002

ROOT2002 Rene BrunOverview & Major Developments44 ROOT version 4 Highlights (1) (already in 4.00/02) Support for Automatic Schema evolution for foreign classes without using a class version number. Support for large files (> 2 GBytes) New data type Double32_t (double in memory, saved as float on the file) Native support for STL: automatic Streamers.  Tree split mode with STL vector/list  New Linear Algebra package  New class TRolke by Jan Conrad  New class TGraph2DErrors. More features in TGraph2D  Consolidation of win32gdk.  More features in the authentication system.  Consolidation of the PROOF classes.  GUI code generation See Philippe See Eddy See Gerri See Fons & Maarten See Ilka

ROOT2002 Rene BrunOverview & Major Developments45 ROOT version 4 Highlights (2) (will be in final release in June (2003) )  Plug-in Manager upgrade (rlimap) with automatic library/class discovery/load.  xrootd  Virtual MC (G3, Fluka, G4?)  Support for Qt (alternative option to x11)  GUI builder  PROOF/Alien in production  Interface with Python (PyRoot with SEAL)  Interface with Ruby (ruby-root)  Geometry interface to OpenGL/Coin3D (V.Fine/STAR)  MakeClass/MakeSelector upgrade. Support for Tree friends  New GUI Histogram editor and Fitter see BaBar talks see Andrei Gheata /Alice see Valeri Fine/STAR see Ilka see Fons see Wim /Atlas/LBL Then ROOT5 and ROOT6: what you know today

Half success/failures ? Simply quoting 2 examples (TTask and TFolder) that did not meet the success that I was expecting when implemented in Probably because conflicting with the experiments frameworks.

Ren é Brun CHEP03Perspective on Future Data Analysis47 Folders/ white boards Folders help understanding complex hierarchical structures Language Independent Could be GRID-aware Conflicting with “whiteboards”, StoreGate

Ren é Brun CHEP03Perspective on Future Data Analysis48 Tasks/Algorithms In the same way that Folders can be used to organize the data, one can use Tasks to organize a hierarchy of algorithms. Tasks can be organized into a hierarchical tree of tasks and displayed in the browser. A Task is an abstraction with standard functions to Begin,Execute,Finish. Each Task derived class may contain other Tasks that can be executed recursively, such that a complex program can be dynamically built and executed by invoking the services of the top level task or one of its subtasks. Tasks help understanding the organization and sequence of execution of large programs

Understanding users needs ROOT GEANT Experiment framework developers simulation reconstruction analysis Most users Requires attendance to exp meetings and seminars showing physics results Feedback from forum and mails is important but not sufficient Users welcome innovation and new features if their software continues to run smoothly Answering mails immediately and forum questions in a reasonable time is crucial

Nuons model Leptons Life I wish you plenty of flowers sent by happy users when you issue new releases As some of you know, I started a new challenge, facing again doubts and prickles :