"Tomorrow We Will Win": Lessons from my first CERN Hackathon

Guest post by Emanuele Coradin

Hello I am Emanuele! 

These days, the mist and snow-covered mountains around Geneva are home for me. But I come from the Italian lowlands: Saletto, a small town in the countryside of Padova (the city where Galileo once taught), surrounded by farm fields and the Euganean hills.

 I am fascinated by physics because it allows us to explore how the universe works across different scales and to uncover its fundamental laws. This naturally led me to take an interest in the ongoing experiments at CERN, and CMS in particular. 
 After years of study and preparation, I feel I am finally close to contributing my small piece to this exciting journey.
 And now here I am! 
 I arrived at CERN for a three-month internship with the Next-Generation Triggers (NGT) group, working on software development for the High Luminosity (Hi-Lumi) CMS . I wanted to experience what it really means to work on the software that makes the experiment possible, a crucial piece that must be developed with care and precision. What I did not expect was that just 20 days after arriving, following a deep dive into the CMSSW framework (the official CMS' software) and the tracking algorithms used by the High-Level Trigger (HLT), I would find myself joining the 2nd NGT Hackathon alongside my team in the vibrant space of IdeaSquare. 
 Surrounded by whiteboards, clocks showing times from all over the world, tasty brioches and coffee, and even an old bright-red London bus parked inside the building (!), my team and I gathered around the table to tackle our project together. I worked alongside the experienced Marco Rovere and Marco Musich, as well as two bright and kind PhD students: Luca Ferragina and Jan Schulze. I am grateful to them for welcoming me as an active member of the group, trusting me, and patiently explaining things when I needed help. 
Let me try to give you an idea of what we were working on. During operation, the Large Hadron Collider (LHC) delivers two proton beams which collide every 25 nanoseconds, producing new particles of different kinds. The first part of CMS they encounter as they fly away from the interaction point is the Tracker: thousands of silicon sensors arranged in layers. When charged particles cross them, they leave tiny electrical signals that can be recorded. As a result, for each event we obtain a cloud of thousands of points called hits. The job of the tracking software is to take these hits and “connect the dots”, reconstructing the paths of the particles as fast and as accurately as possible. Later on, physicists analysing the data will try to reconstruct the story of the collision from these tracks. 

During the HiLumi-LHC, the accelerator will deliver up to 200 simultaneous collisions, producing thousands of particles! As you can imagine, this poses new challenges to the tracking software, and part of the NGT group is working to tackle them. 

During the hackathon, we focused on one piece of this software: the Cellular-Automaton (CA) seeding algorithm. It is responsible for the very first step of tracking: growing, efficiently and in parallel, short track (seeds) from pairs of hits (doublets), like the cells in the Game of Life. It really starts by forming pairs connecting two compatible hits together, then it continues connecting two doublets, then three and so on, exploiting the spatial resolution of the pixel modules, a special kind of silicon detectors. Later algorithms then refine these seeds into full particle trajectories. For the High Luminosity Run, CMS will include new macro-pixel modules in the Outer Tracker. Incorporating them into the CA algorithm could help improve the resolution of the reconstructed particles (if you have already some background, in particular the transverse momentum resolution). So our specific goal at the hackathon was to extend the CA algorithm to use the macro-pixel modules in the first ten endcap disks of the Outer Tracker. 
This was an interesting challenge for me, as I needed to work with a complex, modular codebase that must run efficiently on heterogeneous architectures: CPUs and multiple kinds of GPUs. Touching its parts felt a bit like performing surgery. 

Throughout the days we brainstormed, coded, broke things and fixed them, tackling the challenges left from the day before; and just when we felt close to a final working version… a new problem appeared! As Luca liked to say: “Tomorrow we will win… maybe.” But step by step, we did win: by the end of the hackathon, we had a working prototype and the first performance checks. 
For me, it was great being there: sitting next to people who have contributed to CMS for years, learning from their experience, and being treated as a real member of the team. And knowing that maybe a piece of the code that I wrote will remain in the software used to operate CMS in 2030 is extremely satisfying and rewarding. But the hackathon was not just about coding. It was also about socialising with the other teams, listening to their presentations during the final “scrum” sessions, and watching everyone’s projects take shape day by day. In the end, it felt like the perfect start to my time at CERN. I can’t wait to see where this journey will take me next.
 


Disclaimer: The views expressed in CMS blogs are personal views of the author and do not necessarily represent official views of the CMS collaboration.