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.
Depending on the candidate, two different areas can be explored:
Area 1: Software engineering. Example tasks:
numpy
/pandas
to pytorch
DBSCAN
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:
pytorch
or numpy
pytorch
, GPU programming, or rayFor area 2:
pytorch
pytorch
geometricExample outcomes for area 1:
Example outcomes for area 2:
Please see the instructions below for the 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: