ROOT weekly meeting

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

32/1-A24

CERN

40
Show room on map
Rene Brun (CERN)
    • 11:00 → 11:40
      tour de table 40m 32/1-A24

      32/1-A24

      CERN

      40
      Show room on map
      Speaker: all
      Rene ==== selection board for the 8th post scheduled for Monday 4 July. Preparing the web page for the workshop, using the new Indico system. If somebody has a good idea for a poster, see Nathalie. I would like to get proposals from the work-package managers for what they would like to present at the workshop. We would like to have half a day on PROOF with an important demo using concrete data from Alice, CMS or Phobos. Contact with IT (Jamie) to setup a PROOF farm with 50 nodes and 5 TBytes. First development release ROOT 5.02/00 scheduled for Tuesday 27 June. helping in testing mathcore, reflex and cintex on our supported platforms. we hope to integrate these 3 packages in CVS middle of next week. Next steps: Proposal -Next development release 5.04 middle of August. It will include MathMore and random Numbers in MathCore -Following dev release just before the ROOT workshop around 25 September This could include the new Minuit if reingeneering is complete. -Pro release still scheduled for December. Proposal to have the next team meeting next Friday at 15h00 with VRVS to see a possible presentation by Philippe about the roottest suite. Alberto and Johanne will be invited. At the same time we will discuss the test directory structure. Richard ======= 1. Draw sorting: Objects are drawn from large to small by bounding box volume, with transparent objects collected and drawn at end. Selected object always drawn. This makes time terminated draws (during interaction) much less intrusive as the discarded objects are small(er). Assumes number transparent objects << opaque ones - valid in all current detectors. 2. Added lots of debug tracing - timings/scene sizes etc. Use gDebug =3/4/5 for various levels 3. Added scene locking and some thread safety to try and help protect/resolve the below Win32 problems. Win32 optimized builds: Still have big stability problems with this. It seems to be connected with win32gdk + cross thread rendering. Have asked Bertrand Bellenot & Valeri Onoutchine who know this module to investigate. Currently: 1. Looking at gl2ps crash under Windows on TGLCylinder 2. Camera limits/sensitivity adjustments + add back original free perspective camera. 3. Invesitgate lost objects in LHCB geometry when zooming - scene rebuild problem. Next: 1. Scene rebuild efficiency - lots of easy improvements. 2. Clipping planes and cutaway views 3. Heads up camera 4. Box zoom 5. Lighting improvements - fixed + carried spotlight etc.... Guenter ======= I am currently developing a prototype which allows the self-configuration of a PROOF cluster. The prototype is based on Apple Bonjour. Apple Bonjour implements zero-configuration for IP-networks. The first prototype I implemented was based on ROOT (classes where derived from TObject and made use of ROOT-classes. In my test environment - at the moment only a single computer - the service discovery worked fine. Since we are planning to use xrootd/olbd in PROOF, I am currently changing the prototype classes to make them independent from ROOT. Additionally I am changing the design of the prototype to make it simpler and more efficient. Jose ==== - Bug corrections for the new Rule RS1, finding header files that is not in inc/ directory. - Investigating how to add new indentation feature for the GNU indent program. Bruno: ====== Still working on X11 driver improvements compared to Qt in collaboration with Olivier. After conversation with Olivier, proceded to the re-definition of the set of examples used to compare performance. Those are not being used yet because the Qt layer is still broken. Working on the identification of the useless calls to XSetClipMask. Andrei ====== Implemented assemblies of volumes in the geometry package. This new feature allows the definition of a structure made of positioned volumes without needing to define a container. Navigation methods are provided by the attached TGeoShapeAssembly class using all volume optimizations (voxels). Assemblies can be used in case a container is hard to define without creating overlaps, but also to group existing flat volume structures. Mihaela ======= working on the documentation of the geometry classes. Ilka ==== Coding: - Fixes in the global editor and GUI classes. Important fix in TGListTree class where the picture references were wrongly set and this causes SegV or memory leak when the list tree object is deleted in a user application. Additional memory leaks fixed in guitest.C in parallel. Documentation: The User's Guide is updated as follows: - all comments received from Zev Benjamin (MIT) - all changes of drawing options received by Olivier - added the new chapter 'Linear Algebra' by Eddy - new layout of the document is mostly ready (one chapter left) - all pictures are referenced and will be included in a Table of figures after the TOC - working on the 'Getting Started' and 'GUI' chapters Waiting updates from: Philippe & Markus: I/O chapter + Trees Richard: 3D Viewer chapter Lorenzo: Physics vectors Mihaela: TGeo chapter It is possible to have 200 printed User's Guide copies first week of July. Olivier ======= - Skewness and Kurtosis can be displayed in TPaveStats for 1D and 2D histograms. - The painting of 2D statistics has been improved: it was not possible to display the errors on Mean and RMS (as in the 1D case) and the method GetStatFormat() was not used to paint the statistics values. - Some statistics parameters can have errors: mean, RMS, skewness and kurtosis. The errors display is triggered by gStyle->SetOptStat(). - The TPaveStats Editor has been enhanced to support these new functionalities. - PDF: work continue on patterns. It is not yet clear why it does not work using acroread. It is under investigation. I found several PDF libraries and examples, but either they do not support patterns or it is impossible to turn off the compression which makes the file unreadable. The files using patterns that I generate can be printed and are visible with gv. - TGLPad: Timur is having problems with TGLKernel etc ... He continues the work on Linux but knows we will have problems on windows. I told him to produce a working prototype on Linux and once we have it we will have a clearer view on how to make it work on windows too. Stefan ====== .) SEAL 2 ROOT conversion Cintex and Reflex code have been changed for - namespaces (ROOT::Reflex) - cvs directives - upper case function names (several functions the same as types (e.g. type, propertyList, scope, memberTemplate, typeTemplate, ...) converted to ...Get or ...Nth) - Module.mk has been added - working platforms (ie. compile, run tests successfully) - macosx_gcc33, - slc3_amd64_gcc323 - slc3_ia32_gcc323 - win32_vc71 - compiling platforms - sunos_cc52 - not compiling on - alpha_cc - aix_xlc .) Generating reflex dictionaries with Linkdef files - rootreflex.py an extension to lcgdict (the reflex dictionary generator) is under development - has the same options has rootcint (plus an environment variable to specify the location of gccxml) - it understands the Linkdef syntax - it filters on the classes and functions to generate - waiting for CVS branch of CINT .) Reflex developments dictionary generation: - handling of bitfields - handling of pointers to members (function/data) within stub functions - handling of pointers to typedefs to member function, etc. - handling of unnamed types (e.g. struct, enum, union) - enable TRANSIENT flag for reflex code generation - add class id as property - fixed problem with quotes in comments Reflex - fix demangling of std::string with cxxabi::__demangle - added forwarding functions for typedefs (e.g. for base classes) - new functions name_c_str() (in Type and Scope) which return directly the pointer to the char * of the unqualified name (for efficiency) - static vectors ( in addition to hash_maps) which allow faster iteration over Types and Scopes (plus constant access by number) Anna ==== - ChisquareQuantile function added to TMath (more precise than the Chi2Percentile in TRolke, which now should be redirected to TMath) - A bug fixed in the calculation of errors in TProfile::Divide - An option to compute errors added to TH1::GetSkewness and TH1::GetKurtosis - The robust part of TLinearFitter is almost finished (comments, etc left to do) - Continue working on locally linear regression class Marek ===== Wrote a cache for Trees, Directories and Files needed for PROOF. The caches just keep those objects and implement a simple LRU strategy. Still working on ChainIndices. Andras ====== 1) Incorporating MathMore into the ROOT CVS framework with help from Lorenzo and Philippe (i.e. constructing the Module.mk that unpacks and compiles the relevant GSL fragment + a basic version of MathMore; constructing the LinkDef.h that goes with it). Work ongoing, there is a first working version, but it has to be revised with Fons next week. 2) Study of the functions that can be included in the MathCore by constructing them rather with the C99 Gamma function than that of GSL (TMath::Gamma use in case the compiler is not C99 compatible). std::tgamma being both faster and more precise than GSL and ROOT. To be followed up with Anna. Lorenzo ======= Worked on making MathCore build-able on all the ROOT platforms. Some problems were found with template instantiations on Solaris and AIX and required some small modifications in the code. Now it builds on all the required platform except the old one like VC6 and gcc 2.95.2. The names of the data members have been changed to follow the ROOT convention. Now we will change the function names as weel, but we will leave both the lower and upper case versions (x() and X() ) for the classes exposed to the users, like DisplacementVector3D, PositionVector3D and BasicLorentzVector. In this way we garantee backward compatibility to CLHEP and easy migration from the user. In addition we decided to go back to the idea of storing the data member as fX, fY, fZ and not fV[3]. This results in faster copy constructor on some compilers as gcc 3.2.3. We will provide also a method which will return an array with the three data members, but copying the data, and we decided not to expose anymore a pointer to the internal data members (it can result in a too risky behaviour). The classes are at the moment being reviewed by Mark and his colleagues at FNAL. The rotation classes are being redesigned and it has been decided to simplify them. They will not be anymore template on the Scalar time and the representation type. They will be based only on doubles in order to be sure to preserve orthogonality during a rotation. They will exist 7 different classes, depending on the rotation representation type: 3DMatrix, AxisAngle, EulerAngle, Quaternion, RotationX, Y and Z. LorentzRotation will be extended to be based as well on Quaternions. We expect to have the new revised classes ready by Wednesday next week. Gerri ===== During the last two weeks I worked mostly on a realistic PROOF prototype using XROOTD as communication layer. I've shown a demo during the weekly PROOF meeting last tuesday. The main components of the prototype are: - a new socket class (TXPSocket) implementing a full featured XROOTD-like connection. This class inherits from TSocket, making its inclusion in TSlave and TProofServ much simpler. - a new XROOTD protocol (XrdXrootdProtocol) to mediate between the client and the TProofServ instance (proofserv/ proofslave). Next steps are a gradual inclusion in CVS starting just after the release. The idea is to keep everything backward compatible, so that the tests of the new system can be run on the existing setups. I will present the ideas on the new PROOF system and show the demo at this meeting next week. In addition, this week I have checked in xrootd CVS the modifications needed by the new TXNetFile; a new production release of xrootd is being released today and will be included in ROOT together with the new TXNetFile in the coming days.