ROOT Team Meeting

→ Europe/Zurich
32/1-A24 (CERN)

32/1-A24

CERN

40
Show room on map
    • 15:00 → 15:05
      News 5m
      -MAPS: Prepare your interview for middle of February -Ilka: end of contract in July, no commitments for coming releases -Bertrand: contract extended 1 year -Axel: hoping extension of 1 year before end of March -Discussion with German company JBEAM (see CD)
    • 15:05 → 16:05
      Program of work discussion 1h
      Axel ==== March: * Leo + Diego (symbol call): next week. * SVN changes: this week * after your changes to TCint7: --enable-cint7. * new reflex: mid February. And right after that we will start with the work for the December release: stubless calls integrated into CINT7, GCC4.2 support for that, ACLiC in CINT, etc. June: * new svn repository layout; mv cint/src/v6_* to cint/src/* * Current CINT ("CINT5") does function calls via symbols. Per-process selection between symbol-based and stub-based (traditional) version. Support at least for GCC3.[24] 32bit. Defaulting to stub-based (traditional) version. * major update of Reflex (faster!, cleaner API); needs trivial modifications in PyROOT and Cintex because of API changes. * CINT7 in parallel with current CINT: selection per-process, needs --enable-cint7, default traditional CINT. * interpreter compatibility layer (TCint / TCint7 or similar) December: * symbol-based call becomes default for CINT5 * symbol-based call integrated in CINT7 (default?); support includes at least GCC 4.2, possibly also MSVC (v7.1 == v8 == v9 - ABI on windows is fixed since Win32) * Optional dict.root in CINT7 * ACLiC in CINT7 * CINT7 production-grade (default? to be seen...); ROOT dictionaries can be generated with CINT or Reflex * Migration of CINT7 towards C++ version started: first steps in thread safety * Uncertain: on-demand dictionary generation (CINT7) _________________________________________________________________________ Philippe: ========= For the June release, for the I/O package, the plan would be - first draft of Lukasz work on schema evolution - bug fixes including problem with slow down due to TBranch registering the object address - autoloading of (pregenerated) stl dictionary - change the default storage of STL container to memberwise - Switch ACLiC to use rootmap file for dependency tracking on all platforms. For the December release, for the I/O package, the plan would be - final draft of Lukasz work on schema evolution - Comprehensive fix for https://savannah.cern.ch/bugs/?20866 - bug fixes as they come :) _________________________________________________________________________ Fons/Core ========= This note outlines the most important tasks to be complete in 2008. The following people are involved: - Fons Rademakers (50%) - Rene Brun (xx%) - Axel Naumann (5%) - Philippe Canal (10%) Tasks for the Summer release: * Documentation (all) Need to agree on a doc style for argument description Add something like *See base* to avoid documenting over and over the same arguments and options. * Out of source build mods (Axel) * Expanded tar balls in svn with vendor branches * Improve thread safety (gFile/gDirectory) * Close outstanding issues * Server maintenance Tasks for the Xmas release * Pickup work on BOOT (see below from previous plans) Plans for December 2007 release (dated 7 June 2007) -------------------------------------------------- -Infrastructure for automatic updates with checking for new versions of precompiled libraries for patch releases. -Infrastructure for incremental install -download of precompiled plugins -download of sources to compile plugins Update for December 2007 release (10 October 2007) -------------------------------------------------- - First version of automatic patch downloader and installer - Prototyping of zero-install/boot _________________________________________________________________________ Lorenzo ======= see ppt file Re-structuring of core Math library ----------------------------------- -complete MathCore by merging with math directory -TMath -use new implementations (Cephes) for some of the functions (Gamma) -use stl for some of the algorithms (like sort) and add iterator API -Random numbers -new Poisson and Binomial generators -classes for basic algorithms like integration, derivation, root-finders -interfaces for functions and algorithms (Integration, Minimizer, etc..) used by other libraries. -functions to create them via a plug-in manager -Physics Vectors need to decide if moving in a separate library or keeping in MathCore big bulk of library size -Changes in ROOT to use new Math library -modify TF1 to use new classes -add options to use (via plug-in manager) mathmore algorithms -clean-up of code (remove usage of statics objects) Fitting ------- -introduce improvements of TVirtualFitter already existing in development branch -working version based on Minuit, Minuit2 and GSL -various fitting methods (chi2, likelihood, etc..) -new Fitter class (does not need to be virtual) -use a Virtual minimizer interface (existing in 5.18) -FitResult class -separate classes for Data sources interfaces for TGraphs and THs classes -Develop interfaces for other data sources (TTree, THNSparse, etc..) -Add Linear fitter -Re-implement Fit methods (i.e. TH1::Fit) and FitPanel -Add in FitPanel interfaces for all data sources -Use in TF1,TH1 the new FitResult class -Improve display of fit results (confidence levels, contours, scan, etc..) -add robust non-linear fitting (algorithms from M. Ivanov) -support for parallel fits Minimization/Optimization ------------------------- -add genetic algorithms (used in TMVA) -complete testing of Minuit2 -add more debug facilities (intercative display of minimization iterations) -Study constraint minimization -investigate some open-source packaged -Develop for testing a constraint minimizer based on Nag Unuran: -------- apply some improvements in the re-initialization of distributions Physics Vectors --------------- use new common implementation and remove duplications MathMore -------- -multi-dimensional root-finders -add quasi-random numbers -wavelet transforms Statistics ---------- -improve current limit classes (TLimit, TRolke, TFeldmanCousins) -add new algorithms for limit and significance method from Bityukov, Bayesian methods, etc.. -Coordinate with RooStat developments statistics package being developed by K. Cranmer and based on RooFit -contacts with experiments statistics committee for required methods Goodness of Fit -new algorithms from multi-dimensional data Density estimators -new algorithms for pdf estimators in one and more dimensions -alternative approach than using histograms -improve or replace existing class THK1 MultiVariate analysis -comparison TMVA/SPR, understand better overlap/complementarity -usage of common tools, minimize duplications QA -- -Improve and update User guides chapters for : basic math functionality, statistics, fitting -Better indexing of the ROOT Math functionality in ROOT add links to tutorials provide guidelines and recommendations for packages -Improve reference documentation of some of the existing classes example: TConfidenceLevel (many methods not clear at all) _________________________________________________________________________ Olivier: ======== >>> For June: - The documentation (the reference manual): * Revisit all the graphics classes documentation: - Convert all the headers classes and the header functions into a nice HTML text like in TAttFill: http://root.cern.ch/root/html/TAttFill.html. In the class header, the class title should be:

      Class Title

      If the header need to be divided in sections, the section header is:

      Section N

      an index of all the sections should appear at the top of the class header. - Make sure users can find the information from intuitive places. For example to find all the drawing option froms TH1::Draw it should takes not more than one click. - All the option and features should be documented and as much as possible using example thanks to Begin_Macro / End_Macro * Request for THTML improvement: When the name of a method is referenced inside a C++ comment the THML parser automatically creates the link to this class (that's very good), but if a method name is inside Begin_Html/End_Html the automatic reference is not done. It would be nice to have it. In Wiki it is done using "[[ blabla ]]". * The "doc" section for each package must be extented in order to explain the general ideas and concepts for this given package. Here again many examples are required. - Use the official libAfterimage in its cvs format (no more as a tar file). >>> >>> For the end 2008: - A prototype for dynamically eloving graphs like http://www.gapminder.org/world ROOT provides all the basic tools to implement that sort of graphs (GUI, graphics, data set management etc ..) - The summer student will implement a graphical tool allowing to display and interact with graphs. The graphs interpretation will be done thanks to the "graphviz" package: http://www.graphviz.org/ Graphs representations are needed in several places in ROOT. A generic tool using the power of the ROOT graphics and GUI would be really useful. >>> >>> Items not done from the previous release guidelines: - TParallelCoord: Draw random points instead of dotted lines. The Idea is the same (reducing cluttering) but it should give better results on PS and, more important, it should give the same result with all drivers (Window, QT, PS ... QT, for instance does not allow to change the spacing between the dots of a dotted line). And also (if possible): - GLText - support texture fonts (Olivier) - A prototype of 2D graphics with GL (Olivier and Matevz) _________________________________________________________________________ Proof/Fons ========== PROOF Development Plans for 2008 -------------------------------- This note outlines the most important tasks to be completed in 2008. The following people are involved in the core PROOF development and responsible for the tasks outlined below: - Gerri Ganis (70%) - Jan Iwaszkiewicz (50%) - Anar Manafov (50%) - Jorry Palm (40%) - Fons Rademakers (50%) In addition there are some people from Atlas (Neng) and Alice (Jan Fiete) working on different aspects of PROOF. Tasks for Summer release: * Documentation (All) * Stability (Gerri). Root out lockups that we still see from time to time. * Packetizer improvements (Jan) Come to a full understanding of packetizer performance under different environments. * Scheduler interface to Jan's scheduler and Condor (Jan, Neng) * Improved error handling in case of error in user selector code (Jorry) * Fix all outstanding issues from Savannah (Anar, me). * Client side version of CPU processor (e.g. TProccesor class) Tasks for Xmas release: * Updated PROOF GUI integrated in the new browser (summer student) * Mulitple sub-masters on large local cluster to parallelize result merging (Anar) * Daemon (xrootd) free PROOF on single multi-core machine (Gerri if 100%) * Further optimization of PROOF in Grid (Anar) Get grid aware proxy as xrootd plugin optimize number of connections to client _________________________________________________________________________ Proof/Jan ========= Work plan: Iterative process of testing and improving the PROOF scheduler and adding new features. Planned steps: - tests with the Wisconsin group and on ALICE CAF, - adding support for removing workers during the session/query (including an API to an external scheduler), - adding workers per query (at least cloning the set of libs), - defining the set of nodes based on the data location, - fair share, history-based scheduler (using Monalisa DB in the first approach). - testing different scheduling policies and finding appropriate solutions for typical clusters expected to be deployed in centers belonging to the different tiers of LCG (e.g. Tier 0 of ALICE, Tiers 2 & 3 of ATLAS). - further developing the formal description of processing time of a packet and a query, - considering different (dis)utility functions (e.g. the weighted average job processing time), - looking for further improvements depending on the test results. Other tasks in PROOF: - defining a standard automatized tests of performance; combining the ProofBench with a root file being a "data base" of queries, - integration with Condor, - resubmitting of packets in case of lost workers. _________________________________________________________________________ Proof/Gerri ===== March 2008 ---------- -Fixes / consolidation Solve PROOF instabilities problems at CAF (< Feb 10th) Consolidation of dataset and package managers (< Feb 20th) New PROOF tests Setup small cluster on 3 lxbuild ad hoc machines ( < Feb 29th) -Developments Integrate proper performance and memory monitoring (Anna's work) XROOTD: VOMS support and a few other GSI related issues -Documentation Fill missing parts, move to new scheme (DocBook?) -PROOF User support Add new tutorials CAF , ATLAS (BNL), CMS (Oviedo) June 2008 --------- PROOF Developments -Dynamic addition / removal of PROOF workers -Session resiliance to XROOTD restart -Self-discovery of PROOF worker nodes / sub clusters -Consolidate GSI-based setups (temporary sandboxes, VOMS roles) Next ---- -Restructuring and refactoring TProof API way too large: some functionality belongs to TProofMgr datasets, packages, queries, ... Separate out master functionality from TProof ( TMaster ?) ... -Optimization of local PROOF setups Asynchronous-reading in TSocket (w/ dedicated reader thread) Move up async message queue infrastructure from TXSocket Relevant also to the remote ROOT session machinery Implement TProofPlayerLocal Remove master level Start local workers directly from the ROOT shell no daemons, should work on Windows as well _________________________________________________________________________ Bertrand ======== EVE - CMS Event Display related development GUI New classes: TGSplitFrame: a (horizontally or vertically) splittable composite frame TGShapedFrame: an irregular shaped composite frame (base class) TGShapedToolTip: a toopltip like shaped composite frame (to display graphics i.e. histograms) TGEventHandler: an event handler to be able to change the way events (i.e. mouse clicks) are handled in Eve. This will allow to have several modes in GL (i.e. picking, selection, edition,...) ... OpenGL New classes TGLEmbeddedViewer: a lightweight version of TGLSAViewer, without menubar and without editor, meant to be embedded (for multiple GL views/projections) ... Eve New classes TEveListTree: a very clean TGListTree, basically only emitting signals, to let the user (slots) event handling (for full control) TEveListTreeItem: same than above ... More to come, depending on the CMS requests. Mainly development in Eve (i.e. configuration managment) and GL _________________________________________________________________________ Matevz ====== March: gl/ 1. split event handling and selection management off TGLViewer 2. optimize scene updates eve/ 1. compound object handling 2. 3-levels of selection (element, compound, master) 3. coherent handling of multiple views, esp. regarding selection 4. preliminary implementation of configuration saving 5. preliminary calorimeter representation March->June: Consolidate these developments until the production release, possibly adding 2D graphics with GL and consolidation of Timur's plot-painters. We will also have to do some work for Alice ... July->Dec: eve/ and gl/: 1. dynamic visualization 2. support for multi-threading (scene updates, data recalculation) 3. serialization of eve primitives 4. remote visualization _________________________________________________________________________ Andrei: ======= Mostly maintenance for geometry package -Code stability in production conditions (ALICE using it in simulation, reconstruction, alignment) -Better work and focusing understanding memory leaks and bottlenecks in the program flow -> possible speed optimizations -Bug fixing, improving class and system documentation No new major developments planned at this point -Still some new features will be implemented for visualization (maybe together with EVE development) e.g. GL TGeoTrack and animation Same maintenance mode for GEOMBUILDER and G4ROOT _________________________________________________________________________ Wim === there is one "big bang" that I have: use python distutils in the configure script for locating the python header files and libraries. This will require extensive testing, as it is highly visible to the user. I hope that our new department here (we moved from NERSC to CRD) will have sufficient different testing platforms for me now. Another big change will be to let MethodProxy's behave more like python functions. This is needed for Viper. However, that is virtually guaranteed to be transparent to current users. Finally, the work that I have been doing since the start of the year, is to go through my TODO list, cleanup of long-standing minor items, as well as a general cleanup of code (notably interactions with root/meta and CINT). For the user, this is stuff in the margin. _________________________________________________________________________ Joerg/TMVA ========== An update about TMVA: we have a few minor bug fixes that are mainly related to the GUI and one that is related to the BDT standalone class we are writing. There is one more item that needs fixing in our GUI, then I will send you a last update for TMVA, which perhaps could go into 5.18.00x if such a thing is going to be built. For the future development we want to deploy a restructured TMVA where the TMVA core software has changed considerably. We will provide this for the next ROOT development release. _________________________________________________________________________ Wouter ====== RooFit development plans for June --------------------------------- * Major update of inline code documentation * Major update of RooFit manual (two round: 1 = feb, 2 = june) * Further upgrading of functionality of p.d.f persistence through RooWorkspace. Coding is already done for a large part but was not committed to 5.18 because it needs more testing * Work on integration handling * Interfacing to MathMore functions and numeric integration routines (Not a very big project - not structurally invasive) * Reworking of integration control interface. Partially tied to previous project. Also not structurally very invasive. * Add objects representing running integrals in addition to definite integrals (needed for RooStats) * More regression tests RooFit development plans for Dec (preliminary) ---------------------------------------------- * Work on multi-host parallelization of fitting and toy mc generation building on RooWorkspace streaming ability to be able to transfer problem definition from one host to another. Explore possibility to PROOF interface to organize this. * There may be more... Given the program for June, I do not foresee bulk changes close to June other than perhaps documentation updates, which I expect to be 80% of the total work. Concerning RooStats, I have not been discussing this with Kyle recently (i.e. 2008), but we're both still very interested to work out this project soon. I hope to see Kyle around ATLAS week to discuss more details. With that caveat I tentatively expect that we'll have a initial suit of tools ready for June and more expansive suite for Dec. Most of the work is still in setting up the right organizational structure for these tool class as the information required for the problem definition for real-life statistics issues tend to be rather complex. I think our target for June should be to get that right and have 1-2 example implementations. More methods and tools will then follow for the Dec release. But we might go faster...
    • 16:05 → 16:25
      SVN directory structure: Proposal 20m
      1- Top level dirs unchanged =========================== configure LICENSE bin/ etc/ lib/ include/ macros/ README/ test/ tutorials/ 2- 14 packages where each package has a /doc /ReleaseNotes.html /list of subdirs (see below) ________________________ Cint Core DB Doc Geometry Graphics Grid GUI Histograms IO Math MonteCarlo Proof Tree ________________________ Cint/cint /cint7 /cintex /pyroot /reflex /rootcint /ruby Core/base /build /clib /config /meta /metautils /cont /main /newdelete /pcre /roots /rootx /rint /table /thread /utils /unix /winnt DB/mysql /odbc /oracle /pgsql /sapdb /sql Doc/guides /html /man Geometry/geom /gdml /geompainter /geombuilder Graphics/asimage /eve /freetype /ftgl /gl /gpad /graf /g3d /libafterimage /postscript /qt /qtgsi /qtroot /win32gdk /x3d /x11ttf Grid/glite /alien /auth /castor /chirp /clarens /dcache /gfal /globusauth /krb5auth /ldap /monalisa /net /netx /peac /rfio /rootd /rpdutils /srputils /xrootd GUI/core /.. /builder /fonts /guihtml /ged /icons /sessionviewer Histograms/hist /hbook /histpainter /spectrum /spectrumpainter IO/io /xml /xmlparser /zip Math/core /fftw /fitpanel /foam /fumili /minuit /minuit2 /mlp /more /matrix /physics* /quadp /Roofit/core /more /smatrix /splot /TMath* /TMVA /unuran MonteCarlo/eg /g4root /pythia6 /pythia8 /vmc Proof/core /proofd /proofx /proofplayer Tree/tree /treeplayer /treeviewer