Introduction
- C++ has a reputation for being intimidating, but there are only a few things you need to learn to edit the open data code for your own uses.
- You can use the ROOT toolkit using both C++ and python.
- Some ROOT code is written in C++ to access the datafiles.
- People will often use simpler C++ scripts or python scripts to analyze reduced datasets.
Lightning overview of C++
- We must compile our C++ code before we can execute it.
Using ROOT with C++ to write and read a file
- ROOT defines the file format in which all of the CMS Open Data is stored.
- These files can be accessed quickly using C++ code and the relevant information can be dumped out into other formats.
Using ROOT with C++ to fill a histogram
- You can quickly inspect your data using just ROOT
- A simple ROOT script is often all you need for diagnostic work
Using ROOT with python
- PyROOT is a complete interface to the ROOT libraries
- Scikit-HEP provides tools to interface between ROOT and global scientific python tools
- We will use
uproot
,awkward
, andvector
in our NanoAOD analysis
Using uproot to open ROOT files
- You can use uproot to interface with ROOT files which is often easier than installing the full ROOT ecosystem.
Using awkward arrays to analyze HEP data
- Awkward arrays can help speed up your code, but it requires a different way of thinking and more awareness of what functions are coded up in the awkward library.