Home Page

HSF Training Center

Training and educational material for the High Energy Physics community.

Basic

Basic skills for HEP software development.
The UNIX Shell

The UNIX Shell

A guide through the basics of the file systems and the shell.

Version controlling with git

Version controlling with git

Track code changes, undo mistakes, collaborate. This module is a must.

Programming with python

Programming with python

Get started with an incredibly popular programming language.

SSH

SSH

Introduction to the Secure Shell (SSH), your number one tool for remote computing

Early development
Machine learning

Machine learning

Get behind the buzzword and teach machines to work for you intelligently!

Matplotlib for HEP

Matplotlib for HEP

Make science prettier with beautiful plots!

Beta testing
<code>ROOT</code>

ROOT

The most famous data analysis framework used in HEP.


Software Development and Deployment

Ensure that your code is easy to use and maintain.
Version controlling with git

Version controlling with git

Track code changes, undo mistakes, collaborate. This module is a must.

Advanced git

Advanced git

Learn to work with branches and more with this interactive webpage.

CI/CD (gitlab)

CI/CD (gitlab)

Continuous integration and deployment with gitlab: automatically run unit tests and more for every commit that you push on gitlab.

CI/CD (github)

CI/CD (github)

Continuous integration and deployment with GitHub actions: automatically run unit tests and more for every commit that you push on GitHub.

Docker

Docker

Introduction to the docker container image system. Docker allows to consistently run your code in any environment or on any machine, making it an important ingredient to analysis preservation.

Singularity

Singularity

Introduction to containerization with Singularity/Apptainer. Singularity is a containerization tool (similar to Docker) that is particularly useful for HPC environments.

Unit testing

Unit testing

Unit testing in python.

Beta testing
Level up your python

Level up your python

Advanced bits of python (testing, debugging, logging, and more)

Software Engineering for Scientific Computing

Software Engineering for Scientific Computing

This course covers various best practices like testing, pytest, object oriented programming, packing, CI, and more.


C++ corner

Learn C++ for blazingly fast code!
HEP C++ Course

HEP C++ Course

A full introduction to C++ based on a series of slides and exercises.

Build systems:  <code>cmake</code>

Build systems: cmake

Building code is hard. CMake makes it easier.


HEP specific tools

Workflows and reproducibility
Scikit-HEP

Scikit-HEP

A collection of packages for particle physics analyses in Python.

<code>ROOT</code>

ROOT

The most famous data analysis framework used in HEP.

<code>UnROOT</code>

UnROOT

Open ROOT files in Julia!

Beta testing
Reproducible analyses with REANA

Reproducible analyses with REANA

Run containerised data analysis pipelines on remote compute clouds.

Particle physics methods

Particle physics methods

Learn about ROOT, RooFit, machine learning with TMVA, and physics simulations.

Beta testing
<code>pyhf</code>

pyhf

pyhf user guide and tutorial


Data Analysis

Machine learning and other analysis tools
Machine learning

Machine learning

Get behind the buzzword and teach machines to work for you intelligently!

Machine learning on GPU

Machine learning on GPU

Speed up your machine learning using massive parallelization!


Analysis preservation

Learn how to ensure that your analysis survives the test of time.
Version controlling with git

Version controlling with git

Track code changes, undo mistakes, collaborate. This module is a must.

CI/CD (gitlab)

CI/CD (gitlab)

Continuous integration and deployment with gitlab: automatically run unit tests and more for every commit that you push on gitlab.

CI/CD (github)

CI/CD (github)

Continuous integration and deployment with GitHub actions: automatically run unit tests and more for every commit that you push on GitHub.

Docker

Docker

Introduction to the docker container image system. Docker allows to consistently run your code in any environment or on any machine, making it an important ingredient to analysis preservation.

Singularity

Singularity

Introduction to containerization with Singularity/Apptainer. Singularity is a containerization tool (similar to Docker) that is particularly useful for HPC environments.

Reproducible analyses with REANA

Reproducible analyses with REANA

Run containerised data analysis pipelines on remote compute clouds.

Unit testing

Unit testing

Unit testing in python.

Beta testing

Complete courses

These modules cover a variety of topics
Software Engineering for Scientific Computing

Software Engineering for Scientific Computing

This course covers various best practices like testing, pytest, object oriented programming, packing, CI, and more.

Level up your python

Level up your python

Advanced bits of python (testing, debugging, logging, and more)

Particle physics methods

Particle physics methods

Learn about ROOT, RooFit, machine learning with TMVA, and physics simulations.

Beta testing
LHCb Analysis Essentials

LHCb Analysis Essentials

From python, shell, and git to reproducible analyses with Snakemake. Written for LHCb, but applicable to everyone.


Julia corner

Learn Julia for fast and easy code!
Julia

Julia

An introduction to Julia for HEP, especially for those familiar with Python (or C++)

<code>UnROOT</code>

UnROOT

Open ROOT files in Julia!

Beta testing

Copyright 2023 HEP Software Foundation and IRIS-HEP