Download presentation
Presentation is loading. Please wait.
Published byChloe Griffith Modified over 9 years ago
2
Overview & Major Developments1 ROOT Project Status Summary of major developments ROOT Workshop 2004 SLAC 25 February Ren é Brun CERN
3
ROOT2002 Rene BrunOverview & Major Developments2 Project History 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 !!
4
ROOT2002 Rene BrunOverview & Major Developments3 Plan of talk The ROOT Team Summary of developments in 3.04,3.05,3.10 Version 4.00 highlights Medium term and long term Relations with LCG/AA
5
ROOT2002 Rene BrunOverview & Major Developments4 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. Sabatical for 1 year) Valeriy Onuchin (LCG) GUI/Win32gdk (since 1st Feb 2002) Fons Rademakers: Alice and PH/SFT group
6
ROOT2002 Rene BrunOverview & Major Developments5 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
7
ROOT2002 Rene BrunOverview & Major Developments6 New Splash Screen Appears 4s When executing root To see the list of all contributors, select the HELP button in the browser or canvas. The window auto scrolls Until you click on it.
8
ROOT2002 Rene BrunOverview & Major Developments7 CINT & Masa Continuous and impressive list of developments by Masa (see his talk) towards full C++ standard ? Still problems with object scope in loops CINT is fundamental to ROOT ROOT puts many difficult requirements to CINT Hook when object does not exist Hook when an object is deleted Many thanks to Masa for 9 years of very fruitful collaboration and 12 years of work on CINT !
9
ROOT2002 Rene BrunOverview & Major Developments8 Special thanks to: FermiLab for supporting Philippe since many years. Philippe is a KEY developer CERN/LCG for providing manpower for GUI, Windows support and Authentication. BNL for supporting Valeri and Victor since many years (via Star->Atlas->Star). BaBar for supporting the xrootd development Our colleagues in LCG/AA and PH/SFT for stimulating discussions
10
ROOT2002 Rene BrunOverview & Major Developments9 Roottalk 1323 in 1997 2515 in 1998 3004 in 1999 3567 in 2000 4686 in 2001 5370 in 2002 5393 in 2003 +1419 in Forum (August 2003->Feb 2004) Mails to roottalk+ mails to rootdev and root-bugs PLEASE: -Always indicate a mail subject -Always indicate which version of ROOT and which OS -Send a x.tar.gz file instead of many files in attachement + mails about-root-fnal + direct mails to team members + spam mail
11
ROOT2002 Rene BrunOverview & Major Developments10 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) http://root.cern.ch/root/htmldoc/examples/Version30402.news.html http://root.cern.ch/root/htmldoc/examples/Version31002.news.html http://root.cern.ch/root/html/examples/V4.00.txt.html We have implemented more than 80% of our plan announced at the previous workshop in October 2002. See: ftp://root.cern.ch/root/R2002/future.pdf We have implemented many new features not foreseen in Oct 2002
12
Overview & Major Developments11 Summary of 3.04, 3.05 and 3.10 October 2002 ->December 2003
13
ROOT2002 Rene BrunOverview & Major Developments12 ROOT Documentation
14
ROOT2002 Rene BrunOverview & Major Developments13 New ports Added port to IBM's xlC compiler under MacOS X, by Federico Carminati. Port to Microsoft's VC++ 7.1. Port to Intel's icc v8.0. Port to RedHat 8.x, 9.x. Port to Fedora Core 1. Port to Cygwin gcc, by Axel Naumann. Port to AMD Opteron and Athlon64
15
ROOT2002 Rene BrunOverview & Major Developments14 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
16
ROOT2002 Rene BrunOverview & Major Developments15 ACLIC The '+' option now properly recreates the library when the script or one of the file it includes is newer than the shared library. When asked to load a script (file.C) which has already been compiled (into file_C.so), ACLiC looks for a dependency file (file_C.d). If this dependency file is older than the library or does not exist, ACLiC generates a new dependency file using ROOT's rmkdepend tool and the list of -I and -D directives it knows about (see ACLiC description on how to set those). Then ACLiC compare the time stamp of all the files listed in the dependency file and rebuild the library if any of them is newer than the library Root >.x file.C++ Root >.x file.C+ Root >.x file.C++g
17
ROOT2002 Rene BrunOverview & Major Developments16 Rootcint (see Philippe talk) Many developments. Consolidation Digestion of STL collections Better support for templates Dictionary size: a problem ?
18
ROOT2002 Rene BrunOverview & Major Developments17 ROOT Dictionary size If all classes have a dictionary, the size of the dictionary may become a large fraction of the executable module!
19
ROOT2002 Rene BrunOverview & Major Developments18 Full native support for 64 bit integers Support on all platforms for 64 bits integers via the portable typedefs Long64_t and ULong64_t.Long64_tULong64_t Long long on Unix _int64 with VC++ Big-endian, little-endian byte swapping Many internal class tables moved to Long64_t Still more classes/functions to be converted fEntries in TH1, TTree Replacememt of TTree::BuildIndex internal tables with an array of ULong64_t TEventList ?
20
ROOT2002 Rene BrunOverview & Major Developments19 Trees improvements Huge number of improvements (see Philippe) Support for split mode in more complex cases Performance improvement Support for foreign classes as top branches #include “TObject.h” Class MyClass : public TObject { int i,j,k; ClassDef(MyClass,1) }; TTree T(“T”,”test foreign”) MyClass *a = new MyClass; T.Branch(“event”,”MyClass”,&a); Class MyClass { int i,j,k; };
21
ROOT2002 Rene BrunOverview & Major Developments20 TTreeViewer Several layout improvement and changes. New Refresh button.
22
ROOT2002 Rene BrunOverview & Major Developments21 TSelector The TSelector class has been upgraded to improve its general functionality and better support its use in PROOF. Specific changes:TSelector - Introduction of a Version() function to provide backward compatibility for the old version and support future upgrades. - Replace ProcessCut() and ProcessFill() with a single Process() function. Reduce the information that needs to be shared between functions. Promote a more granular access to data by reading branches as they are needed. Add SlaveBegin() and SlaveTerminate(), in the case of PROOF these routines are called on the slave servers. The Begin() and Terminate() function now always run on the (local) client machine even when using PROOF.
23
ROOT2002 Rene BrunOverview & Major Developments22 rootd The rootd daemon uses the new authentication methods described in detail at: http://root.cern.ch/root/Auth.html http://root.cern.ch/root/Auth.html Client/Server Authentication Client/Server authentication for access to data on remote hosts (via the rootd daemon) or to a PROOF cluster has been deeply restructured.. See Gerri talk
24
ROOT2002 Rene BrunOverview & Major Developments23 PROOF (see Maarten & Fons) improved packetizer (work distributor). interface to AliEn grid system via the TGridProof/TAlienProof classes. TGridProof interface to Condor Computing on Demand via TCondor class. - query progress dialog TCondor introduced the Package Manager and Sandbox: gProof->UploadPackage() gProof->EnablePackage() gProof->ClearPackage()
25
ROOT2002 Rene BrunOverview & Major Developments24 Fitting/TMinuit/TFumiliTMinuitTFumili void FitBench(Int_t npass=100) { TCanvas *c1 = new TCanvas("c1"); c1->Divide(1,2); fitFcn = new TF1("fitFcn",fitFunction,0,3,6); fitFcn->SetNpx(200); gStyle->SetOptFit(); gStyle->SetStatY(0.6); //with Minuit c1->cd(1); TVirtualFitter::SetDefaultFitter("Minuit"); DoFit(npass); //with Fumili c1->cd(2); TVirtualFitter::SetDefaultFitter("Fumili"); DoFit("Fumili",npass); } Choose Fitter at run time or via system.rootrc
26
ROOT2002 Rene BrunOverview & Major Developments25 TSpectrum New improvements in the Spectrum classes by Miro Morach.
27
ROOT2002 Rene BrunOverview & Major Developments26 TGraph2D This new class is a set of N points x[i],y[i],zi[i] in a non uniform grid. Several visualization techniques are implemented, including Delaunay triangulation. TCanvasTCanvas c; Double_tDouble_t x, y, z, P = 6.; Int_tInt_t np = 200; TGraph2DTGraph2D dt; TRandomTRandom r; for (Int_t N=0; N<np; N++) {Int_t x = 2*P*(r.Rndm(N))-P; y = 2*P*(r.Rndm(N))-P; z = (sin(x)/x)*(sin(y)/y)+0.2; dt.SetPoint(N,x,y,z); } gStylegStyle->SetPalette(1);SetPalette dt.Draw("surf1"); dt.Draw(“same p0”);
28
ROOT2002 Rene BrunOverview & Major Developments27 TMultiLayerPerceptronTMultiLayerPerceptron package (see Christophe Delaere talk) New MultiLayerPerceptron (mlp) package, by Christophe Delaere. The package has 3 classes TMultiLayerPerceptron, TNeuron, TSynapse These classes describe a neural network. There are facilities to train the network and use the output. TMultiLayerPerceptronTNeuronTSynapse The input layer is made of inactive neurons (returning the normalized input), hidden layers are made of sigmoids and output neurons are linear. The basic input is a TTree and two (training and test) TEventLists.TTree For classification jobs, a branch (maybe in a TFriend) must contain the expected output. 6 learning methods are available: kStochastic, kBatch, kSteepestDescent, kRibierePolak, kFletcherReeves and kBFGS. This implementation is *inspired* from the mlpfit package from J.Schwindling et al.
29
ROOT2002 Rene BrunOverview & Major Developments28 New tutorials in $ROOTSYS/tutorial graph2dfit.C: TGraph2D example.TGraph2D graph2derrorsfit.C: TGraph2DErrors example.TGraph2DErrors markerwarning.C illustrating the danger of using asymmetric markers. logscales.C illustrating the use of axis with log scales. triangles.C illustrating how to interact with closed polylines. multigraph.C illustrating the use of TMultiGraph.TMultiGraph mlpHiggs.C illustring the use of the NN classes TMultiLayerPerceptron, etc.TMultiLayerPerceptron bent.C illustrating the use of the new class TGraphBentError peaks.C illustrating how to use the peak finder (class TSpectrum) associated with a complex minimization problem.TSpectrum TestAuth.C to test the ROOT Authentication methods. threads.C illustrating the use of the Thread classes. geoshapes.C illustrating the use of the TGeo shapes. timeonaxis2.C illustrating the basics of the time units on the histogram axis.
30
ROOT2002 Rene BrunOverview & Major Developments29 New tutorials in $ROOTSYS/tutorial clonesA_Event.C illustrating complex situations of inheritance and multiple inheritance. jets.C illustrating the use of a Tree using the JetEvent class. The JetEvent class has several collections (TClonesArray) and other collections (TRefArray ) referencing objects in the TClonesArrays. tree2a.C with the same functionality than tree2.C but using a class instead of a C-struct. copytree3.C showing how to copy selected entries to another Tree.
31
Overview & Major Developments30 Version 4.00 hightlights
32
ROOT2002 Rene BrunOverview & Major Developments31 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
33
ROOT2002 Rene BrunOverview & Major Developments32 ROOT version 4 Highlights (2) (will be in final release in June) 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
34
ROOT2002 Rene BrunOverview & Major Developments33 Foreign classes checksum #include “Rtypes.h” class MyClass { int i,j,k; ClassDef(MyClass,1) };.... bytecount version ObjectN bytecount version objectN+1.... class MyClass { int i,j,k; };.... Bytecount 0 checksum ObjectN Bytecount 0 checksum objectN+1.... 4 bytes 2 bytes 4 bytes buffer foreign class
35
ROOT2002 Rene BrunOverview & Major Developments34 ClassDef advantages The IsA function generated by ClassDef speeds up considerably the access to the TClass for a given object. The version number (2 bytes maximum) consumes less space on disk than the “0+checksum”
36
ROOT2002 Rene BrunOverview & Major Developments35 Support for large files By default, a TFile will grow above 2 GBytes if necessary. A TTree will only go above 2 GBytes if TTree::SetMaxTreeSize has been called. Below 2 GBytes, all pointers are 4 bytes. Above 2 GBytes, they are 8 bytes. This saves some space when writing many small keys/baskets. If a file is > 2GBytes, fSeekKey or fBasketSeek are always 8 bytes. A file written with version 4 can be read by version 3 if the file size is < 2 GBytes.
37
ROOT2002 Rene BrunOverview & Major Developments36 New Data type Double32_t A new data type Double32_t is defined in Rtypes.h Same as Double_t in memory Same as Float_t on disk The Automatic Schema evolution supports conversions from Double32_t to Double_t and vice-versa Double32_t to Float_t and vice-versa Double32_t* to Double_t* and vice-versa Double32_t* to Float_t* and vice-versa This new data type may save a non negligible space on disk. However be careful with loss of precision when making write->read->write->read->write…
38
ROOT2002 Rene BrunOverview & Major Developments37 New Graphics Editor 1-Toggle Editor mode 2-Click On the object to be edited 3-Edit object attributes
39
ROOT2002 Rene BrunOverview & Major Developments38 Gui Builder/Gui Code Generator Type CRTL/S anywhere on a widget To generate the C++ code for this widget Then do root >.x guisave.C
40
ROOT2002 Rene BrunOverview & Major Developments39 Virtual Monte Carlo VMC The VMC has considerably evolved in the past two years.The VMC was designed to have A common input for the kinematics A common input for the geometry A common output for the hits (StepManager) The original version was feeding the final target system (G3 or G4) via a common API. In addition the new version has interfaces from G3 and Fluka to the Root geometry (G4 in plan) In case of G3, one can run with the native G3 geometry or the ROOT geometry with no changes in the application. (See Andrei Gheata talk)
41
ROOT2002 Rene BrunOverview & Major Developments40 Geometry classes TGeoxxx Geometry package Reconstruction program Simulation program Geant3-based Geant4-based Fluka-based C++ classes MySQL Visualisation Modelling Visualisation Interactivity Where am I? Distance to boundary Closest boundary Persistency XML
42
ROOT2002 Rene BrunOverview & Major Developments41 Geometry and Geometries Geometry In memory XML Files Eg, GDML ROOT file C++ classes Geant3 rz file C++ classes G3 G4 Fluka Recons geometry
43
ROOT2002 Rene BrunOverview & Major Developments42 Geometries: not the same goal ! XML Files Eg, GDML External description only Used as input to a real geometry (G4, ROOT) Checker, Viewer may be implemented Requires some data structure in memory This has very limited functionality. Interesting (may be?) for input. Too much emphasis on this solution Geometry In memory (G3,G4,ROOT) Simulation/Reconstruction oriented C++ API for the construction Input can be via first solution Checker, Viewer must be (are) implemented Provide interface to navigators THIS IS THE MAIN HORSE TO BE OPTIMIZED
44
ROOT2002 Rene BrunOverview & Major Developments43 New Linear Algebra classes Eddy Offermann has kindly maintained the old TMatrix, TVector classes for a few years. Eddy is now spending one year with us at CERN.He has developed a new set of classes with more functionality and better performance. See Eddy’s talk on Friday TDecompBase TDecompChol TDecompLU TDecompQRH TDecompSVD TMatrix TMatrixD TMatrixDBase TMatrixDCramerInv TMatrixDEigen TMatrixDLazy TMatrixDSym TMatrixDSymEigen TMatrixDUtils TMatrixF TMatrixFBase TMatrixFCramerInv TMatrixFLazy TMatrixFSym TMatrixFUtils TVector TVectorD TVectorF
45
ROOT2002 Rene BrunOverview & Major Developments44 New Linear Algebra classes
46
ROOT2002 Rene BrunOverview & Major Developments45 New class TRolke by Jan Conrad This class computes confidence intervals for the rate of a Poisson in the presence of background and efficiency with a fully frequentist treatment of the uncertainties in the efficiency and background estimate using the profile likelihood method. The signal is always assumed to be Poisson. It allows the following Models: 1: Background - Poisson, Efficiency - Binomial (cl,x,y,z,tau,m) 2: Background - Poisson, Efficiency - Gaussian (cl,xd,y,em,tau,sde) 3: Background - Gaussian, Efficiency - Gaussian (cl,x,bm,em,sd) 4: Background - Poisson, Efficiency - known (cl,x,y,tau,e) 5: Background - Gaussian, Efficiency - known (cl,x,y,z,sdb,e) 6: Background - known, Efficiency - Binomial (cl,x,z,m,b) 7: Background - known, Efficiency - Gaussian (cl,x,em,sde,b) See example in tutorial Rolke.C
47
ROOT2002 Rene BrunOverview & Major Developments46 Plugin manager & rlimap An extension of the Plugin Manager and a new tool rlimap are currently under development (now in CVS). $ROOTSYS/bin rlimap is a new tool generating the list of classes for a shared lib rlimap libxxx.so libXXX.map At run time, when CINT finds an unknown class, it calls a new Root module that is able to find the shared lib containing the class by looking into all libXXX.map files in the LD_LIBRARY_PATH. Eg. TLorentzVector v; will automatically trigger gSystem->Load(“libPhysics”); gSystem->Load(libXXX”) can still be called
48
ROOT2002 Rene BrunOverview & Major Developments47 Python/Root & Ruby/Root interfaces We consider CINT + ACLIC to be the right combination for interactive data analysis Having in addition an interface with other scripting languages is a bonus. We do not see these scripting languages to be an alternative to CINT/ACLIC, but an interesting complement. We are collaborating with: LCG/AA for PyRoot (Pere Mato, Wim Lavrijsen) Juan Alcaraz for PythonRoot & RubyRoot Elias Athanasopoulos for ruby-root It would be interesting to have a similar interface for PERL. See also JavaRoot http://sarkar.home.cern.ch/sarkar/jroot/main.html root >.x script.C root >.x script.C+ root > gSystem->Load(“libClasses”)
49
ROOT2002 Rene BrunOverview & Major Developments48 PyRoot PyRoot (successor of RootPython by Pere Mato) is an automatic interface between Python and any class having a CINT dictionary. It does not require code generation. We will distribute PyRoot as a sub-ROOT component, once PyRoot is stable. See talk by Wim Lavrijsen
50
ROOT2002 Rene BrunOverview & Major Developments49 PythonRoot http://alcaraz.home.cern.ch/alcaraz/PythonRoothttp://alcaraz.home.cern.ch/alcaraz/PythonRoot/
51
ROOT2002 Rene BrunOverview & Major Developments50 RubyRoot http://alcaraz.home.cern.ch/alcaraz/RubyRoothttp://alcaraz.home.cern.ch/alcaraz/RubyRoot/
52
ROOT2002 Rene BrunOverview & Major Developments51 Ruby-Root Welcome to ruby-root News 19/02/2004: ruby-root v0.0.1 is released! Added support for singleton methods. Download: ruby-root v0.0.1ruby-root v0.0.1 11/02/2004: ruby-root v0.0.0-crowd is released! ruby-root is still at an early development stage. This release is meant only for getting feedback from users and not for serious development. You can download ruby-root: ruby-root v0.0.0 crowdruby-root v0.0.0 crowd Don't forget to read first the Installation Guide, as well as the User's Guide.Installation GuideUser's Guide Elias AthanasopoulosElias Athanasopoulos (HEPA Lab,HEPA Lab University of Athens) http://null.edunet.uoa.gr/~elathan/rr/
53
ROOT2002 Rene BrunOverview & Major Developments52 ruby-root example root ruby
54
Overview & Major Developments53 Medium Term Ideas for 4.01, 4.02..
55
ROOT2002 Rene BrunOverview & Major Developments54 ROOT versions 4.01,… Consolidation, consolidation, I/O: Remove limitations (eg rootcint) Improve performance Offset computation algorithm from Victor? TXMLFile/TXMLBuffer from Sergey Linev xrootd in operation
56
ROOT2002 Rene BrunOverview & Major Developments55 ROOT versions 4.01,… Trees: Improve performance Extend query mechanism Support for TRefs and TRefArray In case the referenced object is in another branch of the same Tree (friend Tree) or another file/Tree, TRef must be able to load the corresponding branch Support tree.Draw(“myfunc.C(….)”) where myfunc uses Tree variables. Add support for Bit Slice Index (see next slide) BuildIndex using ULong64_t MakeClass/MakeSelector upgrade Many cases (Friend Trees) not supported
57
ROOT2002 Rene BrunOverview & Major Developments56 Bitmap Indices (collaboration with Helmut Schmucker LCG/AA) Improvement of selection speed by a factor up to 5 on: sparse multidimensional queries on large trees (eg catalogs). Interactive repetitive queries on large tuples (selection optimisation) Applicable on queries that can be written as logical combinations of comparisons between any TFormula expression and a constant: eg. Sqrt(px**2+py**2)>23, but not px<py The size of the index is of the same order of magnitude as the size of the indexed data attributes. Further information and first performance results will be available at: http://schmucke.home.cern.ch/schmucke/IndexedTree/index.html
58
ROOT2002 Rene BrunOverview & Major Developments57 ROOT versions 4.01,… GUI Builder fully operational Improve widgets like Histogram editor/rebin Histogram fitter TGeo ->Coin3D/OI operational (& picking) New THtml (see Axel’s talk) Help using new THtml output + libxxxx.map
59
ROOT2002 Rene BrunOverview & Major Developments58 ROOT versions 4.01,… VMC: Fluka fully operational (may be in 4.00?) hoping to get G4 into the picture Geometry input from various sources gdml ->G4->gdml gdml->root->gdml
60
ROOT2002 Rene BrunOverview & Major Developments59 The ARDA Project The purpose of this project is to coordinate the interaction of the different projects and activities that are involved in the realisation of a distributed analysis system: Grid middleware, generic in the sense that it does not have significant functionality that is of exclusive interest to high energy physics, or any other science. HEP common tools and libraries that interact directly with the middleware or that are specific to distributed analysis and would benefit by being part of a distributed analysis project common to the LHC experiments. Examples are POOL, ROOT, PROOF, GANGA, GAE. Teams within the LHC experiments that have been building distributed analysis systems using the applications environment of their experiment. Users - early adopters of these distributed analysis systems providing feedback to applications and middleware developers to guide development priorities and direction. Providers of computing resources (Regional Centres) that will take part in early
61
Overview & Major Developments60 Collaboration with LCG/AA
62
ROOT2002 Rene BrunOverview & Major Developments61 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
63
ROOT2002 Rene BrunOverview & Major Developments62 Technology dependent.h ROOTCINT CINT dictionary code Dictionary Generation CINT dictionary I/O Data I/O SEAL Dictionary: Reminder GCC-XML LCG dictionary code.xml Code Generator LCG dictionary Gateway Reflection Other Clients
64
ROOT2002 Rene BrunOverview & Major Developments63 Dictionaries : root only X.h CINT DS rootcint XDictcint.cxx CINT API ROOT Root meta C++ CINT
65
ROOT2002 Rene BrunOverview & Major Developments64 Dictionaries : situation today X.h X.xml XDictlcg.cxx LCGDICT DS CINT DS rootcint lcgdict gccxml XDictcint.cxx CINT API LCG API POOL ROOT Root meta C++ CINT
66
ROOT2002 Rene BrunOverview & Major Developments65 Dictionaries : step 1 gain space X.h X.xml XDictlcg.cxx LCGDICT DS C++ CINT DS rootcint lcgdict gccxml XDictcint.cxx CINT API LCG2 API POOL ROOT Root meta C++ CINT
67
ROOT2002 Rene BrunOverview & Major Developments66 Dictionaries : step 2 simplification X.h meta DS C++ CINT DS rootcint XDictcint.cxx CINT API LCG ROOT API POOL ROOT CINT
68
ROOT2002 Rene BrunOverview & Major Developments67 Dictionaries : step 3 coherency X.h meta DS C++ CINT DS XDict.cxx CINT API LCG ROOT API POOL ROOT CINT gccxml rootcint
69
ROOT2002 Rene BrunOverview & Major Developments68 Mathlibs proposals A: SEAL proposal: Install GSL, collaborate with the GSL team. B: Rene/Eddy proposal: see ftp://root.cern.ch/root/mathlib.pdf C: New SEAL proposal: see next slides October 2003 November 2003 February 2004
70
ROOT2002 Rene BrunOverview & Major Developments69 Mathlib Proposal B libGSL++.so Contains full standard GSL + CINT dictionary TMath or/and TMath like C++ static functions Contains the most used math functions High Level C++ classes Functions (a la TF1), Physics Vectors Linear Algebra, Random Numbers, Minimisation Callable from interpreter(s) Persistency ROOT libraries
71
ROOT2002 Rene BrunOverview & Major Developments70 Summary of proposal B Install standard gsl: libGSL.so Provide a CINT front-end (say libGSL++.so) Nearly done, thanks Lorenzo Extend TMath with more static functions from CERNLIB, GSL,.. New Linear Algebra from Eddy (already in CVS) Extend functions classes TF1 and like with more algorithms. 2/3 of the estimated total work already done. Main work is the development of a test/benchmark suite
72
ROOT2002 Rene BrunOverview & Major Developments71 SEAL new proposal C
73
ROOT2002 Rene BrunOverview & Major Developments72 Summary Many developments in the past 14 months. Major new developments in 4.00 The system is still growing, but (we hope) getting more mature. Many points in the relationship ROOT/LCG/AA still to be clarified. We will be in ARDA. As usual, we are waiting your comments, suggestions to improve the system. Come to the session tomorrow afternoon with your views on the project, our plans, interaction with LCG/AA, etc.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.