Particle Flow

Complete: 4

TIP This is the main entry point to the particle flow documentation. Please have a look at the left bar for the other pages


Main entry point to the particle flow software documentation.


The aim of the particle flow is to provide a single list of reconstructed particles, which can be of type:

  • photon
  • charged hadron
  • neutral hadron
  • muon
  • electron

This list constitutes a complete description of the event and is as easy to use as the list of true particles from the simulation. It is used in input to higher level reconstruction algorithms:

  • reconstruction of jets of particles.
  • calculation of the MET, which can be obtained by simply summing the transverse energy vectors of the reconstructed particles, and taking the opposite.
  • identification of tau and b jets, making use of the jet contents in terms of particles
  • ...


Description of the Algorithm

The particle flow algorithm consists in the following steps:

  • Fundamental ingredients:
    • calorimeter clustering
    • tracking (with the tracking POG), and extrapolation to the calorimeters
    • muon identification (from the muon POG)
    • electron pre-identification (with the e/gamma POG)
  • Linking topologically connected elements
  • Particle identification and reconstruction

Fundamental Ingredients


Responsible: J.L. Agram, C. Bernet

Cluster Calibration

Responsible: C. Silkworth, P. Janot


Responsible: M. Pioppi


Responsible: P. Janot


Responsible: D. Benedetti and F. Beaudette


Responsible: M. Gouzevitch

Linking (PFBlock reconstruction)

Responsible: C. Bernet

Particle Identification and Reconstruction

Core Algorithm

Responsible: P. Janot

Electron Reconstruction and Identification

Responsible: Daniele Benedetti and Florian Beaudette


Responsible: Maxim Gouzevitch

Preliminary studies are on-going for the reconstruction of:

  • nuclear interactions
  • gamma conversions
  • V0s

Documentation is not yet needed.


Data Formats definition

Add links to the reference manual, for example Track data formats: Doxygen , when ref manual is ready

The particle flow output is a single list of reconstructed particles, the PFCandidates, which can be used in input to higher level algorithms (jet clustering, MET calculation, isolation...). Our policy is to integrate in the PFCandidate class all the information that is necessary in the analysis, or in higher level algorithms. The main PFCandidate data members are:

  • the particle type, as identified by the particle flow identification algorithms
  • the 4-momentum, calibrated according to the particle type.
  • estimated energy deposits in the preshower, in ECAL, and in HCAL. These values are ready to use since the algorithm is able to separate overlapping particles, and performs a calibration.
  • various flags, which can be useful in the analysis. encapsulate flags, add link.

Please contact us if you need an extension of the PFCandidate data format.

The PFCandidate class also links to all the objects that were used in its construction.

  • reference to the various PFBlocks used in the reconstruction of the PFCandidate, and index of the PFBlockElement used in each block.
  • references to external reconstruction objects, if needed:
    • to reco::Track
    • to reco::Muon
    • to reco::Conversion
    • to reco::NuclearInteraction
    • ...

Particle types

The particle type is written to disk in the data member pdgId_ from the Particle class, which is a base class of PFCandidate. For the sake of convenience, a particle type is defined in the PFCandidate class as an enum, PFCandidate::ParticleType. The integer value of the particle type is stored in the data member PFCandidate::particleId_. The following table lists the possible elements of PFCandidate::ParticleType and gives the corresponding values of Particle::pdgId_ and PFCandidate::particleId_

Particle::pdgId_ PFCandidate::particleId_ PFCandidate::ParticleType Particle
0 0 X unknown, or dummy
+211, -211 1 h charged hadron
+11, -11 2 e electron
+13, -13 3 mu muon
22 4 gamma photon
130 5 h0 neutral hadron
130 6 h_HF hadronic energy in an HF tower
22 7 egamma_HF electromagnetic energy in an HF tower

RECO and AOD collections

SWGuideDataFormatRecoParticleFlow lists the reco and AOD collections from the particle flow

The definition of the particle flow event content is in:

Standard Sequences

Full particle flow without nuclear interaction reconstruction (default):

particleFlowReco in RecoParticleFlow/Configuration/python/

Full particle flow with nuclear interaction reconstruction:

particleFlowRecoNuclear in RecoParticleFlow/Configuration/python/

Particle flow clustering only

particleFlowCluster in RecoParticleFlow/PFClusterProducer/python/

Particle-based Physics Objects


contact person: Patrick Janot

Jet clustering is handled by the jet met group. PFJets are included in the standard reconstruction sequence.
These jets are made from ParticleFlowCandidates and contain in addition to the basic kinematic information also PF specific information, i.e.ChargedMultiplicity etc. (see PFJet interface)


contact person: Rick Cavanaugh

Colin: Links needed


contact person: Simone Gennai

The Software Guide section on how to identify Taus can be found at SWGuidePFTauID

b jets

contact person: nobody yet

Correspondence with the classical Physics objects

Physics Object Standard Particle Flow
Jets iterativeCone5CMS.CaloJets iterativeCone5PFJets
Taus caloRecoTauProducer pfRecoTauProducer
Tau isolation caloRecoTauDiscriminationByIsolation pfRecoTauDiscriminationByIsolation
MET dunno the standard collection for MET... not yet available


There are 2 different ways to use particle flow in the analysis

  • Replace some of the standard physics objects by the Particle Flow ones in your analysis. Please refer to the table of correspondence of the Physics objects.
    If you have a non-PAT analysis, this is what you should do.
  • Use PAT with PF2PAT, which will perform a perfect cleaning.
    If you don't have any analysis yet, this is what you should do.

ALERT! In any case, please keep in mind that the particle flow is not yet fully ready for analysis.

  • Jets: ok
  • Taus: ok
  • MET: ok, but not yet available as a standard.
  • Muons: global muons only
  • Electrons: currently being implemented.

On-going particle flow analyses:

You may want also to take a look at the Workbook Tutorial on ParticleFlow

Validation and Results


Software architecture

Overview of the particle flow packages


No permission to view CMS.ParticleFlowPackagesTableDataFormats


No permission to view CMS.ParticleFlowPackagesTableCore


No permission to view CMS.ParticleFlowPackagesTableOptional

Review status

Reviewer/Editor and Date (copy from screen) Comments
RickCavanaugh - 07 Feb 2007 created particle flow algo from template

Responsible: RickCavanaugh
Last reviewed by: Never reviewed

Topic attachments
I Attachment History Action Size Date Who Comment
JPEGjpg PFjets.jpg r1 manage 102.9 K 2018-11-16 - 15:36 KenichiHatakeyama  
PNGpng resmap_ECAL_eta_new.eps.png r1 manage 388.3 K 2007-04-20 - 18:38 UnknownUser resolution map ECAL eta.
PNGpng resmap_ECAL_phi_new.eps.png r1 manage 376.6 K 2007-04-20 - 18:39 UnknownUser resolution map ECAL phi.
PNGpng resmap_HCAL_eta.png r1 manage 112.3 K 2007-04-20 - 18:40 UnknownUser resolution map HCAL eta.
PNGpng resmap_HCAL_phi.png r1 manage 109.5 K 2007-04-20 - 18:40 UnknownUser resolution map HCAL phi
Edit | Attach | Watch | Print version | History: r51 < r50 < r49 < r48 < r47 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r51 - 2018-11-16 - KenichiHatakeyama

    • 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