diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_HNL.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_HNL.py index 11faf509a0454507abe55ec4c28b089274a73291..5ba39204c7f6b652d3a1dad9d45dad7a033c5dba 100644 --- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_HNL.py +++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_HNL.py @@ -5,14 +5,140 @@ from AthenaCommon.Logging import logging msg = logging.getLogger("PhysDESDM_HNL") msg.setLevel(logging.INFO) -## TriggerAPI ## +## TriggerAPI (not working correctly) ## from LongLivedParticleDPDMaker.RPVLLTriggers import RPVLLTriggers apitriggers = RPVLLTriggers() from LongLivedParticleDPDMaker.RPVLLTriggers import rpvllTrig -apiSingleMuonTriggerlist = [] -apiSingleElectronTriggerlist = [] -apiMultiMuonTriggerlist = [] -apiMultiElectronTriggerlist = [] +# Hardcoded lists are necessary. +# https://twiki.cern.ch/twiki/bin/view/Atlas/LowestUnprescaled +apiSingleMuonTriggerlist = [ + # 2015 + "HLT_mu20_iloose_L1MU15", + # 2016 A + "HLT_mu24_iloose", + # 2016 A + "HLT_mu24_ivarloose", + # 2016 B-E + "HLT_mu24_ivarmedium", + # 2016 B-E + "HLT_mu24_imedium", + # 2016 D4-G2 + "HLT_mu26_imedium", + # 2016 I4-, 2017, 2018 + "HLT_mu26_ivarmedium", + # 2015, 2016 A + "HLT_mu40", + # 2016, 2017, 2018 + "HLT_mu50", + # 2015, 2017, 2018 + "HLT_mu60_0eta105_msonly", +] +apiSingleElectronTriggerlist = [ + # 2015 + "HLT_e24_lhmedium_L1EM20VH", + # 2016 A-D3 + "HLT_e24_lhtight_nod0_ivarloose", + # 2018 + "HLT_e26_lhtight_nod0", + # 2016 D4-, 2017, 2018 + "HLT_e26_lhtight_nod0_ivarloose", + # 2016, 2017, 2018 + "HLT_e60_lhmedium_nod0", + # 2015 + "HLT_e60_lhmedium", + # 2016 + "HLT_e60_medium", + # 2015 + "HLT_e120_lhloose", + # 2016, 2017, 2018 + "HLT_e140_lhloose_nod0", + # 2016, 2017, 2018 + "HLT_e300_etcut", +] +apiMultiMuonTriggerlist = [ + # 2016 A + "HLT_2mu10", + # 2016 A + "HLT_2mu10_nomucomb", + # 2016 B-I3, 2017, 2018 + "HLT_2mu14", + # 2016 B- + "HLT_2mu14_nomucomb", + # 2016 A-D3 + "HLT_mu20_nomucomb_mu6noL1_nscan03", + # 2016 A-E + "HLT_mu20_mu8noL1", + # 2016 D4-, 2017, 2018 + "HLT_mu22_mu8noL1", + # 2017 + "HLT_mu22_mu8noL1_calotag_0eta010", + # 2016 A, I4- + "HLT_3mu4", + # 2016 A-D3 + "HLT_mu6_2mu4", + # 2016 B-D3, 2017, 2018 + "HLT_3mu6", + # 2016 D4-, 2017 + "HLT_3mu6_msonly", + # 2016, 2017, 2018 + "HLT_mu20_2mu4noL1", + # 2017 + "HLT_4mu4", + # 2016 A-D3 + "HLT_mu11_nomucomb_2mu4noL1_nscan03_L1MU11_2MU6", + # 2016 A-D3 + "HLT_mu11_nomucomb_2mu4noL1_nscan03_L1MU11_2MU6_bTau", + # 2016 A-D3 + "HLT_mu20_msonly_mu10noL1_msonly_nscan05_noComb", + # 2016 A-D3 + "HLT_mu11_nomucomb_mu6noL1_nscan03_L1MU11_2MU6_bTau", + # 2016 A-D3 + "HLT_mu6_nomucomb_2mu4_nomucomb_bTau_L1MU6_3MU4", + # 2016 A-D3 + "HLT_2mu6_nomucomb_mu4_nomucomb_bTau_L12MU6_3MU4", +] +apiMultiElectronTriggerlist = [ + # 2015 + "HLT_2e12_lhloose_L12EM10VH", + # 2016 A-D3 + "HLT_2e15_lhvloose_nod0_L12EM13VH", + # 2015 + "HLT_e17_lhloose_2e9_lhloose", + # 2016 + "HLT_e17_lhloose_nod0_2e9_lhloose_nod0", + # 2017 G- + "HLT_e17_lhloose_nod0_2e10_lhloose_nod0_L1EM15VH_3EM8VH", + # 2017 D4- + "HLT_2e17_lhvloose_nod0", + # 2017, 2018 + "HLT_2e17_lhvloose_nod0_L12EM15VHI", + # 2017, 2018 + "HLT_2e24_lhvloose_nod0", + # 2017, 2018 + "HLT_e24_lhvloose_nod0_2e12_lhvloose_nod0_L1EM20VH_3EM10VH", +] +apiElectronMuonTriggerlist = [ + # 2015 C2-D6 + "HLT_e17_lhloose_mu14", + # 2016, 2017, 2018 + "HLT_e17_lhloose_nod0_mu14", + # 2016 + "HLT_e24_lhmedium_nod0_L1EM20VHI_mu8noL1", + # 2017, 2018 + "HLT_e26_lhmedium_nod0_mu8noL1", + # 2016, 2017, 2018 + "HLT_e7_lhmedium_nod0_mu24", + # 2016, 2017, 2018 + "HLT_e12_lhloose_nod0_2mu10", + # 2015 C2-D6 + "HLT_2e12_lhloose_mu10", + # 2016, 2017, 2018 + "HLT_2e12_lhloose_nod0_mu10", + # 2015 C2-D6 + "HLT_e7_lhmedium_mu24", + # 2015 C2-D6 + "HLT_e12_lhloose_2mu10", +] if rpvllTrig.doRPVLLTriggerAPI: apiSingleMuonTriggerlist = apitriggers.getHNLSingleMuonTriggers() apiSingleElectronTriggerlist = apitriggers.getHNLSingleElectronTriggers() @@ -47,6 +173,8 @@ RPVLLfilterNames.extend(["RPVLL_HnlMuMuFilterKernel"]) # Filter for a prompt electron + a displaced muon if primRPVLLDESDM.doHnlElMu(): HnlElMuTriggers = apiSingleElectronTriggerlist + if primRPVLLDESDM.doHnlMultiLeptonTriggers(): + HnlElMuTriggers += apiElectronMuonTriggerlist HnlElMuFilterTool = skimtool( name = "HnlElMuFilterTool", IsPromptMuon = False, IsDisplacedMuon = True, @@ -95,6 +223,8 @@ if primRPVLLDESDM.doHnlElEl(): # Filter for a prompt muon + a displaced electron if primRPVLLDESDM.doHnlMuEl(): HnlMuElTriggers = apiSingleMuonTriggerlist + if primRPVLLDESDM.doHnlMultiLeptonTriggers(): + HnlMuElTriggers += apiElectronMuonTriggerlist HnlMuElFilterTool = skimtool( name = "HnlMuElFilterTool", IsPromptMuon = True, IsDisplacedMuon = False,