/ElectroWeakAnalysis/Skimming/python/patCandidatesForZMuMuSubskim_cff.py

https://github.com/aivanov-cern/cmssw · Python · 173 lines · 114 code · 25 blank · 34 comment · 0 complexity · d3716d3a9634fe6a794ece9183e1a843 MD5 · raw file

  1. import FWCore.ParameterSet.Config as cms
  2. from SimGeneral.HepPDTESSource.pythiapdt_cfi import *
  3. #####################################################
  4. # PAT muons and tracks for ZMuMu subskim: no MC match
  5. #####################################################
  6. # PAT TRACKS
  7. # before pat: conversion to track candidates for pat; isolation
  8. from ElectroWeakAnalysis.Skimming.patAODTrackCandSequence_cff import *
  9. patAODTrackCands.cut = 'pt > 15.'
  10. # pat tracks
  11. from PhysicsTools.PatAlgos.producersLayer1.genericParticleProducer_cfi import patGenericParticles
  12. allPatTracks = patGenericParticles.clone(
  13. src = cms.InputTag("patAODTrackCands"),
  14. embedTrack = cms.bool(True),
  15. # isolation configurables
  16. userIsolation = cms.PSet(
  17. tracker = cms.PSet(
  18. veto = cms.double(0.015),
  19. src = cms.InputTag("patAODTrackIsoDepositCtfTk"),
  20. deltaR = cms.double(0.3),
  21. threshold = cms.double(1.5)
  22. ),
  23. ecal = cms.PSet(
  24. src = cms.InputTag("patAODTrackIsoDepositCalByAssociatorTowers","ecal"),
  25. deltaR = cms.double(0.3)
  26. ),
  27. hcal = cms.PSet(
  28. src = cms.InputTag("patAODTrackIsoDepositCalByAssociatorTowers","hcal"),
  29. deltaR = cms.double(0.3)
  30. ),
  31. ),
  32. isoDeposits = cms.PSet(
  33. tracker = cms.InputTag("patAODTrackIsoDepositCtfTk"),
  34. ecal = cms.InputTag("patAODTrackIsoDepositCalByAssociatorTowers","ecal"),
  35. hcal = cms.InputTag("patAODTrackIsoDepositCalByAssociatorTowers","hcal")
  36. ),
  37. addGenMatch = cms.bool(False)
  38. )
  39. from PhysicsTools.PatAlgos.selectionLayer1.trackSelector_cfi import *
  40. selectedPatTracks.cut = 'pt > 15. & track.dxy()<1.0'
  41. # PAT MUONS
  42. # before pat: Merge CaloMuons into the collection of reco::Muons
  43. # Starting from 3_4_X a special recipe is needed for CaloMuons merging
  44. # Uncomment the following lines and follow the recipe in:
  45. # https://twiki.cern.ch/twiki/bin/view/CMS/SWGuideMuonIsolation#To_remake_IsoDeposits_in_CMSSW_3
  46. #from RecoMuon.MuonIdentification.calomuons_cfi import calomuons;
  47. #muons = cms.EDProducer("CaloMuonMerger",
  48. # muons = cms.InputTag("muons"), # half-dirty thing. it works aslong as we're the first module using muons in the path
  49. # caloMuons = cms.InputTag("calomuons"),
  50. # minCaloCompatibility = calomuons.minCaloCompatibility)
  51. ## And re-make isolation, as we can't use the one in AOD because our collection is different
  52. #import RecoMuon.MuonIsolationProducers.muIsolation_cff
  53. # pat muons
  54. # needed starting from 3_6_1
  55. from TrackingTools.TransientTrack.TransientTrackBuilder_cfi import *
  56. #
  57. from PhysicsTools.PatAlgos.producersLayer1.muonProducer_cfi import *
  58. patMuons.isoDeposits = cms.PSet(
  59. tracker = cms.InputTag("muIsoDepositTk"),
  60. ecal = cms.InputTag("muIsoDepositCalByAssociatorTowers","ecal"),
  61. hcal = cms.InputTag("muIsoDepositCalByAssociatorTowers","hcal"),
  62. )
  63. patMuons.userIsolation = cms.PSet(
  64. hcal = cms.PSet(
  65. src = cms.InputTag("muIsoDepositCalByAssociatorTowers","hcal"),
  66. deltaR = cms.double(0.3)
  67. ),
  68. tracker = cms.PSet(
  69. veto = cms.double(0.015),
  70. src = cms.InputTag("muIsoDepositTk"),
  71. deltaR = cms.double(0.3),
  72. threshold = cms.double(1.5)
  73. ),
  74. ecal = cms.PSet(
  75. src = cms.InputTag("muIsoDepositCalByAssociatorTowers","ecal"),
  76. deltaR = cms.double(0.3)
  77. )
  78. )
  79. patMuons.addGenMatch = cms.bool(False)
  80. patMuons.embedTrack = cms.bool(True)
  81. patMuons.embedCombinedMuon = cms.bool(True)
  82. patMuons.embedStandAloneMuon = cms.bool(True)
  83. patMuons.embedPickyMuon = cms.bool(False)
  84. patMuons.embedTpfmsMuon = cms.bool(False)
  85. patMuons.embedPFCandidate = cms.bool(False)
  86. from PhysicsTools.PatAlgos.selectionLayer1.muonSelector_cfi import *
  87. selectedPatMuons.cut = 'pt > 15. & abs(eta) < 100.0 & ( (isGlobalMuon==1 & innerTrack.dxy()<1.0) | ((isTrackerMuon==1 & innerTrack.dxy()<1.0) | (isStandAloneMuon==1 & outerTrack.dxy()<1.0) ))'
  88. # trigger info
  89. from PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cfi import *
  90. # to access 8E29 menus
  91. #patTrigger.triggerResults = cms.InputTag( "TriggerResults::HLT8E29" )
  92. #patTrigger.triggerEvent = cms.InputTag( "hltTriggerSummaryAOD::HLT8E29" )
  93. # to access 1E31 menus
  94. patTrigger.triggerResults = cms.InputTag( "TriggerResults::HLT" )
  95. patTrigger.triggerEvent = cms.InputTag( "hltTriggerSummaryAOD::HLT" )
  96. muonTriggerMatchHLTMuons = cms.EDProducer( "PATTriggerMatcherDRDPtLessByR",
  97. src = cms.InputTag( "selectedPatMuons" ),
  98. matched = cms.InputTag( "patTrigger" ),
  99. andOr = cms.bool( False ),
  100. filterIdsEnum = cms.vstring( 'TriggerMuon' ), # 'TriggerMuon' is the enum from trigger::TriggerObjectType for HLT muons
  101. filterIds = cms.vint32( 0 ),
  102. filterLabels = cms.vstring( '*' ),
  103. pathNames = cms.vstring( 'HLT_Mu9' ),
  104. collectionTags = cms.vstring( '*' ),
  105. maxDPtRel = cms.double( 1.0 ),
  106. maxDeltaR = cms.double( 0.2 ),
  107. resolveAmbiguities = cms.bool( True ),
  108. resolveByMatchQuality = cms.bool( False )
  109. )
  110. from PhysicsTools.PatAlgos.triggerLayer1.triggerEventProducer_cfi import *
  111. patTriggerEvent.patTriggerMatches = cms.VInputTag( "muonTriggerMatchHLTMuons" )
  112. patTriggerSequence = cms.Sequence(
  113. patTrigger *
  114. muonTriggerMatchHLTMuons *
  115. patTriggerEvent
  116. )
  117. selectedPatMuonsTriggerMatch = cms.EDProducer( "PATTriggerMatchMuonEmbedder",
  118. src = cms.InputTag( "selectedPatMuons" ),
  119. matches = cms.VInputTag( "muonTriggerMatchHLTMuons" )
  120. )
  121. muonTriggerMatchEmbedder = cms.Sequence(
  122. selectedPatMuonsTriggerMatch
  123. )
  124. # uncomment in case of CaloMuons merging
  125. #beforePatMuons = cms.Sequence(
  126. # muons *
  127. # muIsolation
  128. #)
  129. beforePatTracks = cms.Sequence(
  130. patAODTrackCandSequence
  131. )
  132. beforePat = cms.Sequence(
  133. # uncomment in case of CaloMuons merging
  134. # beforePatMuons *
  135. beforePatTracks
  136. )
  137. patCandsSequence = cms.Sequence(
  138. patMuons *
  139. selectedPatMuons *
  140. allPatTracks *
  141. selectedPatTracks
  142. )
  143. goodMuonRecoForDimuon = cms.Sequence(
  144. beforePat *
  145. patCandsSequence *
  146. patTriggerSequence *
  147. muonTriggerMatchEmbedder
  148. )