P3 Particle Physics Playground

Repo of particle physics data from CMS and other experiments with code and tutorials on how to interact with these data.

How To Use This Website

This website is allows you to interact with particle physics data from the LHC and other accelerators/experiments. The data is accessed through zipped text files and Python tools are provided that allow for quick and easy access to those data. We have made available tutorials on how to interact with these data, tutorials on the data structures themselves, and tutorials on the physics needed to understand these data.

You can start playing with all of this in two different ways:

  • Click on the Binder link to start running immediately on a Binder instance. No muss! No fuss!
  • Go to the Github repo and clone the repository to your laptop/desktop (or download a .zip or .tar file of the project) and work locally. This is probably the best bet if you want to save your work and even start to develop some of your own cool projects! This way will also allow you access more data than you would be able to work with on Binder.
Have fun!

Particle Physics Activities

We've provided you with some sample Jupyter Notebook tutorials and activities in the repository, so you can poke around and see what you're getting yourself into. Below, we provide a listing and a link to the Notebook (this link is just a static rendering so while you can look at the code, you won't be able to actually run it.

We've broken these Notebooks up into 4 categories.

  • Physics background. These are brief explanations of some of the physics background you need to understand the data or the experiments that recorded the data.
  • Experiment. An introduction to the experiments that took the data...and donated it to this website!
  • Code background. These Notebooks walk you through some of the details of the data that is provided. They also have instructions on how to access these data, though you can also find those instructions in some of the other tutorials.
  • Activities. These are activities and challenges where you start to pull information out of the data. Measure parameters of the standard model! Discover new (at least to you) particles! And who knows...maybe there is something we missed in the data and only you can figure it out! :)

Hyperlinks take you to a static rendering of the Jupyter Notebook on Github and so is for just viewing the exercises. You cannot run the code from there! To run the code, read the instructions above on how to download/clone this repository.


An introduction to the CMS experiment and a very quick look at how to access its data.

An introduction to the CLEO-II experiment and a very quick look at how to access its data.

An introduction to the BaBar experiment and a very quick look at how to access its data.

Physics background

The user learns how special relativity relates to the kinematics of high momentum particles.

The user learns what particles live long enought to interact directly with a detector and what particles need to be reconstructed from their decay products.

Code background

An explanation of the data model for the CMS data used in these activities.

An explanation of the data model for the CLEO data used in these activities.

An explanation of the data model for the BaBar data used in these activities.

How how to download more data to extend your learning activities or do real physics research.


Identifying particles using invariant masses

Discovering new particles in CMS

D mesons in CLEO


  • Identify your learning objectives. Every exercise should identify the learning goals at the top. This allows the user/student to know what they will be getting out of the exercise and whether or not it will be useful to them. It has the additional benefit of forcing the author to consider how they will structure the exercise and what they want the user to come away with.
  • Provide REAL data. While it is often useful to use Monte Carlo to emphasize certain aspects of the data analysis with a more controlled dataset, I feel it is important to encourage experiments to provide their data to the public. If an experiment wants this site to host some of their data and activities, I would require at least some of the data actually come from their experiment.

This project is licensed using the MIT Open Source license. This means that any of you anywhere can make a copy of this site and host it elsewhere. I am totally cool with that.

However, it would be great to have some common repository for different experiments to have their data used to teach people science and train the next generation of particle physicists. I am therefore happy to include data and activities (at any level!) from interested individuals. To this end, I have some helpful suggestions (and requirements!) for those of you who would like to contribute.


About P3 Particle Physics Playground


This site provides activities, mostly using real data from experiments, that teach particle physics, mostly from the experimental side.

This site is not meant to be a fully comprehensive tutorial. The ideal student will have learned the basic concepts elsewhere (classroom setting, mentor, independent study) and then will use these activities to test their understanding of the concepts and to develop some sense of how "real scientists" are doing this work in the field.

These activities are built around the Python programming language, specifically the the iPython notebook. Anyone who uses these activities should familiarize themselves with both of these products.

A standard work flow would be to clone the Github repository and then run the notebooks, editing them as they go along. By actually performing the calculations themselves, the user will get the most out of this project.

And most importantly, have fun with it!