File indexing completed on 2024-04-11 23:28:06
0001 import FWCore.ParameterSet.Config as cms
0002 from PhysicsTools.NanoAOD.nano_eras_cff import *
0003 from PhysicsTools.NanoAOD.common_cff import *
0004 from PhysicsTools.NanoAOD.triggerObjectTableProducer_cfi import triggerObjectTableProducer
0005 from PhysicsTools.NanoAOD.globalVariablesTableProducer_cfi import globalVariablesTableProducer
0006 import copy
0007
0008 unpackedPatTrigger = cms.EDProducer("PATTriggerObjectStandAloneUnpacker",
0009 patTriggerObjectsStandAlone = cms.InputTag('slimmedPatTrigger'),
0010 triggerResults = cms.InputTag('TriggerResults::HLT'),
0011 unpackFilterLabels = cms.bool(True)
0012 )
0013
0014 def mksel( selection, doc=None, bit=None):
0015 ddoc=""
0016 if 'OR' in selection:
0017 selection,ddoc=OR(selection)
0018 if 'AND' in selection:
0019 selection,ddoc=AND(selection)
0020 if type(selection)==list:
0021 selection,ddoc=OR(selection)
0022 if type(selection)==tuple:
0023 selection,ddoc=AND(selection)
0024 if doc==None:
0025 doc=ddoc
0026
0027 return cms.PSet(selection=cms.string(selection),doc=cms.string(doc),bit=cms.uint32(bit)) if bit is not None else cms.PSet(selection=cms.string(selection),doc=cms.string(doc))
0028
0029 def chaintoken_(tokens,f,OR_or_AND=None):
0030 if (not type(tokens) in [list,tuple]):
0031 doc=tokens
0032 tokens= [t.strip().rstrip() for t in tokens.split(OR_or_AND)]
0033 else:
0034 doc=f' {OR_or_AND} '.join(tokens)
0035 selection = f"filter('{tokens[0]}')"
0036 for token in tokens[1:]:
0037 filter = f"filter('{token}')"
0038 selection = f"{f}({filter},{selection})"
0039 return selection,doc
0040 def OR(tokens):
0041 return chaintoken_(tokens,"max","OR")
0042 def AND(tokens):
0043 return chaintoken_(tokens,"min","AND")
0044
0045 triggerObjectTable = triggerObjectTableProducer.clone(
0046 name= cms.string("TrigObj"),
0047 src = cms.InputTag("unpackedPatTrigger"),
0048 l1EG = cms.InputTag("caloStage2Digis","EGamma"),
0049 l1Sum = cms.InputTag("caloStage2Digis","EtSum"),
0050 l1Jet = cms.InputTag("caloStage2Digis","Jet"),
0051 l1Muon = cms.InputTag("gmtStage2Digis","Muon"),
0052 l1Tau = cms.InputTag("caloStage2Digis","Tau"),
0053 selections = cms.PSet(
0054 Electron = cms.PSet(
0055 doc = cms.string("PixelMatched e/gamma"),
0056 id = cms.int32(11),
0057 sel = cms.string("type(92) && pt > 7 && (coll('hltEgammaCandidates') || coll('hltEgammaCandidatesUnseeded')) && (filter('*PixelMatchFilter') || filter('*PixelMatchUnseededFilter'))"),
0058 l1seed = cms.string("type(-98)"), l1deltaR = cms.double(0.3),
0059
0060 skipObjectsNotPassingQualityBits = cms.bool(True),
0061 qualityBits = cms.VPSet(
0062 mksel("filter('*CaloIdLTrackIdLIsoVL*TrackIso*Filter')","CaloIdL_TrackIdL_IsoVL"),
0063 mksel("filter('hltEle*WPTight*TrackIsoFilter*')","1e (WPTight)"),
0064 mksel("filter('hltEle*WPLoose*TrackIsoFilter')","1e (WPLoose)"),
0065 mksel("filter('*OverlapFilter*IsoEle*PFTau*')","OverlapFilter PFTau"),
0066 mksel("filter('hltEle*Ele*CaloIdLTrackIdLIsoVLTrackIsoLeg1Filter')","2e (Leg 1)"),
0067 mksel("filter('hltEle*Ele*CaloIdLTrackIdLIsoVLTrackIsoLeg2Filter')","2e (Leg 2)"),
0068 mksel("filter('hltMu*TrkIsoVVL*Ele*CaloIdLTrackIdLIsoVL*Filter*')","1e-1mu"),
0069 mksel("filter('hlt*OverlapFilterIsoEle*PFTau*')","1e-1tau"),
0070 mksel("filter('hltEle*Ele*Ele*CaloIdLTrackIdLDphiLeg*Filter')","3e"),
0071 mksel(["hltL3fL1Mu*DoubleEG*Filtered*","hltMu*DiEle*CaloIdLTrackIdLElectronleg*Filter"],"2e-1mu"),
0072 mksel(["hltL3fL1DoubleMu*EG*Filter*","hltDiMu*Ele*CaloIdLTrackIdLElectronleg*Filter"],"1e-2mu"),
0073 mksel(("hltEle32L1DoubleEGWPTightGsfTrackIsoFilter","hltEGL1SingleEGOrFilter"),"1e (32_L1DoubleEG_AND_L1SingleEGOr)"),
0074 mksel("filter('hltEle*CaloIdVTGsfTrkIdTGsfDphiFilter')","1e (CaloIdVT_GsfTrkIdT)"),
0075 mksel("path('HLT_Ele*PFJet*')","1e (PFJet)"),
0076 mksel(["hltEG175HEFilter","hltEG200HEFilter"],"1e (Photon175_OR_Photon200)"),
0077 mksel("filter('hltEle*CaloIdLMWPMS2Filter')","2e (CaloIdL_MW seeded)"),
0078 mksel("filter('hltDiEle*CaloIdLMWPMS2UnseededFilter')","2e (CaloIdL_MW unseeded)"),
0079 mksel("filter('hlt*OverlapFilterIsoEle*ETau*PNet*Tau*')", "1e-1tau PNet")
0080 )
0081 ),
0082 Photon = cms.PSet(
0083 id = cms.int32(22),
0084 sel = cms.string("type(92) && pt > 15 && coll('hltEgammaCandidates')"),
0085 l1seed = cms.string("type(-98)"), l1deltaR = cms.double(0.3),
0086
0087 skipObjectsNotPassingQualityBits = cms.bool(True),
0088 qualityBits = cms.VPSet(
0089 mksel("filter('hltEG33L1EG26HEFilter')","hltEG33L1EG26HEFilter"),
0090 mksel("filter('hltEG50HEFilter')","hltEG50HEFilter"),
0091 mksel("filter('hltEG75HEFilter')","hltEG75HEFilter"),
0092 mksel("filter('hltEG90HEFilter')","hltEG90HEFilter"),
0093 mksel("filter('hltEG120HEFilter')","hltEG120HEFilter"),
0094 mksel("filter('hltEG150HEFilter')","hltEG150HEFilter"),
0095 mksel("filter('hltEG175HEFilter')","hltEG175HEFilter"),
0096 mksel("filter('hltEG200HEFilter')","hltEG200HEFilter"),
0097 mksel("filter('hltHtEcal800')","hltHtEcal800"),
0098 mksel("filter('hltEG110EBTightIDTightIsoTrackIsoFilter')","hltEG110EBTightIDTightIsoTrackIsoFilter"),
0099 mksel("filter('hltEG120EBTightIDTightIsoTrackIsoFilter')","hltEG120EBTightIDTightIsoTrackIsoFilter"),
0100 mksel("filter('hltMu17Photon30IsoCaloIdPhotonlegTrackIsoFilter')","1mu-1photon"),
0101 mksel("filter('hltEG30LR9Id85b90eHE12R9Id50b80eR9IdLastFilter')","hltEG30LR9Id85b90eHE12R9Id50b80eR9IdLastFilter"),
0102 mksel("filter('hltEG30LIso60CaloId15b35eHE12R9Id50b80eEcalIsoLastFilter')","hltEG30LIso60CaloId15b35eHE12R9Id50b80eEcalIsoLastFilter"),
0103 mksel("filter('hltEG22Iso60CaloId15b35eHE12R9Id50b80eTrackIsoUnseededLastFilter')","hltEG22Iso60CaloId15b35eHE12R9Id50b80eTrackIsoUnseededLastFilter"),
0104 mksel("filter('hltEG22R9Id85b90eHE12R9Id50b80eR9UnseededLastFilter')","hltEG22R9Id85b90eHE12R9Id50b80eR9UnseededLastFilter"),
0105 mksel("filter('hltEG30Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoFilter')","hltEG30Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoFilter"),
0106 mksel("filter('hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eTrackIsoUnseededFilter')","hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eTrackIsoUnseededFilter")
0107 )
0108 ),
0109 Muon = cms.PSet(
0110 id = cms.int32(13),
0111 sel = cms.string("type(83) && pt > 5 && (coll('hltIterL3MuonCandidates') || (pt > 45 && coll('hltHighPtTkMuonCands')) || (pt > 95 && coll('hltOldL3MuonCandidates')))"),
0112 l1seed = cms.string("type(-81)"), l1deltaR = cms.double(0.5),
0113 l2seed = cms.string("type(83) && coll('hltL2MuonCandidates')"), l2deltaR = cms.double(0.3),
0114 skipObjectsNotPassingQualityBits = cms.bool(True),
0115 qualityBits = cms.VPSet(
0116 mksel(["*RelTrkIsoVVLFiltered0p4","*RelTrkIsoVVLFiltered"],"TrkIsoVVL"),
0117 mksel(["hltL3crIso*IsoFiltered0p07","hltL3crIso*IsoFiltered0p08","hltL3crIso*IsoFiltered"],"Iso"),
0118 mksel("filter('*OverlapFilterIsoMu*PFTau*')","OverlapFilter PFTau"),
0119 mksel(["hltL3crIsoL1*SingleMu*IsoFiltered0p07","hltL3crIsoL1sMu*IsoFiltered0p07","hltL3crIsoL1*SingleMu*IsoFiltered0p08","hltL3crIsoL1sMu*IsoFiltered0p08","hltL3crIsoL1*SingleMu*IsoFiltered","hltL3crIsoL1sMu*IsoFiltered"],"1mu"),
0120 mksel("filter('hltDiMuon*Filtered*')","2mu"),
0121 mksel("filter('hltMu*TrkIsoVVL*Ele*CaloIdLTrackIdLIsoVL*Filter*')","1mu-1e"),
0122 mksel("filter('hlt*OverlapFilterIsoMu*PFTau*')","1mu-1tau"),
0123 mksel("filter('hltL3fL1TripleMu*')","3mu"),
0124 mksel(["hltL3fL1DoubleMu*EG*Filtered*","hltDiMu*Ele*CaloIdLTrackIdLElectronleg*Filter"],"2mu-1e"),
0125 mksel(["hltL3fL1Mu*DoubleEG*Filtered*","hltMu*DiEle*CaloIdLTrackIdLElectronleg*Filter"],"1mu-2e"),
0126 mksel(["hltL3fL1sMu*L3Filtered50*","hltL3fL1sMu*TkFiltered50*"],"1mu (Mu50)"),
0127 mksel(["hltL3fL1sMu*L3Filtered100*","hltL3fL1sMu*TkFiltered100*"],"1mu (Mu100)"),
0128 mksel("filter('hltMu17Photon30IsoCaloIdMuonlegL3Filtered17Q')","1mu-1photon"),
0129 mksel("filter('hlt*OverlapFilterIsoMu*PNet*')","1mu-1tau PNet")
0130 )
0131 ),
0132 Tau = cms.PSet(
0133 id = cms.int32(15),
0134 sel = cms.string("type(84) && pt > 5 && ( coll('*Tau*') || filter('*Loose*') || filter('*Medium*') || filter('*Tight*') || filter('*DeepTau*') || filter('*ChargedIso*') || filter('hltL2Tau*IsoFilter*') || filter('hltL2TauTagNNFilter*') || filter('*OverlapFilter*') || filter('*DisplPFTau*') || filter('*VBFIsoTau*') || filter('*Monitoring*') || filter('*DoublePFTau*') || filter('*SingleTau*') || filter('hlt*SelectedPFTau') || filter('*ETau*') || filter('*MuTau*') || filter('*PNetTauhTag*') )"),
0135 l1seed = cms.string("type(-100)"), l1deltaR = cms.double(0.3),
0136 l2seed = cms.string("type(84) && coll('hltL2TauJetsL1IsoTauSeeded')"), l2deltaR = cms.double(0.3),
0137 skipObjectsNotPassingQualityBits = cms.bool(True),
0138 qualityBits = cms.VPSet(
0139 mksel("filter('*Loose*')","Loose"),
0140 mksel("filter('*Medium*')","Medium"),
0141 mksel("filter('*Tight*')","Tight"),
0142 mksel("filter('*DeepTau*')","DeepTau no spec WP"),
0143 mksel("filter('*PNetTauhTag*')","PNet no specified WP"),
0144 mksel("filter('*ChargedIso*')","ChargedIso"),
0145 mksel("filter('*Dxy*')","Dxy"),
0146 mksel("filter('*ETau*')","e-tau inside filter"),
0147 mksel("filter('*MuTau*')","mu-tau inside filter"),
0148 mksel(["hltSelectedPFTau180*SingleTauWPDeepTauL1HLTMatched","hltSinglePFJet130PNetTauhTag*WPL2SingleTau"],"Single Tau"),
0149 mksel(["hltHpsDoublePFTau20*DeepTauDitauWPAgainstMuon","hltDoublePFJets20PNetTauhTagL2*DoubleTau*"],"VBF DiTau"),
0150 mksel(["hlt*DoublePFTau*L1HLTMatched","hltDoublePFJets30PNetTauhTag*WPL2DoubleTau"],"di-tau"),
0151 mksel(["hltHpsOverlapFilterIsoEle*WPTightGsf*PFTau*","hltSinglePFJets30PNetTauhTag*WPMatchETauL1"],"e-tau"),
0152 mksel(["hltHpsOverlapFilterIsoMu*PFTau*","hltSinglePFJets27PNetTauhTag*WPMatchMuTauL1"],"mu-tau"),
0153 mksel(["hltHpsOverlapFilterDeepTauDoublePFTau*PFJet*","hltDoublePFJets26PNetTauhTagL2DoubleTau*Jet*"],"di-tau + PFJet"),
0154 mksel("filter('hltHpsOverlapFilterDisplacedEle*DisplPFTau*')","e-tau displaced"),
0155 mksel("filter('hltHpsOverlapFilterDisplacedMu*DisplPFTau*')","mu-tau displaced"),
0156 mksel("filter('hlt*Double*ChargedIsoDisplPFTau*')","di-tau displaced"),
0157 mksel("filter('*Monitoring')","Monitoring"),
0158 mksel(["*MonitoringForVBFIsoTau","hltSinglePFJet45PNetTauhTagL2*VBFIsoTauMonitoring*"],"VBF SingleTau Monitoring"),
0159 mksel(["hltHpsOverlapFilter*DeepTauPFTau*30Monitoring*","hltSinglePFJet26PNetTauhTag*L2Mu18TauYY*"],"DiTau+Jet Monitoring"),
0160 mksel("filter('hltHpsOverlapFilterIsoMu*MediumChargedIsoDisplTau*')","Monitoring muTau displaced"),
0161 mksel("filter('*OneProng*')","OneProng"),
0162 mksel(["hltHpsOverlapFilterIsoMu24*DitauWPDeepTauPFTau35Monitoring","hltSinglePFJet30PNetTauhTag*WPL2MuXXTauYY"],"DiTau Monitoring"),
0163 mksel("filter('*OverlapFilter*')","OverlapFilter"),
0164 mksel(["hltHpsOverlapFilterIsoMu24*DeepTauPFTau20","hltSinglePFJet20PNetTauhTag*VBFDiTau*L2Tau"],"VBF DiTau monitoring"),
0165 mksel(["hltHpsOverlapFilterIsoMu24*SingleTauWPDeepTauPFTau180L1Seeded","hltSinglePFJet130PNetTauhTag*WPL2Mu22Tau40"],"SingleTau Monitoring"),
0166 mksel(["*L1HLTMatched*", "*L1Seeded"],"MatchL1HLT"),
0167 mksel("filter('*Hps*')","HPS"),
0168 mksel("filter('*SinglePFTau*')","single PF-tau inside filter"),
0169 mksel(["hltHpsSinglePFTau45*DitauWPDeepTauL1HLTMatchedSingleTauHLT","hltSinglePFJet45PNetTauhTagL2*VBFIsoTau*"],"VBF SingleTau"),
0170 )
0171 ),
0172 BoostedTau = cms.PSet(
0173 id = cms.int32(1515),
0174 sel = cms.string("type(85) && pt > 120 && coll('hltAK8PFJetsCorrected') && filter('hltAK8SinglePFJets*SoftDropMass40*ParticleNetTauTau')"),
0175 l1seed = cms.string("type(-99)"), l1deltaR = cms.double(0.3),
0176 l2seed = cms.string("type(85) && coll('hltAK8CaloJetsCorrectedIDPassed')"), l2deltaR = cms.double(0.3),
0177 skipObjectsNotPassingQualityBits = cms.bool(True),
0178 qualityBits = cms.VPSet(
0179 mksel("filter('hltAK8SinglePFJets*SoftDropMass40*ParticleNetTauTau')","HLT_AK8PFJetX_SoftDropMass40_PFAK8ParticleNetTauTau0p30"),
0180 mksel(["hltAK8SinglePFJets230SoftDropMass40PNetTauTauTag0p03"])
0181 )
0182 ),
0183 Jet = cms.PSet(
0184 id = cms.int32(1),
0185 sel = cms.string("( type(0) || type(85) || type(86) || type(-99) )"),
0186 l1seed = cms.string("type(-99)"), l1deltaR = cms.double(0.3),
0187 l2seed = cms.string("type(85) || type(86) || type(-99)"), l2deltaR = cms.double(0.3),
0188 skipObjectsNotPassingQualityBits = cms.bool(True),
0189 qualityBits = cms.VPSet(
0190 mksel(["hlt4PixelOnlyPFCentralJetTightIDPt20"]),
0191 mksel(["hlt3PixelOnlyPFCentralJetTightIDPt30"]),
0192 mksel(["hltPFJetFilterTwoC30"]),
0193 mksel(["hlt4PFCentralJetTightIDPt30"]),
0194 mksel(["hlt4PFCentralJetTightIDPt35"]),
0195 mksel(["hltQuadCentralJet30"]),
0196 mksel(["hlt2PixelOnlyPFCentralJetTightIDPt40"]),
0197 mksel(["hltL1sTripleJet1008572VBFIorHTTIorDoubleJetCIorSingleJet","hltL1sTripleJet1058576VBFIorHTTIorDoubleJetCIorSingleJet","hltL1sTripleJetVBFIorHTTIorSingleJet"]),
0198 mksel(["hlt3PFCentralJetTightIDPt40"]),
0199 mksel(["hlt3PFCentralJetTightIDPt45"]),
0200 mksel(["hltL1sQuadJetC60IorHTT380IorHTT280QuadJetIorHTT300QuadJet","hltL1sQuadJetC50to60IorHTT280to500IorHTT250to340QuadJet"]),
0201 mksel(["hltBTagCaloDeepCSVp17Double"]),
0202 mksel(["hltPFCentralJetLooseIDQuad30"]),
0203 mksel(["hlt1PFCentralJetLooseID75"]),
0204 mksel(["hlt2PFCentralJetLooseID60"]),
0205 mksel(["hlt3PFCentralJetLooseID45"]),
0206 mksel(["hlt4PFCentralJetLooseID40"]),
0207 mksel(["hltHpsOverlapFilterDeepTauDoublePFTau*PFJet*","hltHpsOverlapFilterDoublePNetTauh26PFJet*"],"(DiTau+Jet (Jet) Signal)"),
0208 mksel(["*CrossCleaned*MediumDeepTauDitauWPPFTau*","hltMatchedVBFTwoPFJets2CrossCleanedFrom*Double20PNetTauhTag*"],"(VBF DiTau Jets)"),
0209 mksel(["*CrossCleanedUsingDiJetCorrChecker*","hlt2PFJetsL1VBFDiJetIsoTauMatchedVBFLooseID*"],"(VBF SingleTau Jets)"),
0210 mksel(["hltHpsOverlapFilterDeepTauPFTau*PFJet*","hltHpsOverlapFilterIsoMu24SinglePFJet26PNetTauhTagPFJet*"],"Muon+Tau+Jet (Jet) Monitoring"),
0211 mksel(["hlt2PFCentralJetTightIDPt50"]),
0212 mksel(["hlt1PixelOnlyPFCentralJetTightIDPt60"]),
0213 mksel(["hlt1PFCentralJetTightIDPt70"]),
0214 mksel(["hltBTagPFDeepJet1p5Single"]),
0215 mksel(["hltBTagPFDeepJet4p5Triple"]),
0216 mksel(["hltBTagCentralJetPt35PFParticleNet2BTagSum0p65","hltBTagCentralJetPt30PFParticleNet2BTagSum0p65","hltPFJetTwoC30PFBTagParticleNet2BTagSum0p65","hltPFCentralJetPt30PNet2BTagMean0p55"]),
0217 mksel(["hlt2PixelOnlyPFCentralJetTightIDPt20","hlt1PixelOnlyPFCentralJetTightIDPt50"]),
0218 mksel(["hlt2PFCentralJetTightIDPt30","hltPF2CentralJetTightIDPt30"]),
0219 mksel(["hlt1PFCentralJetTightIDPt60"]),
0220 mksel(["hltPF2CentralJetPt30PNet2BTagMean0p50"]),
0221 ),
0222 ),
0223 FatJet = cms.PSet(
0224 id = cms.int32(6),
0225 sel = cms.string("type(85) && pt > 120"),
0226 l1seed = cms.string("type(-99)"), l1deltaR = cms.double(0.3),
0227 l2seed = cms.string("type(85) && coll('hltAK8CaloJetsCorrectedIDPassed')"), l2deltaR = cms.double(0.3),
0228 skipObjectsNotPassingQualityBits = cms.bool(True),
0229 qualityBits = cms.VPSet(
0230 mksel("coll('hltAK8PFJetsCorrected')"),
0231 mksel(["hltAK8SingleCaloJet200"]),
0232 mksel("coll('hltAK8PFSoftDropJets230')"),
0233 mksel(["hltAK8SinglePFJets230SoftDropMass40BTagParticleNetBB0p35",
0234 "hltAK8SinglePFJets250SoftDropMass40BTagParticleNetBB0p35",
0235 "hltAK8SinglePFJets275SoftDropMass40BTagParticleNetBB0p35"]),
0236 mksel(["hltAK8DoublePFJetSDModMass30"]),
0237 mksel(["hltAK8DoublePFJetSDModMass50"]),
0238 )
0239 ),
0240 MET = cms.PSet(
0241 id = cms.int32(2),
0242 sel = cms.string("type(87) && pt > 30 && coll('hltPFMETProducer')"),
0243 l1seed = cms.string("type(-87) && coll('L1ETM')"), l1deltaR = cms.double(9999),
0244 l1seed_2 = cms.string("type(-87) && coll('L1ETMHF')"), l1deltaR_2 = cms.double(9999),
0245 l2seed = cms.string("type( 87) && coll('hltMetClean')"), l2deltaR = cms.double(9999),
0246 skipObjectsNotPassingQualityBits = cms.bool(True),
0247 qualityBits = cms.VPSet()
0248 ),
0249 HT = cms.PSet(
0250 id = cms.int32(3),
0251 sel = cms.string("type(89) || type(-89)"),
0252 l1seed = cms.string("type(-89) && coll('L1HTT')"), l1deltaR = cms.double(9999),
0253 l1seed_2 = cms.string("type(-89) && coll('L1HTTHF')"), l1deltaR_2 = cms.double(9999),
0254 l2seed = cms.string("type(89) && coll('hltHtMhtJet30')"), l2deltaR = cms.double(9999),
0255 skipObjectsNotPassingQualityBits = cms.bool(True),
0256 qualityBits = cms.VPSet(
0257 mksel(["hltL1sTripleJetVBFIorHTTIorDoubleJetCIorSingleJet"]),
0258 mksel(["hltL1sQuadJetC50IorQuadJetC60IorHTT280IorHTT300IorHTT320IorTripleJet846848VBFIorTripleJet887256VBFIorTripleJet927664VBF","hltL1sQuadJetCIorTripleJetVBFIorHTT"]),
0259 mksel(["hltL1sQuadJetC60IorHTT380IorHTT280QuadJetIorHTT300QuadJet","hltL1sQuadJetC50to60IorHTT280to500IorHTT250to340QuadJet"]),
0260 mksel(["hltCaloQuadJet30HT300","hltCaloQuadJet30HT320"]),
0261 mksel(["hltPFCentralJetsLooseIDQuad30HT300","hltPFCentralJetsLooseIDQuad30HT330"]),
0262 mksel(["hltPFHT280Jet30"])
0263 ),
0264 ),
0265 MHT = cms.PSet(
0266 id = cms.int32(4),
0267 sel = cms.string("type(90)"),
0268 l1seed = cms.string("type(-90) && coll('L1HTM')"), l1deltaR = cms.double(9999),
0269 l1seed_2 = cms.string("type(-90) && coll('L1HTMHF')"), l1deltaR_2 = cms.double(9999),
0270 l2seed = cms.string("type(90) && coll('hltHtMhtJet30')"), l2deltaR = cms.double(9999),
0271 skipObjectsNotPassingQualityBits = cms.bool(True),
0272 qualityBits = cms.VPSet(
0273 mksel(["hltCaloQuadJet30HT300","hltCaloQuadJet30HT320"]),
0274 mksel(["hltPFCentralJetsLooseIDQuad30HT300","hltPFCentralJetsLooseIDQuad30HT330"])
0275 ),
0276 ),
0277 ),
0278 )
0279
0280
0281
0282
0283 run2_HLTconditions_2016.toModify(
0284 triggerObjectTable.selections.Muon,
0285 sel = "type(83) && pt > 5 && (coll('hlt*L3MuonCandidates') || coll('hlt*TkMuonCands') || coll('hlt*TrkMuonCands'))",
0286 qualityBits = cms.VPSet(
0287 mksel("filter('*RelTrkIso*Filtered0p4')","TrkIsoVVL"),
0288 mksel("filter('hltL3cr*IsoFiltered0p09')","Iso"),
0289 mksel("filter('*OverlapFilter*IsoMu*PFTau*')","OverlapFilter PFTau"),
0290 mksel("filter('hltL3f*IsoFiltered0p09')","IsoTkMu"),
0291 mksel(["hltL3fL1sMu*L3Filtered50*","hltL3fL1sMu*TkFiltered50*"],"1mu (Mu50)", bit=10)
0292 )
0293 ).toModify(
0294 triggerObjectTable.selections.Tau,
0295 sel = "type(84) && pt > 5 && coll('*Tau*') && ( filter('*LooseIso*') || filter('*MediumIso*') || filter('*MediumComb*Iso*') || filter('hltL2TauIsoFilter') || filter('*OverlapFilter*IsoMu*') || filter('*OverlapFilter*IsoEle*') || filter('*L1HLTMatched*') || filter('*Dz02*') )",
0296 qualityBits = cms.VPSet(
0297 mksel("(filter('*LooseIso*')-filter('*VLooseIso*'))","LooseIso"),
0298 mksel("filter('*Medium*Iso*')","Medium(Comb)Iso"),
0299 mksel("filter('*VLooseIso*')","VLooseIso"),
0300 mksel("0","None"),
0301 mksel("filter('hltL2TauIsoFilter')","L2p5 pixel iso"),
0302 mksel("filter('*OverlapFilter*IsoMu*')","OverlapFilter IsoMu"),
0303 mksel("filter('*OverlapFilter*IsoEle*')","OverlapFilter IsoEle"),
0304 mksel("filter('*L1HLTMatched*')","L1-HLT matched"),
0305 mksel("filter('*Dz02*')","Dz")
0306 )
0307 )
0308
0309 _run2_2017_2018_tau_filters = [
0310 mksel("filter('*LooseChargedIso*')","LooseChargedIso"),
0311 mksel("filter('*MediumChargedIso*')","MediumChargedIso"),
0312 mksel("filter('*TightChargedIso*')","TightChargedIso"),
0313 mksel("filter('*DeepTau*')","DeepTau"),
0314 mksel("filter('*TightOOSCPhotons*')","TightID OOSC photons"),
0315 mksel("filter('*Hps*')","HPS"),
0316 mksel("filter('hlt*DoublePFTau*TrackPt1*ChargedIsolation*Dz02*')","charged iso di-tau"),
0317 mksel("filter('hlt*DoublePFTau*DeepTau*L1HLTMatched')","deeptau di-tau"),
0318 mksel("filter('hlt*OverlapFilterIsoEle*WPTightGsf*PFTau*')","e-tau"),
0319 mksel("filter('hlt*OverlapFilterIsoMu*PFTau*')","mu-tau"),
0320 mksel("filter('hlt*SelectedPFTau*L1HLTMatched')","single-tau/tau+MET"),
0321 mksel("filter('hlt*DoublePFTau*TrackPt1*ChargedIso*')","run 2 VBF+ditau"),
0322 mksel("filter('hlt*DoublePFTau*Track*ChargedIso*AgainstMuon')","run 3 VBF+ditau"),
0323 mksel("filter('hltHpsSinglePFTau*HLTMatched')","run 3 double PF jets + ditau"),
0324 mksel("filter('hltHpsOverlapFilterDeepTauDoublePFTau*PFJet*')","di-tau + PFJet"),
0325 mksel("filter('hlt*Double*ChargedIsoDisplPFTau*Dxy*')","Displaced Tau"),
0326 mksel("filter('*Monitoring')","Monitoring"),
0327 mksel("filter('*Reg')","regional paths"),
0328 mksel("filter('*L1Seeded')","L1 seeded paths"),
0329 mksel("filter('*1Prong')","1 prong tau paths")
0330 ]
0331 (run2_HLTconditions_2017 | run2_HLTconditions_2018).toModify(
0332 triggerObjectTable.selections.Tau,
0333 sel = "type(84) && pt > 5 && coll('*Tau*') && ( filter('*LooseChargedIso*') || filter('*MediumChargedIso*') || filter('*DeepTau*') || filter('*TightChargedIso*') || filter('*TightOOSCPhotons*') || filter('hltL2TauIsoFilter') || filter('*OverlapFilterIsoMu*') || filter('*OverlapFilterIsoEle*') || filter('*L1HLTMatched*') || filter('*Dz02*') || filter('*DoublePFTau*') || filter('*SinglePFTau*') || filter('hlt*SelectedPFTau') || filter('*DisplPFTau*') )",
0334 qualityBits = cms.VPSet(_run2_2017_2018_tau_filters)
0335 )
0336 _run2_HLTconditions = run2_HLTconditions_2016 | run2_HLTconditions_2017 | run2_HLTconditions_2018
0337
0338 _run2_2016_jet_filters = [
0339 mksel(["*CrossCleaned*LooseChargedIsoPFTau*"], "VBF cross-cleaned from loose iso PFTau"),
0340 mksel(["hltBTagCaloCSVp087Triple"], "hltBTagCaloCSVp087Triple"),
0341 mksel(["hltDoubleCentralJet90"], "hltDoubleCentralJet90"),
0342 mksel(["hltDoublePFCentralJetLooseID90"], "hltDoublePFCentralJetLooseID90"),
0343 mksel(["hltL1sTripleJetVBFIorHTTIorDoubleJetCIorSingleJet"], "hltL1sTripleJetVBFIorHTTIorDoubleJetCIorSingleJet"),
0344 mksel(["hltQuadCentralJet30"], "hltQuadCentralJet30"),
0345 mksel(["hltQuadPFCentralJetLooseID30"], "hltQuadPFCentralJetLooseID30"),
0346 mksel(["hltL1sQuadJetC50IorQuadJetC60IorHTT280IorHTT300IorHTT320IorTripleJet846848VBFIorTripleJet887256VBFIorTripleJet927664VBF", "hltL1sQuadJetCIorTripleJetVBFIorHTT"], "hltL1sQuadJetC50IorQuadJetC60IorHTT280IorHTT300IorHTT320IorTripleJet846848VBFIorTripleJet887256VBFIorTripleJet927664VBF or hltL1sQuadJetCIorTripleJetVBFIorHTT"),
0347 mksel(["hltQuadCentralJet45"], "hltQuadCentralJet45"),
0348 mksel(["hltQuadPFCentralJetLooseID45"], "hltQuadPFCentralJetLooseID45"),
0349 mksel(["hltL1sQuadJetC60IorHTT380IorHTT280QuadJetIorHTT300QuadJet", "hltL1sQuadJetC50to60IorHTT280to500IorHTT250to340QuadJet"], "hltL1sQuadJetC60IorHTT380IorHTT280QuadJetIorHTT300QuadJet or hltL1sQuadJetC50to60IorHTT280to500IorHTT250to340QuadJet"),
0350 mksel(["hltBTagCaloCSVp05Double", "hltBTagCaloDeepCSVp17Double"], "hltBTagCaloCSVp05Double or hltBTagCaloDeepCSVp17Double"),
0351 mksel(["hltPFCentralJetLooseIDQuad30"], "hltPFCentralJetLooseIDQuad30"),
0352 mksel(["hlt1PFCentralJetLooseID75"], "hlt1PFCentralJetLooseID75"),
0353 mksel(["hlt2PFCentralJetLooseID60"], "hlt2PFCentralJetLooseID60"),
0354 mksel(["hlt3PFCentralJetLooseID45"], "hlt3PFCentralJetLooseID45"),
0355 mksel(["hlt4PFCentralJetLooseID40"], "hlt4PFCentralJetLooseID40"),
0356 mksel(["hltBTagPFCSVp070Triple", "hltBTagPFDeepCSVp24Triple", "hltBTagPFDeepCSV4p5Triple"], "hltBTagPFCSVp070Triple or hltBTagPFDeepCSVp24Triple or hltBTagPFDeepCSV4p5Triple"),
0357 mksel(["hltHpsOverlapFilterDeepTauDoublePFTau*PFJet*"], "Double tau + jet"),
0358 mksel(["*CrossCleaned*MediumDeepTauDitauWPPFTau*"], "VBF cross-cleaned from medium deeptau PFTau"),
0359 mksel(["*CrossCleanedUsingDiJetCorrChecker*"], "VBF cross-cleaned using dijet correlation checker"),
0360 mksel(["hltHpsOverlapFilterDeepTauPFTau*PFJet*"], "monitoring muon + tau + jet"),
0361 ]
0362 run2_HLTconditions_2016.toModify(triggerObjectTable.selections.Jet, qualityBits = cms.VPSet(_run2_2016_jet_filters))
0363
0364 _run2_2017_jet_filters = copy.deepcopy(_run2_2016_jet_filters)
0365 _run2_2017_jet_filters[7] = mksel(["hltL1sTripleJet1008572VBFIorHTTIorDoubleJetCIorSingleJet","hltL1sTripleJet1058576VBFIorHTTIorDoubleJetCIorSingleJet","hltL1sTripleJetVBFIorHTTIorSingleJet"])
0366 run2_HLTconditions_2017.toModify(triggerObjectTable.selections.Jet, qualityBits = cms.VPSet(_run2_2017_jet_filters))
0367
0368 _run2_2018_jet_filters = copy.deepcopy(_run2_2017_jet_filters)
0369 _run2_2018_jet_filters[2] = mksel(["hltPFJetFilterTwoC30"])
0370 _run2_2018_jet_filters.append(mksel(["hltBTagPFDeepCSV1p5Single"]))
0371 run2_HLTconditions_2018.toModify(triggerObjectTable.selections.Jet, qualityBits = cms.VPSet(_run2_2018_jet_filters))
0372
0373
0374 from PhysicsTools.PatUtils.L1PrefiringWeightProducer_cff import prefiringweight
0375
0376 (run2_muon_2016 & tracker_apv_vfp30_2016).toModify(
0377 prefiringweight,
0378 DataEraECAL = cms.string("UL2016preVFP"),
0379 DataEraMuon = cms.string("2016preVFP")
0380 )
0381 (run2_muon_2016 & ~tracker_apv_vfp30_2016).toModify(
0382 prefiringweight,
0383 DataEraECAL = cms.string("UL2016postVFP"),
0384 DataEraMuon = cms.string("2016postVFP")
0385 )
0386
0387 run2_jme_2017.toModify(
0388 prefiringweight,
0389 DataEraECAL = cms.string("UL2017BtoF"),
0390 DataEraMuon = cms.string("20172018")
0391 )
0392
0393 run2_muon_2018.toModify(
0394 prefiringweight,
0395 DataEraECAL = cms.string("None"),
0396 DataEraMuon = cms.string("20172018")
0397 )
0398
0399 l1PreFiringEventWeightTable = globalVariablesTableProducer.clone(
0400 name = cms.string("L1PreFiringWeight"),
0401 variables = cms.PSet(
0402 Nom = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProb"), "float", doc = "L1 pre-firing event correction weight (1-probability)", precision=8),
0403 Up = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbUp"), "float", doc = "L1 pre-firing event correction weight (1-probability), up var.", precision=8),
0404 Dn = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbDown"), "float", doc = "L1 pre-firing event correction weight (1-probability), down var.", precision=8),
0405 Muon_Nom = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbMuon"), "float", doc = "Muon L1 pre-firing event correction weight (1-probability)", precision=8),
0406 Muon_SystUp = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbMuonSystUp"), "float", doc = "Muon L1 pre-firing event correction weight (1-probability), up var. syst.", precision=8),
0407 Muon_SystDn = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbMuonSystDown"), "float", doc = "Muon L1 pre-firing event correction weight (1-probability), down var. syst.", precision=8),
0408 Muon_StatUp = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbMuonStatUp"), "float", doc = "Muon L1 pre-firing event correction weight (1-probability), up var. stat.", precision=8),
0409 Muon_StatDn = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbMuonStatDown"), "float", doc = "Muon L1 pre-firing event correction weight (1-probability), down var. stat.", precision=8),
0410 ECAL_Nom = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbECAL"), "float", doc = "ECAL L1 pre-firing event correction weight (1-probability)", precision=8),
0411 ECAL_Up = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbECALUp"), "float", doc = "ECAL L1 pre-firing event correction weight (1-probability), up var.", precision=8),
0412 ECAL_Dn = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbECALDown"), "float", doc = "ECAL L1 pre-firing event correction weight (1-probability), down var.", precision=8),
0413 )
0414 )
0415
0416 l1bits=cms.EDProducer("L1TriggerResultsConverter",
0417 src=cms.InputTag("gtStage2Digis"),
0418 legacyL1=cms.bool(False),
0419 storeUnprefireableBits=cms.bool(True),
0420 src_ext=cms.InputTag("simGtExtUnprefireable"))
0421
0422 triggerObjectTablesTask = cms.Task( unpackedPatTrigger,triggerObjectTable,l1bits)
0423
0424 _run2_HLTconditions.toReplaceWith(
0425 triggerObjectTablesTask, triggerObjectTablesTask.copyAndAdd(prefiringweight,l1PreFiringEventWeightTable)
0426 )