Newer
Older
########################################################################
# Offline AthenaMonitoring configuration
# set DQMonFlags; defaults are in DataQualityTools/python/DQMonFlags.py
########################################################################
local_logger = logging.getLogger('DQMonFlagsConfig_jobOptions')
if not 'DQMonFlags' in dir():
local_logger.debug("DQMonFlags not yet imported - I import them now")
from AthenaMonitoring.DQMonFlags import DQMonFlags
from AthenaConfiguration.AllConfigFlags import ConfigFlags
ConfigFlags.DQ.isReallyOldStyle = True
if not 'rec' in dir():
from RecExConfig.RecFlags import rec

Peter Onyisi
committed
from RecExConfig.RecAlgsFlags import recAlgs
# Set the data type based on beamType/HI flag
if globalflags.DataSource.get_Value() == 'geant4':
DQMonFlags.monManDataType = 'monteCarlo'
elif (rec.doHeavyIon() or rec.doHIP()):
DQMonFlags.monManDataType = 'heavyioncollisions'

Peter Onyisi
committed
DQMonFlags.doHIMon = True
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
elif jobproperties.Beam.beamType() == 'cosmics':
DQMonFlags.monManDataType = 'cosmics'
elif jobproperties.Beam.beamType() == 'collisions':
DQMonFlags.monManDataType = 'collisions'
elif jobproperties.Beam.beamType() == 'singlebeam':
## There is no singlebeam in AthenaMonitoring
DQMonFlags.monManDataType = 'collisions'
else:
local_logger.warning("invalid jobproperties.Beam.beamType(): %s, using default (%s)",
jobproperties.Beam.beamType(), DQMonFlags.monManDataType)
# First, test to see if this is being run online
if athenaCommonFlags.isOnline:
DQMonFlags.monManEnvironment='online'
# Running offline; set the monMan environment based on monType
elif DQMonFlags.monType=='BSonly':
DQMonFlags.monManEnvironment='tier0Raw'
if rec.readESD():
DQMonFlags.doMonitoring=False
elif DQMonFlags.monType=='ESDonly':
DQMonFlags.monManEnvironment='tier0ESD'
if rec.readRDO():
DQMonFlags.doMonitoring=False
elif (DQMonFlags.monType=='BS_ESD'):
if rec.readRDO():
DQMonFlags.monManEnvironment='tier0Raw'
if rec.readESD():
DQMonFlags.monManEnvironment='tier0ESD'
if rec.readAOD():
DQMonFlags.monManEnvironment='AOD'
elif DQMonFlags.monType=='BSall':
DQMonFlags.monManEnvironment='tier0'
if rec.readESD():
DQMonFlags.doMonitoring=False
else:
local_logger.warning("invalid DQMonFlags.monType: %s, using default monManEnvironment", DQMonFlags.monType())
# the meaning of this flag has changed in MT
if (rec.doTrigger() == False and
not (TriggerFlags.doMT() and DQMonFlags.monManEnvironment=='tier0ESD' and DQMonFlags.useTrigger())):
DQMonFlags.useTrigger=False # steers trigger-awareness
DQMonFlags.doLVL1CaloMon=False
DQMonFlags.doCTPMon=False
DQMonFlags.doHLTMon=False
if not DQMonFlags.doMonitoring():
local_logger.info("monitoring globally switched off")
DQMonFlags.doGlobalMon=False
DQMonFlags.doLVL1CaloMon=False
DQMonFlags.doCTPMon=False
DQMonFlags.doHLTMon=False
DQMonFlags.doPixelMon=False
DQMonFlags.doSCTMon=False
DQMonFlags.doTRTMon=False
DQMonFlags.doTRTElectronMon=False
DQMonFlags.doInDetGlobalMon=False
DQMonFlags.doInDetAlignMon=False
DQMonFlags.doInDetPerfMon=False
DQMonFlags.doLArMon=False
DQMonFlags.doCaloMon=False
DQMonFlags.doTileMon=False
DQMonFlags.doEgammaMon=False
DQMonFlags.doMissingEtMon=False
DQMonFlags.doJetMon=False
DQMonFlags.doTauMon=False
DQMonFlags.doJetTagMon=False
DQMonFlags.doMuonRawMon=False
DQMonFlags.doMuonSegmentMon=False
DQMonFlags.doMuonTrackMon=False
DQMonFlags.doMuonAlignMon=False
DQMonFlags.doMuonPhysicsMon=False
DQMonFlags.doMuonTrkPhysMon=False
DQMonFlags.doMuonCombinedMon=False
DQMonFlags.doLucidMon=False

Peter Onyisi
committed
DQMonFlags.doHIMon=False
else:
local_logger.info("monitoring environment set to %s", DQMonFlags.monManEnvironment())

Peter Onyisi
committed
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# new-style monitoring drives this internally so skip this section
if not DQMonFlags.doNewMonitoring:
# AOD monitoring
if DQMonFlags.monManEnvironment == 'AOD':
DQMonFlags.histogramFile='MonitorAOD.root'
DQMonFlags.doCaloMon=False
DQMonFlags.doLArMon=False
DQMonFlags.doTileMon=False
DQMonFlags.doCTPMon=False
DQMonFlags.doPixelMon=False
DQMonFlags.doSCTMon=False
DQMonFlags.doTRTMon=False
DQMonFlags.doTRTElectronMon=False
DQMonFlags.doInDetGlobalMon=False
DQMonFlags.doInDetAlignMon=False
DQMonFlags.doGlobalMon=False
DQMonFlags.doLVL1CaloMon=False
DQMonFlags.doHLTMon=False
DQMonFlags.doEgammaMon=False
DQMonFlags.doMuonRawMon=False
DQMonFlags.doLucidMon=False
# ESD monitoring: switch off DQ monitoring packages which are not yet migrated:
elif DQMonFlags.monManEnvironment == 'tier0ESD':
DQMonFlags.histogramFile='MonitorESD.root'
DQMonFlags.doCTPMon=False
DQMonFlags.doPixelMon=False
DQMonFlags.doSCTMon=False
DQMonFlags.doTRTMon=False
DQMonFlags.doTRTElectronMon=False
DQMonFlags.doInDetGlobalMon=False
DQMonFlags.doInDetAlignMon=False
# ESD monitoring: packages which use only ESD: disable when running over BS
elif DQMonFlags.monManEnvironment == 'tier0Raw':
DQMonFlags.doInDetPerfMon=False
DQMonFlags.doMissingEtMon=False
DQMonFlags.doTauMon=False
DQMonFlags.doMuonTrackMon=False
DQMonFlags.doMuonAlignMon=False
DQMonFlags.doMuonPhysicsMon=False
DQMonFlags.doMuonSegmentMon=False
DQMonFlags.doMuonTrkPhysMon=False
DQMonFlags.doMuonCombinedMon=False
DQMonFlags.doLucidMon=False
DQMonFlags.doJetTagMon=False
DQMonFlags.doJetMon=False
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
# switch off monitoring if reco is off during BS reading
if rec.readRDO() and not 'DetFlags' in dir():
from AthenaCommon.DetFlags import DetFlags
if rec.readRDO():
if not DetFlags.detdescr.ID_on():
local_logger.info("ID reco is off, switching off ID monitoring")
DQMonFlags.doPixelMon=False
DQMonFlags.doSCTMon=False
DQMonFlags.doTRTMon=False
DQMonFlags.doTRTElectronMon=False
DQMonFlags.doInDetGlobalMon=False
DQMonFlags.doInDetAlignMon=False
DQMonFlags.doInDetPerfMon=False
if not DetFlags.detdescr.LAr_on():
local_logger.info("LAr reco is off, switching off LAr monitoring")
DQMonFlags.doLArMon=False
if not DetFlags.detdescr.Tile_on():
local_logger.info("Tile reco is off, switching off Tile monitoring")
DQMonFlags.doTileMon=False
if (not DetFlags.detdescr.LAr_on()) and (not DetFlags.detdescr.Tile_on()) :
local_logger.info("LAr and Tile reco are off, switching off Calo monitoring")
DQMonFlags.doCaloMon=False
if not DetFlags.detdescr.Muon_on():
local_logger.info("Muon reco is off, switching off muon monitoring")
DQMonFlags.doMuonRawMon=False
DQMonFlags.doMuonSegmentMon=False
DQMonFlags.doMuonTrackMon=False
DQMonFlags.doMuonAlignMon=False
DQMonFlags.doMuonPhysicsMon=False
DQMonFlags.doMuonTrkPhysMon=False
DQMonFlags.doMuonCombinedMon=False
# turn monitoring off if rec.do<System>=False
# add more protections against reco off and running over bytestream
#
# From David Rousseau (4 Nov 2009): https://savannah.cern.ch/bugs/?59075
# rec.doCalo=False means: "do not do anything wrt to calo"
# CaloRecFlags.Enabled=False means: switch off just the calo reco
# (and similar flags for other systems)
if rec.readRDO():
from CaloRec.CaloRecFlags import jobproperties
from InDetRecExample.InDetJobProperties import InDetFlags
from MuonRecExample.MuonRecFlags import muonRecFlags
from MuonCombinedRecExample.MuonCombinedRecFlags import muonCombinedRecFlags
from egammaRec.egammaRecFlags import jobproperties
from tauRec.tauRecFlags import jobproperties

Peter Onyisi
committed
from JetRec.JetRecFlags import jobproperties
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
if (not rec.doCalo()) or (rec.readRDO() and not jobproperties.CaloRecFlags.Enabled()):
DQMonFlags.doCaloMon=False
DQMonFlags.doTileMon=False
DQMonFlags.doLArMon=False
if (not rec.doInDet()) or (rec.readRDO() and not jobproperties.InDetJobProperties.Enabled()):
DQMonFlags.doPixelMon=False
DQMonFlags.doSCTMon=False
DQMonFlags.doTRTMon=False
DQMonFlags.doTRTElectronMon=False
DQMonFlags.doInDetGlobalMon=False
DQMonFlags.doInDetAlignMon=False
DQMonFlags.doInDetPerfMon=False
if (not rec.doMuon()) or (rec.readRDO() and not jobproperties.MuonRec.Enabled()):
DQMonFlags.doMuonRawMon=False
DQMonFlags.doMuonSegmentMon=False
DQMonFlags.doMuonTrackMon=False
DQMonFlags.doMuonAlignMon=False
DQMonFlags.doMuonPhysicsMon=False
DQMonFlags.doMuonTrkPhysMon=False
DQMonFlags.doMuonCombinedMon=False
if (not rec.doMuonCombined()) or (rec.readRDO() and not jobproperties.MuonCombinedRec.Enabled()):
DQMonFlags.doMuonCombinedMon=False
if (not rec.doEgamma()) or (rec.readRDO() and not jobproperties.egammaRecFlags.Enabled()):
DQMonFlags.doEgammaMon=False
#if (not rec.doJetRec()) or (rec.readRDO() and not jobproperties.JetRecFlags.Enabled()):

Peter Onyisi
committed
if (not rec.doJetMissingETTag() or (rec.readRDO() and not jobproperties.JetRecFlags.Enabled())):
DQMonFlags.doJetMon=False

Peter Onyisi
committed
DQMonFlags.doMissingEtMon=False
DQMonFlags.doJetTagMon=False
#if (not rec.doTau()) or (rec.readRDO() and not jobproperties.TauRecFlags.Enabled()):
if (not rec.doTau()):
DQMonFlags.doTauMon=False
if not rec.doAFP() or DQMonFlags.monManDataType == 'monteCarlo':
DQMonFlags.doAFPMon=False

Peter Onyisi
committed
#
# Stream Aware Monitoring
# Turn off tools on a stream basis to save cpu
#
if DQMonFlags.doStreamAwareMon:
local_logger.info("Setting stream-aware monitoring for stream %s", rec.triggerStream())
from TrigHLTMonitoring.HLTMonFlags import HLTMonFlags
from LArMonTools.LArMonFlags import LArMonFlags
# Some LAr monitoring is only done on a couple of streams for cpu sake
# So set them as false by default. Turn them on as needed
LArMonFlags.doLArRODMonTool=False # savannah bug report #83390
LArMonFlags.doLArRawMonitorSignal=False
LArMonFlags.doLArRawChannelMon=False
LArMonFlags.doLArCollisionTimeMon=False
LArMonFlags.doLArAffectedRegions=False
LArMonFlags.doLArHVCorrectionMonTool=False
LArMonFlags.doLArCoverage=False
doCaloCellVecMon=False
# The following are ON except for certain streams
LArMonFlags.doLArDigitMon=True
LArMonFlags.doLArNoisyROMon=True
# All monitoring turned on for express stream (except LArRawChannelMon)
# HIP/HI runs will use the express settings for MinBias, MinBiasOverlay, HardProbes, bulk, and UPC
if (rec.triggerStream()=='express' or rec.triggerStream()=='Main' or
((rec.doHIP() or rec.doHeavyIon())
and rec.triggerStream() in ['MinBias', 'MinBiasOverlay', 'HardProbes', 'bulk', 'UPC'])):
LArMonFlags.doLArCollisionTimeMon=True
LArMonFlags.doLArAffectedRegions=True
LArMonFlags.doLArHVCorrectionMonTool=True
LArMonFlags.doLArCoverage=True
LArMonFlags.doLArRODMonTool=True # savannah bug report #83390
if (rec.triggerStream()=='express' or rec.triggerStream()=='Main'):
doCaloCellVecMon=True
elif (rec.triggerStream()=='CosmicCalo'):
LArMonFlags.doLArRawChannelMon=True
LArMonFlags.doLArRawMonitorSignal=True
LArMonFlags.doLArAffectedRegions=True
LArMonFlags.doLArHVCorrectionMonTool=True
LArMonFlags.doLArCoverage=True
LArMonFlags.doLArDigitMon=False
doCaloCellVecMon=True
HLTMonFlags.doBjet=False
HLTMonFlags.doEgamma=False
HLTMonFlags.doTau=False
HLTMonFlags.doJet=False
HLTMonFlags.doCalo=False
HLTMonFlags.doMuon=False
HLTMonFlags.doGeneral=False
DQMonFlags.doTauMon=False
DQMonFlags.doPixelMon=False
DQMonFlags.doMuonRawMon=False
DQMonFlags.doMuonTrackMon=False
DQMonFlags.doMuonAlignMon=False
DQMonFlags.doMuonCombinedMon=False
DQMonFlags.doMuonSegmentMon=False
DQMonFlags.doMuonPhysicsMon=False
DQMonFlags.doMuonTrkPhysMon=False
DQMonFlags.doTRTMon=False
DQMonFlags.doJetTagMon=False
elif (rec.triggerStream()=='JetTauEtmiss'):
DQMonFlags.doEgammaMon=False
DQMonFlags.doPixelMon=False
DQMonFlags.doSCTMon=False
DQMonFlags.doTRTMon=False
LArMonFlags.doLArRawChannelMon=False
HLTMonFlags.doGeneral=False
elif (rec.triggerStream()=='Egamma'):
DQMonFlags.doJetMon=False
DQMonFlags.doMissingEtMon=False
DQMonFlags.doTauMon=False
HLTMonFlags.doBjet=False
HLTMonFlags.doTau=False
HLTMonFlags.doJet=False
HLTMonFlags.doMuon=False
HLTMonFlags.doGeneral=False
DQMonFlags.doMuonRawMon=False
DQMonFlags.doMuonTrackMon=False
DQMonFlags.doMuonAlignMon=False
DQMonFlags.doMuonCombinedMon=False
DQMonFlags.doMuonSegmentMon=False
DQMonFlags.doMuonPhysicsMon=False
DQMonFlags.doMuonTrkPhysMon=False
DQMonFlags.doTileMon=False
DQMonFlags.doPixelMon=False
DQMonFlags.doSCTMon=False
DQMonFlags.doJetTagMon=False
LArMonFlags.doLArRawChannelMon=False
elif (rec.triggerStream()=='Muons'):
DQMonFlags.doEgammaMon=False
DQMonFlags.doJetMon=False
DQMonFlags.doMissingEtMon=False
DQMonFlags.doTauMon=False
HLTMonFlags.doBjet=False
HLTMonFlags.doEgamma=False
HLTMonFlags.doTau=False
HLTMonFlags.doJet=False
HLTMonFlags.doCalo=False
HLTMonFlags.doGeneral=False
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
DQMonFlags.doTileMon=False
DQMonFlags.doPixelMon=False
DQMonFlags.doSCTMon=False
DQMonFlags.doTRTMon=False
DQMonFlags.doCaloMon=False
DQMonFlags.doJetTagMon=False
LArMonFlags.doLArRawChannelMon=False
LArMonFlags.doLArCollisionTimeMon=False
LArMonFlags.doLArAffectedRegions=False
#LArMonFlags.doLArFEBMon=False
LArMonFlags.doLArHVCorrectionMonTool=False
LArMonFlags.doLArCoverage=False
LArMonFlags.doLArDigitMon=False
LArMonFlags.doLArNoisyROMon=False
elif (rec.triggerStream()=='IDCosmic'):
DQMonFlags.doEgammaMon=False
DQMonFlags.doJetMon=False
DQMonFlags.doMissingEtMon=False
DQMonFlags.doTauMon=False
DQMonFlags.doTileMon=False
DQMonFlags.doMuonRawMon=False
DQMonFlags.doMuonTrackMon=False
DQMonFlags.doMuonAlignMon=False
DQMonFlags.doMuonSegmentMon=False
DQMonFlags.doMuonPhysicsMon=False
DQMonFlags.doCaloMon=False
DQMonFlags.doJetTagMon=False
HLTMonFlags.doGeneral=False
#LArMonFlags.doLArFEBMon=False
#LArMonFlags.doLArDigitMon=False
#LArMonFlags.doLArNoisyROMon=False
elif (rec.triggerStream()=='ZeroBias'):
DQMonFlags.doTauMon=False
HLTMonFlags.doBjet=False
HLTMonFlags.doEgamma=False
HLTMonFlags.doTau=False
HLTMonFlags.doJet=False
HLTMonFlags.doCalo=False
HLTMonFlags.doMuon=False
HLTMonFlags.doGeneral=False
DQMonFlags.doPixelMon=True
DQMonFlags.doMuonRawMon=False
DQMonFlags.doMuonTrackMon=False
DQMonFlags.doMuonAlignMon=False
DQMonFlags.doMuonCombinedMon=False
DQMonFlags.doMuonSegmentMon=False
DQMonFlags.doMuonPhysicsMon=False
DQMonFlags.doMuonTrkPhysMon=False
DQMonFlags.doTRTMon=False
DQMonFlags.doJetTagMon=False
#LArMonFlags.doLArRawChannelMon=False
#LArMonFlags.doLArCollisionTimeMon=False
#LArMonFlags.doLArAffectedRegions=False
#LArMonFlags.doLArFEBMon=False
#LArMonFlags.doLArHVCorrectionMonTool=False
#LArMonFlags.doLArCoverage=False
#LArMonFlags.doLArDigitMon=False
#LArMonFlags.doLArNoisyROMon=False
#LArMonFlags.doLArRODMonTool=True # savannah bug report #83390
elif (rec.triggerStream()=='L1Calo' or rec.triggerStream()=='L1Topo'):
HLTMonFlags.doBjet=False
HLTMonFlags.doMuon=False
HLTMonFlags.doGeneral=False
DQMonFlags.doPixelMon=False
DQMonFlags.doMuonRawMon=False
DQMonFlags.doMuonTrackMon=False
DQMonFlags.doMuonAlignMon=False
DQMonFlags.doMuonCombinedMon=False
DQMonFlags.doMuonSegmentMon=False
DQMonFlags.doMuonPhysicsMon=False
DQMonFlags.doMuonTrkPhysMon=False
DQMonFlags.doTRTMon=False
DQMonFlags.doJetTagMon=False
# Default stream-aware settings for unspecified streams
# Only run a select few set of tools
else:
#LArMonFlags.doLArRawChannelMon=False
DQMonFlags.doEgammaMon=False
DQMonFlags.doJetMon=False
DQMonFlags.doMissingEtMon=False
DQMonFlags.doTauMon=False
# HLT experts need monitoring in various unspecified streams
#DQMonFlags.doHLTMon=False
# except they don't need General
HLTMonFlags.doGeneral=False
DQMonFlags.doMuonTrackMon=False
DQMonFlags.doMuonAlignMon=False
DQMonFlags.doMuonCombinedMon=False
DQMonFlags.doMuonSegmentMon=False
DQMonFlags.doMuonPhysicsMon=False
DQMonFlags.doMuonTrkPhysMon=False
DQMonFlags.doCaloMon=False
DQMonFlags.doJetTagMon=False
else:
local_logger.info("Stream-Aware monitoring is turned OFF")
# If data type is '*comm' disable ATLAS Ready filter by default
if (rec.projectName.get_Value().endswith('comm') and
not DQMonFlags.disableAtlasReadyFilter()
):
local_logger.info("This is a commissioning project tag, will attempt to disable ATLAS Ready filter for monitoring tools. To really enable it, use DQMonFlags.disableAtlasReadyFilter.set_Value_and_Lock(False).")
DQMonFlags.disableAtlasReadyFilter=True
DQMonFlags.lock_JobProperties()
DQMonFlags.print_JobProperties()
del local_logger