ROOT 7
For the first time since 20 year (i.e. ever), the ROOT team plans to introduce backward incompatible changes for crucial interfaces. ROOT won’t actually break backward compatibility: old interfaces will simply stay frozen. You will need to migrate your code to those new interfaces to benefit from their new features. This new major version of ROOT will make ROOT much simpler and safer to use: we want to increase clarity and usability.
The ROOT team will be releasing parts of ROOT 7 throughout the coming years.
Previews will gradually sneak into the ROOT sources, in the namespace ROOT::Experimental
for those parts that are not yet cast in stone, and in the namespace ROOT
for those that are.
We will use standard C++ types, standard interface behavior (e.g. with respect to ownership and thread safety), good documentation and tests.
Building ROOT 7
Pre-requisites
Support for the c++17 standard is required. Usage of g++ >= 7 or clang >= 5 is recommended.
Relevant cmake variables
ROOT 7 will be built if at least one of these conditions is satisfied:
- the
CMAKE_CXX_STANDARD
cmake variable is set to at least17
- the
root7
cmake variable is set toON
Building from source would look similar to this:
$ mkdir root7_build
$ cd root7_build
$ cmake -DCMAKE_CXX_STANDARD=17 path/to/root/source
$ cmake --build . -- -j4
ROOT 7 Features
ROOT’s new interface personality is already in production with
RDataFrame
.
Next up is the TTree
successor
RNTuple
.
Still in the design phase are ROOT’s new graphics and histogram packages, with tutorials such as for ROOT 7 graphics, for histograms and ntuple, and specifically for drawing and styling the new histograms.
RBrowser
Starting from ROOT version 6.26/00,
RBrowser
is the first web-based component used by default when ROOT is built with root7
.
It is automatically invoked with new TBrowser
.
We recommend to install the chrome/chromium
web browser, but all other web browsers should do the job.
If for any reasons RBrowser
does not provide required functionality, one always can disable it.
Either by specifying root --web=off
when starting ROOT or by setting Browser.Name: TRootBrowser
in rootrc file.
Please report your case at the ROOT Forum so we can address it!
RBrowser on remote node
To efficiently use
RBrowser
on a remote node,
it is advised to use the ssh
port forwarding and run
the user interface on the localhost with the default web browser. In the provided example
the remote http port 8899 will be mapped to the local 8877 port.
When logging on the remote host, configure also the port forwarding:
[shell] ssh -L 8877:remotehost:8899 username@remotehost
Configure ROOT the shell environment and start root with the --web=server:8899
option:
[shell] call /path/to/root/bin/thisroot.sh
[shell] root --web=server:8899 $ROOTSYS/tutorials/v7/browser.cxx
Open the url provided by ROOT on the localhost, replacing port number 8899 by 8877:
[shell] firefox http://localhost:8877/win1/
We highly appreciate your feedback!