def addTaus(process, coll, **kwargs): isMC = kwargs.pop('isMC', False) tSrc = coll['taus'] pvSrc = coll['vertices'] genSrc = coll['prunedgen'] # customization path process.tauCustomization = cms.Path() # embed pv process.tPV = cms.EDProducer( "TauPVEmbedder", src=cms.InputTag(tSrc), vertexSrc=cms.InputTag(pvSrc), ) tSrc = 'tPV' process.tauCustomization *= process.tPV ## embed trigger matching #process.tTrig = cms.EDProducer( # "TauHLTMatchEmbedder", # src = cms.InputTag(tSrc), # triggerResults = cms.InputTag('TriggerResults', '', 'HLT'), # triggerObjects = cms.InputTag("selectedPatTrigger"), # deltaR = cms.double(0.5), # labels = cms.vstring( # ), # paths = cms.vstring( # ), #) #tSrc = 'tTrig' #process.tauCustomization *= process.tTrig # embed gen tau jets if isMC: from PhysicsTools.JetMCAlgos.TauGenJets_cfi import tauGenJets process.tauGenJets = tauGenJets.clone( GenParticles=cms.InputTag(genSrc)) process.tauCustomization *= process.tauGenJets process.tGenJetMatching = cms.EDProducer( "TauMatchedGenJetEmbedder", src=cms.InputTag(tSrc), genJets=cms.InputTag("tauGenJets"), srcIsTaus=cms.bool(True), deltaR=cms.double(0.5), ) tSrc = "tGenJetMatching" process.tauCustomization *= process.tGenJetMatching # add to schedule process.schedule.append(process.tauCustomization) coll['taus'] = tSrc return coll
def customizeTaus(process, coll, **kwargs): '''Customize taus''' isMC = kwargs.pop('isMC', False) tSrc = coll['taus'] rhoSrc = coll['rho'] pvSrc = coll['vertices'] genSrc = coll['genParticles'] # customization path process.tauCustomization = cms.Path() ################# ### embed rho ### ################# process.tRho = cms.EDProducer( "TauRhoEmbedder", src=cms.InputTag(tSrc), rhoSrc=cms.InputTag(rhoSrc), label=cms.string("rho"), ) tSrc = 'tRho' process.tauCustomization *= process.tRho ################ ### embed pv ### ################ process.tPV = cms.EDProducer( "TauIpEmbedder", src=cms.InputTag(tSrc), vertexSrc=cms.InputTag(pvSrc), ) tSrc = 'tPV' process.tauCustomization *= process.tPV ############################## ### embed trigger matching ### ############################## process.tTrig = cms.EDProducer( "TauHLTMatchEmbedder", src=cms.InputTag(tSrc), triggerResults=cms.InputTag('TriggerResults', '', 'HLT'), triggerObjects=cms.InputTag("selectedPatTrigger"), deltaR=cms.double(0.5), labels=cms.vstring( # double tau 'matches_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg', 'matches_DoubleMediumIsoPFTau40_Trk1_eta2p1_Reg', # muon tau 'matches_IsoMu17_eta2p1_LooseIsoPFTau20', 'matches_IsoMu20_eta2p1_LooseIsoPFTau20', # electron tau 'matches_Ele22_eta2p1_WPLoose_Gsf_LooseIsoPFTau20', 'matches_Ele27_eta2p1_WPLoose_Gsf_LooseIsoPFTau20', ), paths=cms.vstring( # double tau 'HLT_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg_v\\[0-9]+', 'HLT_DoubleMediumIsoPFTau40_Trk1_eta2p1_Reg_v\\[0-9]+', # muon tau 'HLT_IsoMu17_eta2p1_LooseIsoPFTau20_v\\[0-9]+', 'HLT_IsoMu20_eta2p1_LooseIsoPFTau20_v\\[0-9]+', # electron tau 'HLT_Ele22_eta2p1_WPLoose_Gsf_LooseIsoPFTau20_v\\[0-9]+', 'HLT_Ele27_eta2p1_WPLoose_Gsf_LooseIsoPFTau20_v\\[0-9]+', ), ) tSrc = 'tTrig' process.tauCustomization *= process.tTrig ########################## ### embed tau gen jets ### ########################## if isMC: from PhysicsTools.JetMCAlgos.TauGenJets_cfi import tauGenJets process.tauGenJets = tauGenJets.clone( GenParticles=cms.InputTag(genSrc)) process.tauCustomization *= process.tauGenJets process.tGenJetMatching = cms.EDProducer( "TauGenJetEmbedder", src=cms.InputTag(tSrc), genJets=cms.InputTag("tauGenJets"), excludeLeptons=cms.bool(True), deltaR=cms.double(0.5), ) tSrc = "tGenJetMatching" process.tauCustomization *= process.tGenJetMatching # add to schedule process.schedule.append(process.tauCustomization) coll['taus'] = tSrc return coll
import FWCore.ParameterSet.Config as cms from Validation.RecoTau.RecoTauValidation_cfi import * from PhysicsTools.JetMCAlgos.TauGenJets_cfi import tauGenJets from PhysicsTools.HepMCCandAlgos.genParticles_cfi import * import PhysicsTools.PatAlgos.tools.helpers as helpers tauGenJetsForVal = tauGenJets.clone() # require generated tau to decay hadronically objectTypeSelectedTauValDenominatorModuleZTT = cms.EDFilter( "TauGenJetDecayModeSelector", src=cms.InputTag("tauGenJetsForVal"), select=cms.vstring('oneProng0Pi0', 'oneProng1Pi0', 'oneProng2Pi0', 'oneProngOther', 'threeProng0Pi0', 'threeProng1Pi0', 'threeProngOther', 'rare'), filter=cms.bool(False)) # require generator level hadrons produced in tau-decay to have transverse momentum above threshold kinematicSelectedTauValDenominatorZTT = cms.EDFilter( "GenJetSelector", #"GenJetSelector" src=cms.InputTag('objectTypeSelectedTauValDenominatorModuleZTT'), cut= kinematicSelectedTauValDenominatorCut, #cms.string('pt > 5. && abs(eta) < 2.5'), #Defined: Validation.RecoTau.RecoTauValidation_cfi filter=cms.bool(False)) procAttributes = dir(proc) #Takes a snapshot of what there in the process helpers.cloneProcessingSnippet( proc, proc.TauValNumeratorAndDenominator, 'ZTT') #clones the sequence inside the process with ZTT postfix helpers.cloneProcessingSnippet(
process.TauGenMatchesForEmbedded = cms.Sequence() tausToMatch = "cleanPatTaus" if isNonTopEmbeddedSample or isTopEmbeddedSample: print "EMBEDDED STUFF " from PhysicsTools.PatAlgos.mcMatchLayer0.tauMatch_cfi import tauMatch, tauGenJetMatch process.tauMatchEmbeddedRECO = tauMatch.clone( src = cms.InputTag(tausToMatch), matched = cms.InputTag("genParticles::EmbeddedRECO") ) process.TauGenMatchesForEmbedded += process.tauMatchEmbeddedRECO from PhysicsTools.JetMCAlgos.TauGenJets_cfi import tauGenJets process.tauGenJetsEmbeddedRECO = tauGenJets.clone( GenParticles = cms.InputTag("genParticles::EmbeddedRECO") ) process.TauGenMatchesForEmbedded += process.tauGenJetsEmbeddedRECO from PhysicsTools.JetMCAlgos.TauGenJetsDecayModeSelectorAllHadrons_cfi import tauGenJetsSelectorAllHadrons process.tauGenJetsSelectorAllHadronsEmbeddedRECO = tauGenJetsSelectorAllHadrons.clone( src = cms.InputTag("tauGenJetsEmbeddedRECO") ) process.TauGenMatchesForEmbedded += process.tauGenJetsSelectorAllHadronsEmbeddedRECO process.tauGenJetMatchEmbeddedRECO = tauGenJetMatch.clone( src = cms.InputTag(tausToMatch), matched = cms.InputTag("tauGenJetsSelectorAllHadronsEmbeddedRECO") ) process.TauGenMatchesForEmbedded += process.tauGenJetMatchEmbeddedRECO process.patTausGenMatched = cms.EDProducer("PATTauGenMatchEmbedder", src = cms.InputTag(tausToMatch),
doc="Anti-electron MVA discriminator V6 category (2015"), idAntiEle=_tauId5WPMask( "againstElectron%sMVA6", doc="Anti-electron MVA discriminator V6 (2015)")) run2_miniAOD_80XLegacy.toModify(tauTable.variables, idAntiEleDeadECal=None) for era in [run2_nanoAOD_92X, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2, \ run2_nanoAOD_94X2016, run2_nanoAOD_102Xv1, run2_nanoAOD_106Xv1]: era.toModify( tauTable.variables, idAntiEleDeadECal=Var("tauID('againstElectronDeadECALForNano')", bool, doc="Anti-electron dead-ECal discriminator"), ) tauGenJetsForNano = tauGenJets.clone(GenParticles="finalGenParticles", includeNeutrinos=False) tauGenJetsSelectorAllHadronsForNano = tauGenJetsSelectorAllHadrons.clone( src="tauGenJetsForNano") genVisTaus = cms.EDProducer( "GenVisTauProducer", src=cms.InputTag("tauGenJetsSelectorAllHadronsForNano"), srcGenParticles=cms.InputTag("finalGenParticles")) genVisTauTable = cms.EDProducer( "SimpleCandidateFlatTableProducer", src=cms.InputTag("genVisTaus"), cut=cms.string("pt > 10."), name=cms.string("GenVisTau"), doc=cms.string("gen hadronic taus "),
'drop *', 'keep++ pdgId = 15', ) ) genTausFromHiggs = cms.EDProducer( "GenParticlePruner", src = cms.InputTag("higgsBosons"), select = cms.vstring( 'drop *', 'keep++ pdgId = 15', ) ) tauGenJetsFromZs = tauGenJets.clone( GenParticles = cms.InputTag('genTausFromZs') ) tauGenJetsFromHiggs = tauGenJets.clone( GenParticles = cms.InputTag('genTausFromHiggs') ) genEwkTauSelectors = cms.Sequence( zBosons +wBosons +higgsBosons +genTausFromZs +genTausFromHiggs +tauGenJetsFromZs +tauGenJetsFromHiggs )
def customizeTaus(process, coll, **kwargs): """Customize taus""" isMC = kwargs.pop("isMC", False) tSrc = coll["taus"] rhoSrc = coll["rho"] pvSrc = coll["vertices"] genSrc = coll["genParticles"] # customization path process.tauCustomization = cms.Path() ################# ### embed rho ### ################# process.tRho = cms.EDProducer( "TauRhoEmbedder", src=cms.InputTag(tSrc), rhoSrc=cms.InputTag(rhoSrc), label=cms.string("rho") ) tSrc = "tRho" process.tauCustomization *= process.tRho ################ ### embed pv ### ################ process.tPV = cms.EDProducer("TauIpEmbedder", src=cms.InputTag(tSrc), vertexSrc=cms.InputTag(pvSrc)) tSrc = "tPV" process.tauCustomization *= process.tPV ############################## ### embed trigger matching ### ############################## process.tTrig = cms.EDProducer( "TauHLTMatchEmbedder", src=cms.InputTag(tSrc), triggerResults=cms.InputTag("TriggerResults", "", "HLT"), triggerObjects=cms.InputTag("selectedPatTrigger"), deltaR=cms.double(0.5), labels=cms.vstring( # double tau "matches_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg", "matches_DoubleMediumIsoPFTau40_Trk1_eta2p1_Reg", # muon tau "matches_IsoMu17_eta2p1_LooseIsoPFTau20", "matches_IsoMu20_eta2p1_LooseIsoPFTau20", # electron tau "matches_Ele22_eta2p1_WPLoose_Gsf_LooseIsoPFTau20", "matches_Ele27_eta2p1_WPLoose_Gsf_LooseIsoPFTau20", ), paths=cms.vstring( # double tau "HLT_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg_v\\[0-9]+", "HLT_DoubleMediumIsoPFTau40_Trk1_eta2p1_Reg_v\\[0-9]+", # muon tau "HLT_IsoMu17_eta2p1_LooseIsoPFTau20_v\\[0-9]+", "HLT_IsoMu20_eta2p1_LooseIsoPFTau20_v\\[0-9]+", # electron tau "HLT_Ele22_eta2p1_WPLoose_Gsf_LooseIsoPFTau20_v\\[0-9]+", "HLT_Ele27_eta2p1_WPLoose_Gsf_LooseIsoPFTau20_v\\[0-9]+", ), ) tSrc = "tTrig" process.tauCustomization *= process.tTrig ########################## ### embed tau gen jets ### ########################## if isMC: from PhysicsTools.JetMCAlgos.TauGenJets_cfi import tauGenJets process.tauGenJets = tauGenJets.clone(GenParticles=cms.InputTag(genSrc)) process.tauCustomization *= process.tauGenJets process.tGenJetMatching = cms.EDProducer( "TauGenJetEmbedder", src=cms.InputTag(tSrc), genJets=cms.InputTag("tauGenJets"), excludeLeptons=cms.bool(True), deltaR=cms.double(0.5), ) tSrc = "tGenJetMatching" process.tauCustomization *= process.tGenJetMatching # add to schedule process.schedule.append(process.tauCustomization) coll["taus"] = tSrc return coll