Juliacon 2024

Jet Reconstruction in Julia
2024-07-10 , For Loop (3.2)

Jets in high energy physics are sprays of particles resulting from one parent particle produced in a collision at colliders. Clustering the energy deposits of these final particles is vital for reconstructing the properties of the original parent. We present a new Julia package, JetReconstruction.jl, which does just that. We discuss the performance compared to existing solutions, particularly in C++, and demonstrate the ergonomics and extensibility we have achieved in Julia.


Jet physics is one of the key areas where we can advance our knowledge of the interactions of fundamental particles. In collider physics, e.g., at CERN's Large Hadron Collider, two beams of counter-rotating energetic particles are impacted head on. This results in the production of new, highly energetic, heavy particles, which are unstable. These decay rapidly into other particles, forming a cascade of many final state stable particles. These particles are detected in high energy physics experiments, particularly in calorimeters, designed to stop and measure the energy of incident particles.

The task of grouping these energy deposits is one of the key tasks in high-energy physics event reconstruction. Jets are formed from clustering energy deposits, based on different momentum and geometric criteria. Various desirable properties are stability against small amounts of additional energy (infrared safety) or against a single input splitting into two aligned deposits (collinear safety).

As a mature area of study, there is a well known "standard" C++ package, FastJet, which is widely used. However, as Julia becomes more popular in the field, doing reconstruction natively in Julia is desirable. To this end, we have developed the JetReconstruction.jl package, with the aim of offering performant and ergonomic interfaces to the problem.

We describe the algorithms implemented in the package, including Anti-kT, Cambridge-Achen and Inclusive-kT as well as various pruning and cleaning options. We compare its feature set and performance with FastJet and discuss its potential evolution to become a more general clustering tool.

See also:

I am a high energy physicist working at the European Laboratory for Nuclear Research, CERN. I have had a strong involvement in software throughout my working life, contributing to the ATLAS experiment in recent years. I work closely with the High Energy Physics Software Foundation (HSF). Recently I started to work more and more in Julia, which I think shows tremendous promise for high energy physics.