The ANLS EEMC Cluster Finding Algorithm

The following is a description of the ANLS cluster finding method for the EEMC.  The general class of the method is similar to that of the IU cluster finding method, in that looks for seeds strips, and forms clusters around certain seeds.

The parameters which can be adjusted are:

mSideWidth: the number of strips on each side to average over in the smoothing step.
mSeedEnergyThres: minimum amount of energy (in GeV) for a strip to be considered a seed strip.
mSeedRelThres: seed strips must also have more energy than this value times the energy of the highest energy strip.
mMinSeedDist: minimum distance between seeds.  Must be at least 3, i.e. so two strips between the seeds.
mMaxWidth: strips that are farther than mMaxWidth from any seed are ignored.  Also, clusters with seeds father apart than mMaxWidth are never merged.
mDensityEstWidth: number of side strips to include when estimating the local energy density near a seed strip.
mMinMergeThres: the threshold to decide whether to merge two clusters.
mMinClusterEnergy: minimum amount of energy for a cluster.  Clusters below this energy will be merged, if the seeds are not too far apart, otherwise deleted.
mMinStripsPerCluster: the mimimum number of non-zero, non-failed strips in a cluster.

The algorithm is aplied seperately for each layer of each sector and proceeds as follows:

  1.  Smoothing: if mSideWidth > 0, then replace each strip energy with the average energy of all strips within  +/- mSideWidth of the strip.

  2. Determine candidate seeds by taking all strips above mSeedEnergyThres.  Seeds with energy below mSeedRelThres times the largest seed energy are removed.  Starting with the largest energy seed strip, the seeds are iterated through, with seeds being removed which are within mMinSeedDist of a seed with larger energy.

  3. Form clusters: Assign all strips within mMaxWidth of a seed to the cluster of the nearest seed.  Strips farther than mMaxWidth from all seeds are ignored.  The energy of the clusters is set to the sum of the energies of the included strips, and the mean position is set to the energy weighted mean position of the strips.

  4. Merge: estimate the local energy density around each seed strip, by taking the average strip energy in all strips +/- mDensityEstWidth of the seed strip.  If mDensityEstWidth is zero, then the local energy density is just set to the seed energy.  The energy density between each seed is computed as the sum of the energy of all strips between the two seeds, plus the average energy of the two seed strips, all divided by one plus the number of strips between the seeds.  If the energy density between two seeds divided by the smaller of the local energy density around the two seeds is above mMinMergeThres, and if the difference in the seed positions is less than mMaxWidth, then the clusters are merged.  Otherwise, if the energy of a cluster is below mMinClusterEnergy or if the number of nonzero strips in the cluster is less than mMinStripsPerCluster, the cluster is either deleted (if the seed is farther than mMaxWidth from all other cluster seeds) or merged with the nearest cluster.