205def PixelVALIDCfg(flags):
206 """Main config fragment for PIXELVALID"""
207 acc = ComponentAccumulator()
208
209
210 if flags.Detector.GeometryID:
211 acc.merge(PIXELVALIDKernelCfg(flags, StreamName = 'StreamDAOD_PIXELVALID'))
212
213
214
215
216 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
217 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
218 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
220 "PIXELVALIDSlimmingHelper",
221 NamesAndTypes = flags.Input.TypedCollections,
222 flags = flags)
223
224 AllVariables = []
225 StaticContent = []
226 SmartCollections = []
227 ExtraVariables = []
228
229 PixelStoreMode = flags.InDet.PixelDumpMode
230 if flags.InDet.PixelDumpMode==3:
231 PixelStoreMode = 1
232
233 if flags.InDet.PixelDumpMode == 4:
234 PixelStoreMode = 3
235
236 if flags.InDet.PixelDumpMode == 5:
237 PixelStoreMode = 4
238
239 if PixelStoreMode==1:
240 PIXELVALIDSlimmingHelper.AppendToDictionary.update({
241 "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
242 "Muons": "xAOD::MuonContainer", "MuonsAux": "xAOD::MuonAuxContainer",
243 "Electrons": "xAOD::ElectronContainer",
244 "ElectronsAux": "xAOD::ElectronAuxContainer",
245 "Photons": "xAOD::PhotonContainer",
246 "PhotonsAux": "xAOD::PhotonAuxContainer",
247 "JetETMissNeutralParticleFlowObjects": "xAOD::FlowElementContainer",
248 "JetETMissNeutralParticleFlowObjectsAux": "xAOD::FlowElementAuxContainer",
249 "JetETMissChargedParticleFlowObjects": "xAOD::FlowElementContainer",
250 "JetETMissChargedParticleFlowObjectsAux": "xAOD::FlowElementAuxContainer",
251 "TauJets": "xAOD::TauJetContainer",
252 "TauJetsAux": "xAOD::TauJetAuxContainer",
253 "InDetTrackParticles": "xAOD::TrackParticleContainer",
254 "InDetTrackParticlesAux": "xAOD::TrackParticleAuxContainer",
255 "InDetLargeD0TrackParticles": "xAOD::TrackParticleContainer",
256 "InDetLargeD0TrackParticlesAux": "xAOD::TrackParticleAuxContainer",
257 "PixelMSOSs": "xAOD::TrackStateValidationContainer",
258 "PixelMSOSsAux": "xAOD::TrackStateValidationAuxContainer",
259 "Kt4EMTopoOriginEventShape": "xAOD::EventShape",
260 "Kt4EMTopoOriginEventShapeAux": "xAOD::EventShapeAuxInfo",
261 "Kt4LCTopoOriginEventShape": "xAOD::EventShape",
262 "Kt4LCTopoOriginEventShapeAux": "xAOD::EventShapeAuxInfo",
263 "NeutralParticleFlowIsoCentralEventShape": "xAOD::EventShape",
264 "NeutralParticleFlowIsoCentralEventShapeAux": "xAOD::EventShapeAuxInfo",
265 "NeutralParticleFlowIsoForwardEventShape": "xAOD::EventShape",
266 "NeutralParticleFlowIsoForwardEventShapeAux": "xAOD::EventShapeAuxInfo",
267 "TopoClusterIsoCentralEventShape": "xAOD::EventShape",
268 "TopoClusterIsoCentralEventShapeAux": "xAOD::EventShapeAuxInfo",
269 "TopoClusterIsoForwardEventShape": "xAOD::EventShape",
270 "TopoClusterIsoForwardEventShapeAux": "xAOD::EventShapeAuxInfo",
271 "MET_Calo": "xAOD::MissingETContainer",
272 "MET_CaloAux": "xAOD::MissingETAuxContainer",
273 "MET_Track": "xAOD::MissingETContainer",
274 "MET_TrackAux": "xAOD::MissingETAuxContainer",
275 "MET_LocHadTopo": "xAOD::MissingETContainer",
276 "MET_LocHadTopoRegions": "xAOD::MissingETContainer",
277 "MET_LocHadTopoAux": "xAOD::MissingETAuxContainer",
278 "MET_LocHadTopoRegionsAux": "xAOD::MissingETAuxContainer",
279 "MET_Core_AntiKt4LCTopo": "xAOD::MissingETContainer",
280 "MET_Reference_AntiKt4LCTopo": "xAOD::MissingETContainer",
281 "MET_Core_AntiKt4LCTopoAux": "xAOD::MissingETAuxContainer",
282 "MET_Reference_AntiKt4LCTopoAux": "xAOD::MissingETAuxContainer"})
283
284 SmartCollections += ["Muons", "Electrons", "Photons"]
285
286 AllVariables += ["EventInfo",
287 "JetETMissNeutralParticleFlowObjects",
288 "JetETMissChargedParticleFlowObjects",
289 "InDetTrackParticles",
290 "InDetLargeD0TrackParticles",
291 "PixelMSOSs",
292 "Kt4EMTopoOriginEventShape",
293 "Kt4LCTopoOriginEventShape",
294 "NeutralParticleFlowIsoCentralEventShape",
295 "NeutralParticleFlowIsoForwardEventShape",
296 "TopoClusterIsoCentralEventShape",
297 "TopoClusterIsoForwardEventShape"]
298
299 PIXELVALIDSlimmingHelper.AppendToDictionary.update({
300 "TauJets": "xAOD::TauJetContainer",
301 "TauJetsAux": "xAOD::TauJetAuxContainer",
302 "Kt4EMPFlowEventShape": "xAOD::EventShape",
303 "Kt4EMPFlowEventShapeAux": "xAOD::EventShapeAuxInfo",
304 "PrimaryVertices": "xAOD::VertexContainer",
305 "PrimaryVerticesAux": "xAOD::VertexAuxContainer",
306 "AntiKt4EMTopoJets": "xAOD::JetContainer",
307 "AntiKt4EMTopoJetsAux": "xAOD::JetAuxContainer",
308 "AntiKt4EMPFlowJets": "xAOD::JetContainer",
309 "AntiKt4EMPFlowJetsAux": "xAOD::JetAuxContainer"})
310
311 ExtraVariables += ["TauJets.ABS_ETA_LEAD_TRACK.ClusterTotalEnergy.ClustersMeanCenterLambda.ClustersMeanEMProbability.ClustersMeanFirstEngDens.ClustersMeanPresamplerFrac.ClustersMeanSecondLambda.EMFracFixed.LeadClusterFrac.NNDecayMode.NNDecayModeProb_1p0n.NNDecayModeProb_1p1n.NNDecayModeProb_1pXn.NNDecayModeProb_3p0n.NNDecayModeProb_3pXn.PFOEngRelDiff.PanTau_DecayModeExtended.UpsilonCluster.absipSigLeadTrk.chargedFELinks.etHotShotWin.etHotShotWinOverPtLeadTrk.etaCombined.hadLeakFracFixed.leadTrackProbHT.mCombined.mu.nConversionTracks.nFakeTracks.nModifiedIsolationTracks.nVtxPU.neutralFELinks.passThinning.phiCombined.ptCombined.ptIntermediateAxisEM.rho"]
312 ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
313
314 AllVariables += ["Kt4EMPFlowEventShape",
315 "AntiKt4EMTopoJets", "AntiKt4EMPFlowJets"]
316
317 if flags.Input.isMC:
318 PIXELVALIDSlimmingHelper.AppendToDictionary.update({
319 "AntiKt4TruthJets": "xAOD::JetContainer",
320 "AntiKt4TruthJetsAux": "xAOD::JetAuxContainer",
321 "JetInputTruthParticles": "xAOD::TruthParticleContainer",
322 "JetInputTruthParticlesNoWZ": "xAOD::TruthParticleContainer",
323 "TruthEvents": "xAOD::TruthEventContainer",
324 "TruthEventsAux": "xAOD::TruthEventAuxContainer",
325 "TruthParticles": "xAOD::TruthParticleContainer",
326 "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
327 "egammaTruthParticles": "xAOD::TruthParticleContainer",
328 "egammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
329 "MuonTruthParticles": "xAOD::TruthParticleContainer",
330 "MuonTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
331 "LRTegammaTruthParticles": "xAOD::TruthParticleContainer",
332 "LRTegammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
333 "TruthVertices": "xAOD::TruthVertexContainer",
334 "TruthVerticesAux": "xAOD::TruthVertexAuxContainer",
335 "MET_Truth": "xAOD::MissingETContainer",
336 "MET_TruthRegions": "xAOD::MissingETContainer",
337 "MET_TruthAux": "xAOD::MissingETAuxContainer",
338 "MET_TruthRegionsAux": "xAOD::MissingETAuxContainer"})
339
340 AllVariables += ["AntiKt4TruthJets",
341 "JetInputTruthParticles",
342 "JetInputTruthParticlesNoWZ",
343 "TruthEvents",
344 "TruthParticles",
345 "egammaTruthParticles",
346 "MuonTruthParticles",
347 "LRTegammaTruthParticles",
348 "TruthVertices"]
349
350 list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
351 "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
352 "HBosons", "Partons", "TQuarksFinal", "TausFinal",
353 "WBosons", "ZBosons"]
354 for item in list_aux:
355 label = "TruthLabel"+item
356 labelAux = label+"Aux"
357 PIXELVALIDSlimmingHelper.AppendToDictionary.update(
358 {label: "xAOD::TruthParticleContainer",
359 labelAux: "xAOD::TruthParticleAuxContainer"})
360 AllVariables += [label]
361
362
363
364 PIXELVALIDSlimmingHelper.IncludeTriggerNavigation = True
365 PIXELVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
366
367 if PixelStoreMode==2:
368 PIXELVALIDSlimmingHelper.AppendToDictionary.update({
369 "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
370 "PixelMonitoringTrack": "xAOD::TrackParticleContainer",
371 "PixelMonitoringTrackAux": "xAOD::TrackParticleAuxContainer"})
372
373 AllVariables += ["EventInfo",
374 "PixelMonitoringTrack"]
375
376 if flags.Input.isMC:
377 PIXELVALIDSlimmingHelper.AppendToDictionary.update({
378 "TruthEvents": "xAOD::TruthEventContainer",
379 "TruthEventsAux": "xAOD::TruthEventAuxContainer",
380 "TruthParticles": "xAOD::TruthParticleContainer",
381 "TruthParticlesAux": "xAOD::TruthParticleAuxContainer"})
382
383 AllVariables += ["TruthEvents",
384 "TruthParticles"]
385
386 list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
387 "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
388 "HBosons", "Partons", "TQuarksFinal", "TausFinal",
389 "WBosons", "ZBosons"]
390 for item in list_aux:
391 label = "TruthLabel"+item
392 labelAux = label+"Aux"
393 PIXELVALIDSlimmingHelper.AppendToDictionary.update(
394 {label: "xAOD::TruthParticleContainer",
395 labelAux: "xAOD::TruthParticleAuxContainer"})
396 AllVariables += [label]
397
398
399
400 if PixelStoreMode == 3:
401 PIXELVALIDSlimmingHelper.AppendToDictionary.update({
402 "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
403 "InDetTrackParticles": "xAOD::TrackParticleContainer",
404 "InDetTrackParticlesAux": "xAOD::TrackParticleAuxContainer"})
405
406 AllVariables += ["EventInfo",
407 "InDetTrackParticles"]
408
409 PIXELVALIDSlimmingHelper.AppendToDictionary.update({
410 "PrimaryVertices": "xAOD::VertexContainer",
411 "PrimaryVerticesAux": "xAOD::VertexAuxContainer"})
412
413 ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
414
415 if flags.Input.isMC:
416 PIXELVALIDSlimmingHelper.AppendToDictionary.update({
417 "TruthEvents": "xAOD::TruthEventContainer",
418 "TruthEventsAux": "xAOD::TruthEventAuxContainer",
419 "TruthParticles": "xAOD::TruthParticleContainer",
420 "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
421 "TruthVertices": "xAOD::TruthVertexContainer",
422 "TruthVerticesAux": "xAOD::TruthVertexAuxContainer"})
423
424 AllVariables += ["TruthEvents",
425 "TruthParticles",
426 "TruthVertices"]
427
428 list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
429 "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
430 "HBosons", "Partons", "TQuarksFinal", "TausFinal",
431 "WBosons", "ZBosons"]
432 for item in list_aux:
433 label = "TruthLabel"+item
434 labelAux = label+"Aux"
435 PIXELVALIDSlimmingHelper.AppendToDictionary.update(
436 {label: "xAOD::TruthParticleContainer",
437 labelAux: "xAOD::TruthParticleAuxContainer"})
438 AllVariables += [label]
439
440
441
442 PIXELVALIDSlimmingHelper.IncludeTriggerNavigation = True
443 PIXELVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
444
445
446 if PixelStoreMode == 4:
447 PIXELVALIDSlimmingHelper.AppendToDictionary.update({
448 "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
449 "InDetTrackParticles": "xAOD::TrackParticleContainer",
450 "InDetTrackParticlesAux": "xAOD::TrackParticleAuxContainer"})
451
452 AllVariables += ["EventInfo",
453 "InDetTrackParticles"]
454
455 PIXELVALIDSlimmingHelper.AppendToDictionary.update({
456 "PixelClusters": "xAOD::TrackMeasurementValidationContainer",
457 "PixelClustersAux": "xAOD::TrackMeasurementValidationAuxContainer"})
458
459 ExtraVariables += ["PixelClusters.charge.layer.bec.phi_module.eta_module.eta_pixel_index.phi_pixel_index.nRDO.sizePhi.sizeZ.ToT"]
460
461 PIXELVALIDSlimmingHelper.AppendToDictionary.update({
462 "PrimaryVertices": "xAOD::VertexContainer",
463 "PrimaryVerticesAux": "xAOD::VertexAuxContainer"})
464
465 ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
466
467 if flags.Input.isMC:
468 PIXELVALIDSlimmingHelper.AppendToDictionary.update({
469 "TruthEvents": "xAOD::TruthEventContainer",
470 "TruthEventsAux": "xAOD::TruthEventAuxContainer",
471 "TruthParticles": "xAOD::TruthParticleContainer",
472 "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
473 "TruthVertices": "xAOD::TruthVertexContainer",
474 "TruthVerticesAux": "xAOD::TruthVertexAuxContainer"})
475
476 AllVariables += ["TruthEvents",
477 "TruthParticles",
478 "TruthVertices"]
479
480 list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
481 "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
482 "HBosons", "Partons", "TQuarksFinal", "TausFinal",
483 "WBosons", "ZBosons"]
484
485 for item in list_aux:
486 label = "TruthLabel"+item
487 labelAux = label+"Aux"
488 PIXELVALIDSlimmingHelper.AppendToDictionary.update(
489 {label: "xAOD::TruthParticleContainer",
490 labelAux: "xAOD::TruthParticleAuxContainer"})
491 AllVariables += [label]
492
493
494
495 PIXELVALIDSlimmingHelper.IncludeTriggerNavigation = True
496 PIXELVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
497
498
499 PIXELVALIDSlimmingHelper.AllVariables = AllVariables
500 PIXELVALIDSlimmingHelper.StaticContent = StaticContent
501 PIXELVALIDSlimmingHelper.SmartCollections = SmartCollections
502 PIXELVALIDSlimmingHelper.ExtraVariables = ExtraVariables
503
504
505 PIXELVALIDItemList = PIXELVALIDSlimmingHelper.GetItemList()
506 acc.merge(OutputStreamCfg(flags, "DAOD_PIXELVALID",
507 ItemList=PIXELVALIDItemList, AcceptAlgs=["PIXELVALIDKernelCommon"]))
508
509 if flags.InDet.PixelDumpMode == 4 or flags.InDet.PixelDumpMode == 5:
510 acc.merge(SetupMetaDataForStreamCfg(
511 flags, "DAOD_PIXELVALID", AcceptAlgs=["PIXELVALIDKernelCommon"],
512 createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TriggerMenuMetaData]))
513 else:
514 acc.merge(SetupMetaDataForStreamCfg(
515 flags, "DAOD_PIXELVALID", AcceptAlgs=["PIXELVALIDKernelCommon"],
516 createMetadata=[MetadataCategory.CutFlowMetaData]))
517
518 return acc