From 4dc40dd5491e286bb6a44ac7c43c8fe51382aab3 Mon Sep 17 00:00:00 2001 From: Artur Lobanov Date: Wed, 11 Jun 2025 11:20:03 +0200 Subject: [PATCH 1/4] Add hltHpsPFTau table to Phase2 HLTnano --- .../NGTScouting/python/HLTNanoProducer_cff.py | 3 ++ HLTrigger/NGTScouting/python/hltTaus_cfi.py | 53 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 HLTrigger/NGTScouting/python/hltTaus_cfi.py diff --git a/HLTrigger/NGTScouting/python/HLTNanoProducer_cff.py b/HLTrigger/NGTScouting/python/HLTNanoProducer_cff.py index 9223c2e09293c..1c574ce5dc788 100644 --- a/HLTrigger/NGTScouting/python/HLTNanoProducer_cff.py +++ b/HLTrigger/NGTScouting/python/HLTNanoProducer_cff.py @@ -11,6 +11,7 @@ from HLTrigger.NGTScouting.hltMuons_cfi import * from HLTrigger.NGTScouting.hltTracks_cfi import * from HLTrigger.NGTScouting.hltJets_cfi import * +from HLTrigger.NGTScouting.hltTaus_cfi import * from HLTrigger.NGTScouting.hltTriggerAcceptFilter_cfi import hltTriggerAcceptFilter,dstTriggerAcceptFilter hltNanoProducer = cms.Sequence( @@ -28,6 +29,7 @@ + hltMuonTable + hltPFCandidateTable + hltJetTable + + hltTauTable ) dstNanoProducer = cms.Sequence( @@ -45,6 +47,7 @@ + hltMuonTable + hltPFCandidateTable + hltJetTable + + hltTauTable ) def hltNanoCustomize(process): diff --git a/HLTrigger/NGTScouting/python/hltTaus_cfi.py b/HLTrigger/NGTScouting/python/hltTaus_cfi.py new file mode 100644 index 0000000000000..6863e2f7c98e3 --- /dev/null +++ b/HLTrigger/NGTScouting/python/hltTaus_cfi.py @@ -0,0 +1,53 @@ +import FWCore.ParameterSet.Config as cms +from PhysicsTools.NanoAOD.common_cff import * + +hltTauTable = cms.EDProducer("SimplePFTauCandidateFlatTableProducer", + src = cms.InputTag("hltHpsPFTauProducer"), + name = cms.string("hltHpsPFTau"), + cut = cms.string(""), + doc = cms.string("HLT HPS Taus information"), + singleton = cms.bool(False), + extension = cms.bool(False), + variables = cms.PSet( + P4Vars, + # taken from https://github.com/cms-sw/cmssw/blob/master/PhysicsTools/NanoAOD/python/taus_cff.py#L61 + leadTkPtOverTauPt = Var("?leadChargedHadrCand.isNonnull()?leadChargedHadrCand.pt/pt:1",float, doc="pt of the leading track divided by tau pt",precision=10), + leadTkDeltaEta = Var("?leadChargedHadrCand.isNonnull()?(leadChargedHadrCand.eta - eta):0",float, doc="eta of the leading track, minus tau eta",precision=8), + leadTkDeltaPhi = Var("?leadChargedHadrCand.isNonnull()?deltaPhi(leadChargedHadrCand.phi, phi):0",float, doc="phi of the leading track, minus tau phi",precision=8), + # taken from https://github.com/cms-tau-pog/TauMLTools/blob/00bd9416f3198d7aa19ff9799037c14f2fa14514/Production/python/customiseHLT.py#L88 + charge = Var("charge", int, doc="electric charge"), + vx = Var("vx", float, doc='x coordinate of vertex position'), + vy = Var("vy", float, doc='y coordinate of vertex position'), + vz = Var("vz", float, doc='z coordinate of vertex position'), + pdgId = Var("pdgId", int, doc='PDG identifier'), + dz = Var("? leadPFCand.trackRef.isNonnull && leadPFCand.trackRef.isAvailable ? leadPFCand.trackRef.dz : -999 ", float, doc='lead PF Candidate dz'), + dzError = Var("? leadPFCand.trackRef.isNonnull && leadPFCand.trackRef.isAvailable ? leadPFCand.trackRef.dzError : -999 ", float, doc='lead PF Candidate dz Error'), + decayMode = Var("decayMode", int, doc='tau decay mode'), + # # source: DataFormats/TauReco/interface/PFTau.h + # ## variables available in PF tau + emFraction = Var("emFraction", float, doc = " Ecal/Hcal Cluster Energy"), + hcalTotOverPLead = Var("hcalTotOverPLead", float, doc = " total Hcal Cluster E / leadPFChargedHadron P"), + signalConeSize = Var("signalConeSize", float, doc = "Size of signal cone"), + # variables available in PF jets + jetIsValid = Var("jetRef.isNonnull && jetRef.isAvailable", bool, doc = "jet is valid"), + # source: DataFormats/JetReco/interface/PFJet.h + ## FIXME below does not work - members not found + # chargedHadronEnergy = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.chargedHadronEnergy : -999.", float, doc = "chargedHadronEnergy"), + # neutralHadronEnergy = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.neutralHadronEnergy : -999.", float, doc = "neutralHadronEnergy"), + # photonEnergy = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.photonEnergy : -999.", float, doc = "photonEnergy"), + # muonEnergy = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.muonEnergy : -999.", float, doc = "muonEnergy"), + # chargedHadronMultiplicity = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.chargedHadronMultiplicity : -999.", float, doc = "chargedHadronMultiplicity"), + # neutralHadronMultiplicity = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.neutralHadronMultiplicity : -999.", float, doc = "neutralHadronMultiplicity"), + # photonMultiplicity = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.photonMultiplicity : -999.", float, doc = "photonMultiplicity"), + # muonMultiplicity = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.muonMultiplicity : -999.", float, doc = "muonMultiplicity"), + # chargedMuEnergy = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.chargedMuEnergy : -999.", float, doc = "chargedMuEnergy"), + # neutralEmEnergy = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.neutralEmEnergy : -999.", float, doc = "neutralEmEnergy"), + # chargedMultiplicity = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.chargedMultiplicity : -999.", float, doc = "chargedMultiplicity"), + # neutralMultiplicity = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.neutralMultiplicity : -999.", float, doc = "neutralMultiplicity"), + ), + externalVariables = cms.PSet( + ## FIXME does not work despite DiMediumTau path using this! + ## https://github.com/cms-sw/cmssw/blob/48e0354ea37072eeacc8237a4a79e7ad34b9b0ae/HLTrigger/Configuration/python/HLT_75e33/modules/hltHpsSelectedPFTausMediumDitauWPDeepTau_cfi.py#L6 + deepTauVSjet = ExtVar(cms.InputTag("hltHpsPFTauDeepTauProducer","VSjet"), float, doc="deeptau VSjet", precision=10), + ), +) \ No newline at end of file From 22458df82e716a843d0251e8b11bf4ffb2c3fbd4 Mon Sep 17 00:00:00 2001 From: Artur Lobanov Date: Wed, 11 Jun 2025 11:38:10 +0200 Subject: [PATCH 2/4] Comment out deepTau score since not working --- HLTrigger/NGTScouting/python/hltTaus_cfi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HLTrigger/NGTScouting/python/hltTaus_cfi.py b/HLTrigger/NGTScouting/python/hltTaus_cfi.py index 6863e2f7c98e3..88cbf56040654 100644 --- a/HLTrigger/NGTScouting/python/hltTaus_cfi.py +++ b/HLTrigger/NGTScouting/python/hltTaus_cfi.py @@ -48,6 +48,6 @@ externalVariables = cms.PSet( ## FIXME does not work despite DiMediumTau path using this! ## https://github.com/cms-sw/cmssw/blob/48e0354ea37072eeacc8237a4a79e7ad34b9b0ae/HLTrigger/Configuration/python/HLT_75e33/modules/hltHpsSelectedPFTausMediumDitauWPDeepTau_cfi.py#L6 - deepTauVSjet = ExtVar(cms.InputTag("hltHpsPFTauDeepTauProducer","VSjet"), float, doc="deeptau VSjet", precision=10), + # deepTauVSjet = ExtVar(cms.InputTag("hltHpsPFTauDeepTauProducer","VSjet"), float, doc="deeptau VSjet", precision=10), ), ) \ No newline at end of file From 2a3cc994241bf52f9a2f81285b354720691f857d Mon Sep 17 00:00:00 2001 From: Artur Lobanov Date: Thu, 12 Jun 2025 15:34:58 +0200 Subject: [PATCH 3/4] Remove not needed code from TauTable --- HLTrigger/NGTScouting/python/hltTaus_cfi.py | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/HLTrigger/NGTScouting/python/hltTaus_cfi.py b/HLTrigger/NGTScouting/python/hltTaus_cfi.py index 88cbf56040654..6d326c54163f7 100644 --- a/HLTrigger/NGTScouting/python/hltTaus_cfi.py +++ b/HLTrigger/NGTScouting/python/hltTaus_cfi.py @@ -30,24 +30,5 @@ signalConeSize = Var("signalConeSize", float, doc = "Size of signal cone"), # variables available in PF jets jetIsValid = Var("jetRef.isNonnull && jetRef.isAvailable", bool, doc = "jet is valid"), - # source: DataFormats/JetReco/interface/PFJet.h - ## FIXME below does not work - members not found - # chargedHadronEnergy = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.chargedHadronEnergy : -999.", float, doc = "chargedHadronEnergy"), - # neutralHadronEnergy = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.neutralHadronEnergy : -999.", float, doc = "neutralHadronEnergy"), - # photonEnergy = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.photonEnergy : -999.", float, doc = "photonEnergy"), - # muonEnergy = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.muonEnergy : -999.", float, doc = "muonEnergy"), - # chargedHadronMultiplicity = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.chargedHadronMultiplicity : -999.", float, doc = "chargedHadronMultiplicity"), - # neutralHadronMultiplicity = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.neutralHadronMultiplicity : -999.", float, doc = "neutralHadronMultiplicity"), - # photonMultiplicity = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.photonMultiplicity : -999.", float, doc = "photonMultiplicity"), - # muonMultiplicity = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.muonMultiplicity : -999.", float, doc = "muonMultiplicity"), - # chargedMuEnergy = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.chargedMuEnergy : -999.", float, doc = "chargedMuEnergy"), - # neutralEmEnergy = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.neutralEmEnergy : -999.", float, doc = "neutralEmEnergy"), - # chargedMultiplicity = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.chargedMultiplicity : -999.", float, doc = "chargedMultiplicity"), - # neutralMultiplicity = Var("? jetRef.isNonnull && jetRef.isAvailable ? jetRef.neutralMultiplicity : -999.", float, doc = "neutralMultiplicity"), ), - externalVariables = cms.PSet( - ## FIXME does not work despite DiMediumTau path using this! - ## https://github.com/cms-sw/cmssw/blob/48e0354ea37072eeacc8237a4a79e7ad34b9b0ae/HLTrigger/Configuration/python/HLT_75e33/modules/hltHpsSelectedPFTausMediumDitauWPDeepTau_cfi.py#L6 - # deepTauVSjet = ExtVar(cms.InputTag("hltHpsPFTauDeepTauProducer","VSjet"), float, doc="deeptau VSjet", precision=10), - ), -) \ No newline at end of file +) From ef899dd505a01cc8c16fa51564563b2ed2edcf1b Mon Sep 17 00:00:00 2001 From: Artur Lobanov Date: Thu, 19 Jun 2025 11:52:12 +0200 Subject: [PATCH 4/4] remove hltTau from standard HLTNano sequence --- HLTrigger/NGTScouting/python/HLTNanoProducer_cff.py | 1 - 1 file changed, 1 deletion(-) diff --git a/HLTrigger/NGTScouting/python/HLTNanoProducer_cff.py b/HLTrigger/NGTScouting/python/HLTNanoProducer_cff.py index 1c574ce5dc788..1713fc2a66d12 100644 --- a/HLTrigger/NGTScouting/python/HLTNanoProducer_cff.py +++ b/HLTrigger/NGTScouting/python/HLTNanoProducer_cff.py @@ -29,7 +29,6 @@ + hltMuonTable + hltPFCandidateTable + hltJetTable - + hltTauTable ) dstNanoProducer = cms.Sequence(