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.