Reference event selection for th(bb) analyses

The page is under development at the moment. Do not trust blindly any information in it before this warning is removed.

The page describes CMSSW setup, physics objects definitions, and the reference event selection adopted in single-top plus higgs, $h\to b\bar b$ analyses.

CMSSW setup

Release version and tags

The section lists CMSSW subpackages exploited in the analyses. A reference for every tag must be provided (desirably, with the specific revision number of the page). Subpackages that are needed to implement the adopted setup are only listed here, but not analysis-specific ones. Analyses use 22Jan2013 rereco of 8 TeV data and Summer12_DR53X simulation.

CMSSW release 5_3_11 is used as the baseline as recommended here.

  scramv1 project CMSSW CMSSW_5_3_11

Recommended PAT release is V08-09-62. Corresponding tags are provided below with an exception of tags for tau-lepton reconstruction as they are not used in the analyses.

  addpkg DataFormats/PatCandidates V06-05-06-12
  addpkg PhysicsTools/PatAlgos     V08-09-62
  addpkg PhysicsTools/PatUtils

  addpkg RecoBTag/ImpactParameter V01-04-09-01
  addpkg RecoBTag/SecondaryVertex V01-10-06
  addpkg RecoBTag/SoftLepton      V05-09-11
  addpkg RecoBTau/JetTagComputer  V02-03-02
  addpkg RecoBTag/Configuration   V00-07-05

  addpkg RecoParticleFlow/PFProducer V15-02-06

Tags and data files for electron MVA ID as recommended here:

  addpkg RecoEgamma/EgammaTools       V09-00-01
  addpkg EgammaAnalysis/ElectronTools SE_PhotonIsoProducer_MovedIn
  cvs co -r SE_PhotonIsoProducer_MovedOut -d EGamma/EGammaAnalysisTools UserCode/EGamma/EGammaAnalysisTools

  cd EgammaAnalysis/ElectronTools/data/
  cat download.url | xargs wget
  cd -

Setup recommended for studies involving MET:

  addpkg RecoMET/METAnalyzers V00-00-08
  addpkg DataFormats/METReco V03-03-11-01
  addpkg JetMETCorrections/Type1MET V04-06-09-02

Latest corrections for phi modulation of MET calculated with the whole 2012 dataset should be checked out separately:

  cvs co -r 1.7 JetMETCorrections/Type1MET/python/

Tags for various MET filters recommended here are provided below. Most of them either are already checked out by instructions above or superseded by subpackages' versions included in the release.

  addpkg DPGAnalysis/SiStripTools V00-11-17
  #addpkg RecoMET/METFilters       V00-00-13-01  # same version in the release
  #addpkg RecoMET/METAnalyzers     V00-00-08  # already check out as a part of MET tags
  #addpkg CommonTools/RecoAlgos    V00-03-23  # a newer version in the release
  #addpkg DPGAnalysis/Skims        V01-00-11-01  # a newer version in the release
  #addpkg DataFormats/TrackerCommon V00-00-08  # same version in the release
  #addpkg RecoLocalTracker/SubCollectionProducers V01-09-05  # same version in the release

Mandatory corrections and bugfixes

In addition, jet probability calibration used for b-tagging must be rerun in simulation as recommended here. Relevant code snippet is copied from this reference. Note that the calibration in 22Jan2013 rereco of real data is fine.

  process.GlobalTag.toGet = cms.VPSet(
      cms.PSet(record = cms.string('BTagTrackProbability2DRcd'),
         tag = cms.string('TrackProbabilityCalibration_2D_MC53X_v2'),
         connect = cms.untracked.string('frontier://FrontierPrep/CMS_COND_BTAU')),
      cms.PSet(record = cms.string('BTagTrackProbability3DRcd'),
         tag = cms.string('TrackProbabilityCalibration_3D_MC53X_v2'),
         connect = cms.untracked.string('frontier://FrontierPrep/CMS_COND_BTAU')))

Particle-flow-based reconstruction

A coherent interpretation of an event provided by particle-flow-based reconstruction (PFBRECO) is exploited. In the line of idea of hermetic top projections, exactly the same collections are used to veto additional loose leptons and to exclude PF candidates from jet clustering. In addition, the same collections are fed into MET uncertainty tool when running over simulated events. Tight analysis-level leptons are a strict subset of these collections.

Tau-leptons are not considered in the analyses, and the corresponding top projector is switched off ( pfNoTau.enable = False).

Contribution from pile-up is suppressed with the help of charged-hadron subtraction (CHS). The default configuration should be modified by setting pfPileUp.checkClosestZVertex = False as recommended here.

Objects definitions

Below, the cuts defining the physics objects used in the analysis are given.


  • Electron channel : HLT_Ele27_WP80_vX
  • Muon channel : HLT_IsoMu24_vX

Primary vertices

A good primary vertex is defined according to criteria specified at WorkBookJetEnergyCorrections page, namely the following:

Description of selection Implementation
Not marked as a fake vertex by the reconstruction algorithm not reco::Vertex::isFake()
Effective number of degrees of freedom is not smaller than 4 reco::Vertex::ndof() ≥ 4.
Longitudinal distance from the nominal detector center is smaller than 24 cm fabs(reco::Vertex::z()) < 24.
Transverse distance from the nominal beam position is smaller that 2 mm reco::Vertex::Rho() < 2.

(The first criterion is hard-coded in plugin PrimaryVertexObjectFilter, the last one is defined in the default parameter set pvSelector, which is imported in the code snippet under the link above.)

The first vertex in offlinePrimaryVertices (i.e. the one with the largest $\sum p_T^2$ of associated tracks) are required to satisfy these conditions.

Event filters

To be written.


Loose electrons

The definition below is a proposal for discussion.

Exactly the same definition is used to prevent electrons from clustering into jets with the help of top projections and to veto additional loose electrons in an event.

Description of selection Implementation
Transverse momentum is greater that 20 GeV/c 1 reco::PFCandidate::pt() > 20.
$\vert\eta\vert < 2.5$ 1 fabs(PFCandidate::eta()) < 2.5
$\rho$-corrected relative isolation with cone size 0.3 is smaller than 0.15 1 Non-trivial to implement; description is to be added
Transverse impact parameter w.r.t. to the first primary vertex is smaller than 0.2 cm 2 Applied in module pfMuonsFromVertex
Longitudinal distance to the first primary vertex is smaller than 0.5 cm 2

1 This selection is inherited from TWikiTopRefEventSel.

2 Default selection of PFBRECO applied in module pfElectronsFromVertex.

Tight electrons

Electron ID GsfElectron
pT > 30 GeV
fabs(eta) < 2.5
excluding EB-EE transition region 1.4442 < fabs(superCluster.eta) < 1.5660 applied
Conversion rejection : electron.passConversionVeto() true
MVA : electron.electronID("mvaTrigV0") > 0.5
mHits: electron.gsfTrack()->trackerExpectedHitsInner().numberOfHits() ≤ 0
relIso (r=0.3) with Rho corrections < 0.1

Preselection for Electron MVAID

NOTE: For the triggering electrons this preselection to match the trigger condition needs to be applied off-line:

bool ElectronAnalyzer::trainTrigPresel(const reco::GsfElectron& ele) {
  bool myTrigPresel = false;
  if(fabs(ele.superCluster()->eta()) < 1.479) {
    if(ele.sigmaIetaIeta() < 0.014 &&
       ele.hadronicOverEm() < 0.15 &&
       ele.dr03TkSumPt()/ < 0.2 &&
       ele.dr03EcalRecHitSumEt()/ < 0.2 &&
       ele.dr03HcalTowerSumEt()/ < 0.2 &&
       ele.gsfTrack()->trackerExpectedHitsInner().numberOfLostHits() == 0)
      myTrigPresel = true;
  else {
    if(ele.sigmaIetaIeta() < 0.035 &&
       ele.hadronicOverEm() < 0.10 &&
       ele.dr03TkSumPt()/ < 0.2 &&
       ele.dr03EcalRecHitSumEt()/ < 0.2 &&
       ele.dr03HcalTowerSumEt()/ < 0.2 &&
       ele.gsfTrack()->trackerExpectedHitsInner().numberOfLostHits() == 0)
      myTrigPresel = true;
  return myTrigPresel;


Loose muons

Exactly the same definition of loose muons is used in top projections in PFBRECO and to reject events that contain additional muons (veto).

Description of selection Implementation
Muon is reconstructed by PF algorithm 1 'muonRef.isAvailable & muonRef.isPFMuon' in pfSelectedMuons.cut 2
Avoid using muons that are only standalone muons 1 'muonRef.isAvailable & (muonRef.isGlobalMuon  || isTrackerMuon)' in =pfSelectedMuons.cut= 2
Transverse momentum is greater that 10 GeV/c 3 reco::PFCandidate::pt() > 10.
$\vert\eta\vert<2.5$ 3 fabs(reco::PFCandidate::eta()) < 2.5
$\Delta\beta$-corrected relative isolation with cone size 0.4 is smaller than 0.2 4 Can be implemented with module pfIsolatedMuons as described in 4
Transverse impact parameter w.r.t. to the first primary vertex is smaller than 0.2 cm 5 Applied in module pfMuonsFromVertex
Longitudinal distance to the first primary vertex is smaller than 0.5 cm 5

1 Recommended in SWGuideMuonId.

2 It looks like PFCandidate::muonRef().isAvailable() returns true for all PF muons, but it should be checked.

3 This selection is inherited from TWikiTopRefEventSel.

4 Recommended in SWGuideMuonId. $\Delta\beta$ correction of isolation can be implemented in default PFBRECO sequence by setting

  pfIsolatedMuons.doDeltaBetaCorrection = True
  pfIsolatedMuons.deltaBetaFactor = -0.5
  pfIsolatedMuons.isolationCut = 0.2

5 Default selection of PFBRECO applied in module pfMuonsFromVertex.

Tight muons

Tight muons are a strict subset of loose ones. Quality criteria follow recommendations from Muon POG:

Description of selection Implementation
The candidate is a global muon pat::Muon::isGlobalMuon
The candidate passes PF ID pat::Muon::isPFMuon
Fit to global track has $\chi^2/\mbox{n.d.f.} < 10$ pat::Muon::globalTrack()->normalizedChi2() < 10.
At least one hit in muon chambers included in the global track pat::Muon::globalTrack()->hitPattern().numberOfValidMuonHits() > 0
At least two muon stations with hits pat::Muon::numberOfMatchedStations() > 1
Transverse impact parameter w.r.t. to the first primary vertex $d_{xy} < 2$ mm fabs(pat::Muon::dB() < 0.2)
Longitudinal distance of tracker track from the first primary vertex $d_z < 5$ mm fabs(pat::Muon::muonBestTrack()->dz(vertex->position())) < 0.5
At least one hit in pixel system pat::Muon::innerTrack()->hitPattern().numberOfValidPixelHits() > 0
At least six tracker layers with measurements pat::Muon::track()->hitPattern().trackerLayersWithMeasurement() > 5

All the above requirements can be evaluated with the help of muon::isTightMuon function defined in DataFormats/MuonReco/interface/MuonSelectors.h or, equivalently, method pat::Muon::isTightMuon.

Isolation is calculated in the same way as for loose muons with a tighter cut value (recommended in SWGuideMuonId):

Description of selection Implementation
$\Delta\beta$-corrected relative isolation with cone size 0.4 is smaller than 0.12 (pat::Muon::chargedHadronIso() + std::max(pat::Muon::neutralHadronIso() + pat::Muon::photonIso() - 0.5 * pat::Muon::puChargedHadronIso(), 0.)) / pat::Muon::pt() < 0.12 1

1 Note SWGuideMuonId provides two different recipes to calculated muon isolation. The one cited here exploits the same value maps for isolation (muPFIsoValueCharged04 and others) as module pfIsolatedMuons; thus, it is fully consistent with PFBRECO and should be preferred.

Kinematical cuts are used on top of the above quality requirements in order to stay on the trigger plateau:

Description of selection Implementation
Transverse momentum is greater that 26 GeV/c pat::Muon::pt() > 26.
$\vert\eta\vert<2.1$ fabs(eta) < 2.1

Below the previous version of criteria is provided. It will be removed soon.

Particle Flow Muon ID isPFMuon
Muon Reconstruction Alghoritm ID isGlobalMuon
pT > 26 GeV
fabs(eta) < 2.1
normChi2 < 10
track()->hitPattern().trackerLayersWithMeasurement() > 5
recoMu.globalTrack()->hitPattern().numberOfValidMuonHits() > 0
fabs( muon.vertex().z() - PV.z()) < 0.5
muon.innerTrack()->hitPattern().numberOfValidPixelHits() > 0
numberOfMatchedStations() > 1
relIso < 0.12, cone 0.4


It is recommended to use AK5 PF jets.

  • Minimal selection for any analysis: jet with corrected pT>10 GeV and |eta|<4.7

  • We use 30 GeV as jet-pT-threshold for the analysis and also for the synchronisation exercise.

  • CHS (PFnoPU) is recommended for 2012 data (chsPFjets and PFjets being both fully commissioned). CHS stays not recommended for running on 2011 data, but can be used from analyses particularly sensitive to JER.

  • Jet Energy Corrections

  • JetID
    • Reject jets failing the loose PFJetID
      • number of constituents>1 (patJet->numberOfDaughters())
      • NHF<0.99 ( ( patJet->neutralHadronEnergy() + patJet->HFHadronEnergy() ) / patJet->energy() )
      • NEF<0.99 (patJet->neutralEmEnergyFraction())
      • if |η|<2.4, CEF<0.99 (patJet->chargedEmEnergyFraction())
      • if |η|<2.4, CHF>0 (patJet->chargedHadronEnergyFraction())
      • if |η|<2.4, NCH>0 (patJet->chargedMultiplicity())
    • Equivalently using the SelectorUtils: FIRSTDATA LOOSE PFJetID accessed with SelectorUtils/interface/PFJetIDSelectionFunctor.h .
    • Documentation in If you are also using MET (warning!): some analyses veto events where a jet above some pT threshold fails JetID. Needs to be studied.

  • Jet energy resolution smearing (not yet considered)

ACTION: Give the high granularity definitions going into the above objects.

Missing transverse energy

To be written.

Reference event selection

The event selection described below is used as a reference point for different analyses only.

This table summarises the selection for the electron channel

In order to get a structured selection flow, I suggest the following steps in the selection:

Muon Channel

Step SelectionSorted ascending Comments/details/code snippets
1 exactly one isol. muon exactly one muon passing the selection
4a,b,c,d >= 1,2,3,4 jets for jets passing the event selection.
3 loose electron veto Reject events with any loose electron.
2 loose muon veto Reject events with any other loose muon.
0 trigger  

Electron Channel

Step Selection Comments/details/code snippets
0 trigger  
1 exactly one isol. ele Exactly one isolated electron passing the selection.
2 loose muon veto Reject events with any loose muon.
3 loose electron veto Reject events with any other loose electron.
4a,b,c,d >=1,2,3,4 jets for jets passing the event selection described in the section

Synchronization exercise

The Synchronization exercise can be found in SingleTopHiggsBBSynchEx .

Edit | Attach | Watch | Print version | History: r13 < r12 < r11 < r10 < r9 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r12 - 2013-08-19 - AndreyPopov
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main 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