Diagonalizing the decision matrix
I’ve left you with some choices:
Command-line |
Notebook |
Either |
---|---|---|
ROOT C++ |
ROOT C++ |
|
Python with ROOT |
Python with ROOT |
|
RDataFrame |
This tutorial is already too long, and I’ve taken longer than I should have to offer you too many options. For simplicity, I’ve chosen to present ROOT C++ on the command line in The C++ Path, and Python with ROOT in a Jupyter notebook in The Python Path. For The RDataframe Path, these choices don’t matter much.
If you choose to pursue one of the “off-diagonal” choices, you won’t have much trouble no matter which path you choose. You were previously introduced to ROOT C++ in a notebook. To run Python with ROOT on the command line (including magic commands), the following will set you up on a Nevis particle-physics system:
> conda activate /usr/nevis/conda/root
> ipython
The C++ Path and The Python Path present the same commands, exercises, and footnotes.1 You might even be able to do all of these paths; once you’ve learned C++, Python is pretty easy. Tack on The RDataframe Path for total ROOT mastery!2

Figure 28: https://xkcd.com/184/ by Randall Munroe
- 1
The xkcd cartoons in each path is different from the others, to give you an incentive to skim them all.
- 2
Uh, no. Remember, it takes a lifetime to learn ROOT. While it may take more than two days to go through all three instructional paths, it won’t take your entire lifetime. There’s much more to ROOT than what’s in this tutorial!