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
330 SmartCollections += ["Muons", "Electrons", "Photons"]
331
332 AllVariables += ["EventInfo",
333 "JetETMissNeutralParticleFlowObjects",
334 "JetETMissChargedParticleFlowObjects",
335 "InDetTrackParticles",
336 "InDetLargeD0TrackParticles",
337 "Kt4EMTopoOriginEventShape",
338 "Kt4LCTopoOriginEventShape",
339 "NeutralParticleFlowIsoCentralEventShape",
340 "NeutralParticleFlowIsoForwardEventShape",
341 "TopoClusterIsoCentralEventShape",
342 "TopoClusterIsoForwardEventShape"]
343
344 if flags.Detector.GeometryID:
345 if flags.InDet.DAODStorePixel:
346 AllVariables += ["PixelClusters","PixelMSOSs"]
347 if flags.InDet.DAODStoreSCT:
348 AllVariables += ["SCT_Clusters","SCT_MSOSs"]
349 if flags.Detector.GeometryITk:
350 if flags.ITk.DAODStorePixel:
351 AllVariables += ["ITkPixelMeasurements","ITkPixelMSOSs"]
352 if flags.ITk.DAODStoreStrip:
353 AllVariables += ["ITkStripMeasurements","ITkStripMSOSs"]
354
355 IDTRKVALIDSlimmingHelper.AppendToDictionary.update({
356 "TauJets": "xAOD::TauJetContainer",
357 "TauJetsAux": "xAOD::TauJetAuxContainer",
358 "Kt4EMPFlowEventShape": "xAOD::EventShape",
359 "Kt4EMPFlowEventShapeAux": "xAOD::EventShapeAuxInfo",
360 "PrimaryVertices": "xAOD::VertexContainer",
361 "PrimaryVerticesAux": "xAOD::VertexAuxContainer",
362 "AntiKt4EMTopoJets": "xAOD::JetContainer",
363 "AntiKt4EMTopoJetsAux": "xAOD::JetAuxContainer",
364 "AntiKt4EMPFlowJets": "xAOD::JetContainer",
365 "AntiKt4EMPFlowJetsAux": "xAOD::JetAuxContainer"})
366
367 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"]
368 ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
369
370 AllVariables += ["Kt4EMPFlowEventShape",
371 "AntiKt4EMTopoJets", "AntiKt4EMPFlowJets"]
372
373 if flags.Input.isMC:
374 IDTRKVALIDSlimmingHelper.AppendToDictionary.update({
375 "AntiKt4TruthJets": "xAOD::JetContainer",
376 "AntiKt4TruthJetsAux": "xAOD::JetAuxContainer",
377 "JetInputTruthParticles": "xAOD::TruthParticleContainer",
378 "JetInputTruthParticlesNoWZ": "xAOD::TruthParticleContainer",
379 "TruthEvents": "xAOD::TruthEventContainer",
380 "TruthEventsAux": "xAOD::TruthEventAuxContainer",
381 "TruthParticles": "xAOD::TruthParticleContainer",
382 "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
383 "egammaTruthParticles": "xAOD::TruthParticleContainer",
384 "egammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
385 "MuonTruthParticles": "xAOD::TruthParticleContainer",
386 "MuonTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
387 "LRTegammaTruthParticles": "xAOD::TruthParticleContainer",
388 "LRTegammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
389 "TruthVertices": "xAOD::TruthVertexContainer",
390 "TruthVerticesAux": "xAOD::TruthVertexAuxContainer",
391 "MET_Truth": "xAOD::MissingETContainer",
392 "MET_TruthRegions": "xAOD::MissingETContainer",
393 "MET_TruthAux": "xAOD::MissingETAuxContainer",
394 "MET_TruthRegionsAux": "xAOD::MissingETAuxContainer"})
395
396 AllVariables += ["AntiKt4TruthJets",
397 "JetInputTruthParticles",
398 "JetInputTruthParticlesNoWZ",
399 "TruthEvents",
400 "TruthParticles",
401 "egammaTruthParticles",
402 "MuonTruthParticles",
403 "LRTegammaTruthParticles",
404 "TruthVertices"]
405
406 list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
407 "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
408 "HBosons", "Partons", "TQuarksFinal", "TausFinal",
409 "WBosons", "ZBosons"]
410 for item in list_aux:
411 label = "TruthLabel"+item
412 labelAux = label+"Aux"
413 IDTRKVALIDSlimmingHelper.AppendToDictionary.update(
414 {label: "xAOD::TruthParticleContainer",
415 labelAux: "xAOD::TruthParticleAuxContainer"})
416 AllVariables += [label]
417
418
419
420 IDTRKVALIDSlimmingHelper.IncludeTriggerNavigation = True
421 IDTRKVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
422
423 IDTRKVALIDSlimmingHelper.AllVariables = AllVariables
424 IDTRKVALIDSlimmingHelper.StaticContent = StaticContent
425 IDTRKVALIDSlimmingHelper.SmartCollections = SmartCollections
426 IDTRKVALIDSlimmingHelper.ExtraVariables = ExtraVariables
427
428
429 IDTRKVALIDItemList = IDTRKVALIDSlimmingHelper.GetItemList()
430 acc.merge(OutputStreamCfg(flags, "DAOD_IDTRKVALID",
431 ItemList=IDTRKVALIDItemList, AcceptAlgs=["IDTRKVALIDKernel"]))
432
433 acc.merge(SetupMetaDataForStreamCfg(
434 flags, "DAOD_IDTRKVALID", AcceptAlgs=["IDTRKVALIDKernel"],
435 createMetadata=[MetadataCategory.CutFlowMetaData]))
436
437 return acc