Download presentation
Presentation is loading. Please wait.
1
Coherent Software Framework a Proposal
LCG meeting CERN- 14 June René Brun ftp://root.cern.ch/root/blueprint.ppt Blueprint RTAGs
2
Way 1: the component model
PROs: In principle easy to add or replace a component because of weak coupling B C D E G F H I In reality, you simply postpone the integration problem if the number of components is > N eg N> 10 L J K J’ ... LCG 14 June Rene Brun Blue print RTAG
3
The main software areas
DAQ Online GRID middleware Event Models Folders ETC... Event Generators RDBMS run/file catalogs Object persistencyv Object persistency Event Display Dectector Simulation System services Histograming Fitting 2-d, 3-d graphics Ntuple analysis Detector Geometry Math Libs Statistics GUI Toolkits Interpreters LCG 14 June Rene Brun Blue print RTAG
4
Any box connected to many boxes
DAQ Online GRID middleware Event Models Folders Event Generators RDBMS run/file catalogs Object persistencyv Object persistency Event Display Dectector Simulation System services Histograming Fitting 2-d, 3-d graphics Ntuple analysis Detector Geometry Math Libs Statistics GUI Toolkits Interpreters LCG 14 June Rene Brun Blue print RTAG
5
Any box connected to many boxes
DAQ Online GRID middleware Event Models Folders Event Generators RDBMS run/file catalogs Object persistencyv Object persistency Event Display Dectector Simulation System services Histograming Fitting 2-d, 3-d graphics Ntuple analysis Detector Geometry Math Libs Statistics GUI Toolkits Interpreters LCG 14 June Rene Brun Blue print RTAG
6
Any box connected to many boxes
DAQ Online GRID middleware Event Models Folders Event Generators RDBMS run/file catalogs Object persistencyv Object persistency Event Display Dectector Simulation System services Histograming Fitting 2-d, 3-d graphics Ntuple analysis Detector Geometry Math Libs Statistics GUI Toolkits Interpreters LCG 14 June Rene Brun Blue print RTAG
7
Way 2: Framework with Object bus
User Applications Higher level framework services Experiment framework Higher level framework services Higher level framework services Higher level framework services Higher level framework services User Applications Object bus: Object dictionary Data Interface (I/O): Functional Interface LCG 14 June Rene Brun Blue print RTAG
8
LCG 14 June Rene Brun Blue print RTAG
9
Evidence It takes time to build solid foundations
more than 6 years for Geant3, PAW, ROOT The process must be validated by users in different experiments in different configurations In the long term, users prefer general purpose frameworks to experiment-specific frameworks because users work in 3, 4 experiments during the life time of any framework People vote with their feet LCG 14 June Rene Brun Blue print RTAG
10
ROOT libs structure LCG 14 June Rene Brun Blue print RTAG
pcnotebrun) #[1006] cd $ROOTSYS/lib (pcnotebrun) #[1007] ls -l total 26860 Jun 10 19:58 libCint.so Jun 13 18:26 libCore.so Jun 13 18:30 libEG.so Jun 13 18:30 libEGPythia.so Jun 13 18:30 libEGPythia6.so Jun 13 18:30 libEGVenus.so Jun 13 18:30 libGX11.so Jun 13 18:30 libGX11TTF.so Jun 13 18:28 libGpad.so Jun 13 18:28 libGraf.so Jun 13 18:28 libGraf3d.so Jun 13 18:29 libGui.so Jun 13 18:30 libHbook.so Jun 13 18:27 libHist.so Jun 13 18:29 libHistPainter.so Jun 13 18:29 libHtml.so Jun 13 18:30 libMC.so Jun 13 18:27 libMatrix.so Jun 13 18:29 libMinuit.so Jun 13 18:30 libMySQL.so 21917 Jun 12 19:52 libNew.so 90902 Jun 13 18:30 libPgSQL.so Jun 13 18:29 libPhysics.so Jun 13 18:29 libPostscript.so Jun 13 18:29 libProof.so Jun 13 18:30 libRFIO.so Jun 12 20:05 libRGL.so Jun 13 18:29 libRint.so 35410 Jun 12 20:07 libSRPAuth.so Jun 13 18:30 libTable.so Jun 13 18:30 libThread.so Jun 13 18:27 libTree.so Jun 13 18:29 libTreePlayer.so Jun 13 18:29 libTreeViewer.so Jun 13 18:30 libX3d.so LCG 14 June Rene Brun Blue print RTAG
11
Several actions are proposed in the following slides
Proposal The existing set of ROOT libs is the starting core of the LCG software. Because the system is already widely distributed and used, it guarantees the initial acceptance to a wide community. We invite architects and key developers to review the current organisation of libraries and to propose an evolution if it proves necessary, keeping in mind that this may affect thousands of existing users. Several actions are proposed in the following slides (non exhaustive list) LCG 14 June Rene Brun Blue print RTAG
12
Review of libCore components
Because libCore is the essential library, it is important to understand the rationale behind its current organisation. We want to keep this core as small as possible. It will not be possible to agree on many other things if we cannot find an agreement on this fundamental component. LCG 14 June Rene Brun Blue print RTAG
13
{ { { Object Persistency Continue current developments in ROOT I/O
Foreign classes Support for STL Improved Trees TLongRefs Interface to Catalogs Large files > 2 Gbytes Implement in TStreamerInfo in interpreted mode what is currently generated by Rootcint for STL containers Collaboration with FNAL and BNL DAQ Online GRID middleware Event Models Folders { Event Generators RDBMS run/file catalogs Object persistencyv Object persistency { Event Display Dectector Simulation System services Collaboration with LCG Histograming Fitting 2-d, 3-d graphics { Ntuple analysis Detector Geometry Collaboration with BNL Math Libs Statistics GUI Toolkits Interpreters LCG 14 June Rene Brun Blue print RTAG
14
Object Persistency Propose a restricted discussion on the interface to the dictionary following the initial work by Craig. Discussions and prototyping on access to CINT dictionary (feed/retrieve info) from external sources (eg XML/IDL, or other languages). Idem for a restricted group discussing, prototyping LongRefs. Would like to develop a variant of TStreamerInfo class generating XML for low volume exchange of objects. Implementation of the RDBMS layer is an independent project (Dirk) LCG 14 June Rene Brun Blue print RTAG
15
GRIDS Run/file catalogs
Interface with Grid middleware Interface with Alien (see Predrag) PROOF (GRID oriented) Interfaces with RDBMS Oracle, MySQL, Postgres, etc TSQL, TSQLResult Discussions with GriPhyn DAQ Online GRID middleware Event Models Folders Event Generators RDBMS run/file catalogs Object persistencyv Object persistencyv Event Display Dectector Simulation System services Histograming Fitting 2-d, 3-d graphics Expecting close relationship with LCG Ntuple analysis Detector Geometry Math Libs Statistics GUI Toolkits Interpreters LCG 14 June Rene Brun Blue print RTAG
16
DAQ Online Multi-Threading support Shared memory Sockets/Monitors
client/server Network classes System interface/Signals Interpreter Histograming Event Display Browsers/Inspectors Persistency DAQ Online GRID middleware Event Models Folders Event Generators RDBMS run/file catalogs Object persistencyv Object persistencyv Electronic logbook at FNAL well integrated with ROOT Event Display Dectector Simulation System services Histograming Fitting JavaRoot interface possibly interesting 2-d, 3-d graphics Ntuple analysis Detector Geometry Math Libs Statistics GUI Toolkits Interpreters LCG 14 June Rene Brun Blue print RTAG
17
Object Dictionary Follow the new C++ standard proposals in the area of instrospection, RTTI. Too much emphasys so far on the transient class dictionary. The real difficulty is the dictionary support for automatic schema evolution (persistent views and relationship with current transient classes). We did not discuss enough this essential area. Remove as much as possible automatic generated code in favour of dynamic interpretation. LCG 14 June Rene Brun Blue print RTAG
18
CINT, Python, Java, C# CINT: Smooth transition from interpreted code
to compiled code dynamically unlinked/linked : root > .x script.C (interpreted) root > .x script.C++ (compiled) Facilitate automatic interfaces to Python and Java Current implementations are slow Root dictionary could be exploited to improve run time. DAQ Online GRID middleware Event Models Folders Event Generators RDBMS run/file catalogs Object persistencyv Object persistencyv Event Display Dectector Simulation System services Histograming Fitting 2-d, 3-d graphics Ntuple analysis Detector Geometry Math Libs Statistics GUI Toolkits Interpreters LCG 14 June Rene Brun Blue print RTAG
19
Interpreters Propose CINT as the main line because the same script can be interpreted or/and compiled. CINT matches very well with the GUI signal/slots. Interpred code can easily be called from compiled code and vice-versa. Propose to extend Pere’s Python interface and support it. Pere’s example with Excel is a good example of use of Python. Interactive analysis with loops filling histograms is not realist. Propose to consolidate the JavaRoot interface from Subir Sarkar. I hope that Tony and Julius will be interested. Investigate an interface with C# LCG 14 June Rene Brun Blue print RTAG
20
Event models: Folders/Tasks
Some convergence with Gaudi to be exploited Whiteboard communication Tasks = Algorithms Folders <--> Trees to be developed Class 1 Class 2 Class 3 Class 4 Class 5 Class 6 Class 7 Class 8 Det Task Event Models Folders/tasks LCG 14 June Rene Brun Blue print RTAG
21
Event Models Encourage discussions on the transient event store organisation and tools to facilitate the export/import to persistent containers like the ROOT trees. This is in my mind an important item: role of collection classes, whiteboard communication style. How to work (transient/persistent view) with external class libs (eg G4) collections. LCG 14 June Rene Brun Blue print RTAG
22
GUI Toolkits Consolidate the TVirtualX interface
Complete TVirtualX/Qt implementation TVirtualX/Win32-FOX (free/fast on Windows) Export script from a running GUI Build GUI from a given script GUI editor/builder The ROOT event loop has proven to work with all known graphics systems: X11, Xt, Motif, Qt, Open Inventor, etc DAQ Online GRID middleware Event Models Folders Event Generators RDBMS run/file catalogs Object persistencyv Object persistencyv Event Display Dectector Simulation System services Histograming Fitting 2-d, 3-d graphics TGX11 Ntuple analysis TQt Detector Geometry TVirtualX Math Libs Statistics TGWin32 GUI Toolkits TGWin32++ Interpreters LCG 14 June Rene Brun Blue print RTAG
23
GUIs An important area. Take advantage of the existing expertise and experience with different solutions. Take a long term view and not just what is fashionable today. Non blocking GUIs. GUIs in distributed applications, including Web. We would like to discuss the Carrot project see We want to consolidate the existing ROOT GUI We would like a full TVirtualX/Qt implementation (Valery) LCG 14 June Rene Brun Blue print RTAG
24
with integrated picking
2-D, 3-D graphics Rich set of 2-D and 3-D primitives with integrated picking and context menus + Geometry primitives X3D viewer OpenGL viewer OpenInventor viewer Postscript,SVG TVirtualPad TVirtualPS DAQ Online GRID middleware Event Models Folders TVirtualGL Event Generators RDBMS run/file catalogs TPad Object persistencyv Object persistencyv TCanvas Event Display Dectector Simulation System services Hope to see a cooperation Olivier, Guy Histograming Fitting 2-d, 3-d graphics Ntuple analysis Detector Geometry Math Libs Statistics GUI Toolkits Interpreters LCG 14 June Rene Brun Blue print RTAG
25
2-d graphics A lot of work to be done, eg; Support for TrueTypeFonts 2
New objects for DAQs, time series, statistics Rethink existing organisation (TVirtualPad) to optimize cooperation. Can we agree on the level of functionality (eg polymorphic graphics containers, picking) before discussing interfaces. LCG 14 June Rene Brun Blue print RTAG
26
3-D graphics Pros & Cons of existing 3-d viewers
Do we assume that 3-D graphics is only on a local PC or also across LANs/WANs? Do we want to duplicate the objects collections between the user application and the renderer? Picking strategy (graphics list or really object oriented)? Can we do the 2-D with 3-D / (as Guy proposes) many 3-D objects to be developed Is a cooperation really impossible? LCG 14 June Rene Brun Blue print RTAG
27
Event Displays Assume client-server model with access to remote files.
We have many very successful implementations LCG 14 June Rene Brun Blue print RTAG
28
Histograming & Fitting
Much more than HBOOK/PAW Fix & var bin size for 1-d, 2-d 3-D Profile 1, 2 & 3D All kinds of projections, slices Errors for all dims Filling with strings (auto sort) time axis associated fitting Random n. generation + auto binning + auto addition support for parallelism DAQ Online GRID middleware Event Models Folders Event Generators RDBMS run/file catalogs Object persistencyv Object persistencyv Event Display Dectector Simulation System services Histograming Fitting 2-d, 3-d graphics Fairly complete no requests for extensions Ntuple analysis Detector Geometry Fitting new ideas collaborators Math Libs Statistics GUI Toolkits Interpreters LCG 14 June Rene Brun Blue print RTAG
29
Ntuples & Trees analysis
PAW-like queries on attributes tree.Draw(“varx”,”sqrt(x*y) <z”) tree.Draw(“event.tracks.GetPt()”) + Tree browser and viewer +MakeClass (generation of skeleton analysis code) +MakeSelector same as MakeClass for PROOF Collaboration with FNAL DAQ Online GRID middleware Event Models Folders Event Generators RDBMS run/file catalogs Object persistencyv Object persistencyv Event Display Dectector Simulation System services Histograming Fitting 2-d, 3-d graphics Ntuple analysis Detector Geometry Math Libs Statistics GUI Toolkits Collaboration with MIT Interpreters LCG 14 June Rene Brun Blue print RTAG
30
Math Libs & Statistics DAQ Online GRID middleware In ROOT today
Can generate random numbers from basic distributions; gaus, poisson, etc from parametric analytic functions 1,2,3-d from histograms, 1,2,3-d DAQ Online GRID middleware In ROOT today TVector2,3 TLorentzRotation TLorentzVector TRandom,2,3 TMatrix TMath TFeldmanCousins TPrincipal TMultidimFit Event Models Folders Event Generators RDBMS run/file catalogs Object persistencyv Object persistency A collection of many algorithms CERNLIB, Numerical Recipees in C/C++ Event Display Dectector Simulation System services Many algorithms classes developed by a huge user community See recent FNAL meeting and effort organized within ACAT Histograming Fitting 2-d, 3-d graphics Ntuple analysis Would like to see an interface to GSL to Numerical Recipees in C++ Collaboration with Fred James, Louis Lyons, Pushpa Bhat Detector Geometry Math Libs Statistics GUI Toolkits Interpreters LCG 14 June Rene Brun Blue print RTAG
31
Math Libs , Statistics Not much to keep from CLHEP.
Assuming that a team will investigate GSL and its interface to interpreters (should be trivial). Would like to see a better integration of the new nice “Numerical Recipees in C++” Plenty of people “outside” willing to help. See ACAT working group or “Confidence Levels” workshops (Fred James, Louis Lyons, Pushpa Bhat, Jim Linnemann, Prosper Harrison, etc) Linear algebra important (including persistent objects) LCG 14 June Rene Brun Blue print RTAG
32
Detector geometry C++ classes Geometry package MySQL Modelling
A very important element Request number 1 at ROOT FNAL workshop 2001 Work in progress with ALICE Huge interest in many experiments I have a complete talk on this Modelling Visualisation Interactivity Where am I? Distance to boundary Closest boundary Persistency DAQ Online GRID middleware Event Models Folders Event Generators RDBMS run/file catalogs Object persistencyv Object persistency We want to make it transparent to Geant3 users Will be used by our Virtual MC Event Display Dectector Simulation System services Geometry package Reconstruction program Simulation Geant3-based Geant4-based Fluka-based C++ classes MySQL Histograming Fitting 2-d, 3-d graphics Ntuple analysis Detector Geometry Math Libs Statistics GUI Toolkits Interpreters LCG 14 June Rene Brun Blue print RTAG
33
Detector Geometry package
I strongly hope we can cooperate on this subject. We have very nice results now. We have concentrated the efforts on the caching techniques: speed is a key element. We support the full detailed geometry on most existing detectors (tested with 37 !), including 4 LHCs. We invite interested people in discussions and real work on the final API, functionality and testing. We know how to interface it to G3. LCG 14 June Rene Brun Blue print RTAG
34
TGeo performance vs Geant3
Number gtmedi Root Geant3/ gtmedi Root Geant3/ nodes physics physics Root random random Root Gexam Gexam Gexam Brahms Tesla CDF Minos_near BTeVEcal BTeV CMSEcal CMS LHCb Alice Atlas LCG 14 June Rene Brun Blue print RTAG
35
Detector Simulation Propose to discuss the Virtual MC approach.
Goal is to help in comparing different trackers/physics engines. VirtualMC guarantees common input for the geometry common input for the kinematics common output for hits/digits common visualisation LCG 14 June Rene Brun Blue print RTAG
36
Detector Simulation Geant3 Kinematics Geometry Geant4 Fluka
ROOT can provide a solid base for: geometry, visualisation, interactivity, interpreter and persistency This strategy facilitates migration or comparisons with a common input and a common output DAQ Online GRID middleware Event Models Folders Event Generators RDBMS run/file catalogs Object persistencyv Object persistency Geant3 Event Display Dectector Simulation Kinematics Geometry System services Geant4 Histograming Fitting Fluka 2-d, 3-d graphics TVirtualMC Ntuple analysis Geant3.tar.gz includes an upgraded Geant3 with a C++ interface Detector Geometry Math Libs Statistics GUI Toolkits Hits, Digits Geant4_mc.tar.gz includes the TVirtualMC <-->Geant4 interface classes Interpreters LCG 14 June Rene Brun Blue print RTAG
37
Virtual MC example (with G3)
{ // Load basic libraries gSystem->Load("libPhysics"); gSystem->Load("libMC"); gSystem->Load("$(MCINSTALL)/lib/Linux-g++/libexample01"); // Load Geant3 libraries // … skipped // MC application Ex01MCApplication* appl = new Ex01MCApplication("Example01", "The example01 MC application"); appl->InitMC("g3Config.C"); appl->RunMC(1); } void Config() g3Config.C { cout << "Create geant3" << endl; new TGeant3("C++ Interface to Geant3"); } LCG 14 June Rene Brun Blue print RTAG
38
Virtual MC example (with G4)
{ // Load basic libraries gSystem->Load("libPhysics"); gSystem->Load("libMC"); gSystem->Load("$(MCINSTALL)/lib/Linux-g++/libexample01"); // Load Geant4 libraries // … skipped // MC application Ex01MCApplication* appl = new Ex01MCApplication("Example01", "The example01 MC application"); appl->InitMC("g4Config.C"); appl->RunMC(1); } void Config() { g4Config.C // RunConfiguration for Geant4 TG4RunConfiguration* runConfiguration = new TG4RunConfiguration(); // TGeant4 new TGeant4("TGeant4", "The Geant4 Monte Carlo", runConfiguration); } LCG 14 June Rene Brun Blue print RTAG
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.