Graph Neural Networks for Charged Particle Tracking


Charged particle tracking reconstructs the trajectories (“tracks”) of elementary particles traveling through a detector. This task is different from many other problems that involve trajectories:

The task can be described as a combinatorically very challenging “connect-the-dots” problem, essentially turning a cloud of points (hits) in 3D space into a set of O(1000) trajectories. Expressed differently, each hit (containing not much more than the x/y/z coordinate) must be assigned to the particle/track it belongs to.

Tracking algorithms are a crucial part of the software used at big high energy physics experiments and have a strong impact on their physics performance. They are also computationally very expensive and can limit the rate at which data taking occurs. For these reasons, tremendous development efforts have been spent on tracking software. Historically, tracking software was mostly specific to individual physics experiments, but recent efforts such as Acts have shown the potential of strong open-source community efforts.

Unlike traditional tracking algorithms that are built around Kalman filters, this project uses graph neural networks for significant increases in speed. A conceptually simple way to turn tracking into a machine learning task is to create a fully connected graph of all points and then train an edge classifier to reject any edge that doesn’t connect points that belong to the same particle. In this way, only the individual trajectories remain as components of the initial fully connected graph. However, this strategy does not lead to perfect results in practice, so it is usually combined with other steps.

While many of the model architectures are still actively explored and a variety of pipelines are under investigation, this project aims to build up a modular code base for many different GNN tracking studies. By providing different models and common utility functions, the framework comes batteries-included while still remaining flexible for new ideas of any kind. Our hope is that the code base will lower the entry-barrier for new studies and become a focal point of the community.

The project code together with documentation and a reading list is available on github.

Objectives and Tasks

Depending on the candidate, two different areas can be explored:

Area 1: Software engineering. Example tasks:

Area 2: Machine learning & statistics. Example tasks:

Of course, students can also mix tasks from both areas. Many of the concrete tasks are collected as issues in the main GNN Tracking repository.


For area 1:

For area 2:

Expected results

Example outcomes for area 1:

Example outcomes for area 2:


Please see the instructions below for the phase 1 application.

Phase 1 Application

Please send us your CV and motivation for this project.

We also have a qualification task to make a fair selection of candidates. It should take you no more than 1-2 days to complete (depending on prior knowledge).

For fairness, you will have 48h to send us your solutions after you receive the instructions.

We understand that your schedule might be busy, so we proceed as follows:

  1. Send us a start date and time in Eastern Time zone (EST). Please let us know 1-2 working days in advance to ensure we can schedule the email in time. Your submission should be completed by Mar 12, so the latest start date is Mar 10.
  2. We will send a quick confirmation email within 1-2 working days.
  3. The email with the qualification task instructions will be sent at the time specified in step 1.
  4. You work for 1-2 days and submit your results (submissions after 1 or 2 days will be evaluated separately, so that the speed of completion is taken into account).
  5. We will confirm receiving your solutions within 1-2 working days.
  6. We will announce the result of this phase 1 selection on Mar 14.

Additional Information

Corresponding Project

Participating Organizations