Project for PHYS291: Verification of Shower Separation Algorithm

Tea Bodova

June 2022

showers gif


The Forward Calorimeter (FoCal) has been proposed as an upgrade in A Large Ion Collider Experiment (ALICE) at CERN . It aims to cover pseudorapidities 3.4 < η < 5.8 and to measure small-χ gluon distributions via prompt photon production. The purpose of a calorimeter is to measure energy of incoming particles. In FoCal-E (Electromagnetic), the focus is on electromagnetic showers detected by 18 layers of silicon-tungsten pads with low granularity. Layers with high granularity silicon-tungsten pixels will aid the spatial resolution of the showers. [1]

However, during the π 0 will decay into two photons with small angle creating two electromagnetic showers. These types of showers are considered as background measurements in this study, and thus as unwanted.


Figure 1: Neutral π 0 decay. [2]

In addition, one should be careful when using the term 'shower separation'. The algorithm is commonly referred to as 'clusterizer' instead. There are two types of clusters in this case. When a particle traverses through a detector with high granularity, it can be detected by several cells or pixels thus creating a cluster. Or like in our case, a shower of particles generate a cluster.


The objective of this project is to verify the existing algorithm for finding and separating the two background showers. This algorithm is part of the FoCal package and it runs with AliROOT framework. The algorithm is tested by superimposing two showers into one hitmap. The superimposed showers can be also shifted towards each other to further test the accuracy of the algorithm since there should be small angle between them (as explained in the Theory section). The algorithm can be further tested by adding several showers into one hitmap.


The shower data was obtained by Monolithic Active Pixel Sensors (MAPS) in the Super Proton Synchrotron (SPS) at CERN in 2021. ALICE Pixel Detectors (ALPIDEs) have been utilized to obtain the data in 3x6 layout. Each ALPIDE has resolution of 1024x512. This is why the grid is set to 3072x3072 when displaying the showers. The data has been already sorted and parsed for the data analysis. The beam energies used were 20, 40, 60 and 80 GeV and the code must not mix showers from different energies. That is why each beam energy has its own folder with corresponding code and root files. In addition, masking of noisy pixels has not been performed in full scale. This is why one can see hits outside the showers as well.

ROOT tree structure

Figure 2: Structure of the ROOT tree.


The ShowersGenerator.C generates the input data to the algroithm which are the superimposed showers from test beam taken in 2021. It first finds two random trigger IDs and then fills a histogram with hits corresponding to the particular trigger ID. The ALPIDE registeres a hit over a set treshold, e.g., either a digital '1' or '0' is recorded. The histogram displays two random showers differentiated by the color, the number of entries per each shower and the beam energy. The constant ENERGY sets the beam energy in the code.

When running test runs of the code, a happy accident happen for the 80 GeV beam energy. I found by accident an event that already had two showers seen in Figure 3. It is not unexpected that something like this occurs but it is also not usuall that it does.
three showers

Figure 3: Accidental three showers.

Note: includes all data, AliROOT scrips and isolated script for creating the .gif.


When one knows how the hits ROOT files are orginized and one knows how the readout of ALPIDEs works, it is fairly easy to work the data. To superimpose two random showers was a successful task and one can clearly see that. The ShowersGenerator.C returns a vector which than can be further used in the RunMyClusterizer.C algorithm. To verify the algorithm is an another level of patience and knowledge one must have. The algorithm is part of the AliROOT and it was difficult to isolate it from the framework. Even to install the AliROOT crashed many times. That is why this part of the project couldn't be carried out completely. Nevertheless, the test input is ready.

Despite that, the main goal of the course and project was to learn ROOT. It probably won't be the main programming language that I will use during my study. But I am sure I will encounter it many times when working with my physicist colleagues.


[1] "Letter of Intent: A Forward Calorimeter (FoCal) in the ALICE experiment", ALICE Collaboration, CERN (2020) Available

[2] "Neutral Pion Decay", R. Miskimen; Annual Review of Nuclear and Particle Science 2011 61:1, 1-21. Available