5 from AthenaConfiguration.AthConfigFlags
import AthConfigFlags
6 from AthenaConfiguration.Enums
import FlagEnum,HIMode
8 _steeringFlags = [
'doGlobalMon',
'doLVL1CaloMon',
'doLVL1InterfacesMon',
'doCTPMon',
'doHLTMon',
9 'doPixelMon',
'doSCTMon',
'doTRTMon',
'doInDetMon',
10 'doLArMon',
'doTileMon',
11 'doCaloGlobalMon',
'doMuonMon',
12 'doLucidMon',
'doAFPMon',
13 'doHIMon',
'doEgammaMon',
'doJetMon',
'doMissingEtMon',
15 'doTauMon',
'doJetTagMon',
'doDataFlowMon' ]
17 _lowLevelSteeringFlags = [
'InDet.doGlobalMon',
'InDet.doAlignMon',
18 'InDet.doPerfMon',
'Muon.doRawMon',
19 'Muon.doTrackMon',
'Muon.doAlignMon',
21 'Muon.doPhysicsMon',
'Muon.doTrkPhysMon',
22 'Muon.doCombinedMon',
'LVL1Calo.doValidation'
27 """Flag values for DQ.DataType"""
28 Collisions =
'collisions'
30 HeavyIon =
'heavyioncollisions'
37 acf.addFlag(
'DQ.doMonitoring',
False)
38 acf.addFlag(
'DQ.doStreamAwareMon',
True)
39 acf.addFlag(
'DQ.disableAtlasReadyFilter',
False)
40 acf.addFlag(
'DQ.disableFilledBunchFilter',
False)
41 acf.addFlag(
'DQ.enableLumiAccess',
True)
42 acf.addFlag(
'DQ.FileKey',
'CombinedMonitoring')
45 acf.addFlag(
'DQ.triggerDataAvailable',
True)
47 acf.addFlag(
'DQ.useTrigger', getUseTrigger)
50 acf.addFlag(
'DQ.Environment', getEnvironment )
51 acf.addFlag(
'DQ.DataType', getDataType, type=DQDataType )
54 acf.addFlag(
'DQ.doPostProcessing',
False)
55 acf.addFlag(
'DQ.postProcessingInterval', 100)
58 for flag
in _steeringFlags + _lowLevelSteeringFlags:
60 if flag
in [
'doJetTagMon',
'doMissingEtMon',
'doTauMon']:
61 arg =
lambda x: x.DQ.DataType
is not DQDataType.Cosmics
and x.Reco.HIMode
is not HIMode.HI
62 if flag
in [
'doJetMon',
'doJetTagMon'] :
63 arg =
lambda x: x.DQ.DataType
is not DQDataType.Cosmics
64 if flag ==
'doHLTMon':
67 arg =
lambda x: x.Trigger.EDMVersion == 3
and x.DQ.Environment !=
'AOD'
68 if flag ==
'LVL1Calo.doValidation':
71 acf.addFlag(
'DQ.Steering.' + flag, arg)
74 from PyUtils.moduleExists
import moduleExists
75 if moduleExists (
'TrigHLTMonitoring'):
76 from TrigHLTMonitoring.TrigHLTMonitorAlgorithm
import createHLTDQConfigFlags
81 from PyUtils.moduleExists
import moduleExists
82 hlt_exists = moduleExists (
'TrigHLTMonitoring')
83 return hlt_exists
and flags.DQ.triggerDataAvailable
86 from AthenaConfiguration.Enums
import BeamType
89 elif flags.Reco.EnableHI:
90 return DQDataType.HeavyIon
91 elif flags.Beam.Type
is BeamType.Cosmics:
92 return DQDataType.Cosmics
93 elif flags.Beam.Type
is BeamType.Collisions:
94 return DQDataType.Collisions
95 elif flags.Beam.Type
is BeamType.SingleBeam:
97 return DQDataType.Collisions
99 from AthenaCommon.Logging
import logging
100 local_logger = logging.getLogger(
'DQConfigFlags_getDataType')
101 local_logger.warning(
'Unable to figure out beam type for DQ; using "User"')
102 return DQDataType.User
105 if flags.Common.isOnline:
109 from AthenaConfiguration.Enums
import Format
110 if flags.Input.Format
is Format.BS:
111 if flags.Output.AODFileName:
115 elif 'StreamESD' in flags.Input.ProcessingTags:
117 elif 'StreamAOD' in flags.Input.ProcessingTags:
119 elif 'StreamDAOD_PHYS' in flags.Input.ProcessingTags:
122 from AthenaCommon.Logging
import logging
123 local_logger = logging.getLogger(
'DQConfigFlags_getEnvironment')
124 local_logger.warning(
'Unable to figure out environment for DQ; using "tier0ESD"')
129 for flag
in _steeringFlags:
130 setattr(getattr(flags,
'DQ.Steering'), flag,
False)