ROOT weekly meeting

→ Europe/Zurich
32/S-C22 (CERN)

32/S-C22

CERN

17
Show room on map
Rene Brun (CERN)
    • 11:00 → 11:20
      ROOT Test Coverage 20m 32/S-C22

      32/S-C22

      CERN

      17
      Show room on map
      Speaker: Johanne Benard
      transparencies
    • 11:20 → 12:00
      tour de table 40m 32/S-C22

      32/S-C22

      CERN

      17
      Show room on map
      Speaker: all
      Lorenzo ======= Applied modifications to the Vector and Rotation classes suggested by Mark Fischler and Philippe Canal to export using typedef's the template parameters and avoid using then nested template classes. This allows now to generate the CINT dictionary. At the same time, the namespace for the classes has been changed to ROOT::Math. Mark Fischler and Walter Brown are also contributing on reviewing the code for the Vector classes, completing the Rotation classes and adding tests. The CINT dictionary has been generated for the classes, but still there are some remaining problems with generating dictionary for some template functions, like class constructors. The problems have been reported to Philippe who will check and try to fix. However, it has been possible to test the I/O of the Vector classes, both in a Tree and directly in a directory. Non negligible performance increases, with respect to the old TVector classes have been observed. A Module.mk file has also been created for a new mathcore directory with the new Vector classes and integrated in the ROOT structure. Next steps are to commit the classes in the ROOT CVS (they are now in the SEAL CVS). Open questions are where to put the tests ( a subdirectory mathcore/tests ? ) and how to structure the header files. Now they are in a mathcore/GenVector directory. Gerri ===== Working on the framework for PROOF based on XROOTD. Could not show a demo at lat PROOF meeting because of some technical problem which has been solved after the meeting. In particular, the exchange of messages among the client/master and master/slave via the intermediate XPROOFD seems to work quite well. Also, the interrupts without OOB messages work well. At the meeting it was proposed to study the possibility to hide the XROOTD connection behind a TSocket interface to minimize the modifications on TSlave and TProofServ (in the first implementation a set of Send/ Recv methods were added to TSlave and TProofServ, using the new connection type). This proved to be feasible and I am not debugging the new TXPSocket class. Also, I am debugging a new TXPMonitor class with complete TMonitor functionality on TXPSocket's, using sempahores and without entering the event loop. This allows to further minimize the impact on TSlave and TProofServ. Olivier ======= - Buildlegend: New method BuildLegend to automatically create a TLegend in a from the primitives in a TPad. Only those deriving from TAttLine, TAttMarker and TAttFill are added, excluding TPave and TFrame derived classes. The author is Daniel Cussol - New method TStyle::SetHatchesLineWidth to set the hatches line width for hatch styles > 3100. - New version of gl2ps 1.2.4. It doesn't fix the crash on Rene's laptop. Anyway it is good to have the latest version. - TPad and OpenGL: TCancasImp will have two concrete implementations: TRootCanvas (old) TRootCanvasGL (new) TCanvasImp has new methods to draw basic graphics primitives: ClearWindow, ClosePixmap, CopyPixmap, DrawBox, DrawFillArea, DrawLine, DrawPolyLine, DrawPolyMarker, DrawText, GetFillStyle, GetTextAngle, OpenPixmap, RequestLocator, ResizePixmap, SelectWindow, SelectWindow, SetFillColor, SetFillColor, SetFillColor, SetFillStyle, SetLineColor, SetLineStyle, SetLineWidth, SetLineWidth, SetOpacity, SetTextSize, Update, Warp, WriteGIF. These methods are implemented in TRootCanvas using gVirtualX and will be implemented in TRootCanvasGL using OpenGL. In TPad.cxx all the "gVirtualX->" have been replaced by "fCanvas->GetCanvasImp()->". Depending on user choice GetCanvasImp() will use the TRootCanvas or TRootCanvasGL implementation. A global variable will allow to decide whether a Pad is an normal one or a GL one. In the same ROOT session it will be possible to have normal TPad(s) or GL TPad(s). Fons ==== Developing a plugin for Alice middleware. Marek ===== Working on chain indices. Indices are used for finding an entry in a tree given values of its branches (two branches: major and minor). Currently indices keep sorted values of (major<<31+minor) of all the entries. To find an entry with given major and minor a binary search is performed. Indices work correctly for trees and the goal is to make them working for chains. First the same approach will be implemented and then a special class TChainIndex will be written for handling the cases when all the values (major<<31+minor) from the first tree are less then those values from the second one, etc. In this case normal indices can be created per tree and the chain will hold a super-index (TChainIndex) which keeps only the minimum and maximum values of (major<<31+minor) for each tree. Finally TChainIndex (and not the standard index) will be implemented for proof. Anna ==== continue work on rewriting the locally linear fitting package (loess). Implementing the chi-square quantiles function for TMath. Richard ======= Major changes to GL viewer to support: i) Logical/Physical shape pairings ii) Level of detail (LOD) scheme (TGLSphere only using at present) iii) Common display list cache iv) Scene rebuilds for large geometries v) Some basic interactivity improvements - draw timeouts, drop low LOD shapes etc vi) New camara interactions are now in CVS. Also Timur's new outline draw styles are added. Generally all working. Future work: i) Win32 crashes - especially in optimized build. Investigating ii) Possible draw performance drop. iii) Improve the scene rebuild efficiency. iv) Implement draw sorting to reduce visual distrubence in terminated draws. v) Stabilise code generally for June development release. Markus ====== working on several optimisations for the I/O sub-system. Markus has gained an important factor when using foreign classes and finding the TClass pointer corresponding to an object via its typeinfo. Pere ===== started a discussion about the root-bugs tracking system. It was agreed that Fons will introduce a new entry in the main root web page for bug reports pointing to the Savannah system. The idea is to replace root-bugs by Savannah asap, but obviously still keeping roottalk and rootForum. Stefan ====== Changing Reflex to ROOT coding conventions. same for cintex Nearly ready for inclusion in CVS Still has to change the function names. Guenter ======= Towards Zero-Configuration of PROOF ----------------------------------- At the moment a PROOF cluster has to configured by hand by the adminstrator. This is a time-consuming task and the configuration of the clusters changes frequently. The configuration is done within the "proof.conf" file. The idea is to make a PROOF cluster self-configuring without any administration effort (or as little as possible). The idea is to use Apple Bonjour which implements Zero-Configuration in IP networks. It relies on IP-Multicasting and DNS. olbd which does filename caching in xrootd will be used to hold the configuration information of the slaves. The technology should work like this: olbd registers to Bonjour. If xproofd is started it can locate olbd. xproofd sends its configuration information to olbd. A master also locates the olbd and can query for a list of available xproofds to connect. Ilka ==== - Main effort put for understanding what breaks the Qt layer of ROOT. Found out that the reason comes from the TASImage development that required changes in the TGPicturePool::GetPicture() methods and a new introduced method TVirtualX::GetCurrentWindow(). - New method TCanvas::RaiseWindow() that allows to put canvas window on the top of the window stack using the canvas pointer. - User support and help. Jose ==== This week I've been working on the new rule in the Rule Checker. RS1 checks whether <TAB> is used for indentation. This is the link of the updated table: http://jlo.home.cern.ch/jlo/root/table.html However, there are still bugs on the RS1, some files won't be checked... I'm correcting them. Jose will swap rows and columns in the html output page, because we have more packages than rules. Bruno ===== Still working on X11 driver improvements compared to Qt in collaboration with Olivier. Defined a new set of examples to compare performance in a way each feature can be analysed individually or at least on a decreased complexity graphic (line, marker, shape both filled and unfilled, etc). Stopped on the tests by error on the QT implementation. Valeriy ======= Valeriy could not attend the meeting, but he sent the following long summary of his work in the past few days: - many improvements in ROOT browser - few new vector graphics methods added to TASImage - numerous bug fixes and improvements. Details: o TRootBrowser - on double-click on a ROOT file browser opens up "ROOT Files" folder in list tree (left pan) with newly opened file and displays this file in the right pan. It makes browser navigation more simpler and more intuitive. - Auto generation of thumbnails for browsed files was added. To test this feature try to browse any macro in ROOT tutorials or some image file. If executed macro creates a new canvas the 32x32 pixel image from this canvas became a thumbnail for this file. This feature can be switched on/off in the ROOT resource file by changing - AutoThumbnail check entry was added to "Options". That allows to switch on/off "auto thumbnailing" dynamically. - possibility to navigate through "browsing history" added. 3 new buttons added to ROOT browser toolbar "Back", "Forward", "Refresh". Alt-RightArrow, Alt-LeftArrow ("Forward", "Back") key handling added. - Refresh TBrowser on F5 key pressed action added. - weired "refresh behavior" was fixed - when some macro was browsed/executed and then canvas was deleted, browser's icon box was refreshed and currrent "page position" was changed to the most upper one. Now page position remains on the same place. - TSystemFile. New methods Rename, Delete, Copy, Move added. These methods can be invoked via ContextMenu (press right mouse button) in ROOT browser. o TASImage. - CreateThumbnail() - add more contrastness to generated thumbnails - GetMask() - gVirtualX->CreateBitmap requires a width of input bitmap to be even to 8 . This mod fixes the problem of XPM images reading. TGPicture. Problem with reading XPM files via TImage is fixed (TASImage::GetMask) I removed platform dependent code. - TASImage/TImage: Few new vector graphics methods added: DrawCubeBezier, DrawStraightEllips, DrawCircle, DrawEllips,DrawEllips2 ToGray method, which allows to convert RGB image to Gray image - libAfterImage. bitmap2asimage, new argument added which allows to set image mask. o new method TGPicturePool::GetPicture(const char *name, char **xpm) added That allows to create pictures from in-memory XPM array Example: #include "myicon.xpm" // contains static char** myicon {..} array const TGPicture *pic = gClient->GetPicturePool()->GetPicture("myicon", myicon); o TGComboBox. New signal ReturnPressed added which is emitted when Return key pressed in combo box text entry. The current text entry string is added to combo box list. o TImageDump: - fix slow drawing problem in TImageDump reported by Brett Viren - open circle polymarkers are implemented o root.mimes. Default actions changed for some image types (*.png, *.gif, *.jpg etc.) Drawing images in canvas is better than drawing it as TGPictureButton. Image drawn in canvas can be processed via context menu, scaled, resized etc. o TPad - Print - roll-back recent changes in GIF saving. Use again TVirtualX::WriteGIF method for saving GIF files which produces much smaller files. - TPad::Print. Temporary solution to avoid conflict beteween TASImage and QtRoot - TGFileContainer::GetFilePictures - optimised for speed. To test a gain in performance - run TBrowser on slow computer and open up $ROOTSYS/icons directory. New data member TGFileContainer::fCachePictures was added which allows to switch on/off this mechanism.