CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Functions | Variables
patMuonsWithTrigger_cff Namespace Reference

Functions

def addDiMuonTriggers
 
def addHLTL1Passthrough
 
def addL1UserData
 Define a generic function, so that it can be used with existing PAT Muons. More...
 
def addMCinfo
 
def addPreselection
 
def appendL1MatchingAlgo
 
def changeRecoMuonInput
 
def changeTriggerProcessName
 
def switchOffAmbiguityResolution
 
def useExistingPATMuons
 
def useL1MatchingWindowForSinglets
 
def useL1Stage2Candidates
 

Variables

tuple muonMatchHLTCtfTrack = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltMuTrackJpsiCtfTrackCands")'), maxDeltaR = 0.1, maxDPtRel = 10.0)
 
tuple muonMatchHLTCtfTrack2 = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltMuTrackJpsiEffCtfTrackCands")'), maxDeltaR = 0.1, maxDPtRel = 10.0)
 
tuple muonMatchHLTL1 = muonMatchL1.clone(matchedCuts = cms.string('coll("hltL1extraParticles")'))
 Single Mu L1. More...
 
tuple muonMatchHLTL2 = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltL2MuonCandidates")'), maxDeltaR = 0.3, maxDPtRel = 10.0)
 
tuple muonMatchHLTL3 = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltL3MuonCandidates")'), maxDeltaR = 0.1, maxDPtRel = 10.0)
 
tuple muonMatchHLTL3T = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltGlbTrkMuonCands")'), maxDeltaR = 0.1, maxDPtRel = 10.0)
 
tuple muonMatchHLTTkMu = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltHighPtTkMuonCands")'), maxDeltaR = 0.1, maxDPtRel = 10.0)
 
tuple muonMatchHLTTrackIt = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltTracksIter")'), maxDeltaR = 0.1, maxDPtRel = 1.0)
 
tuple muonMatchHLTTrackMu = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltMuTkMuJpsiTrackerMuonCands")'), maxDeltaR = 0.1, maxDPtRel = 10.0)
 
tuple muonMatchL1
 
tuple muonTriggerMatchHLT
 ==== Then perform a match for all HLT triggers of interest More...
 
tuple patMuonsWithoutTrigger
 
tuple patMuonsWithTrigger
 ==== Embed ==== More...
 
tuple patMuonsWithTriggerSequence
 
tuple patTrigger
 
tuple patTriggerMatchers1Mu
 
list patTriggerMatchers1MuInputTags
 
tuple patTriggerMatchers2Mu
 
list patTriggerMatchers2MuInputTags
 
tuple patTriggerMatching
 ==== Trigger Sequence ==== More...
 

Function Documentation

def patMuonsWithTrigger_cff.addDiMuonTriggers (   process)

Definition at line 220 of file patMuonsWithTrigger_cff.py.

221 def addDiMuonTriggers(process):
222  print "[MuonAnalysis.MuonAssociators.patMuonsWithTrigger_cff] Di-muon triggers are already enabled by default"
def patMuonsWithTrigger_cff.addHLTL1Passthrough (   process,
  embedder = "patMuonsWithTrigger" 
)

Definition at line 223 of file patMuonsWithTrigger_cff.py.

224 def addHLTL1Passthrough(process, embedder="patMuonsWithTrigger"):
225  process.patMuonsWithTriggerSequence.replace(process.muonMatchHLTL3, process.muonMatchHLTL1 + process.muonMatchHLTL3)
226  getattr(process,embedder).matches += [ cms.InputTag('muonMatchHLTL1'), cms.InputTag('muonMatchHLTL1','propagatedReco') ]
def patMuonsWithTrigger_cff.addL1UserData (   patMuonProducer,
  l1ModuleLabel = "muonL1Info" 
)

Define a generic function, so that it can be used with existing PAT Muons.

Definition at line 46 of file patMuonsWithTrigger_cff.py.

Referenced by appendL1MatchingAlgo(), and useExistingPATMuons().

46 
47 def addL1UserData(patMuonProducer, l1ModuleLabel = "muonL1Info"):
48  "Load variables inside PAT muon, from module <l1ModuleLabel> that you must run before it"
49  patMuonProducer.userData.userInts.src += [
50  cms.InputTag(l1ModuleLabel, "quality"), # will be -999 in case of no match
51  ]
52  patMuonProducer.userData.userFloats.src += [
53  cms.InputTag(l1ModuleLabel, "deltaR"), # will be 999 in case of no match
54  ]
55  patMuonProducer.userData.userFloats.src += [
56  cms.InputTag(l1ModuleLabel, "deltaPhi"), # will be 999 in case of no match
57  ]
58  patMuonProducer.userData.userInts.src += [
59  cms.InputTag(l1ModuleLabel, "bx"), # will be -999 in case of no match
60  ]
61  patMuonProducer.userData.userCands.src += [
62  cms.InputTag(l1ModuleLabel)
63  ]
def addL1UserData
Define a generic function, so that it can be used with existing PAT Muons.
def patMuonsWithTrigger_cff.addMCinfo (   process)

Definition at line 212 of file patMuonsWithTrigger_cff.py.

213 def addMCinfo(process):
214  "Add MC matching information to the muons"
215  process.load("PhysicsTools.PatAlgos.mcMatchLayer0.muonMatch_cfi")
216  process.patMuonsWithTriggerSequence.replace(process.patMuonsWithoutTrigger, process.muonMatch + process.patMuonsWithoutTrigger)
217  process.patMuonsWithoutTrigger.addGenMatch = True
218  process.patMuonsWithoutTrigger.embedGenMatch = True
219  process.patMuonsWithoutTrigger.genParticleMatch = 'muonMatch'
def patMuonsWithTrigger_cff.addPreselection (   process,
  cut 
)

Definition at line 206 of file patMuonsWithTrigger_cff.py.

207 def addPreselection(process, cut):
208  "Add a preselection cut to the muons before matching (might be relevant, due to ambiguity resolution in trigger matching!"
209  process.patMuonsWithoutTriggerUnfiltered = process.patMuonsWithoutTrigger.clone()
210  process.globalReplace('patMuonsWithoutTrigger', cms.EDFilter("PATMuonSelector", src = cms.InputTag('patMuonsWithoutTriggerUnfiltered'), cut = cms.string(cut)))
211  process.patMuonsWithTriggerSequence.replace(process.patMuonsWithoutTrigger, process.patMuonsWithoutTriggerUnfiltered * process.patMuonsWithoutTrigger)
def patMuonsWithTrigger_cff.appendL1MatchingAlgo (   process,
  algo = "quality" 
)

Definition at line 249 of file patMuonsWithTrigger_cff.py.

References addL1UserData().

250 def appendL1MatchingAlgo(process, algo = "quality"):
251  if hasattr(process, 'muonL1Info'):
252  newMuonL1Info = process.muonL1Info.clone(sortBy = cms.string(algo),
253  sortByQuality = cms.bool(algo == "quality"),
254  sortByDeltaPhi = cms.bool(algo == "deltaEta"),
255  sortByDeltaEta = cms.bool(algo == "deltaPhi"),
256  sortByPt = cms.bool(algo == "pt"),
257  maxDeltaR = cms.double(0.3))
258  setattr(process, "muonL1Info" + algo.title(), newMuonL1Info)
259  process.patMuonsWithTriggerSequence.replace(process.muonL1Info, process.muonL1Info + getattr(process, 'muonL1Info' + algo.title()))
260  addL1UserData(patMuonsWithoutTrigger, "muonL1Info" + algo.title())
261 
def addL1UserData
Define a generic function, so that it can be used with existing PAT Muons.
def patMuonsWithTrigger_cff.changeRecoMuonInput (   process,
  recoMuonCollectionTag,
  oldRecoMuonCollectionTag = cms.InputTag("muons") 
)

Definition at line 190 of file patMuonsWithTrigger_cff.py.

References helpers.massSearchReplaceAnyInputTag().

191 def changeRecoMuonInput(process, recoMuonCollectionTag, oldRecoMuonCollectionTag=cms.InputTag("muons")):
192  "Use a different input collection of reco muons"
193  from PhysicsTools.PatAlgos.tools.helpers import massSearchReplaceAnyInputTag
194  massSearchReplaceAnyInputTag(process.patMuonsWithTriggerSequence, oldRecoMuonCollectionTag, recoMuonCollectionTag)
def massSearchReplaceAnyInputTag
Definition: helpers.py:271
def patMuonsWithTrigger_cff.changeTriggerProcessName (   process,
  triggerProcessName,
  oldProcessName = "HLT" 
)

Definition at line 186 of file patMuonsWithTrigger_cff.py.

187 def changeTriggerProcessName(process, triggerProcessName, oldProcessName="HLT"):
188  "Change the process name under which the trigger was run"
189  patTriggerFull.processName = triggerProcessName
def patMuonsWithTrigger_cff.switchOffAmbiguityResolution (   process)

Definition at line 176 of file patMuonsWithTrigger_cff.py.

177 def switchOffAmbiguityResolution(process):
178  "Switch off ambiguity resolution: allow multiple reco muons to match to the same trigger muon"
179  process.muonMatchHLTL1.resolveAmbiguities = False
180  process.muonMatchHLTL2.resolveAmbiguities = False
181  process.muonMatchHLTL3.resolveAmbiguities = False
182  process.muonMatchHLTTkMu.resolveAmbiguities = False
183  process.muonMatchHLTCtfTrack.resolveAmbiguities = False
184  process.muonMatchHLTTrackMu.resolveAmbiguities = False
185  process.muonMatchHLTTrackIt.resolveAmbiguities = False
def patMuonsWithTrigger_cff.useExistingPATMuons (   process,
  newPatMuonTag,
  addL1Info = False 
)

Definition at line 195 of file patMuonsWithTrigger_cff.py.

References addL1UserData(), and helpers.massSearchReplaceAnyInputTag().

196 def useExistingPATMuons(process, newPatMuonTag, addL1Info=False):
197  "Start from existing pat Muons instead of producing them"
198  process.patMuonsWithTriggerSequence.remove(process.patMuonsWithoutTrigger)
199  process.patMuonsWithTriggerSequence.remove(process.muonL1Info)
200  process.patMuonsWithTrigger.src = newPatMuonTag
201  from PhysicsTools.PatAlgos.tools.helpers import massSearchReplaceAnyInputTag
202  massSearchReplaceAnyInputTag(process.patMuonsWithTriggerSequence, cms.InputTag('patMuonsWithoutTrigger'), newPatMuonTag)
203  if addL1Info:
204  process.muonL1Info.src = newPatMuonTag.muonSource
205  addL1UserData(getattr(process,newPatMuonTag.moduleLabel), 'muonL1Info')
def massSearchReplaceAnyInputTag
Definition: helpers.py:271
def addL1UserData
Define a generic function, so that it can be used with existing PAT Muons.
def patMuonsWithTrigger_cff.useL1MatchingWindowForSinglets (   process)

Definition at line 227 of file patMuonsWithTrigger_cff.py.

228 def useL1MatchingWindowForSinglets(process):
229  "Change the L1 trigger matching window to be suitable also for CSC single triggers"
230  if hasattr(process, 'muonL1Info'):
231  process.muonL1Info.maxDeltaR = 0.3 #Changed accordingly to Zoltan tuning. It was: 1.2
232  process.muonL1Info.maxDeltaEta = 0.2
233  process.muonL1Info.fallbackToME1 = True
234  if hasattr(process, 'muonMatchHLTL1'):
235  process.muonMatchHLTL1.maxDeltaR = 0.3 #Changed accordingly to Zoltan tuning. It was: 1.2
236  process.muonMatchHLTL1.maxDeltaEta = 0.2
237  process.muonMatchHLTL1.fallbackToME1 = True
def patMuonsWithTrigger_cff.useL1Stage2Candidates (   process)

Definition at line 238 of file patMuonsWithTrigger_cff.py.

239 def useL1Stage2Candidates(process):
240  if hasattr(process, 'muonL1Info'):
241  # l1PhiOffest might need a second look
242  # barrel seems not to requre it, whereas encaps do
243  # anyhow the effect is of the order of 0.02
244  #process.muonL1Info.l1PhiOffset = cms.double()
245  process.muonL1Info.useMB2InOverlap = cms.bool(True)
246  process.muonL1Info.useStage2L1 = cms.bool(True)
247  process.muonL1Info.preselection = cms.string("")
248  process.muonL1Info.matched = cms.InputTag("gmtStage2Digis:Muon:")

Variable Documentation

tuple patMuonsWithTrigger_cff.muonMatchHLTCtfTrack = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltMuTrackJpsiCtfTrackCands")'), maxDeltaR = 0.1, maxDPtRel = 10.0)

Definition at line 117 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.muonMatchHLTCtfTrack2 = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltMuTrackJpsiEffCtfTrackCands")'), maxDeltaR = 0.1, maxDPtRel = 10.0)

Definition at line 118 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.muonMatchHLTL1 = muonMatchL1.clone(matchedCuts = cms.string('coll("hltL1extraParticles")'))

Single Mu L1.

Definition at line 112 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.muonMatchHLTL2 = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltL2MuonCandidates")'), maxDeltaR = 0.3, maxDPtRel = 10.0)

Definition at line 113 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.muonMatchHLTL3 = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltL3MuonCandidates")'), maxDeltaR = 0.1, maxDPtRel = 10.0)

Definition at line 114 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.muonMatchHLTL3T = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltGlbTrkMuonCands")'), maxDeltaR = 0.1, maxDPtRel = 10.0)

Definition at line 115 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.muonMatchHLTTkMu = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltHighPtTkMuonCands")'), maxDeltaR = 0.1, maxDPtRel = 10.0)

Definition at line 116 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.muonMatchHLTTrackIt = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltTracksIter")'), maxDeltaR = 0.1, maxDPtRel = 1.0)

Definition at line 120 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.muonMatchHLTTrackMu = muonTriggerMatchHLT.clone(matchedCuts = cms.string('coll("hltMuTkMuJpsiTrackerMuonCands")'), maxDeltaR = 0.1, maxDPtRel = 10.0)

Definition at line 119 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.muonMatchL1
Initial value:
1 = muonHLTL1Match.clone(
2  src = muonTriggerMatchHLT.src,
3  matched = muonTriggerMatchHLT.matched,
4 )

Definition at line 106 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.muonTriggerMatchHLT
Initial value:
1 = cms.EDProducer( "PATTriggerMatcherDRDPtLessByR",
2  src = cms.InputTag( "patMuonsWithoutTrigger" ),
3  matched = cms.InputTag( "patTrigger" ),
4  matchedCuts = cms.string(""),
5 # andOr = cms.bool( False ),
6 # filterIdsEnum = cms.vstring( '*' ),
7 # filterIds = cms.vint32( 0 ),
8 # filterLabels = cms.vstring( '*' ),
9 # pathNames = cms.vstring( '*' ),
10 # collectionTags = cms.vstring( '*' ),
11  maxDPtRel = cms.double( 0.5 ),
12  maxDeltaR = cms.double( 0.5 ),
13  resolveAmbiguities = cms.bool( True ),
14  resolveByMatchQuality = cms.bool( True ) #change with respect to previous tag
15 )

==== Then perform a match for all HLT triggers of interest

Definition at line 88 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.patMuonsWithoutTrigger
Initial value:
1 = PhysicsTools.PatAlgos.producersLayer1.muonProducer_cfi.patMuons.clone(
2  muonSource = 'muons',
3  # embed the tracks, so we don't have to carry them around
4  embedTrack = True,
5  embedCombinedMuon = True,
6  embedStandAloneMuon = True,
7  embedPFCandidate = False,
8  embedCaloMETMuonCorrs = cms.bool(False),
9  embedTcMETMuonCorrs = cms.bool(False),
10  embedPfEcalEnergy = cms.bool(False),
11  # then switch off some features we don't need
12  #addTeVRefits = False, ## <<--- this doesn't work. PAT bug ??
13  embedPickyMuon = False,
14  embedTpfmsMuon = False,
15  userIsolation = cms.PSet(), # no extra isolation beyond what's in reco::Muon itself
16  isoDeposits = cms.PSet(), # no heavy isodeposits
17  addGenMatch = False, # no mc: T&P doesn't take it from here anyway.
18 )

Definition at line 12 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.patMuonsWithTrigger
Initial value:
1 = cms.EDProducer( "PATTriggerMatchMuonEmbedder",
2  src = cms.InputTag( "patMuonsWithoutTrigger" ),
3  matches = cms.VInputTag()
4 )

==== Embed ====

Definition at line 152 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.patMuonsWithTriggerSequence
Initial value:
1 = cms.Sequence(
2  muonL1Info *
3  patMuonsWithoutTrigger *
4  patTriggerMatching
5 )

Definition at line 168 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.patTrigger
Initial value:
1 = cms.EDProducer("TriggerObjectFilterByCollection",
2  src = cms.InputTag("patTriggerFull"),
3  collections = cms.vstring("hltL1extraParticles", "hltGmtStage2Digis", "hltL2MuonCandidates", "hltL3MuonCandidates", "hltHighPtTkMuonCands", "hltGlbTrkMuonCands", "hltMuTrackJpsiCtfTrackCands", "hltMuTrackJpsiEffCtfTrackCands", "hltMuTkMuJpsiTrackerMuonCands","hltTracksIter"),
4 )

Definition at line 78 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.patTriggerMatchers1Mu
Initial value:
1 = cms.Sequence(
2  #muonMatchHLTL1 + # keep off by default, since it is slow and usually not needed
3  muonMatchHLTL2 +
4  muonMatchHLTL3 +
5  muonMatchHLTL3T +
6  muonMatchHLTTkMu
7 )

Definition at line 122 of file patMuonsWithTrigger_cff.py.

list patMuonsWithTrigger_cff.patTriggerMatchers1MuInputTags
Initial value:
1 = [
2  #cms.InputTag('muonMatchHLTL1','propagatedReco'), # fake, will match if and only if he muon did propagate to station 2
3  #cms.InputTag('muonMatchHLTL1'),
4  cms.InputTag('muonMatchHLTL2'),
5  cms.InputTag('muonMatchHLTL3'),
6  cms.InputTag('muonMatchHLTL3T'),
7  cms.InputTag('muonMatchHLTTkMu'),
8 ]

Definition at line 129 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.patTriggerMatchers2Mu
Initial value:
1 = cms.Sequence(
2  muonMatchHLTCtfTrack +
3  muonMatchHLTCtfTrack2 +
4  muonMatchHLTTrackMu +
5  muonMatchHLTTrackIt
6 )

Definition at line 138 of file patMuonsWithTrigger_cff.py.

list patMuonsWithTrigger_cff.patTriggerMatchers2MuInputTags
Initial value:
1 = [
2  cms.InputTag('muonMatchHLTCtfTrack'),
3  cms.InputTag('muonMatchHLTCtfTrack2'),
4  cms.InputTag('muonMatchHLTTrackMu'),
5  cms.InputTag('muonMatchHLTTrackIt'),
6 ]

Definition at line 144 of file patMuonsWithTrigger_cff.py.

tuple patMuonsWithTrigger_cff.patTriggerMatching
Initial value:
1 = cms.Sequence(
2  patTriggerFull * patTrigger *
3  patTriggerMatchers1Mu *
4  patTriggerMatchers2Mu *
5  patMuonsWithTrigger
6 )

==== Trigger Sequence ====

Definition at line 161 of file patMuonsWithTrigger_cff.py.