def loadPATTriggers(process, HLTMenu): #-- Trigger matching ---------------------------------------------------------- from PhysicsTools.PatAlgos.tools.trigTools import switchOnTrigger, switchOnTriggerMatchEmbedding # from PhysicsTools.PatAlgos.triggerLayer1.triggerMatcher_cfi import cleanPhotonTriggerMatchHLTPhoton20CleanedL1R # process.patPhotonMatch = cleanPhotonTriggerMatchHLTPhoton20CleanedL1R.clone(matchedCuts = cms.string( photonMatches )) # firing trigger objects used in succeeding HLT path 'HLT_Photon20_Cleaned_L1R' process.patPhotonMatch = cms.EDProducer( "PATTriggerMatcherDRDPtLessByR" # match by DeltaR only, best match by DeltaR , src=cms.InputTag("selectedPatPhotons"), matched=cms.InputTag( "patTrigger" ) # default producer label as defined in PhysicsTools/PatAlgos/python/triggerLayer1/triggerProducer_cfi.py , matchedCuts=cms.string( 'path( "HLT_Photon26_CaloIdL_IsoVL_Photon18_v*" ) || path( "HLT_Photon20_CaloIdVL*" ) || path( "HLT_Photon30_CaloIdVL_v*" )|| path( "HLT_Photon50_CaloIdVL*" )|| path( "HLT_Photon75_CaloIdVL*" )|| path( "HLT_Photon90_CaloIdVL*" )' ) #, andOr = cms.bool( False ) # AND #, filterIdsEnum = cms.vstring( '*' ) # wildcard, overlaps with 'filterIds' #, filterIds = cms.vint32( 0 ) # wildcard, overlaps with 'filterIdsEnum' #, filterLabels = cms.vstring( '*' ) # wildcard #, pathNames = cms.vstring( #'HLT_Photon20_Cleaned_L1R' #) #, pathLastFilterAcceptedOnly = cms.bool( True ) # select only trigger objects used in last filters of succeeding paths #, collectionTags = cms.vstring( '*' ) # wildcard , maxDPtRel=cms.double(0.5), maxDeltaR=cms.double(0.5), resolveAmbiguities=cms.bool(True) # only one match per trigger object , resolveByMatchQuality=cms.bool( True ) # take best match found per reco object: by DeltaR here (s. above) ) switchOnTrigger(process) process.patTrigger.addL1Algos = cms.bool(True) switchOnTrigger(process) # to fix event content switchOnTriggerMatchEmbedding(process, ['patPhotonMatch'])
process.hltFilter* process.goodVertices * process.scrapingVeto * process.metFilters ) #-- SusyPat Specifics --------------------------------- if not is7X: # CMSSW 53X if useSusyPat: # Create default susyPattuple from PhysicsTools.Configuration.SUSY_pattuple_cff import addDefaultSUSYPAT addDefaultSUSYPAT(process,options.isMC,options.hltName,options.jetMetCorrections,options.mcVersion,options.jetTypes,options.doValidation,options.doExtensiveMatching,options.doSusyTopProjection) # Embed matched trigger objects inside pat objects (used by TagAndProbe) from PhysicsTools.PatAlgos.tools.trigTools import switchOnTriggerMatchEmbedding switchOnTriggerMatchEmbedding( process, triggerMatchers = [ 'eleTriggerMatcher', 'muonTriggerMatcher' ], hltProcess = options.hltName, sequence = "susyPatDefaultSequence") else: # or use patDefaultSequence # Use pf Isolation # https://twiki.cern.ch/twiki/bin/viewauth/CMS/EgammaPFBasedIsolation#PAT_configuration # Needed also for Rho corrected pfIsolation for Electrons from PhysicsTools.PatAlgos.tools.pfTools import usePFIso usePFIso( process ) # Add Jet Collections from PhysicsTools.Configuration.SUSY_pattuple_cff import addSUSYJetCollection for jetName in options.jetTypes: addSUSYJetCollection(process,options.jetMetCorrections,jetName,options.mcVersion) else: # SusyPat is not available for 7X yet # pf Isolation is in CMSSW7X by default, but the producers were renamed
process.pElectronVeto = cms.Path( process.sElectronVeto ) process.p1Jet = cms.Path( process.s1Jet ) process.p2Jets = cms.Path( process.s2Jets ) process.p3Jets = cms.Path( process.s2Jets ) process.p4Jets = cms.Path( process.s4Jets ) #process.pBTags = cms.Path( process.sBTags ) process.pfcncKit = cms.Path( process.sfcncKit ) # Trigger matching if addTriggerMatch: from TopQuarkAnalysis.Configuration.patRefSel_triggerMatching_cff import muonTriggerMatch process.muonTriggerMatch = muonTriggerMatch.clone( matchedCuts = triggerObjectSelection ) if not runOnMiniAOD: from PhysicsTools.PatAlgos.tools.trigTools import switchOnTriggerMatchEmbedding switchOnTriggerMatchEmbedding( process, triggerMatchers = [ 'muonTriggerMatch' ] ) else: from TopQuarkAnalysis.Configuration.patRefSel_triggerMatching_cff import unpackedPatTrigger process.selectedTriggerUnpacked = unpackedPatTrigger.clone() process.muonTriggerMatch.matched = 'selectedTriggerUnpacked' from TopQuarkAnalysis.Configuration.patRefSel_triggerMatching_cff import signalMuonsTriggerMatch process.signalMuonsTriggerMatch = signalMuonsTriggerMatch.clone() # process.out.outputCommands += [ 'drop *_signalMuons_*_*' # , 'keep *_signalMuonsTriggerMatch_*_*' # ] process.outpath = cms.EndPath() #process.out = cms.OutputModule( # "PoolOutputModule" #, fileName = cms.untracked.string( 'test.root' ) #, SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring() )
process.out.fileName = 'QCD20to30_BCtoE_Z2_PU_387.root' process.options.wantSummary = False ## (to suppress the long output at the end of the job) #add the trigger matching, triggers taken from AN2010_425 process.electronTriggerMatchHLTElectrons = cms.EDProducer( "PATTriggerMatcherDRLessByR", src = cms.InputTag( 'selectedPatElectrons' ), matched = cms.InputTag( 'patTrigger' ), andOr = cms.bool( False ), filterIdsEnum = cms.vstring( '*' ), filterIds = cms.vint32( 0 ), filterLabels = cms.vstring( '*' ), pathNames = cms.vstring('HLT_Ele10_LW_L1R', 'HLT_Ele15_SW_L1R','HLT_Ele15_SW_CaloEleId_L1R','HLT_Ele17_SW_CaloEleId_L1R','HLT_Ele17_SW_TightEleId_L1R','HLT_Ele17_SW_TighterEleIdIsol_L1R_v2','HLT_Ele17_SW_TighterEleIdIsol_L1R_v3' ), collectionTags = cms.vstring( '*' ), maxDeltaR = cms.double( 0.5 ), resolveAmbiguities = cms.bool( True ), resolveByMatchQuality = cms.bool( True ) ) from PhysicsTools.PatAlgos.tools.trigTools import * switchOnTrigger( process ) # needed for MC with PU process.patTrigger.processName = "REDIGI38XPU" process.patTriggerEvent.processName = "REDIGI38XPU" from PhysicsTools.PatAlgos.tools.trigTools import switchOnTriggerMatchEmbedding switchOnTriggerMatchEmbedding( process , triggerMatchers = [ 'electronTriggerMatchHLTElectrons' ]) print 'Current Event content is:' print process.out.outputCommands
if runOnMC: triggerObjectSelection = patRefSel_refMuJets.triggerObjectSelectionMC else: triggerObjectSelection = patRefSel_refMuJets.triggerObjectSelectionData ### Trigger matching configuration from PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cfi import patTrigger from TopQuarkAnalysis.Configuration.patRefSel_triggerMatching_cfi import patMuonTriggerMatch if not options.runOnData: import PhysicsTools.PatAlgos.tools.trigTools as trigTools triggerProducerPF = patTrigger.clone() setattr( process, 'patTrigger' + postfix, triggerProducerPF ) triggerMatchPF = patMuonTriggerMatch.clone( matchedCuts = triggerObjectSelection ) setattr( process, 'triggerMatch' + postfix, triggerMatchPF ) trigTools.switchOnTriggerMatchEmbedding( process , triggerProducer = 'patTrigger' + postfix , triggerMatchers = [ 'triggerMatch' + postfix ] , sequence = 'patPF2PATSequence' + postfix , postfix = postfix ) trigTools.removeCleaningFromTriggerMatching( process , sequence = 'patPF2PATSequence' + postfix ) getattr( process, 'intermediatePatMuons' + postfix ).src = cms.InputTag( 'selectedPatMuons' + postfix + 'TriggerMatch' ) ### ### Scheduling ### # CiC electron ID process.load( "RecoEgamma.ElectronIdentification.cutsInCategoriesElectronIdentificationV06_cfi" )
process.patMuonTriggerMatchHLTMu17 = somePatMuonTriggerMatchHLTMu17.clone( src = 'patMuons' ) process.patMuonTriggerMatchHLTDoubleMu5IsoMu5 = somePatMuonTriggerMatchHLTDoubleMu5IsoMu5.clone( src = 'patMuons' ) process.patPhotonTriggerMatchHLTPhoton26Photon18 = somePatPhotonTriggerMatchHLTPhoton26Photon18.clone( src = 'patPhotons' ) process.patElectronTriggerMatchHLTEle17CaloIdTCaloIsoVLTrkIdVLTrkIsoVL = somePatElectronTriggerMatchHLTEle17CaloIdTCaloIsoVLTrkIdVLTrkIsoVL.clone( src = 'patElectrons' ) process.patTauTriggerMatchHLTDoubleMediumIsoPFTau30Trk1eta2p1 = somePatTauTriggerMatchHLTDoubleMediumIsoPFTau30Trk1eta2p1.clone( src = 'patTaus' ) process.patJetTriggerMatchHLTPFJet40 = somePatJetTriggerMatchHLTPFJet40.clone( src = 'patJets' ) process.patMetTriggerMatchHLTMET120 = somePatMetTriggerMatchHLTMET120.clone() process.patMuonTriggerMatchHLTMu8DiJet30 = somePatMuonTriggerMatchHLTMu8DiJet30.clone( src = 'patMuons' ) process.patJetTriggerMatchHLTMu8DiJet30 = somePatJetTriggerMatchHLTMu8DiJet30.clone( src = 'patJets' ) from PhysicsTools.PatAlgos.tools.trigTools import switchOnTriggerMatchEmbedding switchOnTriggerMatchEmbedding( process , [ 'patMuonTriggerMatchHLTMu17' , 'patMuonTriggerMatchHLTDoubleMu5IsoMu5' , 'patPhotonTriggerMatchHLTPhoton26Photon18' , 'patElectronTriggerMatchHLTEle17CaloIdTCaloIsoVLTrkIdVLTrkIsoVL' , 'patTauTriggerMatchHLTDoubleMediumIsoPFTau30Trk1eta2p1' , 'patJetTriggerMatchHLTPFJet40' , 'patMetTriggerMatchHLTMET120' , 'patMuonTriggerMatchHLTMu8DiJet30' , 'patJetTriggerMatchHLTMu8DiJet30' ] , outputModule = '' ) process.selectedPatMuons.src = 'patMuonsTriggerMatch' process.selectedPatPhotons.src = 'patPhotonsTriggerMatch' process.selectedPatElectrons.src = 'patElectronsTriggerMatch' process.selectedPatTaus.src = 'patTausTriggerMatch' process.selectedPatJets.src = 'patJetsTriggerMatch' print 'PoolOutputModule out.outputCommands' print '--> %s'%( process.out.outputCommands )
def loadPATTriggers(process,HLTMenu,theJetNames,electronMatches,muonMatches,tauMatches,jetMatches,photonMatches): #-- Trigger matching ---------------------------------------------------------- def pfSwitchOnTriggerMatchEmbedding(process, matches, src, embedder, sequence='patDefaultSequencePF'): setattr(process,src.replace('PF','TriggerMatchPF'),getattr(process,embedder).clone(src=src, matches=matches)) theSequence = getattr(process,sequence) theSequence += getattr(process,src.replace('PF','TriggerMatchPF')) from PhysicsTools.PatAlgos.tools.trigTools import switchOnTrigger, switchOnTriggerMatchEmbedding switchOnTrigger(process, triggerProducer='patTrigger', triggerEventProducer='patTriggerEvent', sequence='patDefaultSequence', hltProcess=HLTMenu) process.patTriggerPF = process.patTrigger.clone() process.patTriggerEventPF = process.patTriggerEvent.clone() process.patDefaultSequencePF += process.patTriggerPF process.patDefaultSequencePF += process.patTriggerEventPF switchOnTrigger(process, triggerProducer='patTriggerPF', triggerEventProducer='patTriggerEventPF', sequence='patDefaultSequencePF', hltProcess=HLTMenu) #Electrons from PhysicsTools.PatAlgos.triggerLayer1.triggerMatcher_cfi import cleanElectronTriggerMatchHLTEle20SWL1R process.patElectronMatch = cleanElectronTriggerMatchHLTEle20SWL1R.clone(matchedCuts = cms.string( electronMatches )) process.patElectronMatchPF = cleanElectronTriggerMatchHLTEle20SWL1R.clone(matchedCuts = cms.string( electronMatches ), src='selectedPatElectronsPF') process.patDefaultSequencePF += process.patElectronMatchPF switchOnTriggerMatchEmbedding( process, ['patElectronMatch'], hltProcess=HLTMenu) pfSwitchOnTriggerMatchEmbedding( process, ['patElectronMatchPF'], 'selectedPatElectronsPF', 'cleanPatElectronsTriggerMatch' ) #Muons from PhysicsTools.PatAlgos.triggerLayer1.triggerMatcher_cfi import cleanMuonTriggerMatchHLTMu9 process.patMuonMatch = cleanMuonTriggerMatchHLTMu9.clone(matchedCuts = cms.string( muonMatches )) process.patMuonMatchPF = cleanMuonTriggerMatchHLTMu9.clone(matchedCuts = cms.string( muonMatches ),src = 'selectedPatMuonsPF',matched='patTriggerPF') process.patDefaultSequencePF += process.patMuonMatchPF switchOnTriggerMatchEmbedding( process, ['patMuonMatch'], hltProcess=HLTMenu) pfSwitchOnTriggerMatchEmbedding( process, ['patMuonMatchPF'], 'selectedPatMuonsPF', 'cleanPatMuonsTriggerMatch' ) #Photons from PhysicsTools.PatAlgos.triggerLayer1.triggerMatcher_cfi import cleanPhotonTriggerMatchHLTPhoton20CleanedL1R process.patPhotonMatch = cleanPhotonTriggerMatchHLTPhoton20CleanedL1R.clone(matchedCuts = cms.string( photonMatches )) switchOnTriggerMatchEmbedding( process, ['patPhotonMatch'], hltProcess=HLTMenu) #Jets from PhysicsTools.PatAlgos.triggerLayer1.triggerMatcher_cfi import cleanJetTriggerMatchHLTJet15U process.patJetMatchAK5Calo = cleanJetTriggerMatchHLTJet15U.clone(matchedCuts = cms.string( jetMatches ),src='cleanPatJetsAK5Calo') switchOnTriggerMatchEmbedding( process, ['patJetMatchAK5Calo'], hltProcess=HLTMenu) for jetType in theJetNames: setattr(process,'patJetMatch'+jetType,cleanJetTriggerMatchHLTJet15U.clone(matchedCuts = cms.string( jetMatches ),src = 'cleanPatJets'+jetType)) process.patJetMatchPF = cleanJetTriggerMatchHLTJet15U.clone(src='selectedPatJetsPF', matchedCuts = cms.string( jetMatches )) process.patDefaultSequencePF += process.patJetMatchPF for jetType in theJetNames: switchOnTriggerMatchEmbedding( process, ['patJetMatch'+jetType], hltProcess=HLTMenu) pfSwitchOnTriggerMatchEmbedding( process, ['patJetMatchPF'], 'selectedPatJetsPF', 'cleanPatJetsAK5CaloTriggerMatch' ) #Taus from PhysicsTools.PatAlgos.triggerLayer1.triggerMatcher_cfi import cleanTauTriggerMatchHLTDoubleLooseIsoTau15 process.patTauMatch = cleanTauTriggerMatchHLTDoubleLooseIsoTau15.clone(matchedCuts = cms.string( tauMatches )) process.patTauMatchPF = cleanTauTriggerMatchHLTDoubleLooseIsoTau15.clone(src='selectedPatTausPF', matchedCuts = cms.string( tauMatches )) process.patDefaultSequencePF += process.patTauMatchPF switchOnTriggerMatchEmbedding( process, ['patTauMatch'], hltProcess=HLTMenu) pfSwitchOnTriggerMatchEmbedding( process, ['patTauMatchPF'], 'selectedPatTausPF', 'cleanPatTausTriggerMatch' )
process.pEventCleaning = cms.Path(process.sEventCleaning) process.pGoodVertex = cms.Path(process.sGoodVertex) process.pSignalMuon = cms.Path(process.sSignalMuon) process.pLooseMuonVeto = cms.Path(process.sLooseMuonVeto) process.pElectronVeto = cms.Path(process.sElectronVeto) process.p1Jet = cms.Path(process.s1Jet) process.p2Jets = cms.Path(process.s2Jets) process.p3Jets = cms.Path(process.s2Jets) process.p4Jets = cms.Path(process.s4Jets) process.pBTags = cms.Path(process.sBTags) # Trigger matching if addTriggerMatch: from TopQuarkAnalysis.Configuration.patRefSel_triggerMatching_cff import muonTriggerMatch process.muonTriggerMatch = muonTriggerMatch.clone( matchedCuts=triggerObjectSelection) if not runOnMiniAOD: from PhysicsTools.PatAlgos.tools.trigTools import switchOnTriggerMatchEmbedding switchOnTriggerMatchEmbedding(process, triggerMatchers=['muonTriggerMatch']) else: from TopQuarkAnalysis.Configuration.patRefSel_triggerMatching_cff import unpackedPatTrigger process.selectedTriggerUnpacked = unpackedPatTrigger.clone() process.muonTriggerMatch.matched = 'selectedTriggerUnpacked' from TopQuarkAnalysis.Configuration.patRefSel_triggerMatching_cff import signalMuonsTriggerMatch process.signalMuonsTriggerMatch = signalMuonsTriggerMatch.clone() process.out.outputCommands += [ 'drop *_signalMuons_*_*', 'keep *_signalMuonsTriggerMatch_*_*' ]
"againstMuonMedium", "againstMuonTight" ) from PATTools import pruneMCLeptons, addMuonMCClassification, addHEEPId pruneMCLeptons( process, use_sim=True ) # need to decide whether to move AODOnly() call in here, if so use_sim should just be set False addMuonMCClassification(process) addHEEPId(process) from PhysicsTools.PatAlgos.tools.trigTools import switchOnTrigger, switchOnTriggerMatchEmbedding switchOnTrigger(process) process.load("SUSYBSMAnalysis.Zprime2muAnalysis.hltTriggerMatch_cfi") switchOnTriggerMatchEmbedding(process, triggerMatchers=["muonTriggerMatchHLTMuons"]) # add L1 algorithms' collection process.patTrigger.addL1Algos = cms.bool(True) # default: 'False' # call once more to update the event content according to the changed parameters (?) switchOnTrigger(process) process.out.outputCommands += [ "keep *_cleanPatMuonsTriggerMatch_*_*", "keep *_patTrigger_*_*", # keep these two for now, for Level-1 decisions "keep *_patTriggerEvent_*_*", ] # Some extra configuration of the PAT. # Embed the tracker tracks (by default, every other track is already # embedded). process.patMuons.embedTrack = True
del process.patTaus.tauIDSources.againstElectronMVA6Raw #del process.patTaus.tauIDSources.againstMuonMedium process.cleanPatTaus.preselection = process.cleanPatTaus.preselection.value().replace('againstElectronVLooseMVA5', 'againstElectronLooseMVA6') process.cleanPatTaus.preselection = process.cleanPatTaus.preselection.value().replace('againstMuonMedium', 'againstMuonTight') # PAT muons process.patMuons.embedTrack = True process.selectedPatMuons.cut = "isTrackerMuon || isGlobalMuon" process.countPatMuons.minNumber = cms.uint32(1) # PAT trigger info process.load('SUSYBSMAnalysis.Zprime2muAnalysis.hltTriggerMatch_cfi') from PhysicsTools.PatAlgos.tools.trigTools import switchOnTrigger, switchOnTriggerMatchEmbedding switchOnTrigger( process ) switchOnTriggerMatchEmbedding( process, triggerProducer = 'patTrigger', # this is already the default setting triggerMatchers = [ 'muonTriggerMatchHLTMuons' ] ) # PAT Met and Jets from PhysicsTools.PatAlgos.tools.metTools import addMETCollection addMETCollection(process, labelName='patMETsPF', metSource='pfMetT1') from PhysicsTools.PatAlgos.tools.jetTools import switchJetCollection #to be checked switchJetCollection(process, jetSource = cms.InputTag('ak4PFJets'), jetCorrections = ('AK4PF', cms.vstring(['L1FastJet', 'L2Relative','L3Absolute']), 'Type-1'), btagDiscriminators = ['jetBProbabilityBJetTags', 'jetProbabilityBJetTags', 'trackCountingHighPurBJetTags', 'trackCountingHighEffBJetTags', 'simpleSecondaryVertexHighEffBJetTags', 'simpleSecondaryVertexHighPurBJetTags',