Monitored Chains

Last update: 06 Aug 2024 [History] [Edit]

Introduction

In Run 3 menu-aware monitoring is facilitated through “monitoring groups”, monGroups for short. MonGroups are properties that can be assigned to an HLT chain in the Trigger Menu defining the signature group which monitors the HLT chain via a signature flag and the monitoring level at which the HLT chain is monitored.

Signature tags:

Tag Monitoring signature/group
bJetMon b-jet signature group
bphysMon B-physics and Light States signature group
caloMon HLT Calorimeter software group
egammaMon e/gamma signature group
idMon HLT Inner Detector software group
jetMon jet signature group
metMon MET signature group
mbMon MinBias and forward signature group
muonMon muon signature group
tauMon tau signature group
tlaMon TLA group


Monitoring levels:

  • For offline/t0 monitoring:
    • shifter: highest level; chain is always monitored and is used to fill the histograms shown in the SHIFTER folder, chain is monitored both in T0 and validation jobs
    • t0: second-highest level, includes shifter level; chain is always monitored at T0 and can be used to fill histograms in the EXPERT folder, chain is monitored in both T0 and validation jobs
  • For online monitoring:
    • online: chain is monitored online

Additional signature tags and monitoring levels can be added depending on necessity.

In the following a brief introduction to monGroups will be provided which should be sufficient for most developers, for more detailed information see HLT Monitoring Groups for Run 3.

Implementation of monGroups in the Trigger menu

MonGroups can be added as ChainProp to individual chains in the respective menu where the chain is defined. The syntax is as follows:

monGroups=['<signature tag>:<monitoring level>']

Several monGroups, for both different signatures and monitoring levels, can be appended:

monGroups=['<signature tag 1>:<monitoring level A>', '<signature tag 1>:<monitoring level B>', '<signature tag 2>:<monitoring level A>']

Example:

ChainProp(name='HLT_j45_pf_ftf_preselj20_L1jJ40', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream,'express'], groups=SingleJetGroup+SupportPhIGroup, monGroups=['idMon:shifter','jetMon:t0','jetMon:online']),

In this example the HLT chain HLT_j45_pf_ftf_preselj20_L1jJ40 is marked as being used for monitoring by the HLT ID software group, idMon, at online level, and the jet signature group, jetMon, at t0 and online level.

Tip If a chain is used for monitoring at both shifter and t0 level, only the first shall be added as chain property.

warning Adding monGroups to the chain properties of an HLT chain does not automatically mean that monitoring histograms are created and available for online and offline monitoring. The actual monitoring logic still needs to be implemented in the respective signature code, see next section.

For more information about how HLT chains, see Individual Chain Construction in this guide.

Storage of monGroups

Information about monGroups for each HLT chains are stored as dictionary in a json file, HLTMonitoring.json, when the HLT menu is created. The HLTMonitoring.json can be inserted in the Trigger database when a new SMK is created, but can also be uploaded separately and linked to an existing SMK. Thus, multiple HLTMonitoring.json files can be attached to a single SMK. It is important to note only one of them will be used

Access to monGroups

Python access

This information can be accessed via two functions:

  • monitoringDict(): returns full dictionary of for all monGroups
  • monitoredChains(signatures="", monLevels="", wildcard=""): returns chains for given signatures, monitoring levels and matched to the wildcard

Example 1: will return full dictionary

from TrigConfigSvc.TriggerConfigAccess import getHLTMonitoringAccess
moniAccess=getHLTMonitoringAccess(ConfigFlags)

moniAccess.monitoringDict()

Example 2: will return only chains with the selected signature group and/or monitoring levels and/or matching to the wildcard

from TrigConfigSvc.TriggerConfigAccess import getHLTMonitoringAccess
moniAccess=getHLTMonitoringAccess(ConfigFlags)

moniAccess.monitoredChains(signature="idMon", monLevels="t0", wildcard="msonly")

Implementations like the above examples can be used in the respective signature monitoring code to create and fill histograms only for the selected subset of chains. Regarding information about how to create monitoring histograms, see Online Monitoring in this guide.

TriggerToolWeb access

The HLTMonitoring.json files stored in the Trigger database can be viewed and downloaded via TriggerToolWeb.
or more information on TriggerToolWeb, see TriggerToolWeb Documentation.