22def GEN_AOD2xAODCfg(flags, name="GEN_AOD2xAOD", **kwargs):
23 acc = ComponentAccumulator()
24
25 writeInTimePileUpTruth=False
26
27
28
29 if flags.Digitization.PileUp and flags.Digitization.DigiSteeringConf in ['StandardPileUpToolsAlg', 'StandardInTimeOnlyTruthPileUpToolsAlg', 'StandardInTimeOnlyGeantinoTruthPileUpToolsAlg']:
30 writeInTimePileUpTruth = True
31
32 kwargs.setdefault('WriteInTimePileUpTruth', writeInTimePileUpTruth)
33 kwargs.setdefault('AODContainerName', 'TruthEvent')
34
35 algo = CompFactory.xAODMaker.xAODTruthCnvAlg(name, **kwargs)
36 acc.addEventAlgo(algo, primary = True)
37
38
39 from DerivationFrameworkInDet.IDTIDE import IDTIDE_AOD_EXCLUDED_AUXDATA_TRUTH
40 excludedAuxData = '.-'.join(IDTIDE_AOD_EXCLUDED_AUXDATA_TRUTH)
41 if excludedAuxData:
42 excludedAuxData = f'-{excludedAuxData}'
43
44 from OutputStreamAthenaPool.OutputStreamConfig import addToESD,addToAOD
45 toAOD = ["xAOD::TruthEventContainer#TruthEvents", "xAOD::TruthEventAuxContainer#TruthEventsAux.",
46 "xAOD::TruthVertexContainer#TruthVertices", "xAOD::TruthVertexAuxContainer#TruthVerticesAux.",
47 "xAOD::TruthParticleContainer#TruthParticles", f"xAOD::TruthParticleAuxContainer#TruthParticlesAux.{excludedAuxData}",
48 ]
49
50 if "xAOD::TruthParticleContainer#TruthPileupParticles" in flags.Input.TypedCollections:
51 toAOD.append("xAOD::TruthParticleContainer#TruthPileupParticles")
52 toAOD.append("xAOD::TruthParticleAuxContainer#TruthPileupParticlesAux.")
53
54 if writeInTimePileUpTruth:
55 toAOD.append("xAOD::TruthPileupEventContainer#TruthPileupEvents")
56 toAOD.append("xAOD::TruthPileupEventAuxContainer#TruthPileupEventsAux.")
57
58 if flags.Input.SpecialConfiguration.get("HasLHERecord", "False") == "True":
59 kwargs.setdefault('xAODTruthLHEParticleContainerName', 'TruthLHEParticles')
60 toAOD.append("xAOD::TruthParticleContainer#TruthLHEParticles")
61 toAOD.append("xAOD::TruthParticleContainer#TruthLHEParticlesAux.")
62
63 toESD = []
64
65 if flags.Output.doWriteESD:
66 acc.merge(addToESD(flags, toAOD+toESD))
67 if flags.Output.doWriteAOD:
68 acc.merge(addToAOD(flags, toAOD))
69
70 return acc
71