Particle Flow Clustering

Complete: 4

This page describes the clustering algorithm used in the PFlow framework. Links to the code are provided.

Other clustering algorithms exist in CMS, they are dedicated to the reconstruction of isolated photons and electrons. The specificity of the algorithm presented here is that it is aiming to reconstruct single particle energy deposit in a dense environment.

Responsible Persons

  • Colin Bernet, J.-L. Agram, A. Besson for HF

Software Architecture


Inputs are PFRecHits from a sub-detector. They correspond to a selection of rechits from the sub-detector passing an energy threshold. They contain values of their energy, position, indices to neighbours and an index about the sub-detector they come from. It is known as the layer value :

 enum Layer {
   PS2          = -12, 
   PS1          = -11,
   ECAL_ENDCAP  = -2,
   ECAL_BARREL  = -1,
   NONE         = 0,
   HCAL_BARREL1 = 1,
   HCAL_BARREL2 = 2,  // HO, not used
   HCAL_ENDCAP  = 3,
   HF_EM        = 11,
   HF_HAD       = 12

PFClusters are constitued of PFRecHits from a common layer, except for clusters in Preshower (PS1+PS2) and in HCAL (barrel+endcap). More precisely, a PFCluster is constitued of PFRecHitFractions as explained in the Energy Sharing section.

Currently the PFRecHits branches saved concern :

  • Preshower : PS1 + PS2
  • ECAL : barrel + endcap
  • HCAL : barrel + endcap
  • HF_EM
  • HF_HAD


A collection of PFClusters.

Algorithm Description

Algorithm is the same for all sub-detectors. Only parameters are different. The different steps of the algorithm are presented below.

Seed Selection

Seeds correspond to energy maxima in close PFRecHits. Selection is done starting from most energetical PFRecHit. Seed must have more energy than its neighbours (number of neighbours is a parameter : 4 or 8) and an energy greater than a given threshold ($E_T$ threshold also possible). Neighbours from a seed can not become a seed.

S4nbb.pdf Seed with 4 neighbours (in blue) that must have
a lower energy than the seed (in red)

S8nb.pdf Seed with 8 neighbours (in blue) that must have
a lower energy than the seed (in red)

Topological Cluster

A Topological Cluster correspond to a set of connected PFRecHits. It means that cells have a common side. An option allow to use also cells with a common corner. The cluster is build starting from a seed. It is possible to have several seeds in the same topological cluster.


All colored cells contain energy. Light blue cells are included in the topological cluster only if the option is used


A topological cluster can contain several seeds, here in red

Energy Sharing

In case there are several seeds in the topological cluster, each of them will give a PFCluster. The energy of PFRecHits will give a contribution to each cluster. For each PFRecHit a fraction of its energy attributed to a given PFCluster is computed. If there is only one seed and thus one cluster, the fraction is 1 for each cell.

The shower shape is assumed to be gaussian. The energy is maximum in the core of the shower and decrease with the radius following a gaussian. The function has a fixed width $\sigma$ which is a parameter that do not depend on energy. The cell-cluster distance and this assumption allow to calculate the PFRecHitFractions attributed to each PFCluster. These PFRecHitFractions are then used to compute energy and position of the PFCluster. The algorithm is iterative, starting from seed energy and position. At each step updated PFCluster is used to re-compute PFRecHitFractions. Iterations end when PFClusters positions are stable.


Cluster Position

Cluster position (X,Y,Z) is computed from the seed and 4 or 8 neighbours : $X=\sum(w_i.X_i)/\sum(w_i)$ with $w_i=ln(E_i/E_{th})$. $E_{th}$ is the PFRecHit energy threshold, $E_i$ the energy and $X_i$ the position of the cell i. In case there is only one seed in the topological cluster, all cells will be used for the position calculation.

Depth Correction

This correction is applied only for Ecal clusters, because cristals are non-projective. To avoid bias in $\eta$ position for clusters, we do not use the position of the cell at the entry of the Ecal. As the weight attributed to the cell position is its energy, it is more appropriate to use the position at a certain depth where most of the energy is deposited.

The depth of the shower maximum is estimated with the formula $d=a.(b+ln(E))$ coming from the electromagnetic shower parametrization. The values of parameters a and b depend of the $\eta$ range due to the preshower. The cell position used to compute the position of Ecal PFClusters is the center of the cristal at this depth.


Energy deposited in Ecal by shower (red) is represented in blue. When using cell position at Ecal entrance, the cluster position is the red point. With cell position at maximum shower depth, the green position is obtained, with no bias in $\eta$.


Responsible: JlAgram
- 20 Aug 2009

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf S4nbb.pdf r1 manage 3.4 K 2009-08-20 - 12:19 JlAgram  
PDFpdf S8nb.pdf r1 manage 3.4 K 2009-08-20 - 12:23 JlAgram  
PDFpdf depthcor.pdf r1 manage 5.7 K 2009-08-20 - 15:56 JlAgram  
PDFpdf energy_sharing.pdf r1 manage 18.2 K 2009-08-20 - 15:57 JlAgram  
PDFpdf topoclus_seeds.pdf r1 manage 4.5 K 2009-08-20 - 14:54 JlAgram  
PDFpdf topoclus_side.pdf r1 manage 4.1 K 2009-08-20 - 14:53 JlAgram  
Edit | Attach | Watch | Print version | History: r10 < r9 < r8 < r7 < r6 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r10 - 2010-05-16 - JlAgram
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback