The PYCELL cluster finding routines is of the kind pioneered by UA1 [UA183], and commonly used in physics. It is based on a choice of pseudorapidity , azimuthal angle and transverse momentum as the fundamental coordinates. This choice is discussed in the introduction to cluster finding above, with the proviso that the theoretically preferred true rapidity has to be replaced by pseudorapidity, to make contact with the real-life detector coordinate system.
A fix detector grid is assumed, with the pseudorapidity range and the full azimuthal range each divided into a number of equally large bins, giving a rectangular grid. The particles of an event impinge on this detector grid. For each cell in (,) space, the transverse energy (normally ) which enters that cell is summed up to give a total cell flow.
Clearly the model remains very primitive in a number of respects, compared with a real detector. There is no magnetic field allowed for, i.e. also charged particles move in straight tracks. The dimensions of the detector are not specified; hence the positions of the primary vertex and any secondary vertices are neglected when determining which cell a particle belongs to. The rest mass of particles is not taken into account, i.e. what is used is really , while in a real detector some particles would decay or annihilate, and then deposit additional amounts of energy.
To take into account the energy resolution of the detector, it is possible to smear the contents, bin by bin. This is done according to a Gaussian, with a width assumed proportional to the of the bin. The Gaussian is cut off at zero and at some predetermined multiple of the unsmeared , by default twice it. Alternatively, the smearing may be performed in rather than in . To find the , it is assumed that the full energy of a cell is situated at its center, so that one can translate back and forth with .
The cell with largest is taken as a jet initiator if its is above some threshold. A candidate jet is defined to consist of all cells which are within some given radius in the (,) plane, i.e. which have . Coordinates are always given with respect to the center of the cell. If the summed of the jet is above the required minimum jet energy, the candidate jet is accepted, and all its cells are removed from further consideration. If not, the candidate is rejected. The sequence is now repeated with the remaining cell of highest , and so on until no single cell fulfils the jet initiator condition.
The number of jets reconstructed can thus vary from none to a maximum given by purely geometrical considerations, i.e. how many circles of radius are needed to cover the allowed (,) plane. Normally only a fraction of the particles are assigned to jets.
One could consider to iterate the jet assignment process, using the -weighted center of a jet to draw a new circle of radius . In the current algorithm there is no such iteration step. For an ideal jet assignment it would also be necessary to improve the treatment when two jet circles partially overlap.
A final technical note. A natural implementation of a cell finding algorithm is based on having a two-dimensional array of values, with dimensions to match the detector grid. Very often most of the cells would then be empty, in particular for low-multiplicity events in fine-grained calorimeters. Our implementation is somewhat atypical, since cells are only reserved space (contents and position) when they are shown to be non-empty. This means that all non-empty cells have to be looped over to find which are within the required distance of a potential jet initiator. The algorithm is therefore faster than the ordinary kind if the average cell occupancy is low, but slower if it is high.