2 from TriggerMenuMT.TriggerAPI.TriggerAPI
import TriggerAPI
3 from TriggerMenuMT.TriggerAPI.TriggerEnums
import TriggerPeriod, TriggerType
4 from DerivationFrameworkPhys.TriggerListsHelper
import getTapisSession
5 from AthenaConfiguration.AutoConfigFlags
import GetFileMD
6 from AthenaConfiguration.Enums
import LHCPeriod
8 from AthenaCommon.Logging
import logging
9 log = logging.getLogger(
'DAODJetEtMissTriggerList')
13 period2015tofuture = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future
14 period2017tofuture = TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future
15 TriggerAPI.setConfigFlags(flags)
16 API_jetTrig = TriggerAPI.getActive(period2015tofuture, TriggerType.j_single)
18 API_jetTrig += TriggerAPI.getActive(period2017tofuture,TriggerType.j_multi,matchPattern=
".*_a10t_.*")
20 API_jetTrig += TriggerAPI.getActive(period2015tofuture,TriggerType.j_multi,matchPattern=
"HLT_j.*_320eta490")
25 if flags.Trigger.EDMVersion <= 2:
26 TriggerAPI.setConfigFlags(flags)
27 allperiods = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future2e34
28 trigger_names = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, livefraction=0.8)
33 trigger_names =
list(session.getLowestUnprescaled(triggerType=TriggerType.el, livefraction=lf).union(trigger_names))
37 TriggerAPI.setConfigFlags(flags)
38 API_multiElTriggers = TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2015, TriggerType.el_multi) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2016, TriggerType.el_multi) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2017, TriggerType.el_multi) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2018, TriggerType.el_multi) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.future, TriggerType.el_multi)
39 return API_multiElTriggers
43 if flags.Trigger.EDMVersion <= 2:
44 TriggerAPI.setConfigFlags(flags)
45 allperiods = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future2e34
46 trigger_names = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu, livefraction=0.8)
51 trigger_names =
list(session.getLowestUnprescaled(triggerType=TriggerType.mu, livefraction=lf).union(trigger_names))
55 TriggerAPI.setConfigFlags(flags)
56 API_multiMuTriggers = TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2015, TriggerType.mu_multi) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2016, TriggerType.mu_multi) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2017, TriggerType.mu_multi) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2018, TriggerType.mu_multi) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.future, TriggerType.mu_multi)
57 return API_multiMuTriggers
61 if flags.Trigger.EDMVersion <= 2:
62 TriggerAPI.setConfigFlags(flags)
63 allperiods = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future2e34
64 trigger_names = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.xe, livefraction=0.8)
69 trigger_names =
list(session.getLowestUnprescaled(triggerType=TriggerType.xe, livefraction=lf).union(trigger_names))
74 if flags.Trigger.EDMVersion <= 2:
75 TriggerAPI.setConfigFlags(flags)
76 allperiods = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future2e34
77 trigger_names = TriggerAPI.getActive(allperiods, triggerType=TriggerType.g, livefraction=0.8)
82 trigger_names =
list(session.getLowestUnprescaled(triggerType=TriggerType.g, livefraction=lf).union(trigger_names))
94 if flags.GeoModel.Run < LHCPeriod.Run3:
97 pattern = re.compile(
r"HLT_\d*j\d+")
98 vetoes = [
'PhysicsTLA',
'calratio',
'emergingPTF',
'dispjet',
'trackless',
'hitdvjet',
'bgn1',
'bgn2',
'bdl1',
'boffperf',
'xe',
'afprec',
'LArPEBHLT',
'TAU',
'XE',
'L1jLJ']
103 menu = metadata[
'TriggerMenu']
105 log.error(
"TriggerMenu could not be retrieved from file metadata.")
107 HLTChainskey =
'HLTChains'
108 if HLTChainskey
not in menu:
109 log.error(
"HLTChains could not be retrieved from file metadata.")
111 md_hltchains = menu[HLTChainskey]
112 log.info(f
"{len(md_hltchains)} HLT chains retrieved from file metadata")
113 trigger_list += md_hltchains
115 filtered_j_chains = []
116 for chain
in set(trigger_list):
117 if not pattern.match(chain):
continue
118 if any(v
in chain
for v
in vetoes):
continue
119 filtered_j_chains.append(chain)
121 return filtered_j_chains