ATLAS Offline Software
egammaOutputConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 __doc__ = "Prepare EGamma output list"
4 
5 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6 
7 
8 def egammaOutputCfg(flags, name="EGOutputList"):
9 
10  acc = ComponentAccumulator()
11  outFlags = flags.Egamma.Keys.Output
12 
13  toESD = []
14  toAOD = []
15 
16  if flags.Egamma.doCentral:
17  toESD += [
18  f"xAOD::ElectronContainer#{outFlags.Electrons}",
19  f"xAOD::ElectronAuxContainer#{outFlags.Electrons}"
20  f"Aux.{outFlags.ElectronsSuppESD}"]
21  toESD += [
22  f"xAOD::PhotonContainer#{outFlags.Photons}",
23  f"xAOD::PhotonAuxContainer#{outFlags.Photons}"
24  f"Aux.{outFlags.PhotonsSuppESD}"]
25  toESD += [
26  f"xAOD::CaloClusterContainer#{outFlags.CaloClusters}",
27  f"xAOD::CaloClusterAuxContainer#{outFlags.CaloClusters}"
28  f"Aux.{outFlags.CaloClustersSuppESD}"]
29  toESD += [
30  f"xAOD::CaloClusterContainer#{outFlags.EgammaLargeClusters}",
31  f"xAOD::CaloClusterAuxContainer#{outFlags.EgammaLargeClusters}"
32  f"Aux.{outFlags.EgammaLargeClustersSuppESD}"]
33  toESD += [
34  f"CaloClusterCellLinkContainer#{outFlags.CaloClusters}"
35  "_links"]
36  toESD += [
37  f"CaloClusterCellLinkContainer#{outFlags.EgammaLargeClusters}"
38  "_links"]
39 
40  toAOD += [
41  f"xAOD::ElectronContainer#{outFlags.Electrons}",
42  f"xAOD::ElectronAuxContainer#{outFlags.Electrons}"
43  f"Aux.{outFlags.ElectronsSuppAOD}"]
44  toAOD += [
45  f"xAOD::PhotonContainer#{outFlags.Photons}",
46  f"xAOD::PhotonAuxContainer#{outFlags.Photons}"
47  f"Aux.{outFlags.PhotonsSuppAOD}"]
48  toAOD += [
49  f"xAOD::CaloClusterContainer#{outFlags.CaloClusters}",
50  f"xAOD::CaloClusterAuxContainer#{outFlags.CaloClusters}"
51  f"Aux.{outFlags.CaloClustersSuppAOD}"]
52  toAOD += [
53  f"CaloClusterCellLinkContainer#{outFlags.CaloClusters}_links"]
54 
55  if flags.Egamma.doForward:
56  toESD += [
57  f"xAOD::ElectronContainer#{outFlags.ForwardElectrons}",
58  f"xAOD::ElectronAuxContainer#{outFlags.ForwardElectrons}"
59  f"Aux.{outFlags.ForwardElectronsSuppESD}"]
60  toESD += [
61  f"xAOD::CaloClusterContainer#{outFlags.ForwardClusters}",
62  f"xAOD::CaloClusterAuxContainer#{outFlags.ForwardClusters}"
63  f"Aux.{outFlags.ForwardClustersSuppESD}"]
64  toESD += [
65  f"xAOD::CaloClusterContainer#{outFlags.EgammaLargeFWDClusters}",
66  f"xAOD::CaloClusterAuxContainer#{outFlags.EgammaLargeFWDClusters}"
67  f"Aux.{outFlags.EgammaLargeFWDClustersSuppESD}"]
68  toESD += [
69  f"CaloClusterCellLinkContainer#{outFlags.ForwardClusters}"
70  "_links"]
71  toESD += [
72  f"CaloClusterCellLinkContainer#{outFlags.EgammaLargeFWDClusters}"
73  "_links"]
74 
75  toAOD += [
76  f"xAOD::ElectronContainer#{outFlags.ForwardElectrons}",
77  f"xAOD::ElectronAuxContainer#{outFlags.ForwardElectrons}"
78  f"Aux.{outFlags.ForwardElectronsSuppAOD}"]
79  toAOD += [
80  f"xAOD::CaloClusterContainer#{outFlags.ForwardClusters}",
81  f"xAOD::CaloClusterAuxContainer#{outFlags.ForwardClusters}"
82  f"Aux.{outFlags.ForwardClustersSuppAOD}"]
83  toAOD += [
84  f"CaloClusterCellLinkContainer#{outFlags.ForwardClusters}"
85  "_links"]
86 
87  if flags.Egamma.doTracking:
88  toESD += [
89  f"xAOD::TrackParticleContainer#{outFlags.GSFTrackParticles}",
90  f"xAOD::TrackParticleAuxContainer#{outFlags.GSFTrackParticles}"
91  f"Aux.{outFlags.GSFTrackParticlesSuppESD}"]
92  toESD += [
93  f"TrackCollection#{outFlags.GSFTracks}"]
94 
95  toAOD += [
96  f"xAOD::TrackParticleContainer#{outFlags.GSFTrackParticles}",
97  f"xAOD::TrackParticleAuxContainer#{outFlags.GSFTrackParticles}"
98  f"Aux.{outFlags.GSFTrackParticlesSuppAOD}"]
99 
100  if (flags.Tracking.writeExtendedSi_PRDInfo or
101  flags.Tracking.writeExtendedTRT_PRDInfo):
102  extension = "GSF_"
103  if flags.Detector.GeometryITk:
104  toAOD += [
105  f"xAOD::TrackStateValidationContainer#{extension}ITkPixel_MSOSs",
106  f"xAOD::TrackStateValidationAuxContainer#{extension}ITkPixel_MSOSsAux.",
107  f"xAOD::TrackStateValidationContainer#{extension}ITkStrip_MSOSs",
108  f"xAOD::TrackStateValidationAuxContainer#{extension}ITkStrip_MSOSsAux."
109  ]
110  else:
111  toAOD += [
112  f"xAOD::TrackStateValidationContainer#{extension}Pixel_MSOSs",
113  f"xAOD::TrackStateValidationAuxContainer#{extension}Pixel_MSOSsAux.",
114  f"xAOD::TrackStateValidationContainer#{extension}SCT_MSOSs",
115  f"xAOD::TrackStateValidationAuxContainer#{extension}SCT_MSOSsAux.",
116  f"xAOD::TrackStateValidationContainer#{extension}TRT_MSOSs",
117  f"xAOD::TrackStateValidationAuxContainer#{extension}TRT_MSOSsAux."
118  ]
119 
120  if flags.Egamma.doConversionBuilding:
121  toESD += [
122  f"xAOD::VertexContainer#{outFlags.ConversionVertices}",
123  f"xAOD::VertexAuxContainer#{outFlags.ConversionVertices}"
124  f"Aux.{outFlags.ConversionVerticesSuppESD}"]
125 
126  toAOD += [
127  f"xAOD::VertexContainer#{outFlags.ConversionVertices}",
128  f"xAOD::VertexAuxContainer#{outFlags.ConversionVertices}"
129  f"Aux.{outFlags.ConversionVerticesSuppAOD}"]
130 
131  if flags.Egamma.doTruthAssociation:
132  toESD += [
133  f"xAOD::TruthParticleContainer#{outFlags.TruthParticles}",
134  f"xAOD::TruthParticleAuxContainer#{outFlags.TruthParticles}"
135  f"Aux.{outFlags.TruthParticlesSuppESD}"]
136 
137  toAOD += [f"xAOD::TruthParticleContainer#{outFlags.TruthParticles}",
138  f"xAOD::TruthParticleAuxContainer#{outFlags.TruthParticles}"
139  f"Aux.{outFlags.TruthParticlesSuppAOD}"]
140 
141  if flags.Output.doWriteESD:
142  from OutputStreamAthenaPool.OutputStreamConfig import addToESD
143  acc.merge(addToESD(flags, toESD))
144 
145  if flags.Output.doWriteAOD:
146  from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
147  acc.merge(addToAOD(flags, toAOD))
148 
149  return acc
python.egammaOutputConfig.egammaOutputCfg
def egammaOutputCfg(flags, name="EGOutputList")
Definition: egammaOutputConfig.py:8
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.OutputStreamConfig.addToESD
def addToESD(flags, itemOrList, **kwargs)
Definition: OutputStreamConfig.py:127
python.OutputStreamConfig.addToAOD
def addToAOD(flags, itemOrList, **kwargs)
Definition: OutputStreamConfig.py:142