ATLAS Offline Software
Loading...
Searching...
No Matches
HLTMonitoringJSON Namespace Reference

Functions

 __getMenuBaseName (menuName)
 generateDefaultMonitoringJSON (flags, chainDicts)
 generateMonitoringJSON (menuName, chainDicts, fileName)

Variables

 __log = logging.getLogger( __name__ )

Function Documentation

◆ __getMenuBaseName()

HLTMonitoringJSON.__getMenuBaseName ( menuName)
private

Definition at line 11 of file HLTMonitoringJSON.py.

11def __getMenuBaseName(menuName):
12 pattern = re.compile(r'_v\d+|DC14')
13 patternPos = pattern.search(menuName)
14 if patternPos:
15 menuName=menuName[:patternPos.end()]
16 else:
17 __log.info('Can\'t find pattern to shorten menu name, either non-existent in name or not implemented.')
18 return menuName
19
20

◆ generateDefaultMonitoringJSON()

HLTMonitoringJSON.generateDefaultMonitoringJSON ( flags,
chainDicts )

Definition at line 21 of file HLTMonitoringJSON.py.

21def generateDefaultMonitoringJSON(flags, chainDicts):
22 return generateMonitoringJSON(flags.Trigger.triggerMenuSetup,
23 chainDicts,
24 getHLTMonitoringFileName(flags))
25
26

◆ generateMonitoringJSON()

HLTMonitoringJSON.generateMonitoringJSON ( menuName,
chainDicts,
fileName )

Definition at line 27 of file HLTMonitoringJSON.py.

27def generateMonitoringJSON(menuName, chainDicts, fileName):
28
29 #create a summary file
30 summaryDict = {
31 "filetype": "hltmonitoringsummary",
32 "name": __getMenuBaseName(menuName),
33 "signatures": {}
34 }
35
36 # then you can iterate, say over the HLT menu:
37 for chain in chainDicts:
38 chain_name = chain['chainName']
39 __log.debug("[HLTMonitoring::generateMonitoringJSON] Processing Chain %s ...", chain_name)
40
41 #if the chain is in a express stream, check presence of teh monGroup
42 if 'express' in chain['stream']:
43 if len(chain['monGroups']) == 0:
44 __log.warning( "[HLTMonitoring::generateMonitoringJSON]Chain %s is in the express stream and doesn't have any monGroup", chain_name)
45
46 #check if the chain needs to be monitored
47 if len(chain['monGroups']) == 0:
48 continue
49
50 __log.debug("[HLTMonitoring::generateMonitoringJSON] Chain %s has monitoring groups!", chain_name)
51
52 #add the signatures in the summary file
53 for entry in chain['monGroups']:
54 if (entry == 'detMon'):
55 monSignature = 'detMon'
56 monGroup = ''
57 else:
58 monSignature = entry.split(':')[0]
59 monGroup = entry.split(':')[1]
60
61 if monSignature not in summaryDict['signatures']:
62 summaryDict['signatures'][monSignature] = {chain_name: [monGroup]}
63 else:
64 #the signature is already present,
65 # now check the chain
66 if chain_name not in summaryDict['signatures'][monSignature]:
67 summaryDict['signatures'][monSignature].update({chain_name: [monGroup]})
68 else:
69 summaryDict['signatures'][monSignature][chain_name].append(monGroup)
70
71 # # then writing the summary to a file is as simple as:
72 __log.info( "Writing Summary of HLT Monitoring JSON to %s", fileName)
73 with open(fileName, 'w') as outfile:
74 json.dump(summaryDict, outfile, indent = 4, sort_keys=False )

Variable Documentation

◆ __log

HLTMonitoringJSON.__log = logging.getLogger( __name__ )
private

Definition at line 7 of file HLTMonitoringJSON.py.