This lesson is being piloted (Beta version)

Scikit-HEP Tutorial


This tutorial aims to demonstrate how to quickly get started with Scikit-HEP, a collection of packages for particle physics analysis in Python.

The tutorial was written by Jim Pivarski and was first taught during a Software Carpentry Workshop on December 15, 2021.

The HSF Training Curriculum

HSF Logo
This training module is part of the Training Curriculum, a series of training modules that serves HEP newcomers the software skills needed as they enter the field, and in parallel, instill best practices for writing software.


Setup Questions addressed in this lesson
00:00 1. Introduction: Python background How much Python do we need to know?
What is “array-oriented” or “columnar” processing?
What is a “software ecosystem”?
00:25 2. Basic file I/O with Uproot How can I find my data in a ROOT file?
How can I plot it?
How can I write new data to a ROOT file?
00:50 3. TTree details What are TBranches and TBaskets?
How can I read multiple TBranches at once?
How can I get ROOT data into NumPy or Pandas?
01:15 4. Jagged, ragged, Awkward Arrays How do I cut particles, rather than events?
How do I compute quantities on combinations of particles?
02:00 5. Histogram manipulations and fitting How do I fill histograms?
How do I project/slice/rebin pre-filled histograms?
How do I fit histograms?
02:15 6. Lorentz vectors, particle PDG, jet-clustering, oh my! How do I compute deltaR, mass, coordinate transformations, etc.?
How do I get masses, decay widths, and other particle properties?
What about jet-clustering and other specialized algorithms?
02:30 7. Tools for scaling up How do I turn working code fragments into batch jobs?
Where can I look for more help?
02:40 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.