Back to home page

Project CMSSW displayed by LXR

 
 

    


Warning, file /PhysicsTools/NanoAOD/python/triggerObjects_cff.py was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

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     #print("creating an entry with",selection,doc)
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"), # this may also select photons!
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             #l2seed = cms.string("type(92) && coll('')"),  l2deltaR = cms.double(0.5),
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 with possibile contribution from Xtriggers besides singleElectron)"),
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                 mksel("filter('hltEle30WPTightGsfTrackIsoFilter')","1e (HLT30WPTightGSfTrackIso)"),
0081                 mksel("filter('hltEle*erWPTightGsfTrackIsoFilterNoRhoCorrectionForVBF')", "WPTightGsfTrackIso for VBF"),
0082                 )
0083         ),
0084         Photon = cms.PSet(
0085             id = cms.int32(22),
0086             sel = cms.string("type(92) && pt > 15 && coll('hltEgammaCandidates')"),
0087             l1seed = cms.string("type(-98)"),  l1deltaR = cms.double(0.3),
0088             #l2seed = cms.string("type(92) && coll('')"),  l2deltaR = cms.double(0.5),
0089             skipObjectsNotPassingQualityBits = cms.bool(True),
0090             qualityBits = cms.VPSet(
0091                 mksel("filter('hltEG33L1EG26HEFilter')","hltEG33L1EG26HEFilter"),
0092                 mksel("filter('hltEG50HEFilter')","hltEG50HEFilter"),
0093                 mksel("filter('hltEG75HEFilter')","hltEG75HEFilter"),
0094                 mksel("filter('hltEG90HEFilter')","hltEG90HEFilter"),
0095                 mksel("filter('hltEG120HEFilter')","hltEG120HEFilter"),
0096                 mksel("filter('hltEG150HEFilter')","hltEG150HEFilter"),
0097                 mksel("filter('hltEG175HEFilter')","hltEG175HEFilter"),
0098                 mksel("filter('hltEG200HEFilter')","hltEG200HEFilter"),
0099                 mksel("filter('hltHtEcal800')","hltHtEcal800"),
0100                 mksel("filter('hltEG45EBTightIDTightIsoTrackIsoFilter')","hltEG45EBTightIDTightIsoTrackIsoFilter"),
0101                 mksel("filter('hltEG50EBTightIDTightIsoTrackIsoFilter')","hltEG50EBTightIDTightIsoTrackIsoFilter"),
0102                 mksel("filter('hltEG110EBTightIDTightIsoTrackIsoFilter')","hltEG110EBTightIDTightIsoTrackIsoFilter"),
0103                 mksel("filter('hltEG120EBTightIDTightIsoTrackIsoFilter')","hltEG120EBTightIDTightIsoTrackIsoFilter"),
0104                 mksel("filter('hltMu17Photon30IsoCaloIdPhotonlegTrackIsoFilter')","1mu-1photon"),
0105                 mksel("filter('hltEG30LR9Id85b90eHE12R9Id50b80eR9IdLastFilter')","hltEG30LR9Id85b90eHE12R9Id50b80eR9IdLastFilter"),
0106                 mksel("filter('hltEG30LIso60CaloId15b35eHE12R9Id50b80eEcalIsoLastFilter')","hltEG30LIso60CaloId15b35eHE12R9Id50b80eEcalIsoLastFilter"),
0107                 mksel("filter('hltEG22Iso60CaloId15b35eHE12R9Id50b80eTrackIsoUnseededLastFilter')","hltEG22Iso60CaloId15b35eHE12R9Id50b80eTrackIsoUnseededLastFilter"),
0108                 mksel("filter('hltEG22R9Id85b90eHE12R9Id50b80eR9UnseededLastFilter')","hltEG22R9Id85b90eHE12R9Id50b80eR9UnseededLastFilter"),
0109                 mksel("filter('hltEG30Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoFilter')","hltEG30Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoFilter"),
0110                 mksel("filter('hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eTrackIsoUnseededFilter')","hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eTrackIsoUnseededFilter"),
0111                 mksel("filter('hltEG*L1VBFLooseIsoEGHEFilter')", "hltEG*L1VBFLooseIsoEGHEFilter"),
0112             )
0113         ),
0114         Muon = cms.PSet(
0115             id = cms.int32(13),
0116             sel = cms.string("type(83) && pt > 5 && (coll('hltIterL3MuonCandidates') || (pt > 45 && coll('hltHighPtTkMuonCands')) || (pt > 95 && coll('hltOldL3MuonCandidates')))"),
0117             l1seed = cms.string("type(-81)"), l1deltaR = cms.double(0.5),
0118             l2seed = cms.string("type(83) && coll('hltL2MuonCandidates')"),  l2deltaR = cms.double(0.3),
0119             skipObjectsNotPassingQualityBits = cms.bool(True),
0120             qualityBits = cms.VPSet(
0121                 mksel(["*RelTrkIsoVVLFiltered0p4","*RelTrkIsoVVLFiltered"],"TrkIsoVVL"),
0122                 mksel(["hltL3crIso*IsoFiltered0p07","hltL3crIso*IsoFiltered0p08","hltL3crIso*IsoFiltered"],"Iso"),
0123                 mksel("filter('*OverlapFilterIsoMu*PFTau*')","OverlapFilter PFTau"),
0124                 mksel(["hltL3crIsoL1*SingleMu*IsoFiltered0p07","hltL3crIsoL1sMu*IsoFiltered0p07","hltL3crIsoL1*SingleMu*IsoFiltered0p08","hltL3crIsoL1sMu*IsoFiltered0p08","hltL3crIsoL1*SingleMu*IsoFiltered","hltL3crIsoL1sMu*IsoFiltered"],"1mu"),
0125                 mksel("filter('hltDiMuon*Filtered*')","2mu"),
0126                 mksel("filter('hltMu*TrkIsoVVL*Ele*CaloIdLTrackIdLIsoVL*Filter*')","1mu-1e"),
0127                 mksel("filter('hlt*OverlapFilterIsoMu*PFTau*')","1mu-1tau"),
0128                 mksel("filter('hltL3fL1TripleMu*')","3mu"),
0129                 mksel(["hltL3fL1DoubleMu*EG*Filtered*","hltDiMu*Ele*CaloIdLTrackIdLElectronleg*Filter"],"2mu-1e"),
0130                 mksel(["hltL3fL1Mu*DoubleEG*Filtered*","hltMu*DiEle*CaloIdLTrackIdLElectronleg*Filter"],"1mu-2e"),
0131                 mksel(["hltL3fL1sMu*L3Filtered50*","hltL3fL1sMu*TkFiltered50*"],"1mu (Mu50)"),
0132                 mksel(["hltL3fL1sMu*L3Filtered100*","hltL3fL1sMu*TkFiltered100*"],"1mu (Mu100)"),
0133                 mksel("filter('hltMu17Photon30IsoCaloIdMuonlegL3Filtered17Q')","1mu-1photon"),
0134                 mksel("filter('hlt*OverlapFilterIsoMu*PNet*')","1mu-1tau PNet")
0135             )
0136         ),
0137         Tau = cms.PSet(
0138             id = cms.int32(15),
0139             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*') )"), #All trigger objects from a Tau collection + passing at least one filter
0140             l1seed = cms.string("type(-100)"), l1deltaR = cms.double(0.3),
0141             l2seed = cms.string("type(84) && coll('hltL2TauJetsL1IsoTauSeeded')"),  l2deltaR = cms.double(0.3),
0142             skipObjectsNotPassingQualityBits = cms.bool(True),
0143             qualityBits = cms.VPSet(
0144                 mksel("filter('*Loose*')","Loose"), # 0
0145                 mksel("filter('*Medium*')","Medium"), # 1
0146                 mksel("filter('*Tight*')","Tight"), # 2
0147                 mksel("filter('*DeepTau*')","DeepTau no spec WP"), #3
0148                 mksel("filter('*PNetTauhTag*')","PNet no specified WP"), # 4
0149                 mksel("filter('*ChargedIso*')","ChargedIso"), # 5
0150                 mksel("filter('*Dxy*')","Dxy"), # 6
0151                 mksel("filter('*ETau*')","e-tau inside filter"), # 7
0152                 mksel("filter('*MuTau*')","mu-tau inside filter"), # 8
0153                 mksel(["hltSelectedPFTau180*SingleTauWPDeepTauL1HLTMatched","hltSinglePFJet130PNetTauhTag*WPL2SingleTau"],"Single Tau"), # 9
0154                 mksel(["hltHpsDoublePFTau20*DeepTauDitauWPAgainstMuon","hltDoublePFJets20PNetTauhTagL2*DoubleTau*"],"VBF DiTau"), # 10
0155                 mksel(["hlt*DoublePFTau*L1HLTMatched","hltDoublePFJets30PNetTauhTag*WPL2DoubleTau"],"di-tau"), # 11
0156                 mksel(["hltHpsOverlapFilterIsoEle*WPTightGsf*PFTau*","hltSinglePFJets30PNetTauhTag*WPMatchETauL1"],"e-tau"), # 12
0157                 mksel(["hltHpsOverlapFilterIsoMu*PFTau*","hltSinglePFJets27PNetTauhTag*WPMatchMuTauL1"],"mu-tau"), # 13
0158                 mksel(["hltHpsOverlapFilterDeepTauDoublePFTau*PFJet*","hltDoublePFJets26PNetTauhTagL2DoubleTau*Jet*"],"di-tau + PFJet"), # 14
0159                 mksel("filter('hltHpsOverlapFilterDisplacedEle*DisplPFTau*')","e-tau displaced"), # 15
0160                 mksel("filter('hltHpsOverlapFilterDisplacedMu*DisplPFTau*')","mu-tau displaced"), # 16
0161                 mksel("filter('hlt*Double*ChargedIsoDisplPFTau*')","di-tau displaced"), # 17
0162                 mksel("filter('*Monitoring')","Monitoring"), # 18
0163                 mksel(["*MonitoringForVBFIsoTau","hltSinglePFJet45PNetTauhTagL2*VBFIsoTauMonitoring*"],"VBF SingleTau Monitoring"), # 19
0164                 mksel(["hltHpsOverlapFilter*DeepTauPFTau*30Monitoring*","hltSinglePFJet26PNetTauhTag*L2Mu18TauYY*"],"DiTau+Jet Monitoring"), # 20
0165                 mksel("filter('hltHpsOverlapFilterIsoMu*MediumChargedIsoDisplTau*')","Monitoring muTau displaced"), # 21
0166                 mksel("filter('*OneProng*')","OneProng"), # 22
0167                 mksel(["hltHpsOverlapFilterIsoMu24*DitauWPDeepTauPFTau35Monitoring","hltSinglePFJet30PNetTauhTag*WPL2MuXXTauYY"],"DiTau Monitoring"), # 23
0168                 mksel("filter('*OverlapFilter*')","OverlapFilter"), # 24
0169                 mksel(["hltHpsOverlapFilterIsoMu24*DeepTauPFTau20","hltSinglePFJet20PNetTauhTag*VBFDiTau*L2Tau"],"VBF DiTau monitoring"), # 25
0170                 mksel(["hltHpsOverlapFilterIsoMu24*SingleTauWPDeepTauPFTau180L1Seeded","hltSinglePFJet130PNetTauhTag*WPL2Mu22Tau40"],"SingleTau Monitoring"), # 26
0171                 mksel(["*L1HLTMatched*", "*L1Seeded"],"MatchL1HLT"), # 27
0172                 mksel("filter('*Hps*')","HPS"), # 28
0173                 mksel("filter('*SinglePFTau*')","single PF-tau inside filter"), # 29
0174                 mksel(["hltHpsSinglePFTau45*DitauWPDeepTauL1HLTMatchedSingleTauHLT","hltSinglePFJet45PNetTauhTagL2*VBFIsoTau*"],"VBF SingleTau"), # 30
0175             )
0176         ),
0177         BoostedTau = cms.PSet(
0178             id = cms.int32(1515),
0179             sel = cms.string("type(85) && pt > 120 && filter('*TauTau*')"),
0180             l1seed = cms.string("type(-99)"), l1deltaR = cms.double(0.3),
0181             l2seed = cms.string("type(85)  && coll('hltAK8CaloJetsCorrectedIDPassed')"),  l2deltaR = cms.double(0.3),
0182             skipObjectsNotPassingQualityBits = cms.bool(True),
0183             qualityBits = cms.VPSet(
0184                 mksel("filter('hltAK8SinglePFJets*SoftDropMass*ParticleNetTauTau0p30')","HLT_AK8PFJetX_SoftDropMassY_PFAK8ParticleNetTauTau0p30"),
0185                 mksel("filter('hltAK8SinglePFJets*SoftDropMass*PNetTauTauTag0p03')","HLT_AK8PFJetX_SoftDropMassY_PNetTauTau0p03"),
0186                 mksel("filter('hltAK8SinglePFJets*SoftDropMass*PNetTauTauTag0p05')","HLT_AK8PFJetX_SoftDropMassY_PNetTauTau0p05"),
0187             )
0188         ),
0189         Jet = cms.PSet(
0190             id = cms.int32(1),
0191             sel = cms.string("( type(0) || type(85) || type(86) || type(-99) )"),
0192             l1seed = cms.string("type(-99)"), l1deltaR = cms.double(0.3),
0193             l2seed = cms.string("type(85) || type(86) || type(-99)"),  l2deltaR = cms.double(0.3),
0194             skipObjectsNotPassingQualityBits = cms.bool(True),
0195             qualityBits = cms.VPSet(
0196                 mksel(["hlt4PixelOnlyPFCentralJetTightIDPt20"]), # 0
0197                 mksel(["hlt3PixelOnlyPFCentralJetTightIDPt30"]), # 1
0198                 mksel(["hltPFJetFilterTwoC30"]), # 2
0199                 mksel(["hlt4PFCentralJetTightIDPt30"]), # 3
0200                 mksel(["hlt4PFCentralJetTightIDPt35"]), # 4
0201                 mksel(["hltQuadCentralJet30"]), # 5
0202                 mksel(["hlt2PixelOnlyPFCentralJetTightIDPt40"]), # 6
0203                 mksel(["hltL1sTripleJet1008572VBFIorHTTIorDoubleJetCIorSingleJet","hltL1sTripleJet1058576VBFIorHTTIorDoubleJetCIorSingleJet","hltL1sTripleJetVBFIorHTTIorSingleJet"]), # 7
0204                 mksel(["hlt3PFCentralJetTightIDPt40"]), # 8
0205                 mksel(["hlt3PFCentralJetTightIDPt45"]), # 9
0206                 mksel(["hltL1sQuadJetC60IorHTT380IorHTT280QuadJetIorHTT300QuadJet","hltL1sQuadJetC50to60IorHTT280to500IorHTT250to340QuadJet"]), # 10
0207                 mksel(["hltBTagCaloDeepCSVp17Double"]), # 11
0208                 mksel(["hltPFCentralJetLooseIDQuad30"]), # 12
0209                 mksel(["hlt1PFCentralJetLooseID75"]), # 13
0210                 mksel(["hlt2PFCentralJetLooseID60"]), # 14
0211                 mksel(["hlt3PFCentralJetLooseID45"]), # 15
0212                 mksel(["hlt4PFCentralJetLooseID40"]), # 16
0213                 mksel(["hltHpsOverlapFilterDeepTauDoublePFTau*PFJet*","hltHpsOverlapFilterDoublePNetTauh26PFJet*"],"(DiTau+Jet (Jet) Signal)"), # 17
0214                 mksel(["*CrossCleaned*MediumDeepTauDitauWPPFTau*","hltMatchedVBFTwoPFJets2CrossCleanedFrom*Double20PNetTauhTag*"],"(VBF DiTau Jets)"), # 18
0215                 mksel(["*CrossCleanedUsingDiJetCorrChecker*","hlt2PFJetsL1VBFDiJetIsoTauMatchedVBFLooseID*"],"(VBF SingleTau Jets)"), # 19
0216                 mksel(["hltHpsOverlapFilterDeepTauPFTau*PFJet*","hltHpsOverlapFilterIsoMu24SinglePFJet26PNetTauhTagPFJet*"],"Muon+Tau+Jet (Jet) Monitoring"), # 20
0217                 mksel(["hlt2PFCentralJetTightIDPt50"]), # 21
0218                 mksel(["hlt1PixelOnlyPFCentralJetTightIDPt60"]), # 22
0219                 mksel(["hlt1PFCentralJetTightIDPt70"]), # 23
0220                 mksel(["hltBTagPFDeepJet1p5Single"]), # 24
0221                 mksel(["hltBTagPFDeepJet4p5Triple"]), # 25
0222                 mksel(["hltBTagCentralJetPt35PFParticleNet2BTagSum0p65","hltBTagCentralJetPt30PFParticleNet2BTagSum0p65","hltPFJetTwoC30PFBTagParticleNet2BTagSum0p65","hltPFCentralJetPt30PNet2BTagMean0p55"]), # 26
0223                 mksel(["hlt2PixelOnlyPFCentralJetTightIDPt20","hlt1PixelOnlyPFCentralJetTightIDPt50"]), # 27
0224                 mksel(["hlt2PFCentralJetTightIDPt30","hltPF2CentralJetTightIDPt30"]), # 28
0225                 mksel(["hlt1PFCentralJetTightIDPt60"]), # 29
0226                 mksel(["hltPF2CentralJetPt30PNet2BTagMean0p50"]), # 30
0227                 mksel(["hlt4PFCentralJetPt25"]),  # 31, for HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v
0228                 mksel(["hltPFCentralJetNoIDPt25PNet1BTag0p20"]),  # 32, for HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v
0229                 mksel(["hltPFCentralJetNoIDPt25PNet1TauHTag0p50"]),  # 33, for HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v
0230                 mksel(["hlt4PFCentralJetTightIDPt25"]),  # 34, for HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v
0231                 mksel(["hltPFCentralJetPt25PNet2BTagMean0p55"]),  # 35, for HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v
0232                 mksel(["hltL1PFJetCategoriesVBFinclLoose", "hltL1PFJetCategoriesVBFinclLooseTripleJet", "hltL1PFJetCategoriesVBFinclTight1050"]),  # 36, for VBF inclusive
0233                 mksel(["hltL1PFJetCategoriesVBFdijetQuadjet", "hltL1PFJetCategoriesVBFdijetFivejets", "hltL1PFJetCategoriesVBFdijetSixjets", "hltL1PFJetCategoriesVBFdijetTightQuadjet800"]),  # 37, for VBF+dijet
0234                 mksel(["hltL1PFJetCategoriesVBFMET", "hltL1PFJetCategoriesVBFMETTripleJet", "hltL1PFJetCategoriesVBFMETTight650"]),  # 38, for VBF+MET
0235                 mksel(["hltL1PFJetCategoriesVBFMu", "hltL1PFJetCategoriesVBFMuTripleJet", "hltL1PFJetCategoriesVBFMuTight750"]),  # 39, for VBF+mu
0236                 mksel(["hltOverlapFilterDoublePFJet45Photon12", "hltOverlapFilterDoublePFJet45Photon17", "hltDiPFJet50Photon22OverlapFilter"]),  # 40, for VBF+gamma
0237                 mksel(["hltOverlapFilterDoublePFJet45Ele12", "hltOverlapFilterDoublePFJet45Ele17", "hltDiPFJet50Ele22OverlapFilter"]),  # 41, for VBF+e
0238                 mksel("min(path('HLT_PFJet*_v*'),filter('hltSinglePFJet*'))", "SinglePFJetX"),  # 42
0239                 mksel("min(path('HLT_PFJetFwd*_v*'),filter('hltSinglePFFwdJet*'))", "SinglePFJetFwdX"),  # 43
0240                 mksel("min(path('HLT_DiPFJetAve*_v*'),filter('hltDiPFJetAve*'))", "DiPFJetAveX"),  # 44
0241                 mksel("min(path('HLT_DiPFJetAve*_HFJEC_v*'),filter('hltDiPFJetAve*ForHFJEC*'))", "DiPFJetAveX_HFJEC"),  # 45
0242             ),
0243         ),
0244         FatJet = cms.PSet(
0245             id = cms.int32(6),
0246             sel = cms.string("type(85) && pt > 120"),
0247             l1seed = cms.string("type(-99)"), l1deltaR = cms.double(0.3),
0248             l2seed = cms.string("type(85)  && coll('hltAK8CaloJetsCorrectedIDPassed')"),  l2deltaR = cms.double(0.3),
0249             skipObjectsNotPassingQualityBits = cms.bool(True),
0250             qualityBits = cms.VPSet(
0251                 mksel("coll('hltAK8PFJetsCorrected')"),    #1, always present
0252                 mksel(["hltAK8SingleCaloJet200"]),         #2, always present
0253                 mksel("coll('hltAK8PFSoftDropJets230')"),  #4, present if nothing else below is fired, otherwise 12, 20, 28, 52, 60
0254                 mksel(["hltAK8SinglePFJets230SoftDropMass40BTagParticleNetBB0p35",
0255                        "hltAK8SinglePFJets250SoftDropMass40BTagParticleNetBB0p35",
0256                        "hltAK8SinglePFJets275SoftDropMass40BTagParticleNetBB0p35"]), # 12 if nothing below is fired, #28 if also "hltAK8DoublePFJetSDModMass30", #60 if also "hltAK8DoublePFJetSDModMass50"
0257                 mksel(["hltAK8DoublePFJetSDModMass30"]), # 16 if onthing else (except #1), 20 if also #4, 28 if also #12
0258                 mksel(["hltAK8DoublePFJetSDModMass50"]), # 48 if also (obviously) "hltAK8DoublePFJetSDModMass30", 52 if also #4, #60 if all above
0259                 mksel(["hltAK8SinglePFJets*SoftDropMass*PNetBBTag0p06"]),
0260                 )
0261         ),
0262         MET = cms.PSet(
0263             id = cms.int32(2),
0264             sel = cms.string("type(87) && pt > 30 && coll('hltPFMETProducer')"),
0265             l1seed = cms.string("type(-87) && coll('L1ETM')"), l1deltaR = cms.double(9999),
0266             l1seed_2 = cms.string("type(-87) && coll('L1ETMHF')"), l1deltaR_2 = cms.double(9999),
0267             l2seed = cms.string("type( 87) && coll('hltMetClean')"),  l2deltaR = cms.double(9999),
0268             skipObjectsNotPassingQualityBits = cms.bool(True),
0269             qualityBits = cms.VPSet()
0270         ),
0271         HT = cms.PSet(
0272             id = cms.int32(3),
0273             sel = cms.string("type(89) || type(-89)"),
0274             l1seed = cms.string("type(-89) && coll('L1HTT')"), l1deltaR = cms.double(9999),
0275             l1seed_2 = cms.string("type(-89) && coll('L1HTTHF')"), l1deltaR_2 = cms.double(9999),
0276             l2seed = cms.string("type(89) && coll('hltHtMhtJet30')"),  l2deltaR = cms.double(9999),
0277             skipObjectsNotPassingQualityBits = cms.bool(True),
0278             qualityBits = cms.VPSet(
0279                 mksel(["hltL1sTripleJetVBFIorHTTIorDoubleJetCIorSingleJet"]),
0280                 mksel(["hltL1sQuadJetC50IorQuadJetC60IorHTT280IorHTT300IorHTT320IorTripleJet846848VBFIorTripleJet887256VBFIorTripleJet927664VBF","hltL1sQuadJetCIorTripleJetVBFIorHTT"]),
0281                 mksel(["hltL1sQuadJetC60IorHTT380IorHTT280QuadJetIorHTT300QuadJet","hltL1sQuadJetC50to60IorHTT280to500IorHTT250to340QuadJet"]),
0282                 mksel(["hltCaloQuadJet30HT300","hltCaloQuadJet30HT320"]),
0283                 mksel(["hltPFCentralJetsLooseIDQuad30HT300","hltPFCentralJetsLooseIDQuad30HT330"]),
0284                 mksel(["hltPFHT280Jet30"])
0285             ),
0286         ),
0287         MHT = cms.PSet(
0288             id = cms.int32(4),
0289             sel = cms.string("type(90)"),
0290             l1seed = cms.string("type(-90) && coll('L1HTM')"), l1deltaR = cms.double(9999),
0291             l1seed_2 = cms.string("type(-90) && coll('L1HTMHF')"), l1deltaR_2 = cms.double(9999),
0292             l2seed = cms.string("type(90) && coll('hltHtMhtJet30')"),  l2deltaR = cms.double(9999),
0293             skipObjectsNotPassingQualityBits = cms.bool(True),
0294             qualityBits = cms.VPSet(
0295                 mksel(["hltCaloQuadJet30HT300","hltCaloQuadJet30HT320"]),
0296                 mksel(["hltPFCentralJetsLooseIDQuad30HT300","hltPFCentralJetsLooseIDQuad30HT330"])
0297             ),
0298         ),
0299     ),
0300 )
0301 
0302 # ERA-dependent configuration
0303 # Tune filter and collection names to 2016 HLT menus
0304 # FIXME: check non-lepton objects and cross check leptons
0305 run2_HLTconditions_2016.toModify(
0306     triggerObjectTable.selections.Muon,
0307     sel = "type(83) && pt > 5 && (coll('hlt*L3MuonCandidates') || coll('hlt*TkMuonCands') || coll('hlt*TrkMuonCands'))",
0308     qualityBits = cms.VPSet(
0309             mksel("filter('*RelTrkIso*Filtered0p4')","TrkIsoVVL"),
0310             mksel("filter('hltL3cr*IsoFiltered0p09')","Iso"),
0311             mksel("filter('*OverlapFilter*IsoMu*PFTau*')","OverlapFilter PFTau"),
0312             mksel("filter('hltL3f*IsoFiltered0p09')","IsoTkMu"),
0313             mksel(["hltL3fL1sMu*L3Filtered50*","hltL3fL1sMu*TkFiltered50*"],"1mu (Mu50)", bit=10)
0314     )
0315 ).toModify(
0316     triggerObjectTable.selections.Tau,
0317     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*') )",
0318     qualityBits = cms.VPSet(
0319         mksel("(filter('*LooseIso*')-filter('*VLooseIso*'))","LooseIso"),
0320         mksel("filter('*Medium*Iso*')","Medium(Comb)Iso"),
0321         mksel("filter('*VLooseIso*')","VLooseIso"),
0322         mksel("0","None"),
0323         mksel("filter('hltL2TauIsoFilter')","L2p5 pixel iso"),
0324         mksel("filter('*OverlapFilter*IsoMu*')","OverlapFilter IsoMu"),
0325         mksel("filter('*OverlapFilter*IsoEle*')","OverlapFilter IsoEle"),
0326         mksel("filter('*L1HLTMatched*')","L1-HLT matched"),
0327         mksel("filter('*Dz02*')","Dz")
0328     )
0329 )
0330 
0331 _run2_2017_2018_tau_filters = [
0332         mksel("filter('*LooseChargedIso*')","LooseChargedIso"),
0333         mksel("filter('*MediumChargedIso*')","MediumChargedIso"),
0334         mksel("filter('*TightChargedIso*')","TightChargedIso"),
0335         mksel("filter('*DeepTau*')","DeepTau"),
0336         mksel("filter('*TightOOSCPhotons*')","TightID OOSC photons"),
0337         mksel("filter('*Hps*')","HPS"),
0338         mksel("filter('hlt*DoublePFTau*TrackPt1*ChargedIsolation*Dz02*')","charged iso di-tau"),
0339         mksel("filter('hlt*DoublePFTau*DeepTau*L1HLTMatched')","deeptau di-tau"),
0340         mksel("filter('hlt*OverlapFilterIsoEle*WPTightGsf*PFTau*')","e-tau"),
0341         mksel("filter('hlt*OverlapFilterIsoMu*PFTau*')","mu-tau"),
0342         mksel("filter('hlt*SelectedPFTau*L1HLTMatched')","single-tau/tau+MET"),
0343         mksel("filter('hlt*DoublePFTau*TrackPt1*ChargedIso*')","run 2 VBF+ditau"),
0344         mksel("filter('hlt*DoublePFTau*Track*ChargedIso*AgainstMuon')","run 3 VBF+ditau"),
0345         mksel("filter('hltHpsSinglePFTau*HLTMatched')","run 3 double PF jets + ditau"),
0346         mksel("filter('hltHpsOverlapFilterDeepTauDoublePFTau*PFJet*')","di-tau + PFJet"),
0347         mksel("filter('hlt*Double*ChargedIsoDisplPFTau*Dxy*')","Displaced Tau"),
0348         mksel("filter('*Monitoring')","Monitoring"),
0349         mksel("filter('*Reg')","regional paths"),
0350         mksel("filter('*L1Seeded')","L1 seeded paths"),
0351         mksel("filter('*1Prong')","1 prong tau paths")
0352 ]
0353 (run2_HLTconditions_2017 | run2_HLTconditions_2018).toModify(
0354     triggerObjectTable.selections.Tau,
0355     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*') )", 
0356     qualityBits = cms.VPSet(_run2_2017_2018_tau_filters)
0357 )
0358 _run2_HLTconditions = run2_HLTconditions_2016 | run2_HLTconditions_2017 | run2_HLTconditions_2018
0359 
0360 _run2_2016_jet_filters = [
0361         mksel(["*CrossCleaned*LooseChargedIsoPFTau*"], "VBF cross-cleaned from loose iso PFTau"), # 0
0362         mksel(["hltBTagCaloCSVp087Triple"], "hltBTagCaloCSVp087Triple"), # 1
0363         mksel(["hltDoubleCentralJet90"], "hltDoubleCentralJet90"), # 2
0364         mksel(["hltDoublePFCentralJetLooseID90"], "hltDoublePFCentralJetLooseID90"), # 3
0365         mksel(["hltL1sTripleJetVBFIorHTTIorDoubleJetCIorSingleJet"], "hltL1sTripleJetVBFIorHTTIorDoubleJetCIorSingleJet"), # 4
0366         mksel(["hltQuadCentralJet30"], "hltQuadCentralJet30"), # 5
0367         mksel(["hltQuadPFCentralJetLooseID30"], "hltQuadPFCentralJetLooseID30"), # 6
0368         mksel(["hltL1sQuadJetC50IorQuadJetC60IorHTT280IorHTT300IorHTT320IorTripleJet846848VBFIorTripleJet887256VBFIorTripleJet927664VBF", "hltL1sQuadJetCIorTripleJetVBFIorHTT"], "hltL1sQuadJetC50IorQuadJetC60IorHTT280IorHTT300IorHTT320IorTripleJet846848VBFIorTripleJet887256VBFIorTripleJet927664VBF or hltL1sQuadJetCIorTripleJetVBFIorHTT"), # 7
0369         mksel(["hltQuadCentralJet45"], "hltQuadCentralJet45"), # 8
0370         mksel(["hltQuadPFCentralJetLooseID45"], "hltQuadPFCentralJetLooseID45"), # 9
0371         mksel(["hltL1sQuadJetC60IorHTT380IorHTT280QuadJetIorHTT300QuadJet", "hltL1sQuadJetC50to60IorHTT280to500IorHTT250to340QuadJet"], "hltL1sQuadJetC60IorHTT380IorHTT280QuadJetIorHTT300QuadJet or hltL1sQuadJetC50to60IorHTT280to500IorHTT250to340QuadJet"), # 10
0372         mksel(["hltBTagCaloCSVp05Double", "hltBTagCaloDeepCSVp17Double"], "hltBTagCaloCSVp05Double or hltBTagCaloDeepCSVp17Double"), # 11
0373         mksel(["hltPFCentralJetLooseIDQuad30"], "hltPFCentralJetLooseIDQuad30"), # 12
0374         mksel(["hlt1PFCentralJetLooseID75"], "hlt1PFCentralJetLooseID75"), # 13
0375         mksel(["hlt2PFCentralJetLooseID60"], "hlt2PFCentralJetLooseID60"), # 14
0376         mksel(["hlt3PFCentralJetLooseID45"], "hlt3PFCentralJetLooseID45"), # 15
0377         mksel(["hlt4PFCentralJetLooseID40"], "hlt4PFCentralJetLooseID40"), # 16
0378         mksel(["hltBTagPFCSVp070Triple", "hltBTagPFDeepCSVp24Triple", "hltBTagPFDeepCSV4p5Triple"], "hltBTagPFCSVp070Triple or hltBTagPFDeepCSVp24Triple or hltBTagPFDeepCSV4p5Triple"), # 17
0379         mksel(["hltHpsOverlapFilterDeepTauDoublePFTau*PFJet*"], "Double tau + jet"), # 18
0380         mksel(["*CrossCleaned*MediumDeepTauDitauWPPFTau*"], "VBF cross-cleaned from medium deeptau PFTau"), # 19
0381         mksel(["*CrossCleanedUsingDiJetCorrChecker*"], "VBF cross-cleaned using dijet correlation checker"), # 20
0382         mksel(["hltHpsOverlapFilterDeepTauPFTau*PFJet*"], "monitoring muon + tau + jet"), # 21
0383 ]
0384 run2_HLTconditions_2016.toModify(triggerObjectTable.selections.Jet, qualityBits = cms.VPSet(_run2_2016_jet_filters))
0385 
0386 _run2_2017_jet_filters = copy.deepcopy(_run2_2016_jet_filters)
0387 _run2_2017_jet_filters[7] = mksel(["hltL1sTripleJet1008572VBFIorHTTIorDoubleJetCIorSingleJet","hltL1sTripleJet1058576VBFIorHTTIorDoubleJetCIorSingleJet","hltL1sTripleJetVBFIorHTTIorSingleJet"])
0388 run2_HLTconditions_2017.toModify(triggerObjectTable.selections.Jet, qualityBits = cms.VPSet(_run2_2017_jet_filters))
0389 
0390 _run2_2018_jet_filters = copy.deepcopy(_run2_2017_jet_filters)
0391 _run2_2018_jet_filters[2] = mksel(["hltPFJetFilterTwoC30"])
0392 _run2_2018_jet_filters.append(mksel(["hltBTagPFDeepCSV1p5Single"])) # 22
0393 run2_HLTconditions_2018.toModify(triggerObjectTable.selections.Jet, qualityBits = cms.VPSet(_run2_2018_jet_filters))
0394 
0395 _run2_2017_muon_filters = copy.deepcopy(triggerObjectTable.selections.Muon.qualityBits)
0396 _run2_2017_muon_filters.append(mksel(["hltIterL3MuonCandidates"], "2Mu filter Bit for 2017")) #14
0397 run2_HLTconditions_2017.toModify(triggerObjectTable.selections.Muon, qualityBits = cms.VPSet(_run2_2017_muon_filters))
0398 
0399 from PhysicsTools.PatUtils.L1PrefiringWeightProducer_cff import prefiringweight
0400 #Next lines are for UL2016 maps
0401 (run2_muon_2016 & tracker_apv_vfp30_2016).toModify(
0402     prefiringweight,
0403     DataEraECAL = cms.string("UL2016preVFP"),
0404     DataEraMuon = cms.string("2016preVFP")
0405 )
0406 (run2_muon_2016 & ~tracker_apv_vfp30_2016).toModify(
0407     prefiringweight,
0408     DataEraECAL = cms.string("UL2016postVFP"),
0409     DataEraMuon = cms.string("2016postVFP")
0410 )
0411 #Next line is for UL2017 maps
0412 run2_jme_2017.toModify(
0413     prefiringweight,
0414     DataEraECAL = cms.string("UL2017BtoF"),
0415     DataEraMuon = cms.string("20172018")
0416 )
0417 #Next line is for UL2018 maps
0418 run2_muon_2018.toModify(
0419     prefiringweight,
0420     DataEraECAL = cms.string("None"),
0421     DataEraMuon = cms.string("20172018")
0422 )
0423 
0424 l1PreFiringEventWeightTable = globalVariablesTableProducer.clone(
0425     name = cms.string("L1PreFiringWeight"),
0426     variables = cms.PSet(
0427         Nom = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProb"), "float", doc = "L1 pre-firing event correction weight (1-probability)", precision=8),
0428         Up = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbUp"), "float", doc = "L1 pre-firing event correction weight (1-probability), up var.", precision=8),
0429         Dn = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbDown"), "float", doc = "L1 pre-firing event correction weight (1-probability), down var.", precision=8),
0430         Muon_Nom = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbMuon"), "float", doc = "Muon L1 pre-firing event correction weight (1-probability)", precision=8),
0431         Muon_SystUp = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbMuonSystUp"), "float", doc = "Muon L1 pre-firing event correction weight (1-probability), up var. syst.", precision=8),
0432         Muon_SystDn = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbMuonSystDown"), "float", doc = "Muon L1 pre-firing event correction weight (1-probability), down var. syst.", precision=8),
0433         Muon_StatUp = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbMuonStatUp"), "float", doc = "Muon L1 pre-firing event correction weight (1-probability), up var. stat.", precision=8),
0434         Muon_StatDn = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbMuonStatDown"), "float", doc = "Muon L1 pre-firing event correction weight (1-probability), down var. stat.", precision=8),
0435         ECAL_Nom = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbECAL"), "float", doc = "ECAL L1 pre-firing event correction weight (1-probability)", precision=8),
0436         ECAL_Up = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbECALUp"), "float", doc = "ECAL L1 pre-firing event correction weight (1-probability), up var.", precision=8),
0437         ECAL_Dn = ExtVar(cms.InputTag("prefiringweight:nonPrefiringProbECALDown"), "float", doc = "ECAL L1 pre-firing event correction weight (1-probability), down var.", precision=8),
0438     )
0439 )
0440 
0441 l1bits=cms.EDProducer("L1TriggerResultsConverter",
0442                        src=cms.InputTag("gtStage2Digis"),
0443                        legacyL1=cms.bool(False),
0444                        storeUnprefireableBits=cms.bool(True),
0445                        src_ext=cms.InputTag("simGtExtUnprefireable"))
0446 
0447 triggerObjectTablesTask = cms.Task( unpackedPatTrigger,triggerObjectTable,l1bits)
0448 
0449 _run2_HLTconditions.toReplaceWith(
0450     triggerObjectTablesTask, triggerObjectTablesTask.copyAndAdd(prefiringweight,l1PreFiringEventWeightTable)
0451 )