230def IDTRKVALIDCfg(flags):
231 """Main config fragment for IDTRKVALID"""
232 acc = ComponentAccumulator()
233
234
235 if flags.Detector.GeometryID:
236 acc.merge(IDTRKVALIDKernelCfg(flags, StreamName = 'StreamDAOD_IDTRKVALID'))
237 if flags.Detector.GeometryITk:
238 acc.merge(ITkTRKVALIDKernelCfg(flags, StreamName = 'StreamDAOD_IDTRKVALID'))
239
240
241
242
243 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
244 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
245 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
247 "IDTRKVALIDSlimmingHelper",
248 NamesAndTypes = flags.Input.TypedCollections,
249 flags = flags)
250
251 AllVariables = []
252 StaticContent = []
253 SmartCollections = []
254 ExtraVariables = []
255
256 IDTRKVALIDSlimmingHelper.AppendToDictionary.update({
257 "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
258 "Muons": "xAOD::MuonContainer", "MuonsAux": "xAOD::MuonAuxContainer",
259 "Electrons": "xAOD::ElectronContainer",
260 "ElectronsAux": "xAOD::ElectronAuxContainer",
261 "Photons": "xAOD::PhotonContainer",
262 "PhotonsAux": "xAOD::PhotonAuxContainer",
263 "JetETMissNeutralParticleFlowObjects": "xAOD::FlowElementContainer",
264 "JetETMissNeutralParticleFlowObjectsAux": "xAOD::FlowElementAuxContainer",
265 "JetETMissChargedParticleFlowObjects": "xAOD::FlowElementContainer",
266 "JetETMissChargedParticleFlowObjectsAux": "xAOD::FlowElementAuxContainer",
267 "TauJets": "xAOD::TauJetContainer",
268 "TauJetsAux": "xAOD::TauJetAuxContainer",
269 "InDetTrackParticles": "xAOD::TrackParticleContainer",
270 "InDetTrackParticlesAux": "xAOD::TrackParticleAuxContainer",
271 "InDetLargeD0TrackParticles": "xAOD::TrackParticleContainer",
272 "InDetLargeD0TrackParticlesAux": "xAOD::TrackParticleAuxContainer",
273 "Kt4EMTopoOriginEventShape": "xAOD::EventShape",
274 "Kt4EMTopoOriginEventShapeAux": "xAOD::EventShapeAuxInfo",
275 "Kt4LCTopoOriginEventShape": "xAOD::EventShape",
276 "Kt4LCTopoOriginEventShapeAux": "xAOD::EventShapeAuxInfo",
277 "NeutralParticleFlowIsoCentralEventShape": "xAOD::EventShape",
278 "NeutralParticleFlowIsoCentralEventShapeAux": "xAOD::EventShapeAuxInfo",
279 "NeutralParticleFlowIsoForwardEventShape": "xAOD::EventShape",
280 "NeutralParticleFlowIsoForwardEventShapeAux": "xAOD::EventShapeAuxInfo",
281 "TopoClusterIsoCentralEventShape": "xAOD::EventShape",
282 "TopoClusterIsoCentralEventShapeAux": "xAOD::EventShapeAuxInfo",
283 "TopoClusterIsoForwardEventShape": "xAOD::EventShape",
284 "TopoClusterIsoForwardEventShapeAux": "xAOD::EventShapeAuxInfo",
285 "MET_Calo": "xAOD::MissingETContainer",
286 "MET_CaloAux": "xAOD::MissingETAuxContainer",
287 "MET_Track": "xAOD::MissingETContainer",
288 "MET_TrackAux": "xAOD::MissingETAuxContainer",
289 "MET_LocHadTopo": "xAOD::MissingETContainer",
290 "MET_LocHadTopoRegions": "xAOD::MissingETContainer",
291 "MET_LocHadTopoAux": "xAOD::MissingETAuxContainer",
292 "MET_LocHadTopoRegionsAux": "xAOD::MissingETAuxContainer",
293 "MET_Core_AntiKt4LCTopo": "xAOD::MissingETContainer",
294 "MET_Reference_AntiKt4LCTopo": "xAOD::MissingETContainer",
295 "MET_Core_AntiKt4LCTopoAux": "xAOD::MissingETAuxContainer",
296 "MET_Reference_AntiKt4LCTopoAux": "xAOD::MissingETAuxContainer"})
297
298 if flags.Detector.GeometryID:
299 if flags.InDet.DAODStorePixel:
300 IDTRKVALIDSlimmingHelper.AppendToDictionary.update({
301 "PixelClusters": "xAOD::TrackMeasurementValidationContainer",
302 "PixelClustersAux": "xAOD::TrackMeasurementValidationAuxContainer",
303 "PixelMSOSs": "xAOD::TrackStateValidationContainer",
304 "PixelMSOSsAux": "xAOD::TrackStateValidationAuxContainer"
305 })
306 if flags.InDet.DAODStoreSCT:
307 IDTRKVALIDSlimmingHelper.AppendToDictionary.update({
308 "SCT_Clusters": "xAOD::TrackMeasurementValidationContainer",
309 "SCT_ClustersAux": "xAOD::TrackMeasurementValidationAuxContainer",
310 "SCT_MSOSs": "xAOD::TrackStateValidationContainer",
311 "SCT_MSOSsAux": "xAOD::TrackStateValidationAuxContainer"
312 })
313
314 if flags.Detector.GeometryITk:
315 if flags.ITk.DAODStorePixel:
316 IDTRKVALIDSlimmingHelper.AppendToDictionary.update({
317 "ITkPixelMeasurements": "xAOD::TrackMeasurementValidationContainer",
318 "ITkPixelMeasurementsAux": "xAOD::TrackMeasurementValidationAuxContainer",
319 "ITkPixelMSOSs": "xAOD::TrackStateValidationContainer",
320 "ITkPixelMSOSsAux": "xAOD::TrackStateValidationAuxContainer"
321 })
322 if flags.ITk.DAODStoreStrip:
323 IDTRKVALIDSlimmingHelper.AppendToDictionary.update({
324 "ITkStripMeasurements": "xAOD::TrackMeasurementValidationContainer",
325 "ITkStripMeasurementsAux": "xAOD::TrackMeasurementValidationAuxContainer",
326 "ITkStripMSOSs": "xAOD::TrackStateValidationContainer",
327 "ITkStripMSOSsAux": "xAOD::TrackStateValidationAuxContainer"
328 })
329 if flags.ITk.DAODStorePLR:
330 IDTRKVALIDSlimmingHelper.AppendToDictionary.update({
331 "PLRMeasurements": "xAOD::TrackMeasurementValidationContainer",
332 "PLRMeasurementsAux": "xAOD::TrackMeasurementValidationAuxContainer"
333 })
334
335 SmartCollections += ["Muons", "Electrons", "Photons"]
336
337 AllVariables += ["EventInfo",
338 "JetETMissNeutralParticleFlowObjects",
339 "JetETMissChargedParticleFlowObjects",
340 "InDetTrackParticles",
341 "InDetLargeD0TrackParticles",
342 "Kt4EMTopoOriginEventShape",
343 "Kt4LCTopoOriginEventShape",
344 "NeutralParticleFlowIsoCentralEventShape",
345 "NeutralParticleFlowIsoForwardEventShape",
346 "TopoClusterIsoCentralEventShape",
347 "TopoClusterIsoForwardEventShape"]
348
349 if flags.Detector.GeometryID:
350 if flags.InDet.DAODStorePixel:
351 AllVariables += ["PixelClusters","PixelMSOSs"]
352 if flags.InDet.DAODStoreSCT:
353 AllVariables += ["SCT_Clusters","SCT_MSOSs"]
354 if flags.Detector.GeometryITk:
355 if flags.ITk.DAODStorePixel:
356 AllVariables += ["ITkPixelMeasurements","ITkPixelMSOSs"]
357 if flags.ITk.DAODStoreStrip:
358 AllVariables += ["ITkStripMeasurements","ITkStripMSOSs"]
359 if flags.ITk.DAODStorePLR:
360 AllVariables += ["PLRMeasurements"]
361
362 IDTRKVALIDSlimmingHelper.AppendToDictionary.update({
363 "TauJets": "xAOD::TauJetContainer",
364 "TauJetsAux": "xAOD::TauJetAuxContainer",
365 "Kt4EMPFlowEventShape": "xAOD::EventShape",
366 "Kt4EMPFlowEventShapeAux": "xAOD::EventShapeAuxInfo",
367 "PrimaryVertices": "xAOD::VertexContainer",
368 "PrimaryVerticesAux": "xAOD::VertexAuxContainer",
369 "AntiKt4EMTopoJets": "xAOD::JetContainer",
370 "AntiKt4EMTopoJetsAux": "xAOD::JetAuxContainer",
371 "AntiKt4EMPFlowJets": "xAOD::JetContainer",
372 "AntiKt4EMPFlowJetsAux": "xAOD::JetAuxContainer"})
373
374 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"]
375 ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
376
377 AllVariables += ["Kt4EMPFlowEventShape",
378 "AntiKt4EMTopoJets", "AntiKt4EMPFlowJets"]
379
380 if flags.Input.isMC:
381 IDTRKVALIDSlimmingHelper.AppendToDictionary.update({
382 "AntiKt4TruthJets": "xAOD::JetContainer",
383 "AntiKt4TruthJetsAux": "xAOD::JetAuxContainer",
384 "JetInputTruthParticles": "xAOD::TruthParticleContainer",
385 "JetInputTruthParticlesNoWZ": "xAOD::TruthParticleContainer",
386 "TruthEvents": "xAOD::TruthEventContainer",
387 "TruthEventsAux": "xAOD::TruthEventAuxContainer",
388 "TruthParticles": "xAOD::TruthParticleContainer",
389 "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
390 "egammaTruthParticles": "xAOD::TruthParticleContainer",
391 "egammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
392 "MuonTruthParticles": "xAOD::TruthParticleContainer",
393 "MuonTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
394 "LRTegammaTruthParticles": "xAOD::TruthParticleContainer",
395 "LRTegammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
396 "TruthVertices": "xAOD::TruthVertexContainer",
397 "TruthVerticesAux": "xAOD::TruthVertexAuxContainer",
398 "MET_Truth": "xAOD::MissingETContainer",
399 "MET_TruthRegions": "xAOD::MissingETContainer",
400 "MET_TruthAux": "xAOD::MissingETAuxContainer",
401 "MET_TruthRegionsAux": "xAOD::MissingETAuxContainer"})
402
403 AllVariables += ["AntiKt4TruthJets",
404 "JetInputTruthParticles",
405 "JetInputTruthParticlesNoWZ",
406 "TruthEvents",
407 "TruthParticles",
408 "egammaTruthParticles",
409 "MuonTruthParticles",
410 "LRTegammaTruthParticles",
411 "TruthVertices"]
412
413 list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
414 "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
415 "HBosons", "Partons", "TQuarksFinal", "TausFinal",
416 "WBosons", "ZBosons"]
417 for item in list_aux:
418 label = "TruthLabel"+item
419 labelAux = label+"Aux"
420 IDTRKVALIDSlimmingHelper.AppendToDictionary.update(
421 {label: "xAOD::TruthParticleContainer",
422 labelAux: "xAOD::TruthParticleAuxContainer"})
423 AllVariables += [label]
424
425
426
427 IDTRKVALIDSlimmingHelper.IncludeTriggerNavigation = True
428 IDTRKVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
429
430 IDTRKVALIDSlimmingHelper.AllVariables = AllVariables
431 IDTRKVALIDSlimmingHelper.StaticContent = StaticContent
432 IDTRKVALIDSlimmingHelper.SmartCollections = SmartCollections
433 IDTRKVALIDSlimmingHelper.ExtraVariables = ExtraVariables
434
435
436 IDTRKVALIDItemList = IDTRKVALIDSlimmingHelper.GetItemList()
437 acc.merge(OutputStreamCfg(flags, "DAOD_IDTRKVALID",
438 ItemList=IDTRKVALIDItemList, AcceptAlgs=["IDTRKVALIDKernel"]))
439
440 acc.merge(SetupMetaDataForStreamCfg(
441 flags, "DAOD_IDTRKVALID", AcceptAlgs=["IDTRKVALIDKernel"],
442 createMetadata=[MetadataCategory.CutFlowMetaData]))
443
444 return acc