ROOT logo
ROOT » Download » Release Notes

ROOT Version 5.34/08 Release Notes

ROOT version 5.32/00 has been released on November 29, 2011. In case you are upgrading from an old version, please read the releases notes of version 5.26, 5,28 and version 5.30 in addition to these notes.

The release of version 5.34 is scheduled for May 30, 2012.

For more information, see:

The following people have contributed to this new version:

Bertrand Bellenot, CERN/SFT,
Rene Brun, CERN/SFT,
Philippe Canal, FNAL,
Olivier Couet, CERN/SFT,
Kyle Cranmer, NYU, RooStats,
Gerri Ganis, CERN/SFT,
Andrei Gheata, CERN/Alice,
Wim Lavrijsen, LBNL, PyRoot,
Lorenzo Moneta, CERN/SFT,
Axel Naumann, CERN/SFT,
Fons Rademakers, CERN/SFT,
Paul Russo, FNAL,
Joerg Stelzer, DESY/Atlas, TMVA,
Alja Tadel, UCSD/CMS, Eve,
Matevz Tadel, UCSD/CMS, Eve,
Eckhard von Toerne, University Bonn, ATLAS, TMVA,
Wouter Verkerke, NIKHEF/Atlas, RooFit,

Core Libraries

ROOT Error Handlers

There is a new rootrc variable which allows to control the installation of the ROOT error handlers. By default the handlers are activated:

   Root.ErrorHandlers:      1

but setting the value to 0 result in no error handlers being installed and the originals remaining in place. This can be useful if ROOT is used in conjunction with other frameworks that already installed their own handlers.


TString::Hash() and thus also TMath::Hash() now use MurmurHash3_x64_128 from which is public domain. To accelerate the hash in the case of pointers even further, pointers (and same-sized texts) are hashed using a simple bitwise xor. This dramatically increases the hash performance for long texts, and still by a factor 5 for pointers. The pointer case is most visible for certain I/O operations (TExMap).


Add the method SetAlpha() to set the alpha value (transparency level) for an existing color.


The default font set by gStyle->SetLegendFont() was ignored.


I/O Libraries



Networking Libraries

A new class TS3WebFile has been introduced. The new class TS3WebFile is an extension of TWebFile and belongs to the net module. The name TS3WebFile reflects better the fact that this solution is intended to be generic to several S3 servers and not limited to Amazon's, in addition to the fact that it actually extends the capabilities of TWebFile.

Compared to the current support of S3 in ROOT (basically the class TAS3File), the modifications include the improvements below:

Here are some examples of usages from the end user perspective:

   TFile* f = TFile::Open("s3://", "AUTH=<accessKey>:<secretKey> NOPROXY")
   TFile* f = TFile::Open("s3://")   // Uses environmental variables for retrieving credentials


The TAS3File class will be removed and should not have been used directly by users anyway as it was only accessed via the plugin manager in TFile::Open().

SQL Libraries

Tree Libraries


Reading form text file

Reworked TTree::ReadStream and TTree::ReadFile mainly to fix delimited reading of string columns:



PROOF System

Histogram Libraries

THn, THnBase, THNSparse







Python/Ruby Bindings

Math Libraries

RooFit Package

TMVA Package


Boosted Decision Trees

some changes to the training options:
nEventsMin (deprecated) please replace by --> MinNodeSize
The option nEventsMin which specified the minimum number of training event in a leaf node as an absolute number has been replaced by "MinNodeSize" which is given in "percentage of the trainin sample". Like this the training options become less dependent on the actual number of training sample size
NNodesMax (deprecated) please replace by --> MaxDepth
GradBaggingFraction and UseNTrainEvents replaced by BaggedSampleFraction
- they both meant the same thing and are now deprecated --> use BaggedSampleFraction instead
UsedBaggedGrad replaced by UseBaggedBoost
- like this, the use of a bagged sample in Grad-Boost or AdaBoost has the same option name
UseWeightedTrees --> removed
- it was default anyway and the only reasonable choice there is
PruneBeforeBoost --> removed
- it has been mostly a debug/trial option
NegWeightTreatment=IgnoreNegWeights --> replaced by NegWeightTreatment=IgnoreNegWeightsInTraining
- Unfortunatly the default "IgnoreNegWeights" to the BDT option "NegWeightTreatment" collided with the a global option and had to be replaced.


  • some cleanup (removed strange experimental boosting option HighEdgeGaus, HighEdgeCoPara ..... )
  • remove options MethodWeightType... have it defined by the Boost Method (these have been trial options.. but for clarity it is much better to stick to the "standard" ones (i.e log(alpha) for AdaBoost etc)
  • up to now, the first classifier was trained with the full sample, I think however, it should also be a bagged sample (i.e. particularily if smaller sample sizes for the bagged samples were demanded) .. it's changed now, accordingly

  • Geometry Libraries

    MonteCarlo Libraries


    • Update of the VMC interfaces for multi-threading: TVirtualMC and TVirtualMCApplication instances are now declared thread local. Added new functions in TVirtualMC and TVirtualMCApplication for multi-threading applications with default implementation.
      In TVirtualMC:
       virtual Bool_t IsMT() const { return kFALSE; }
      In TVirtualMCApplication:
        virtual TVirtualMCApplication* CloneForWorker() const { return 0;}
        virtual void InitForWorker() const {}
        virtual void BeginWorkerRun() const {}
        virtual void FinishWorkerRun() const {}
        virtual void Merge(TVirtualMCApplication* /*localMCApplication*/) {}
    • Removed default implementation of newly added functions in TVirtualMC:
        virtual Bool_t IsRootGeometrySupported() const = 0;
        virtual Bool_t GetMaterial(Int_t imat, TString& name,...) = 0;
        virtual Bool_t CurrentBoundaryNormal(..) = 0;
    • Removed deprecated functions from TVirtualMC:
        // Return parameters for material specified by material number imat
        // Deprecated - replaced with GetMaterial()
        virtual void  Gfmate(Int_t imat, char *name, Float_t &a, Float_t &z,
                             Float_t &dens, Float_t &radl, Float_t &absl,
                             Float_t *ubuf, Int_t &nbuf) = 0;
        //  Return parameters for material specified by material number imat
        // (in double precision)
        // Deprecated - replaced with GetMaterial()
        virtual void  Gfmate(Int_t imat, char *name, Double_t &a, Double_t &z,
                             Double_t &dens, Double_t &radl, Double_t &absl,
                             Double_t *ubuf, Int_t &nbuf) = 0;
        // Check the parameters of a tracking medium
        // Deprecated
        virtual void  Gckmat(Int_t imed, char *name) = 0;

    GUI Libraries


    • Fix a problem with new style when using SetBackgroundPixmap() with flat buttons. To be able to set (and keep) a pixmap as background, one should set the kOwnBackground flag. E.g.:
         fButton->ChangeOptions(fButton->GetOptions() | kOwnBackground);


    • Use the ProcessedConfigure signal to be notified when an embedded frame change its layout, to properly call Layout() on its parent frame, to automatically display the change (for example, showing the EventStatusBar of a TCanvas embedded in a TBrowser was only appearing after manually resizing the window)



    • Fix a problem when the current directory is similar to $ROOTSYS, for example with $ROOTSYS being /home/user/root and $PWD being /home/user/rootdev, only "dev" was displayed, stripping off $ROOTSYS
    • Properly handle backslashes as directory separators on Windows


    • Change the file name only if the selected entry is not a directory (as reported on the forum)


    • Implemented "Enter" and "Escape" key handling in TGMsgBox (used as Ok and Cancel buttons, if they are there)


    • Several issues with text selection and combination of cursor position and text alignment in text entries have been solved


    • A check has been added for the case where the canvas is embedded (e.g. in the browser), then the layout of the main frame has to be re-applied when showing/hiding the editor
    • Stay in the current (working) directory when using "File -> Save as..." from a canvas or from a text editor (as the file dialog changes the current directory)


    • Implemented keyboard navigation (tab and shift+tab) between the different number entry fields of the dialog


    • Layout improvements and removed useless text in message box


    • Fixed a problem with array names (e.g. fVertex[]) as reported on the forum)


    • Fixed several resource leaks (including GDI & USER objects)

    2D Graphics Libraries


    • The table of content entries were not correct if there was and extra option before "Title:".
    • After a title was once set, this title will be used for all following additions to the PDF file, instead of "Page ###".
    • Better sizes matching with the screen output for markers 6 and 7 (dots).
    • Implement the transparency in PDF files. To make a graphics object transparent it is enough to set its color to a transparent one. The color transparency is defined via its alpha component. The alpha value varies from 0. to 1. 0. makes an object fully transparent, and 1. makes it fully opaque. To set the alpha value of an existing color it is enough to do:
               TColor *col26 = gROOT->GetColor(26);
      A new color can be created transparent the following way:
               Int_t ci = 1756;
               TColor *color = new TColor(ci, 0.1, 0.2, 0.3, 0.5); // alpha = 0.5
      An example of tranparency usage with parallel coordinates can be found in $ROOTSYS/tutorials/tree/parallelcoordtrans.C


    • Implement the transparency in SVG files (cf TPDF).


    • The option E, to draw the error bar on a legend entry, does not need anymore the option L to be active. It is now possible to draw the error bar only using the option E alone. The combination of the options E and L still works as before.
    • The text attributes were not properly initialized by the default constructor.


    • Implement #mp.


    • New method DivideSquare a canvas in to n sub-pads. The number of sub-pads along the X and Y axis are computed according to the square root of n. Example:
            void divsquare(int w, int h, int n) 
               TCanvas *c = new TCanvas ("c","c",0,0,w,h);
               for (int i=1; i<=n; i++) {
    • TPad::Print always use TImageDump to print gif, png and jpeg files, in interactive and batch mode (previously it was used in the batch case only). This allows to generate output transparent colors in these formats even in interactive mode. The generation of gif, png and jpeg files from the graphics window in interactive mode is kept for OpenGL canvases.

    TGaxis and TAxis

    • The time axis behavior should now be correct along time zone and summer saving time. A fix has been done with the of Philippe Gras (CEA Saclay. IRFU/SEDI) and Julian Sitarek (IFAE). Time axis transported from a time zone to an other in a ROOT file are correct too. A new example test have been introduced to test the time axis (timeonaxis3.C)

    New graphical back-end for MacOSX

    TGCocoa/TGQuartz classes are the implementation of TVirtualX based on Cocoa and Quartz 2D. They let to use ROOT's GUI and graphics on MacOS X without installing and also give an access to Apple's native graphics and GUI frameworks. Window management, event loop, event dispatching, etc. are implemented on top of Cocoa. Graphics (GUI rendering and non-GUI) is done by Quartz 2D (Core Grapchis). An example of a TCanvas with a THStack object, transparency, anti-aliasing, gradient fill, shadows:

    Transparency and gradients
    ROOT must be configured with --enable-cocoa parameter to use Cocoa back-end instead of X11 version. Please note, this is still a work in progress.

    3D Graphics Libraries


    • TEveRGBAPalette: Add support for displaying palette values in UI elements (GUI, overlay) as real values, mapped with a linear function. This is enabled by calling:
        TEveRGBAPalette::SetUIDoubleRep(Bool_t b, Double_t f=1, Double_t c=0);
      and the mapping between integer 'i' and real 'r' values is:
        r = f*i + c;
    • TEveRGBAPaletteOverlay New class - an overlay element showing TEveRGBAPalette legend in GL overlay. See tutorials/eve/overlay_palette.C.

    Html Generator

    Misc Packages


    • The new tutorial timeonaxis3.C test the time axis.
    • New version of cernbluid.C allowing to turn off the printouts.

    ROOT page - Class index - Top of the page - Valid XHTML 1.0 Transitional