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, and vector 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.