Heavy Ion Jet Reconstruction

Complete: 5

Goal of this page

The aim of this page is to document the jet reconstruction code used in heavy ion events—where the code lives, how to run it, the input and output, and details of the implementation.

Bug in Pile Up subtraction in CMSSW_3_3_X and above

In addition to all the instructions in this page, those who want to run jet reconstruction with pile up subtraction have to check out the following:

  • CMSSW_3_3_X

cvs co -r B3_3_X_V01 RecoJets/JetProducers

  • CMSSW_3_4_X

cvs co -r V04-02-09 RecoJets/JetProducers

Code and tags

Source Code
  • HI jet reconstruction uses the standard FastjetJetProducer with particular pile-up subtraction options.
  • For more details about the FastjetJetProducer see the TWiki pages for the standard pp jet reconstruction:
  • The only code different from pp is the gen-level jet finder.
    • At gen level we run the fastjet algorithms on each individual nucleon-nucleon collision. These individual nucleon-nucleon collisions are called subevents.
    • The source code lives in the standard RecoJets/JetProducers package: RecoJets/JetProducers/plugins/SubEventGenJetProducer.cc
  • The current jet algorithm supported by CMS HI is IterativeCone, with a cone radius ΔR=0.5.
  • The most recent version of the jet reconstruction code is tagged in CMSSW 3_4_X. All code are in the release, so there is no need to check out additional packages.
  • Setup commands:
    export SCRAM_ARCH=slc4_ia32_gcc432
    cmsrel CMSSW_3_4_0_pre4
    cd CMSSW_3_4_0_pre4/src

Configuration files

How to run the HI jet reconstruction

Has HI jet reconstruction already been ran on your sample?

  • If your events already have a
    • vector<reco::CaloJet> collection called iterativeConePu5CMS.CaloJets, then the heavy ion calo jet reconstruction has already been run, and you do not need to do it yourself.
    • vector<reco::GenJet> collection called iterativeCone5HiGenJets, then the heavy ion gen reconstruction has already been run, and you do not need to do it yourself.

Running the HI jet reconstruction and locally modifying the configuration

If however your events don't contain this collection (e.g. you are generating your own Monte Carlo events) or you want to rerun the calo/gen jet reconstruction with different settings, follow the instructions below.
HI Gen jet reco
  • In your configuration file, include the lines
    # First produce a GenParticle collection as the input collection to jet finder
    # Now the gen jet reco configuration
    process.iterativeConePu5CMS.CaloJets.jetPtMin = 5
  • In your path,
    process.mygenpath = cms.Path(process.hiGenParticles*process.hiGenParticlesForJets*process.hiRecoGenJets)
HI Calo jet reco
  • In your configuration file, include the lines
    process.iterativeConePu5CMS.CaloJets.jetPtMin = 10
  • In your path,
    process.myrecopath = cms.Path(process.runjets)
Lastly in order to retain the reconstructed tracks in your output file, you should ensure that they are kept by the OutputModule. If your existing drop or keep statements don't cover this case , add the line process.output.outputCommands.append('keep *_*Jets*_*_*') to your configuration file.


HI Reco jets
  • The heavy ion reco jet finding requires the following to be ran previously in order to obtain the right input:
Product type Module label
edm::SortedCollection<CaloTower,edm::StrictWeakOrdering > towerMaker

HI Gen jets

  • The heavy ion gen jet finding requires the following to be ran previously in order to obtain the right input:

Product type Module label
edm::HepMCProduct generator and/or hiSignal
reco::GenParticleCollection hiGenParticles
reco::GenParticleRefVector hiGenParticlesForJets


  • The output of the heavy ion gen reconstruction is reco::CaloJet
  • The output of the heavy ion gen reconstruction is reco::GenJet
These are identical to the calo jets produced by the jet reconstruction in proton-proton events, and can be used in the same way.

Accessing the reconstructed jet collections

The HI reco/gen jet collections can be accessed in a uniform way using PAT.
  • Produce pat jets:
    • put in your configuration file:
      process.producePat = cms.Path(process.patHeavyIonDefaultSequence)
    • Run this on the sample that contains the reconstructed jets
  • Example macro: UserCode/CmsHi/HiPatAlgos/macros/analyze.C
    • Run this macro on the output of the PAT sequence above

For more information on PAT for heavy ions, see SWGuideHeavyIonPAT

Useful Tools


  • In addition to the input to the genjet and recojets above, JetResponseAnalyzer needs the steps producing the following modules to be run:

Product type Module label
As Refs
reco::GenJetCollection iterativeCone5HiGenJets
reco::GenJetCollection hiGenJetCleaner
As Jets
reco::CaloJetCollection iterativeConePu5CMS.CaloJets

Further information

Useful Links


Review status

Reviewer/Editor and Date Comments
PhilipAllfrey - 10 Dec 2009 minor edits
FrankMa - 8 Sep 2009 created page as part of documentation review

Responsible: FrankMa

Edit | Attach | Watch | Print version | History: r7 < r6 < r5 < r4 < r3 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r7 - 2009-12-10 - PhilipAllfrey
    • 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-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback