CMS 3D CMS Logo

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

Functions

def muonRecoMitigation
 

Function Documentation

def muonRecoMitigation.muonRecoMitigation (   process,
  pfCandCollection,
  runOnMiniAOD,
  selection = "",
  muonCollection = "",
  cleanCollName = "cleanMuonsPFCandidates",
  cleaningScheme = "all",
  postfix = "" 
)

Definition at line 12 of file muonRecoMitigation.py.

12 
13  postfix=""):
14 
15  sequence=cms.Sequence()
16 
17  if selection=="":
18  typeFix=""
19 
20  if runOnMiniAOD:
21  from RecoMET.METFilters.badGlobalMuonTaggersMiniAOD_cff import badGlobalMuonTaggerMAOD, cloneGlobalMuonTaggerMAOD
22  typeFix="MAOD"
23  badMuModule=badGlobalMuonTaggerMAOD
24  cloneMuModule=cloneGlobalMuonTaggerMAOD
25  else:
26  from RecoMET.METFilters.badGlobalMuonTaggersAOD_cff import badGlobalMuonTagger, cloneGlobalMuonTagger
27  badMuModule=badGlobalMuonTagger
28  cloneMuModule=cloneGlobalMuonTagger
29 
30  vtags=cms.VInputTag()
31  if cleaningScheme in ["bad","all","computeAllApplyBad","computeAllApplyClone"]:
32  setattr(process, 'badGlobalMuonTagger'+typeFix+postfix, badMuModule.clone() )
33  sequence +=getattr(process,"badGlobalMuonTagger"+typeFix+postfix)
34  if cleaningScheme in ["bad","computeAllApplyBad"]:
35  badMuonCollection = 'badGlobalMuonTagger'+typeFix+postfix+':bad'
36  if cleaningScheme in ["clone","duplicated","all","computeAllApplyBad","computeAllApplyClone"]:
37  setattr(process, 'cloneGlobalMuonTagger'+typeFix+postfix, cloneMuModule.clone() )
38  sequence +=getattr(process,"cloneGlobalMuonTagger"+typeFix+postfix)
39  if cleaningScheme in ["clone","duplicated","computeAllApplyClone"]:
40  badMuonCollection = 'cloneGlobalMuonTagger'+typeFix+postfix+':bad'
41 
42  if cleaningScheme=="all":
43  badMuonCollection="badMuons"+postfix
44  badMuonProducer = cms.EDProducer(
45  "CandViewMerger",
46  src = cms.VInputTag(
47  cms.InputTag('badGlobalMuonTagger'+typeFix+postfix,'bad'),
48  cms.InputTag('cloneGlobalMuonTagger'+typeFix+postfix,'bad'),
49  )
50  )
51  setattr(process,badMuonCollection,badMuonProducer)
52  sequence +=getattr(process, badMuonCollection )
53  else:
54  badMuonCollection="badMuons"+postfix
55  badMuonModule = cms.EDFilter("CandViewSelector",
56  src = cms.InputTag(muonCollection),
57  cut = cms.string(selection)
58  )
59 
60  # now cleaning ================================
61  cleanedPFCandCollection=cleanCollName+postfix
62  if runOnMiniAOD:
63  cleanedPFCandProducer = cms.EDProducer("CandPtrProjector",
64  src = cms.InputTag(pfCandCollection),
65  veto = cms.InputTag(badMuonCollection)
66  )
67  else:
68  cleanedPFCandProducer = cms.EDProducer("PFCandPtrProjector",
69  src = cms.InputTag(pfCandCollection),
70  veto = cms.InputTag(badMuonCollection)
71  )
72  #pfCandTmpPtrs = cms.EDProducer("PFCandidateFwdPtrProducer",
73  # src = cms.InputTag(pfCandCollection)
74  # )
75  #muonTmpPtrs = cms.EDProducer("PFCandidateFwdPtrProducer",
76  # src = cms.InputTag(badMuonCollection)
77  # )
78  #setattr(process,"candPtrTmp"+postfix,pfCandTmpPtrs)
79  #setattr(process,"muonPtrTmp"+postfix,muonTmpPtrs)
80  #cleanedPFCandProducer = cms.EDProducer(
81  # "TPPFCandidatesOnPFCandidates",
82  # enable = cms.bool( True ),
83  # verbose = cms.untracked.bool( False ),
84  # name = cms.untracked.string(""),
85  # topCollection = cms.InputTag(pfCandCollection),
86  # bottomCollection = cms.InputTag(badMuonCollection),
87  # )
88 
89  setattr(process,cleanedPFCandCollection,cleanedPFCandProducer)
90  sequence +=getattr(process, cleanedPFCandCollection )
91 
92  return sequence