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.