ATLAS Offline Software
Loading...
Searching...
No Matches
TrigHLTMonitorAlgorithm.py
Go to the documentation of this file.
2# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3#
4
5'''@file TrigHLTMonitorAlgorithm.py
6@date 2019-09-10
7@date 2020-09-18
8@date 2022-02-21
9@date 2023-03-17
10@brief TrigHLTMonitoring top-level files
11'''
12
13from AthenaConfiguration.Enums import HIMode
14import logging
15logger = logging.getLogger('TrigHLTMonitoring')
16
17RAWonlySignatureList = ['Calo']
18
20 from AthenaConfiguration.AthConfigFlags import AthConfigFlags
21 acf=AthConfigFlags()
22
23 from AthenaConfiguration.Enums import Format
24 from AthenaConfiguration.Enums import BeamType
25
26 acf.addFlag('DQ.Steering.HLT.doGeneral', True)
27 acf.addFlag('DQ.Steering.HLT.doBjet', lambda flags: flags.Beam.Type is BeamType.Collisions) # b-jets disabled for cosmics following ATR-25036
28 acf.addFlag('DQ.Steering.HLT.doBphys', True)
29 acf.addFlag('DQ.Steering.HLT.doCalo', True)
30 acf.addFlag('DQ.Steering.HLT.doEgamma', True)
31 acf.addFlag('DQ.Steering.HLT.doInDet', True)
32 acf.addFlag('DQ.Steering.HLT.doJet', lambda flags: flags.Input.Format is Format.POOL or (flags.Input.Format is Format.BS and flags.Beam.Type is BeamType.Collisions))
33 acf.addFlag('DQ.Steering.HLT.doMET', lambda flags: flags.Reco.HIMode is not HIMode.HI)
34 acf.addFlag('DQ.Steering.HLT.doMinBias', True)
35 acf.addFlag('DQ.Steering.HLT.doMuon', True)
36 acf.addFlag('DQ.Steering.HLT.doTau', lambda flags: flags.Beam.Type is BeamType.Collisions and (flags.Reco.HIMode is not HIMode.HI))
37
38 return acf
39
41 if inputFlags.DQ.Environment == 'AOD' and not inputFlags.Input.isMC:
42 for signature in RAWonlySignatureList:
43 sigFlag = f"do{signature}"
44 if getattr(inputFlags.DQ.Steering.HLT, sigFlag):
45 logger.error(f"HLT monitoring on data AOD input for {signature} not allowed - not all HLT collections are recorded to AOD! Try set DQ.Steering.HLT.{sigFlag}=False.")
46 raise ValueError("HLT monitoring enabled on data AOD input.")
47
48def TrigHLTMonTopConfig(inputFlags):
49 '''Configuring the HLT signatures top-level steering in the DQ monitoring system.'''
50
51
53
54 # Define one top-level monitoring algorithm. The new configuration
55 # framework uses a component accumulator.
56
57 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
58 result = ComponentAccumulator()
59
60 # do not run in RAWtoESD, if we have two-step reco
61 if inputFlags.DQ.Environment in ('online', 'tier0', 'tier0ESD', 'AOD'):
62
63 # Verify signature settings in case of AOD input, as content monitored by some signatures not available in AOD.
64 # Will raise exception to prevent signature monitoring crashing during running.
66
67 if inputFlags.DQ.Steering.HLT.doGeneral:
68 from TrigHLTMonitoring.TrigGeneralMonitorAlgorithm import TrigGeneralMonConfig
69 result.merge(TrigGeneralMonConfig(inputFlags))
70
71 if inputFlags.DQ.Steering.HLT.doInDet:
72 from TrigInDetMonitoring.TIDAMonitoring import TrigInDetMonConfig
73 result.merge(TrigInDetMonConfig(inputFlags))
74
75 if inputFlags.DQ.Steering.HLT.doBjet:
76 from TrigBjetMonitoring.TrigBjetMonitorAlgorithm import TrigBjetMonConfig
77 result.merge(TrigBjetMonConfig(inputFlags))
78
79 if inputFlags.DQ.Steering.HLT.doBphys:
80 from TrigBphysMonitoring.TrigBphysMonitorAlgorithm import TrigBphysMonConfig
81 result.merge(TrigBphysMonConfig(inputFlags))
82
83 if inputFlags.DQ.Steering.HLT.doCalo:
84 from TrigCaloMonitoring.TrigCaloMonitorAlgorithm import TrigCaloMonConfig
85 result.merge(TrigCaloMonConfig(inputFlags))
86
87 if inputFlags.DQ.Steering.HLT.doEgamma:
88 from TrigEgammaMonitoring.TrigEgammaMonitorAlgorithm import TrigEgammaMonConfig
89 result.merge(TrigEgammaMonConfig(inputFlags))
90
91 if inputFlags.DQ.Steering.HLT.doJet:
92 from TrigJetMonitoring.TrigJetMonitorAlgorithm import TrigJetMonConfig
93 result.merge(TrigJetMonConfig(inputFlags))
94
95 if inputFlags.DQ.Steering.HLT.doMET:
96 from TrigMETMonitoring.TrigMETMonitorAlgorithm import TrigMETMonConfig
97 result.merge(TrigMETMonConfig(inputFlags))
98
99 if inputFlags.DQ.Steering.HLT.doMinBias:
100 from TrigMinBiasMonitoring.TrigMinBiasMonitoringMT import TrigMinBias
101 result.merge(TrigMinBias(inputFlags))
102
103 if inputFlags.DQ.Steering.HLT.doMuon:
104 from TrigMuonMonitoring.TrigMuonMonitoringConfig import TrigMuonMonConfig
105 result.merge(TrigMuonMonConfig(inputFlags))
106
107 if inputFlags.DQ.Steering.HLT.doTau:
108 from TrigTauMonitoring.TrigTauMonitorAlgorithm import TrigTauMonConfig
109 result.merge(TrigTauMonConfig(inputFlags))
110
111 return result
112
113