ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigHypothesis
TrigHLTJetHypo
python
checkScenarioPresence.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
2
3
"""Check that if a scenario apppears in a chain part name, that it also
4
is a key in the chain part dict. This is to catch errors whereby a
5
scenario is present in the chain name, but is is not present in the
6
SignatureDicts.JetChainParts[hypoScenario] list, in which case
7
hypoScenario is set to the default. The ommision of the full scenario
8
name from the list is an easy mistake to make, but detecting the problem can be
9
difficult"""
10
11
12
from
TriggerMenuMT.HLT.Menu.SignatureDicts
import
JetChainParts
13
14
def
checkScenarioPresence(chain_parts, chain_name):
15
full_scenarios = JetChainParts[
'hypoScenario'
]
16
headers =
set
([s.split(
'XX'
)[0]
for
s
in
full_scenarios])
17
18
headers_in_chain_name = {h: chain_name.count(h)
for
h
in
headers}
19
20
cp_scenarios =
set
([cp[
'hypoScenario'
]
for
cp
in
chain_parts])
21
22
headers_in_cp = {h: 0
for
h
in
headers}
23
24
for
cps
in
cp_scenarios:
25
if
cps ==
'simple'
:
continue
# 'simple' not in chain name
26
for
h
in
headers:
27
if
cps.startswith(h):
28
headers_in_cp[h] += 1
29
30
bad_headers = [h
for
h
in
headers_in_chain_name.keys()
if
31
headers_in_chain_name[h] != headers_in_cp[h]]
32
33
return
bad_headers
34
set
STL class.
Generated on
for ATLAS Offline Software by
1.17.0