src = cms.InputTag('selectedPatElectronsForElecTauConversionVetoCumulative'), srcNotToBeFiltered = cms.VInputTag(genElectronsFromTauDecays), dRmin = cms.double(0.3), invert = cms.bool(True), filter = cms.bool(False) ) process.testSVfitTrackLikelihoodProductionSequence += process.genMatchedPatElectrons from PhysicsTools.PatAlgos.producersLayer1.tauProducer_cfi import patTaus process.patTausForSVfit = patTaus.clone( tauSource = cms.InputTag('hpsPFTauProducer'), isoDeposits = cms.PSet(), userIsolation = cms.PSet(), addTauID = cms.bool(True), tauIDSources = cms.PSet( decayModeFinding = cms.InputTag('hpsPFTauDiscriminationByDecayModeFinding'), byLooseCombinedIsolationDeltaBetaCorr = cms.InputTag('hpsPFTauDiscriminationByLooseCombinedIsolationDBSumPtCorr') ), addGenMatch = cms.bool(False), embedGenMatch = cms.bool(False), addGenJetMatch = cms.bool(False), embedGenJetMatch = cms.bool(False) ) process.testSVfitTrackLikelihoodProductionSequence += process.patTausForSVfit process.selectedPatTausForSVfit = cms.EDProducer("PATTauCleaner", src = cms.InputTag('patTausForSVfit'), ##preselection = cms.string("tauID('decayModeFinding') > 0.5 & tauID('byLooseCombinedIsolationDeltaBetaCorr') > 0.5"), preselection = cms.string("tauID('decayModeFinding') > 0.5 & tauID('byLooseCombinedIsolationDeltaBetaCorr') > 0.5 & decayMode >= 10"), checkOverlaps = cms.PSet(), finalCut = cms.string('pt > 20. & abs(eta) < 2.3'), )
cms.PSet( discriminator = cms.InputTag('hpsPFTauDiscriminationByLooseCombinedIsolationDBSumPtCorr'), selectionCut = cms.double(0.5) ) ), cut = cms.string("pt > 20. & abs(eta) < 2.3") ) process.testSVfitTrackLikelihoodProductionSequence += process.selectedTaus from PhysicsTools.PatAlgos.producersLayer1.tauProducer_cfi import patTaus process.patTausForSVfit = patTaus.clone( tauSource = cms.InputTag("selectedTaus"), isoDeposits = cms.PSet(), userIsolation = cms.PSet(), addTauID = cms.bool(False), tauIDSources = cms.PSet(), addGenMatch = cms.bool(False), embedGenMatch = cms.bool(False), addGenJetMatch = cms.bool(False), embedGenJetMatch = cms.bool(False) ) process.testSVfitTrackLikelihoodProductionSequence += process.patTausForSVfit process.genMatchedPatTaus = cms.EDFilter("PATTauAntiOverlapSelector", src = cms.InputTag('patTausForSVfit'), srcNotToBeFiltered = cms.VInputTag(genTauJetsFromTauDecays), dRmin = cms.double(0.3), invert = cms.bool(True), filter = cms.bool(False) ) process.testSVfitTrackLikelihoodProductionSequence += process.genMatchedPatTaus
cms.PSet( discriminator = cms.InputTag('hpsPFTauDiscriminationByLooseCombinedIsolationDBSumPtCorr'), selectionCut = cms.double(0.5) ) ), cut = cms.string("pt > 20. & abs(eta) < 2.3") ) process.testSVfitTrackLikelihoodSequence += process.selectedTaus from PhysicsTools.PatAlgos.producersLayer1.tauProducer_cfi import patTaus process.patTausForSVfit = patTaus.clone( tauSource = cms.InputTag("selectedTaus"), isoDeposits = cms.PSet(), userIsolation = cms.PSet(), addTauID = cms.bool(False), tauIDSources = cms.PSet(), addGenMatch = cms.bool(False), embedGenMatch = cms.bool(False), addGenJetMatch = cms.bool(False), embedGenJetMatch = cms.bool(False) ) process.testSVfitTrackLikelihoodSequence += process.patTausForSVfit process.genMatchedPatTaus = cms.EDFilter("PATTauAntiOverlapSelector", src = cms.InputTag('patTausForSVfit'), srcNotToBeFiltered = cms.VInputTag(genTauJetsFromTauDecays), dRmin = cms.double(0.3), invert = cms.bool(True), filter = cms.bool(False) ) process.testSVfitTrackLikelihoodSequence += process.genMatchedPatTaus
"PATElectronAntiOverlapSelector", src=cms.InputTag('selectedPatElectronsForElecTauConversionVetoCumulative'), srcNotToBeFiltered=cms.VInputTag(genElectronsFromTauDecays), dRmin=cms.double(0.3), invert=cms.bool(True), filter=cms.bool(False)) process.testSVfitTrackLikelihoodProductionSequence += process.genMatchedPatElectrons from PhysicsTools.PatAlgos.producersLayer1.tauProducer_cfi import patTaus process.patTausForSVfit = patTaus.clone( tauSource=cms.InputTag('hpsPFTauProducer'), isoDeposits=cms.PSet(), userIsolation=cms.PSet(), addTauID=cms.bool(True), tauIDSources=cms.PSet( decayModeFinding=cms.InputTag( 'hpsPFTauDiscriminationByDecayModeFinding'), byLooseCombinedIsolationDeltaBetaCorr=cms.InputTag( 'hpsPFTauDiscriminationByLooseCombinedIsolationDBSumPtCorr')), addGenMatch=cms.bool(False), embedGenMatch=cms.bool(False), addGenJetMatch=cms.bool(False), embedGenJetMatch=cms.bool(False)) process.testSVfitTrackLikelihoodProductionSequence += process.patTausForSVfit process.selectedPatTausForSVfit = cms.EDProducer( "PATTauCleaner", src=cms.InputTag('patTausForSVfit'), ##preselection = cms.string("tauID('decayModeFinding') > 0.5 & tauID('byLooseCombinedIsolationDeltaBetaCorr') > 0.5"), preselection=cms.string( "tauID('decayModeFinding') > 0.5 & tauID('byLooseCombinedIsolationDeltaBetaCorr') > 0.5 & decayMode >= 10" ),
def addDeepTauDiscriminator(process, hlt_srcPFTaus, hlt_srcPFJets, hlt_srcVertices, hlt_pfTauLabel, hlt_pfTauSuffix, deepTauSequenceName="deepTauSequence"): deepTauSequence = cms.Sequence() setattr(process, deepTauSequenceName, deepTauSequence) if not hasattr(process, "hltFixedGridRhoAll"): from RecoJets.JetProducers.fixedGridRhoProducer_cfi import fixedGridRhoAll process.hltFixedGridRhoAll = fixedGridRhoAll.clone( pfCandidatesTag=cms.InputTag('particleFlowTmp')) deepTauSequence += process.hltFixedGridRhoAll if not hasattr(process, "hltPrimaryVertexAssociation"): from PhysicsTools.PatAlgos.slimming.primaryVertexAssociation_cfi import primaryVertexAssociation process.hltPrimaryVertexAssociation = primaryVertexAssociation.clone( particles=cms.InputTag('particleFlowTmp'), vertices=cms.InputTag(hlt_srcVertices), jets=cms.InputTag(hlt_srcPFJets)) deepTauSequence += process.hltPrimaryVertexAssociation if not hasattr(process, "hltPackedPFCandidates"): from PhysicsTools.PatAlgos.slimming.packedPFCandidates_cfi import packedPFCandidates process.hltPackedPFCandidates = packedPFCandidates.clone( inputCollection=cms.InputTag('particleFlowTmp'), inputVertices=cms.InputTag(hlt_srcVertices), originalVertices=cms.InputTag(hlt_srcVertices), originalTracks=cms.InputTag('generalTracks'), vertexAssociator=cms.InputTag( 'hltPrimaryVertexAssociation:original'), PuppiSrc=cms.InputTag(''), PuppiNoLepSrc=cms.InputTag(''), chargedHadronIsolation=cms.InputTag(''), minPtForChargedHadronProperties=cms.double(0.9), secondaryVerticesForWhiteList=cms.VInputTag(), minPtForTrackProperties=cms.double(0.9)) deepTauSequence += process.hltPackedPFCandidates if not hasattr(process, "dummyIsolatedTracks"): process.dummyIsolatedTracks = cms.EDProducer( "EmptyPATIsolatedTrackCollectionProducer") deepTauSequence += process.dummyIsolatedTracks ##if not hasattr(process, "patJetsHLTAK4PF"): ## from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection ## addJetCollection( ## process, ## labelName = 'HLTAK4PF', ## jetSource = cms.InputTag(hlt_srcPFJets), ## btagDiscriminators = [ 'None' ], ## genJetCollection = cms.InputTag('ak4GenJets'), ## jetCorrections = ( 'AK4PF', cms.vstring([ 'L2Relative', 'L3Absolute' ]), 'None' )) ## process.makePatJets = cms.Sequence(process.patAlgosToolsTask) ##deepTauSequence += process.makePatJets ## ##if not hasattr(process, "hltSlimmedJets"): ## from PhysicsTools.PatAlgos.slimming.slimmedJets_cfi import slimmedJets ## process.hltSlimmedJets = slimmedJets.clone( ## src = cms.InputTag('patJetsHLTAK4PF'), ## packedPFCandidates = cms.InputTag("hltPackedPFCandidates") ## ) ##deepTauSequence += process.hltSlimmedJets # CV: produce pat::Tau collection if not hasattr(process, "genParticles"): process.load("PhysicsTools.HepMCCandAlgos.genParticles_cfi") deepTauSequence += process.genParticles from PhysicsTools.PatAlgos.mcMatchLayer0.tauMatch_cfi import tauMatch moduleName_tauMatch = "hlt%sMatch%s" % (hlt_pfTauLabel, hlt_pfTauSuffix) module_tauMatch = tauMatch.clone(src=cms.InputTag(hlt_srcPFTaus)) setattr(process, moduleName_tauMatch, module_tauMatch) deepTauSequence += module_tauMatch if not hasattr(process, "tauGenJets"): process.load("PhysicsTools.JetMCAlgos.TauGenJets_cfi") deepTauSequence += process.tauGenJets if not hasattr(process, "tauGenJetsSelectorAllHadrons"): process.load( "PhysicsTools.JetMCAlgos.TauGenJetsDecayModeSelectorAllHadrons_cfi" ) deepTauSequence += process.tauGenJetsSelectorAllHadrons from PhysicsTools.PatAlgos.mcMatchLayer0.tauMatch_cfi import tauGenJetMatch moduleName_tauGenJetMatch = "hlt%sGenJetMatch%s" % (hlt_pfTauLabel, hlt_pfTauSuffix) module_tauGenJetMatch = tauGenJetMatch.clone( src=cms.InputTag(hlt_srcPFTaus)) setattr(process, moduleName_tauGenJetMatch, module_tauGenJetMatch) deepTauSequence += module_tauGenJetMatch from PhysicsTools.PatAlgos.producersLayer1.tauProducer_cfi import patTaus moduleName_patTaus = "hltPat%ss%s" % (hlt_pfTauLabel, hlt_pfTauSuffix) module_patTaus = patTaus.clone( tauSource=cms.InputTag(hlt_srcPFTaus), tauTransverseImpactParameterSource=cms.InputTag( 'hlt%sTransverseImpactParameters%s' % (hlt_pfTauLabel, hlt_pfTauSuffix)), genParticleMatch=cms.InputTag(moduleName_tauMatch), genJetMatch=cms.InputTag(moduleName_tauGenJetMatch), tauIDSources=cms.PSet()) from PhysicsTools.PatAlgos.producersLayer1.tauProducer_cfi import singleID, containerID singleID( module_patTaus.tauIDSources, 'hlt%sDiscriminationByDecayModeFinding%s' % (hlt_pfTauLabel, hlt_pfTauSuffix), "decayModeFinding") singleID( module_patTaus.tauIDSources, 'hlt%sDiscriminationByDecayModeFindingNewDMs%s' % (hlt_pfTauLabel, hlt_pfTauSuffix), "decayModeFindingNewDMs") singleID( module_patTaus.tauIDSources, 'hltSelected%sChargedIsoPtSumHGCalFix%s' % (hlt_pfTauLabel, hlt_pfTauSuffix), "chargedIsoPtSumHGCalFix") singleID( module_patTaus.tauIDSources, 'hltSelected%sNeutralIsoPtSumHGCalFix%s' % (hlt_pfTauLabel, hlt_pfTauSuffix), "neutralIsoPtSumHGCalFix") singleID( module_patTaus.tauIDSources, 'hltSelected%sChargedIsoPtSumdR03HGCalFix%s' % (hlt_pfTauLabel, hlt_pfTauSuffix), "chargedIsoPtSumdR03HGCalFix") singleID( module_patTaus.tauIDSources, 'hltSelected%sNeutralIsoPtSumdR03HGCalFix%s' % (hlt_pfTauLabel, hlt_pfTauSuffix), "neutralIsoPtSumdR03HGCalFix") containerID( module_patTaus.tauIDSources, 'hlt%sBasicDiscriminators%s' % (hlt_pfTauLabel, hlt_pfTauSuffix), "IDdefinitions", [["chargedIsoPtSum", "ChargedIsoPtSum"], ["neutralIsoPtSum", "NeutralIsoPtSum"], [ "puCorrPtSum", "PUcorrPtSum" ], ["neutralIsoPtSumWeight", "NeutralIsoPtSumWeight"], ["footprintCorrection", "TauFootprintCorrection"], ["photonPtSumOutsideSignalCone", "PhotonPtSumOutsideSignalCone"], [ "byCombinedIsolationDeltaBetaCorrRaw3Hits", "ByRawCombinedIsolationDBSumPtCorr3Hits" ]]) containerID( module_patTaus.tauIDSources, 'hlt%sBasicDiscriminatorsdR03%s' % (hlt_pfTauLabel, hlt_pfTauSuffix), "IDdefinitions", [["chargedIsoPtSumdR03", "ChargedIsoPtSum"], ["neutralIsoPtSumdR03", "NeutralIsoPtSum"], ["puCorrPtSumdR03", "PUcorrPtSum"], ["neutralIsoPtSumWeightdR03", "NeutralIsoPtSumWeight"], ["footprintCorrectiondR03", "TauFootprintCorrection"], ["photonPtSumOutsideSignalConedR03", "PhotonPtSumOutsideSignalCone"], [ "byCombinedIsolationDeltaBetaCorrRaw3HitsdR03", "ByRawCombinedIsolationDBSumPtCorr3Hits" ]]) setattr(process, moduleName_patTaus, module_patTaus) deepTauSequence += module_patTaus moduleName_selectedPatTaus = "hltSelectedPat%ss%s" % (hlt_pfTauLabel, hlt_pfTauSuffix) module_selectedPatTaus = cms.EDProducer( "MyPATTauSelector", src=cms.InputTag(moduleName_patTaus), min_pt=cms.double(20.0), max_pt=cms.double(-1.), min_absEta=cms.double(-1.), max_absEta=cms.double(2.4), decayModes=cms.vint32(0, 1, 2, 10, 11), min_leadTrackPt=cms.double(1.0), max_leadTrackPt=cms.double(-1.), tauID_relChargedIso=cms.string("chargedIsoPtSumHGCalFix"), min_relChargedIso=cms.double(-1.), max_relChargedIso=cms.double(-1.), min_absChargedIso=cms.double(-1.), max_absChargedIso=cms.double(-1.), invert=cms.bool(False)) setattr(process, moduleName_selectedPatTaus, module_selectedPatTaus) deepTauSequence += module_selectedPatTaus from PhysicsTools.PatAlgos.slimming.slimmedTaus_cfi import slimmedTaus moduleName_slimmedTaus = "hltSlimmed%ss%s" % (hlt_pfTauLabel, hlt_pfTauSuffix) module_slimmedTaus = slimmedTaus.clone( src=cms.InputTag(moduleName_selectedPatTaus), packedPFCandidates=cms.InputTag('hltPackedPFCandidates')) setattr(process, moduleName_slimmedTaus, module_slimmedTaus) deepTauSequence += module_slimmedTaus if not hasattr(process, "dummyElectrons"): process.dummyElectrons = cms.EDProducer( "EmptyPATElectronCollectionProducer") deepTauSequence += process.dummyElectrons if not hasattr(process, "dummyMuons"): process.dummyMuons = cms.EDProducer("EmptyPATMuonCollectionProducer") deepTauSequence += process.dummyMuons moduleName_deepTau_even = "hltDeep%sEven%s" % (hlt_pfTauLabel, hlt_pfTauSuffix) deepTau_inputFiles_even = [ 'core:HLTrigger/TallinnHLTPFTauAnalyzer/data/%s/DeepTauPhase2HLTv2even_step1_final_core.pb' % DeepTau_version, 'inner:HLTrigger/TallinnHLTPFTauAnalyzer/data/%s/DeepTauPhase2HLTv2even_step1_final_inner.pb' % DeepTau_version, 'outer:HLTrigger/TallinnHLTPFTauAnalyzer/data/%s/DeepTauPhase2HLTv2even_step1_final_outer.pb' % DeepTau_version ] module_deepTau_even = cms.EDProducer( "DeepTauId", electrons=cms.InputTag('dummyElectrons'), muons=cms.InputTag('dummyMuons'), taus=cms.InputTag(moduleName_slimmedTaus), pfcands=cms.InputTag('hltPackedPFCandidates'), vertices=cms.InputTag(hlt_srcVertices), rho=cms.InputTag('hltFixedGridRhoAll'), disable_hcalFraction_workaround=cms.bool(True), graph_file=cms.vstring(deepTau_inputFiles_even), mem_mapped=cms.bool(False), version=cms.uint32(2), VSeWP=cms.vstring(), VSmuWP=cms.vstring(), VSjetWP=cms.vstring(), debug_level=cms.int32(0), ) setattr(process, moduleName_deepTau_even, module_deepTau_even) deepTauSequence += module_deepTau_even moduleName_deepTau_odd = "hltDeep%sOdd%s" % (hlt_pfTauLabel, hlt_pfTauSuffix) deepTau_inputFiles_odd = [ 'core:HLTrigger/TallinnHLTPFTauAnalyzer/data/%s/DeepTauPhase2HLTv2odd_step1_final_core.pb' % DeepTau_version, 'inner:HLTrigger/TallinnHLTPFTauAnalyzer/data/%s/DeepTauPhase2HLTv2odd_step1_final_inner.pb' % DeepTau_version, 'outer:HLTrigger/TallinnHLTPFTauAnalyzer/data/%s/DeepTauPhase2HLTv2odd_step1_final_outer.pb' % DeepTau_version ] module_deepTau_odd = module_deepTau_even.clone( graph_file=cms.vstring(deepTau_inputFiles_odd)) setattr(process, moduleName_deepTau_odd, module_deepTau_odd) deepTauSequence += module_deepTau_odd ##if not hasattr(process, "printEventContent"): ## process.printEventContent = cms.EDAnalyzer("EventContentAnalyzer") ## deepTauSequence += process.printEventContent # CV: Embed DeepTau tau ID discriminators into pat::Tau object moduleName_updatedPatTaus_even = "hltUpdatedPat%ssEven%s" % ( hlt_pfTauLabel, hlt_pfTauSuffix) module_updatedPatTaus_even = cms.EDProducer( "PATTauIDEmbedder", src=cms.InputTag(moduleName_slimmedTaus), tauIDSources=cms.PSet(byDeepTau2017v2VSjetraw=cms.PSet( inputTag=cms.InputTag(moduleName_deepTau_even, 'VSjet'), workingPointIndex=cms.int32(-1)))) setattr(process, moduleName_updatedPatTaus_even, module_updatedPatTaus_even) deepTauSequence += module_updatedPatTaus_even moduleName_updatedPatTaus_odd = "hltUpdatedPat%ssOdd%s" % (hlt_pfTauLabel, hlt_pfTauSuffix) module_updatedPatTaus_odd = cms.EDProducer( "PATTauIDEmbedder", src=cms.InputTag(moduleName_slimmedTaus), tauIDSources=cms.PSet(byDeepTau2017v2VSjetraw=cms.PSet( inputTag=cms.InputTag(moduleName_deepTau_odd, 'VSjet'), workingPointIndex=cms.int32(-1)))) setattr(process, moduleName_updatedPatTaus_odd, module_updatedPatTaus_odd) deepTauSequence += module_updatedPatTaus_odd # CV: Merge pat::Tau collections containing tau ID discriminator for DeepTau trained on even and odd events. # Note that tau candidates in events with EVEN event numbers need to be classified # using the DeepTau model trained on events with ODD event numbers and vice versa moduleName_updatedPatTaus = "hltUpdatedPat%ss%s" % (hlt_pfTauLabel, hlt_pfTauSuffix) module_updatedPatTaus = cms.EDProducer( "PATTauEvenOddEventMixer", srcEvenEvents=cms.InputTag(moduleName_updatedPatTaus_odd), srcOddEvents=cms.InputTag(moduleName_updatedPatTaus_even)) setattr(process, moduleName_updatedPatTaus, module_updatedPatTaus) deepTauSequence += module_updatedPatTaus ##moduleName_dumpPatTaus = "dumpHLTPat%ss%s" % (hlt_pfTauLabel, hlt_pfTauSuffix) ##module_dumpPatTaus = cms.EDAnalyzer("DumpPATTaus", ## src = cms.InputTag(moduleName_updatedPatTaus) ##) ##setattr(process, moduleName_dumpPatTaus, module_dumpPatTaus) ##deepTauSequence += module_dumpPatTaus return deepTauSequence