IPython Notebook
The IPython Notebook provides a rich interface where to store notes, code and results. Since it natively runs Python it is a good candidate for analyzing the data collected by the CMS experiment. For more information on the IPython Notebook see the official page.
ROOT already provides Python bindings (called Pyroot) and it can be integrated in the notebook.
Furthermore, the CMS software itself (CMSSW) can be integrated in the notebook. FWLite has Python bindings that can be used to streamline the analysis of official dataformats (anything from GEN to PAT).
I integrated the IPython Notebook with ROOT and CMSSW to allow analyzing CMS data from its rich web interface.
The setup has been presented at the CMS Data Analysis School (CMSDAS) in India (November 2013) and in a Hands On Tutorial (HATS) at the LPC in Fermilab (November 20). A TWiki was setup: and servers were provided to the students.
The collection of notebooks for the exercise is available on github under HATS_2013 and they cover the following topics (with links to the notebooks on nbviewer):
- Introduction: introduction to the IPython Notebook (Note: the progress bar will appear as a single line in an IPython Notebook)
- Pyroot basics: provides a selection of basic commands for Pyroot
- FWLite: shows how to access EDM information in Pyroot
- RooFit basics: shows how to perform fits using RooFit in Pyroot
- TMVA: shows how to run training, testing and application of a BDT using TMVA in Pyroot
- TagAndProbe: computes trigger efficiency for a dimuon trigger using the tag and probe method. Applies most of what was learned in previous exercises
- RooStats-CLs: shows how to run a CLs exclusion limit calculation using RooStats in Pyroot
- Parallel: shows how to parallelize jobs using the parallel cluster feature of IPython in the Notebook