New PyROOT in 6.22!

The ROOT 6.22 release features a new PyROOT, which was previously in experimental mode and is now the default.

Some highlights of the new PyROOT are:

  • Modern: its new design on top of cppyy provides more and better support for modern C++. Find more details about supported C++ features in the cppyy documentation.

  • Pythonic: in order to use ROOT from Python in an easier and more Python-like way, new pythonizations have been added for several ROOT classes, and more will come! They will be documented as part of the ROOT reference guide for every class.

  • Interoperable: the new PyROOT is better integrated in the Python data science ecosystem. ROOT data can be read into NumPy arrays and pandas dataframes, as shown here. Another example is the ability to compile Python callables with Numba and use them in e.g. RDataFrame computations.

  • Multi-Python: a single ROOT build can now create PyROOT libraries for both Python2 and Python3. This guide explains the steps to achieve that.

Furthermore, a new PyROOT manual is being written, which will complement the documentation about pythonizations to be included in the ROOT reference guide.