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