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
12 from TriggerMenuMT.HLT.Menu.SignatureDicts
import JetChainParts
15 full_scenarios = JetChainParts[
'hypoScenario']
16 headers =
set([s.split(
'XX')[0]
for s
in full_scenarios])
18 headers_in_chain_name = {h: chain_name.count(h)
for h
in headers}
20 cp_scenarios =
set([cp[
'hypoScenario']
for cp
in chain_parts])
22 headers_in_cp = {h: 0
for h
in headers}
24 for cps
in cp_scenarios:
25 if cps ==
'simple':
continue
30 bad_headers = [h
for h
in headers_in_chain_name.keys()
if
31 headers_in_chain_name[h] != headers_in_cp[h]]