Introduction

ROOT version 6.06/00 is scheduled for release in November, 2015.

For more information, see:

http://root.cern.ch

The following people have contributed to this new version:

David Abdurachmanov, CERN, CMS,
Bertrand Bellenot, CERN/SFT,
Rene Brun, CERN/SFT,
Philippe Canal, FNAL,
Cristina Cristescu, CERN/SFT,
Olivier Couet, CERN/SFT,
Kyle Cranmer, NYU, RooStats,
Gerri Ganis, CERN/SFT,
Andrei Gheata, CERN/Alice,
Lukasz Janyst, CERN/IT,
Christopher Jones, Fermilab, CMS,
Wim Lavrijsen, LBNL, PyRoot,
Sergey Linev, GSI, http, JSROOT,
Pere Mato, CERN/SFT,
Lorenzo Moneta, CERN/SFT,
Axel Naumann, CERN/SFT,
Danilo Piparo, CERN/SFT,
Timur Pocheptsov, CERN/SFT,
Fons Rademakers, CERN/SFT,
Enric Tejedor Saavedra, CERN/SFT,
Liza Sakellari, CERN/SFT,
Manuel Tobias Schiller,
David Smith, CERN/IT,
Matevz Tadel, UCSD/CMS, Eve,
Vassil Vassilev, CERN/SFT
Wouter Verkerke, NIKHEF/Atlas, RooFit,
Maciej Zimnoch

Core Libraries

Dictionary generation

Fixed the dictionary generation in the case of class inside a namespace marked inlined.

TDirectory::TContext

We added a default constructor to TDirectory::TContext which record the current directory and will restore it at destruction time and does not change the current directory.

The constructor for TDirectory::TContext that takes a single TDirectory pointer as an argument was changed to set gDirectory to zero when being passed a null pointer; previously it was interpreting a null pointer as a request to not change the current directory - this behavior is now implement by the default constructor.

I/O Libraries

hadd

We extended the hadd options to allow more control on the compression settings use for the output file. In particular the new option -fk allows for a copy of the input files with no decompressions/recompression of the TTree baskets even if they do not match the requested compression setting.

New options:

I/O New functionalities

I/O Behavior change.

Histogram Libraries

Math Libraries

RooFit Libraries

TTree Libraries

2D Graphics Libraries

THistPainter

Improve the algorithm to compute the lower limit of an axis in log scale when its real lower limit is 0. The problem was reported in ROOT-7414.

Using the COL option with histograms having some negative bins; the empty bins (containing 0) are drawn. In some cases one wants to not draw empty bins (containing 0) of histograms having a negative minimum. The option 1, used with the option COL, allows to do that.

Implement the Log option for CANDLE plots as requested here.

TTeXDump

From Dmitry Kalinkin (via github): Fix file corruption in TTeXDump::DrawPolyMarkerThe current implementation ofTTeXDumpusesTVirtualPS::PrintFastbased methods to output TeX markup with automatic linewraps. Yet these methods are optimized for PostScript format where there are a lot of space characters that are used for newline placement. CurrentTTeXDump::DrawPolyMarkerwould often produce a long contiguous lines that trigger a forceful linewrap that can happen in the middle of real number constant (ignored by latex) or even in the middle of latex command (producing incorrect file). One solution would be to rewrite TTeXDump using onlyPrintRaw(that you can't mix withPrintStr/PrintFast/WriteReal). The other would be to fixPrintFast` to not introduce forced newline. The third option is less intrusive and just adds additional spaces to provide clues for the proper line wrapping (this is the one implemented in this change).

TLatex

Make sure the line width used to draw #sqrt is always >= 1.

When a global text alignment was set the TLatexcharacters #minus, #plus, #mp, #hbar, and #backslash were mis-aligned. The following macro demonstrate the problem:

{
   gStyle->SetTextAlign(22);
   TLatex t(.5,.5,"#minus100 #mp100 #plus100 #hbar #backslash");
   t.Draw();
}

The angle of a TLatex object was set to 0 if the GetYsize method was called.

TColor

New palette kViridis. It was presented at SciPy2015 by Stéfan van der Walt and Nathaniel Smith. It is now matplotlib’s current default color map.

Viridis

Viridis

TMultiGraph

Ignore empty graphs when computing the multi-graph range at painting time.

TASImage

A left click on a image produced a one pixel zoom.

3D Graphics Libraries

Geometry Libraries

Database Libraries

Networking Libraries

THttpServer

Support of POST HTTP requests. For example, ROOT objects can be send with POST request and used as arguments of objects method execution in exe.bin and exe.json requests. Request and response HTTP headers are now directly accessible in THttpCallArg class

When command is registered with THttpServer::RegisterCommand() method, one could configure additional arguments which should be submitted when command is executed with cmd.json requests

Introduce restriction rules for objects access with THttpServer::Restrict() method. Up to now general read-only flag was applied - either everything read-only or everything is fully accessible. Now one could restrict access to different parts of objects hierarchy or even fully ‘hide’ them from the client. Restriction based on user account name, which is applied when htdigest authentication is configured. One also able to allow execution of selected methods.

Implement multi.bin and multi.json requests. One could request many items with single HTTP request. Let optimize communication between server and client.

With SNIFF tag in ClassDef() comments one could expose different properties, which than exposed by the TRootSniffer to the client with h.json requests. Such possibility ease implementation of client-side code for custom classes.

Allow to bind http port with loopback address. This restrict access to http server only from localhost. One could either specify ‘loopback’ option in constructor: new THttpServer(“http:8080?loopback”) or in clear text specify IP address to which http socket should be bind: new THttpServer(“http:127.0.0.1:8080”) If host has several network interfaces, one could select one for binding: new THttpServer(“http:192.168.1.17:8080”)

GUI Libraries

Montecarlo Libraries

PROOF Libraries

Language Bindings

JavaScript ROOT

Tutorials

Class Reference Guide

Build, Configuration and Testing Infrastructure