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 from OutputStreamAthenaPool.OutputStreamConfig import addToESD,addToAOD
39 toAOD = ["xAOD::TruthEventContainer#TruthEvents", "xAOD::TruthEventAuxContainer#TruthEventsAux.",
40 "xAOD::TruthVertexContainer#TruthVertices", "xAOD::TruthVertexAuxContainer#TruthVerticesAux.",
41 "xAOD::TruthParticleContainer#TruthParticles", "xAOD::TruthParticleAuxContainer#TruthParticlesAux.",
42 ]
43
44 if "xAOD::TruthParticleContainer#TruthPileupParticles" in flags.Input.TypedCollections:
45 toAOD.append("xAOD::TruthParticleContainer#TruthPileupParticles")
46 toAOD.append("xAOD::TruthParticleAuxContainer#TruthPileupParticlesAux.")
47
48 if writeInTimePileUpTruth:
49 toAOD.append("xAOD::TruthPileupEventContainer#TruthPileupEvents")
50 toAOD.append("xAOD::TruthPileupEventAuxContainer#TruthPileupEventsAux.")
51
52 if flags.Input.SpecialConfiguration.get("HasLHERecord", "False") == "True":
53 kwargs.setdefault('xAODTruthLHEParticleContainerName', 'TruthLHEParticles')
54 toAOD.append("xAOD::TruthParticleContainer#TruthLHEParticles")
55 toAOD.append("xAOD::TruthParticleContainer#TruthLHEParticlesAux.")
56
57 toESD = []
58
59 if flags.Output.doWriteESD:
60 acc.merge(addToESD(flags, toAOD+toESD))
61 if flags.Output.doWriteAOD:
62 acc.merge(addToAOD(flags, toAOD))
63
64 return acc
65