ATLAS Offline Software
Loading...
Searching...
No Matches
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#
5import importlib
6
7from TrigInDetValidation.Chains import Chains
8tc = Chains()
9
10tida_dict = tc.get_menu_dict()
11
12menu_chains = {}
13
14for 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","Dev_pp_run3_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
27def 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
36def 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
48has_missing = False
49
50for 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
63if has_missing:
64 print("FAIL: Some chains are defined for TrigInDetValidation tests but are not defined in the menu")
65 exit(255)
66
if(febId1==febId2)
void print(char *figname, TCanvas *c1)
STL class.