49def METMonitoringConfig(inputFlags):
50
51
52 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
53 result = ComponentAccumulator()
54
55
56 if inputFlags.DQ.Environment == 'tier0Raw':
57 return result
58
59 from AthenaMonitoring import AthMonitorCfgHelper
60 helper = AthMonitorCfgHelper(inputFlags,'METMonitor')
61
62
63 from AthenaMonitoring.AtlasReadyFilterConfig import AtlasReadyFilterCfg
64 from AthenaMonitoring.BadLBFilterToolConfig import LArBadLBFilterToolCfg
65 from AthenaMonitoring.FilledBunchFilterToolConfig import FilledBunchFilterToolCfg
66 from AthenaMonitoring.DQConfigFlags import DQDataType
67
68 from AthenaConfiguration.ComponentFactory import CompFactory
69 METRefFinal_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METRefFinal_MonAlg',
70 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
71 LArBadLBFilterToolCfg(inputFlags),
72 FilledBunchFilterToolCfg(inputFlags)
73 ])
74 met_types = ["MET_RefFinal","MET_RefJet","MET_Muon","MET_RefEle","MET_RefGamma","MET_RefTau","MET_PVSoftTrk"]
75
76
77
78 METRefFinal_MonAlg.METContainer="MET_Reference_AntiKt4EMTopo"
79 METRefFinal_MonAlg.metKeys = met_types
80 METRefFinal_MonAlg.alltrigger = True
81 group = helper.addGroup(METRefFinal_MonAlg, "METMonitor", "MissingEt/AllTriggers/MET_AntiKt4EMTopo/")
82
83 for mets in met_types:
84 defineHistograms(METRefFinal_MonAlg, group,helper,mets)
85
86 if inputFlags.DQ.DataType is not DQDataType.Cosmics:
87 METPflow_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_MonAlg',
88 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
89 LArBadLBFilterToolCfg(inputFlags),
90 FilledBunchFilterToolCfg(inputFlags)
91 ])
92 pfmet_types = ["MET_PFlow","MET_PFlow_RefJet","MET_PFlow_Muon","MET_PFlow_RefEle","MET_PFlow_RefGamma","MET_PFlow_RefTau","MET_PFlow_PVSoftTrk"]
93 METPflow_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow"
94 METPflow_MonAlg.metKeys = pfmet_types
95 METPflow_MonAlg.alltrigger = True
96
97 group = helper.addGroup(METPflow_MonAlg, "METMonitor", "MissingEt/AllTriggers/MET_AntiKt4EMPFlow/")
98 for mets in pfmet_types:
99 defineHistograms(METPflow_MonAlg, group,helper,mets)
100
101
102 METEMTopo_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METEMTopo_MonAlg',
103 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
104 LArBadLBFilterToolCfg(inputFlags),
105 FilledBunchFilterToolCfg(inputFlags)
106 ])
107 emtopomet_types = ["MET_Topo"]
108 METEMTopo_MonAlg.METContainer="MET_EMTopo"
109 METEMTopo_MonAlg.metKeys = emtopomet_types
110 METEMTopo_MonAlg.alltrigger = True
111
112 group = helper.addGroup(METEMTopo_MonAlg, "METMonitor", "MissingEt/AllTriggers/MET_Calo/EMTopo")
113 for mets in emtopomet_types:
114 defineHistograms(METEMTopo_MonAlg, group,helper,mets)
115
116
117 METCalo_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METCalo_MonAlg',
118 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
119 LArBadLBFilterToolCfg(inputFlags),
120 FilledBunchFilterToolCfg(inputFlags)]
121 )
122 metcalo_types = [ "PEMB", "EMB", "PEME", "EME", "TILE", "HEC", "FCAL" ]
123 METCalo_MonAlg.METContainer="MET_Calo"
124 METCalo_MonAlg.METCaloKeys = metcalo_types
125 METCalo_MonAlg.alltrigger = True
126
127 group = helper.addGroup(METCalo_MonAlg, "METMonitor", "MissingEt/AllTriggers/MET_Calo/MET_Cell")
128 for mets in metcalo_types:
129 defineHistogramsCalo(METCalo_MonAlg, group,helper,mets)
130
131 METRefFinal_jXE100_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METRefFinal_jXE100_MonAlg',
132 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
133 LArBadLBFilterToolCfg(inputFlags),
134 FilledBunchFilterToolCfg(inputFlags)]
135 )
136 METRefFinal_jXE100_MonAlg.METContainer="MET_Reference_AntiKt4EMTopo"
137 METRefFinal_jXE100_MonAlg.metTotalKey="FinalTrk"
138 METRefFinal_jXE100_MonAlg.metKeys = met_types
139 METRefFinal_jXE100_MonAlg.dotrigger = True
140 group = helper.addGroup(METRefFinal_jXE100_MonAlg,"METMonitor","MissingEt/TrigjXE100/MET_AntiKt4EMTopo/")
141 for mets in met_types:
142 defineHistograms(METRefFinal_jXE100_MonAlg, group,helper,mets)
143
144 if inputFlags.DQ.DataType is not DQDataType.Cosmics:
145 METPflow_jXE100_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_jXE100_MonAlg',
146 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
147 LArBadLBFilterToolCfg(inputFlags),
148 FilledBunchFilterToolCfg(inputFlags)]
149 )
150 METPflow_jXE100_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow"
151 METPflow_jXE100_MonAlg.metTotalKey="FinalTrk"
152 METPflow_jXE100_MonAlg.metKeys = pfmet_types
153 METPflow_jXE100_MonAlg.dotrigger = True
154 group = helper.addGroup(METPflow_jXE100_MonAlg,"METMonitor","MissingEt/TrigjXE100/MET_AntiKt4EMPflow/")
155 for mets in pfmet_types:
156 defineHistograms(METPflow_jXE100_MonAlg, group,helper,mets)
157
158 METCalo_jXE100_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METCalo_jXE100_MonAlg',
159 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
160 LArBadLBFilterToolCfg(inputFlags),
161 FilledBunchFilterToolCfg(inputFlags)]
162 )
163 METCalo_jXE100_MonAlg.METCaloContainer="MET_Calo"
164 METCalo_jXE100_MonAlg.METCaloKeys = metcalo_types
165 METCalo_jXE100_MonAlg.dotrigger = True
166 group = helper.addGroup(METCalo_jXE100_MonAlg,"METMonitor","MissingEt/TrigjXE100/MET_Calo/MET_Cell")
167 for mets in metcalo_types:
168 defineHistogramsCalo(METCalo_jXE100_MonAlg, group,helper,mets)
169
170 METEMTopo_jXE100_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METEMTopo_jXE100_MonAlg',
171 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
172 LArBadLBFilterToolCfg(inputFlags),
173 FilledBunchFilterToolCfg(inputFlags)]
174 )
175 METEMTopo_jXE100_MonAlg.METContainer="MET_EMTopo"
176 METEMTopo_jXE100_MonAlg.METAntiKt4EMTopoContainer="MET_Reference_AntiKt4EMTopo"
177 emtopomet_types= ["MET_Topo"]
178 METEMTopo_jXE100_MonAlg.metKeys = emtopomet_types
179 METEMTopo_jXE100_MonAlg.dotrigger = True
180 METEMTopo_jXE100_group = helper.addGroup(METEMTopo_jXE100_MonAlg,"METMonitor","MissingEt/TrigjXE100/MET_Calo/EMTopo")
181 for mets in emtopomet_types:
182 defineHistograms(METEMTopo_jXE100_MonAlg, METEMTopo_jXE100_group,helper,mets)
183
184
185 METRefFinal_METCut_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METRefFinal_METCut_MonAlg',
186 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
187 LArBadLBFilterToolCfg(inputFlags),
188 FilledBunchFilterToolCfg(inputFlags)]
189 )
190 METRefFinal_METCut_MonAlg.METContainer="MET_Reference_AntiKt4EMTopo"
191 METRefFinal_METCut_MonAlg.metTotalKey="FinalTrk"
192 METRefFinal_METCut_MonAlg.metKeys = met_types
193 METRefFinal_METCut_MonAlg.dometcut = True
194 METRefFinal_METCut_MonAlg.metcut = 80
195 group = helper.addGroup(METRefFinal_METCut_MonAlg,"METMonitor","MissingEt/CutMet80/MET_AntiKt4EMTopo/")
196 for mets in met_types:
197 defineHistograms(METRefFinal_METCut_MonAlg, group,helper,mets)
198
199 if inputFlags.DQ.DataType is not DQDataType.Cosmics:
200 METPflow_METCut_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_METCut_MonAlg',
201 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
202 LArBadLBFilterToolCfg(inputFlags),
203 FilledBunchFilterToolCfg(inputFlags)]
204 )
205 METPflow_METCut_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow"
206 METPflow_METCut_MonAlg.metKeys = pfmet_types
207 METPflow_METCut_MonAlg.dometcut = True
208 METPflow_METCut_MonAlg.metcut = 80
209 group = helper.addGroup(METPflow_METCut_MonAlg,"METMonitor","MissingEt/CutMet80/MET_AntiKt4EMPflow/")
210 for mets in pfmet_types:
211 defineHistograms(METPflow_METCut_MonAlg, group,helper,mets)
212
213 METCalo_METCut_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METCalo_METCut_MonAlg',
214 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
215 LArBadLBFilterToolCfg(inputFlags),
216 FilledBunchFilterToolCfg(inputFlags)]
217 )
218 metcalo_types = [ "PEMB", "EMB", "PEME", "EME", "TILE", "HEC", "FCAL" ]
219 METCalo_METCut_MonAlg.METCaloContainer="MET_Calo"
220 METCalo_METCut_MonAlg.METCaloKeys = metcalo_types
221 METCalo_METCut_MonAlg.dometcut = True
222 METCalo_METCut_MonAlg.metcut = 80
223 METCalo_METCut_group = helper.addGroup(METCalo_METCut_MonAlg,"METMonitor","MissingEt/CutMet80/MET_Calo/MET_Cell")
224 for mets in metcalo_types:
225 defineHistogramsCalo(METCalo_METCut_MonAlg, METCalo_METCut_group,helper,mets)
226
227 METEMTopo_METCut_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METEMTopo_METCut_MonAlg',
228 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
229 LArBadLBFilterToolCfg(inputFlags),
230 FilledBunchFilterToolCfg(inputFlags)]
231 )
232 METEMTopo_METCut_MonAlg.METContainer="MET_EMTopo"
233 METEMTopo_METCut_MonAlg.METAntiKt4EMTopoContainer="MET_Reference_AntiKt4EMTopo"
234 emtopomet_types = ["MET_Topo"]
235 METEMTopo_METCut_MonAlg.metKeys = emtopomet_types
236 METEMTopo_METCut_MonAlg.dometcut = True
237 METEMTopo_METCut_MonAlg.metcut = 80
238 METEMTopo_METCut_group = helper.addGroup(METEMTopo_METCut_MonAlg,"METMonitor","MissingEt/CutMet80/MET_Calo/EMTopo")
239 for mets in emtopomet_types:
240 defineHistograms(METEMTopo_METCut_MonAlg, METEMTopo_METCut_group,helper,mets)
241
242
243 jetCleaningTool = CompFactory.JetCleaningTool()
244 jetCleaningTool.CutLevel = "LooseBad"
245 jetCleaningTool.DoUgly = False
246 jetCleaningTool.JetContainer = "AntiKt4EMTopoJets"
247
248 jetCleaningToolPFlow = CompFactory.JetCleaningTool("JetCleaningTool_PFlow")
249 jetCleaningToolPFlow.CutLevel = "LooseBad"
250 jetCleaningToolPFlow.DoUgly = False
251 jetCleaningToolPFlow.JetContainer = "AntiKt4EMPFlowJets"
252
253 JetCleaning_METMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'JetCleaning_METMonAlg',
254 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
255 LArBadLBFilterToolCfg(inputFlags),
256 FilledBunchFilterToolCfg(inputFlags)]
257 )
258 JetCleaning_METMonAlg.metKeys = met_types
259 JetCleaning_METMonAlg.DoJetCleaning = True
260 JetCleaning_METMonAlg.JetCleaningTool = jetCleaningTool
261 JetCleaningGroup = helper.addGroup(JetCleaning_METMonAlg,"METMonitor","MissingEt/Jetcleaning/MET_AntiKt4EMTopo/")
262 JetCleaning_METMonAlg.JetContainerName = "AntiKt4EMTopoJets"
263 for mets in met_types:
264 if mets == 'MET_PFlow_PVSoftTrk':
265 JetCleaning_METMonAlg.JetContainerName = "AntiKt4EMPFlowJets"
266 defineHistograms(JetCleaning_METMonAlg, JetCleaningGroup,helper,mets)
267
268
269 if inputFlags.DQ.DataType is not DQDataType.Cosmics:
270 PflowJetCleaning_METMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'PflowJetCleaning_METMonAlg',
271 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
272 LArBadLBFilterToolCfg(inputFlags),
273 FilledBunchFilterToolCfg(inputFlags)]
274 )
275 PflowJetCleaning_METMonAlg.METContainer="MET_Reference_AntiKt4EMPFlow"
276 PflowJetCleaning_METMonAlg.metKeys = pfmet_types
277 PflowJetCleaning_METMonAlg.DoJetCleaning = True
278 PflowJetCleaning_METMonAlg.JetCleaningTool = jetCleaningToolPFlow
279 PflowJetCleaningGroup = helper.addGroup(PflowJetCleaning_METMonAlg,"METMonitor","MissingEt/Jetcleaning/MET_AntiKt4EMPflow/")
280 PflowJetCleaning_METMonAlg.JetContainerName = "AntiKt4EMPFlowJets"
281 for mets in pfmet_types:
282 defineHistograms(PflowJetCleaning_METMonAlg, PflowJetCleaningGroup,helper,mets)
283
284 METCaloJetCleaning_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METCaloJetCleaning_MonAlg',
285 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
286 LArBadLBFilterToolCfg(inputFlags),
287 FilledBunchFilterToolCfg(inputFlags)]
288 )
289 metcalo_types = [ "PEMB", "EMB", "PEME", "EME", "TILE", "HEC", "FCAL" ]
290 METCaloJetCleaning_MonAlg.METCaloContainer="MET_Calo"
291 METCaloJetCleaning_MonAlg.METCaloKeys = metcalo_types
292 METCaloJetCleaning_MonAlg.DoJetCleaning = True
293 METCaloJetCleaning_MonAlg.JetCleaningTool = jetCleaningTool
294 group = helper.addGroup(METCaloJetCleaning_MonAlg, "METMonitor", "MissingEt/Jetcleaning/MET_Calo/MET_Cell")
295 for mets in metcalo_types:
296 defineHistogramsCalo(METCaloJetCleaning_MonAlg, group,helper,mets)
297
298 METEMTopoJetCleaning_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METEMTopoJetCleaning_MonAlg',
299 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
300 LArBadLBFilterToolCfg(inputFlags),
301 FilledBunchFilterToolCfg(inputFlags)]
302 )
303 emtopomet_types = ["MET_Topo"]
304 METEMTopoJetCleaning_MonAlg.METContainer="MET_EMTopo"
305 METEMTopoJetCleaning_MonAlg.metKeys = emtopomet_types
306 METEMTopoJetCleaning_MonAlg.DoJetCleaning = True
307 METEMTopoJetCleaning_MonAlg.JetCleaningTool = jetCleaningTool
308 group = helper.addGroup(METEMTopoJetCleaning_MonAlg, "METMonitor", "MissingEt/Jetcleaning/MET_Calo/EMTopo/")
309 for mets in emtopomet_types:
310 defineHistograms(METEMTopoJetCleaning_MonAlg, group,helper,mets)
311
312
313
314
315 jetCleaningTool.CutLevel = "LooseBad"
316
317 jetCleaningTool.DoUgly = False
318
319 BadJets_METMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'BadJets_METMonAlg',
320 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
321 LArBadLBFilterToolCfg(inputFlags),
322 FilledBunchFilterToolCfg(inputFlags)]
323 )
324 BadJets_METMonAlg.metKeys = met_types
325 BadJets_METMonAlg.DoJetCleaning = True
326 BadJets_METMonAlg.alltrigger = True
327 BadJets_METMonAlg.DoBadJets = True
328 BadJets_METMonAlg.JetCleaningTool = jetCleaningTool
329 BadJets_METMonAlg.JetContainerName = "AntiKt4EMTopoJets"
330 BadJetsGroup = helper.addGroup(BadJets_METMonAlg,"METMonitor","MissingEt/AllTriggers/BadJets/MET_AntiKt4EMTopo")
331 for mets in met_types:
332 defineHistograms(BadJets_METMonAlg, BadJetsGroup,helper,mets)
333
334 if inputFlags.DQ.DataType is not DQDataType.Cosmics:
335 BadPFJets_METMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'BadPFJets_METMonAlg',
336 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
337 LArBadLBFilterToolCfg(inputFlags),
338 FilledBunchFilterToolCfg(inputFlags)]
339 )
340 BadPFJets_METMonAlg.METContainer="MET_Reference_AntiKt4EMPFlow"
341 BadPFJets_METMonAlg.metKeys = pfmet_types
342 BadPFJets_METMonAlg.DoJetCleaning = True
343 BadPFJets_METMonAlg.alltrigger = True
344 BadPFJets_METMonAlg.DoBadJets = True
345 BadPFJets_METMonAlg.JetCleaningTool = jetCleaningToolPFlow
346 BadPFJets_METMonAlg.JetContainerName = "AntiKt4EMPFlowJets"
347 BadPFJetsGroup = helper.addGroup(BadPFJets_METMonAlg,"METMonitor","MissingEt/AllTriggers/BadJets/MET_AntiKt4EMPflow/")
348 for mets in pfmet_types:
349 defineHistograms(BadPFJets_METMonAlg, BadPFJetsGroup,helper,mets)
350
351
352 BadJets_CaloMETMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'BadJets_CaloMETMonAlg',
353 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
354 LArBadLBFilterToolCfg(inputFlags),
355 FilledBunchFilterToolCfg(inputFlags)]
356 )
357 metcalo_types = [ "PEMB", "EMB", "PEME", "EME", "TILE", "HEC", "FCAL" ]
358 BadJets_CaloMETMonAlg.METCaloContainer="MET_Calo"
359 BadJets_CaloMETMonAlg.METCaloKeys = metcalo_types
360 BadJets_CaloMETMonAlg.DoJetCleaning = True
361 BadJets_CaloMETMonAlg.alltrigger = True
362 BadJets_CaloMETMonAlg.DoBadJets = True
363 BadJets_CaloMETMonAlg.JetContainerName = "AntiKt4EMTopoJets"
364 BadJets_CaloMETMonAlg.JetCleaningTool = jetCleaningTool
365 BadJetsGroup_CaloMETMonAlg = helper.addGroup(BadJets_CaloMETMonAlg,"METMonitor","MissingEt/AllTriggers/BadJets/MET_Calo/MET_Cell")
366 for mets in metcalo_types:
367 defineHistogramsCalo(BadJets_CaloMETMonAlg, BadJetsGroup_CaloMETMonAlg,helper,mets)
368
369
370 BadJets_EMTopoMETMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'BadJets_EMTopoMETMonAlg',
371 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
372 LArBadLBFilterToolCfg(inputFlags),
373 FilledBunchFilterToolCfg(inputFlags)]
374 )
375 BadJets_EMTopoMETMonAlg.metKeys = emtopomet_types
376 BadJets_EMTopoMETMonAlg.METContainer="MET_EMTopo"
377 BadJets_EMTopoMETMonAlg.DoJetCleaning = True
378 BadJets_EMTopoMETMonAlg.alltrigger = True
379 BadJets_EMTopoMETMonAlg.DoBadJets = True
380 BadJets_EMTopoMETMonAlg.JetCleaningTool = jetCleaningTool
381 BadJetsGroup = helper.addGroup(BadJets_EMTopoMETMonAlg,"METMonitor","MissingEt/AllTriggers/BadJets/MET_Calo/EMTopo")
382 for mets in emtopomet_types:
383 defineHistograms(BadJets_EMTopoMETMonAlg, BadJetsGroup,helper,mets)
384
385 result.merge(helper.result())
386 return result