Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
TrigInDetValidation_menu_test.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 #
3 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
4 #
5 import importlib
6 
7 from TrigInDetValidation.Chains import Chains
8 tc = Chains()
9 
10 tida_dict = tc.get_menu_dict()
11 
12 menu_chains = {}
13 
14 for slice, cfg in tida_dict.items():
15  menus = []
16  if(cfg["menu"] != ''):
17  menus.append(cfg["menu"])
18  else:
19  menus = ["MC_pp_run3_v1", "MC_pp_run4_v1"]
20 
21  for m in menus:
22  if m not in menu_chains:
23  menu_chains[m] = []
24 
25  menu_chains[m] += cfg["chains"]
26 
27 def find_slices(chain_name):
28  output = set()
29 
30  for slice, cfg in tida_dict.items():
31  if chain_name in cfg["chains"]:
32  output.add(slice)
33 
34  return output
35 
36 def get_menu(name):
37  # Import menu by name
38  menumodule = importlib.import_module(f'TriggerMenuMT.HLT.Menu.{menu_name}')
39  menu = menumodule.setupMenu()
40 
41  output = []
42 
43  for group, chains in menu.items():
44  output += [c.name for c in chains]
45 
46  return output
47 
48 has_missing = False
49 
50 for menu_name, chains in menu_chains.items():
51  valid_chains = get_menu(menu_name)
52 
53  if(len(valid_chains) < 1):
54  print("Menu {} is empty, skipping".format(menu_name))
55  continue
56 
57  for c in chains:
58  if c not in valid_chains:
59  print("!!!! {0} used in slice {1} is not a valid chain in menu {2}".format(c, find_slices(c), menu_name))
60  has_missing = True
61 
62 if has_missing:
63  print("FAIL: Some chains are defined for TrigInDetValidation tests but are not defined in the menu")
64  exit(255)
TrigInDetValidation_menu_test.find_slices
def find_slices(chain_name)
Definition: TrigInDetValidation_menu_test.py:27
vtune_athena.format
format
Definition: vtune_athena.py:14
TrigInDetValidation_menu_test.get_menu
def get_menu(name)
Definition: TrigInDetValidation_menu_test.py:36
calibdata.exit
exit
Definition: calibdata.py:236
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:567