24 if extensions_list
is None:
27 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD, addToAOD
32 excludedAuxData = (
'-clusterAssociation.-TTVA_AMVFVertices_forReco.-AssoClustersUFO'
33 '.-TTVA_AMVFWeights_forReco')
35 excludedAuxData +=
'.-'.join([
''] + FTAG_AUXDATA)
36 excludedAuxData += (
'.-trackParameterCovarianceMatrices'
37 '.-parameterX.-parameterY.-parameterZ'
38 '.-parameterPX.-parameterPY.-parameterPZ'
39 '.-parameterPosition')
42 excludedAuxData +=
'.-TTVA_AMVFVertices.-TTVA_AMVFWeights'
45 from DerivationFrameworkInDet.IDTIDE
import IDTIDE_AOD_EXCLUDED_AUXDATA
46 excludedAuxData +=
'.-'.join([
''] + IDTIDE_AOD_EXCLUDED_AUXDATA)
47 from DerivationFrameworkInDet.IDTRKVALID
import IDTRKVALID_AOD_EXCLUDED_AUXDATA
48 excludedAuxData +=
'.-'.join([
''] + IDTRKVALID_AOD_EXCLUDED_AUXDATA)
50 if not (flags.Tracking.writeExtendedSi_PRDInfo
or
51 flags.Tracking.writeExtendedTRT_PRDInfo):
52 excludedAuxData +=
'.-msosLink'
58 "BCM_RDO_Container#BCM_RDOs",
59 "BCM_RDO_Container#BCM_CompactDOs",
63 if flags.InDet.doTRTPhase:
64 toESD += [
"ComTime#TRT_Phase"]
68 "InDet::SCT_ClusterContainer#SCT_Clusters",
69 "InDet::PixelClusterContainer#PixelClusters",
70 "InDet::TRT_DriftCircleContainer#TRT_DriftCircles",
71 "InDet::PixelGangedClusterAmbiguities#PixelClusterAmbiguitiesMap",
73 if flags.Tracking.doPixelClusterSplitting:
75 "InDet::PixelGangedClusterAmbiguities#SplitClusterAmbiguityMap"]
76 toESD += [
"IDCInDetBSErrContainer#SCT_FlaggedCondData"]
78 from InDetConfig.TrackRecoConfig
import ClusterSplitProbabilityContainerName
79 toESD += [
"Trk::ClusterSplitProbabilityContainer#" +
80 ClusterSplitProbabilityContainerName(flags)]
83 if flags.Tracking.doStoreTrackSeeds:
84 listOfExtensionsRequesting = [
85 e
for e
in extensions_list
86 if (e ==
'' or flags.Tracking[f
"{e}Pass"].storeTrackSeeds) ]
87 for extension
in listOfExtensionsRequesting:
88 toESD += [
"TrackCollection#SiSPSeedSegments"+extension]
90 if flags.Tracking.doTrackSegmentsPixel:
91 toESD += [
"TrackCollection#ResolvedPixelTracks"]
92 if flags.Tracking.doTruth:
94 "TrackTruthCollection#ResolvedPixelTracksTruthCollection",
95 "DetailedTrackTruthCollection#ResolvedPixelTracksDetailedTruth"]
97 if flags.Tracking.doTrackSegmentsSCT:
98 toESD += [
"TrackCollection#ResolvedSCTTracks"]
99 if flags.Tracking.doTruth:
101 "TrackTruthCollection#ResolvedSCTTracksTruthCollection",
102 "DetailedTrackTruthCollection#ResolvedSCTTracksDetailedTruth"]
104 if flags.Tracking.doTrackSegmentsTRT:
105 toESD += [
"TrackCollection#StandaloneTRTTracks"]
106 if flags.Tracking.doTruth:
108 "TrackTruthCollection#StandaloneTRTTracksTruthCollection",
109 "DetailedTrackTruthCollection#StandaloneTRTTracksDetailedTruth"]
111 if flags.Tracking.doPseudoTracking:
112 toESD += [
"TrackCollection#InDetPseudoTracks"]
113 if flags.Tracking.doTruth:
115 "TrackTruthCollection#InDetPseudoTracksTruthCollection",
116 "DetailedTrackTruthCollection#InDetPseudoTracksDetailedTruth"]
118 if flags.Tracking.doTIDE_AmbiTrackMonitoring:
119 toESD += [
"TrackCollection#ObservedTracksCollection"]
122 if flags.Tracking.doForwardTracks:
123 toESD += [
"TrackCollection#ResolvedForwardTracks"]
124 if flags.Tracking.doTruth:
126 "TrackTruthCollection#ResolvedForwardTracksTruthCollection",
127 "DetailedTrackTruthCollection#ResolvedForwardTracksDetailedTruth"]
129 if flags.Tracking.doTrackSegmentsDisappearing:
130 toESD += [
"TrackCollection#DisappearingTracks"]
131 if flags.Tracking.doTruth:
133 "TrackTruthCollection#DisappearingTracksTruthCollection",
134 "DetailedTrackTruthCollection#DisappearingTracksDetailedTruth"]
136 if flags.Tracking.doLowPtRoI:
137 toESD += [
"xAOD::VertexContainer#RoIVerticesLowPtRoI",
138 "xAOD::VertexAuxContainer#RoIVerticesLowPtRoIAux."]
139 if flags.Tracking.LowPtRoIPass.storeSeparateContainer:
140 toESD += [
"TrackCollection#ExtendedLowPtRoITracks"]
141 if flags.Tracking.doTruth:
143 "TrackTruthCollection#ExtendedLowPtRoITracksTruthCollection",
144 "DetailedTrackTruthCollection#ExtendedLowPtRoITracksDetailedTruth"]
147 if flags.Tracking.doTruth:
149 "TrackTruthCollection#CombinedInDetTracksTruthCollection",
150 "DetailedTrackTruthCollection#CombinedInDetTracksDetailedTruth"]
154 "PRD_MultiTruthCollection#PRD_MultiTruthPixel",
155 "PRD_MultiTruthCollection#PRD_MultiTruthSCT",
156 "PRD_MultiTruthCollection#PRD_MultiTruthTRT",
159 if not flags.Input.isMC:
161 "InDetBSErrContainer#PixelByteStreamErrs",
162 "TRT_BSErrContainer#TRT_ByteStreamErrs",
163 "TRT_BSIdErrContainer#TRT_ByteStreamIdErrs",
164 "IDCInDetBSErrContainer#SCT_ByteStreamErrs",
167 toESD += [
"TrackCollection#CombinedInDetTracks"]
171 "xAOD::TrackParticleContainer#InDetTrackParticles",
172 f
"xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux.{excludedAuxData}",
173 "xAOD::TrackParticleContainer#InDetForwardTrackParticles",
174 f
"xAOD::TrackParticleAuxContainer#InDetForwardTrackParticlesAux.{excludedAuxData}",
175 "xAOD::TrackParticleContainer#InDetLargeD0TrackParticles",
176 f
"xAOD::TrackParticleAuxContainer#InDetLargeD0TrackParticlesAux.{excludedAuxData}"
179 if flags.Tracking.storeBeamLineTrackParticles:
181 "xAOD::TrackParticleContainer#InDetBeamLineTrackParticles",
182 f
"xAOD::TrackParticleAuxContainer#InDetBeamLineTrackParticlesAux.{excludedAuxData}",
185 if flags.Tracking.doTrackSegmentsDisappearing:
187 "xAOD::TrackParticleContainer#InDetDisappearingTrackParticles",
188 f
"xAOD::TrackParticleAuxContainer#InDetDisappearingTrackParticlesAux.{excludedAuxData}"]
189 if flags.Tracking.doLowPtRoI:
190 toAOD += [
"xAOD::VertexContainer#RoIVerticesLowPtRoI",
191 "xAOD::VertexAuxContainer#RoIVerticesLowPtRoIAux."]
192 if flags.Tracking.LowPtRoIPass.storeSeparateContainer:
194 "xAOD::TrackParticleContainer#InDetLowPtRoITrackParticles",
195 f
"xAOD::TrackParticleAuxContainer#InDetLowPtRoITrackParticlesAux.{excludedAuxData}"]
197 if flags.Tracking.doTrackSegmentsPixel:
199 "xAOD::TrackParticleContainer#InDetPixelTrackParticles",
200 f
"xAOD::TrackParticleAuxContainer#InDetPixelTrackParticlesAux.{excludedAuxData}"]
201 if flags.Tracking.doTrackSegmentsSCT:
203 "xAOD::TrackParticleContainer#InDetSCTTrackParticles",
204 f
"xAOD::TrackParticleAuxContainer#InDetSCTTrackParticlesAux.{excludedAuxData}"]
205 if flags.Tracking.doTrackSegmentsTRT:
207 "xAOD::TrackParticleContainer#InDetTRTTrackParticles",
208 f
"xAOD::TrackParticleAuxContainer#InDetTRTTrackParticlesAux.{excludedAuxData}"]
210 if flags.Tracking.doPseudoTracking:
212 "xAOD::TrackParticleContainer#InDetPseudoTrackParticles",
213 f
"xAOD::TrackParticleAuxContainer#InDetPseudoTrackParticlesAux.{excludedAuxData}"]
214 if flags.Tracking.doTruth:
216 "TrackTruthCollection#InDetPseudoTrackTruthCollection",
217 "DetailedTrackTruthCollection#InDetPseudoTrackDetailedTruth"]
219 if flags.Tracking.doTIDE_AmbiTrackMonitoring:
221 "xAOD::TrackParticleContainer#InDetObservedTrackParticles",
222 f
"xAOD::TrackParticleAuxContainer#InDetObservedTrackParticlesAux.{excludedAuxData}"]
223 if flags.Tracking.doTruth:
225 "TrackTruthCollection#InDetObservedTrackTruthCollection",
226 "DetailedTrackTruthCollection#ObservedDetailedTracksTruth"]
228 if flags.Tracking.doStoreSiSPSeededTracks:
231 listOfExtensionsRequesting = [
232 e
for e
in extensions_list
234 flags.Tracking[f
"{e}Pass"].storeSiSPSeededTracks) ]
235 for extension
in listOfExtensionsRequesting:
237 f
"xAOD::TrackParticleContainer#SiSPSeededTracks{extension}TrackParticles",
238 f
"xAOD::TrackParticleAuxContainer#SiSPSeededTracks{extension}TrackParticlesAux.{excludedAuxData}"
241 if flags.Tracking.doStoreTrackSeeds:
243 listOfExtensionsRequesting = [
244 e
for e
in extensions_list
245 if (e ==
'' or flags.Tracking[f
"{e}Pass"].storeTrackSeeds) ]
246 for extension
in listOfExtensionsRequesting:
248 f
"xAOD::TrackParticleContainer#SiSPSeedSegments{extension}TrackParticles",
249 f
"xAOD::TrackParticleAuxContainer#SiSPSeedSegments{extension}TrackParticlesAux."
252 if (flags.Tracking.writeExtendedSi_PRDInfo
or
253 flags.Tracking.writeExtendedTRT_PRDInfo):
254 if (flags.Tracking.writeExtendedSi_PRDInfo):
256 "xAOD::TrackMeasurementValidationContainer#PixelClusters",
257 "xAOD::TrackMeasurementValidationAuxContainer#PixelClustersAux.",
258 "xAOD::TrackMeasurementValidationContainer#SCT_Clusters",
259 "xAOD::TrackMeasurementValidationAuxContainer#SCT_ClustersAux."
261 if (flags.Tracking.writeExtendedTRT_PRDInfo):
263 "xAOD::TrackMeasurementValidationContainer#TRT_DriftCircles",
264 "xAOD::TrackMeasurementValidationAuxContainer#TRT_DriftCirclesAux."
267 listOfExtensionsRequesting = [
268 e
for e
in extensions_list
269 if (e ==
'' or flags.Tracking[f
"{e}Pass"].storeTrackSeeds) ]
270 for extension
in listOfExtensionsRequesting:
271 if (flags.Tracking.writeExtendedSi_PRDInfo):
273 f
"xAOD::TrackStateValidationContainer#{extension}PixelMSOSs",
274 f
"xAOD::TrackStateValidationAuxContainer#{extension}PixelMSOSsAux.",
275 f
"xAOD::TrackStateValidationContainer#{extension}SCT_MSOSs",
276 f
"xAOD::TrackStateValidationAuxContainer#{extension}SCT_MSOSsAux."
278 if (flags.Tracking.writeExtendedTRT_PRDInfo):
280 f
"xAOD::TrackStateValidationContainer#{extension}TRT_MSOSs",
281 f
"xAOD::TrackStateValidationAuxContainer#{extension}TRT_MSOSsAux."
283 if flags.Tracking.doStoreTrackSeeds:
284 if (flags.Tracking.writeExtendedSi_PRDInfo):
286 f
"xAOD::TrackStateValidationContainer#SiSPSeedSegments{extension}_PixelMSOSs",
287 f
"xAOD::TrackStateValidationAuxContainer#SiSPSeedSegments{extension}_PixelMSOSsAux.",
288 f
"xAOD::TrackStateValidationContainer#SiSPSeedSegments{extension}_SCT_MSOSs",
289 f
"xAOD::TrackStateValidationAuxContainer#SiSPSeedSegments{extension}_SCT_MSOSsAux."
294 if flags.Tracking.doStoreSiSPSeededTracks:
295 listOfExtensionsRequesting = [
296 e
for e
in extensions_list
297 if (e ==
'' or flags.Tracking[f
"{e}Pass"].storeSiSPSeededTracks) ]
298 for extension
in listOfExtensionsRequesting:
299 if (flags.Tracking.writeExtendedSi_PRDInfo):
301 f
"xAOD::TrackStateValidationContainer#SiSP{extension}_PixelMSOSs",
302 f
"xAOD::TrackStateValidationAuxContainer#SiSP{extension}_PixelMSOSsAux.",
303 f
"xAOD::TrackStateValidationContainer#SiSP{extension}_SCT_MSOSs",
304 f
"xAOD::TrackStateValidationAuxContainer#SiSP{extension}_SCT_MSOSsAux."
306 if (flags.Tracking.writeExtendedTRT_PRDInfo):
308 f
"xAOD::TrackStateValidationContainer#SiSP{extension}_TRT_MSOSs",
309 f
"xAOD::TrackStateValidationAuxContainer#SiSP{extension}_TRT_MSOSsAux."
313 listOfExtensionsRequesting = [
314 e
for e
in extensions_list
315 if (e ==
'' or flags.Tracking[f
"{e}Pass"].storeSeparateContainer) ]
316 for extension
in listOfExtensionsRequesting:
317 if (flags.Tracking.writeExtendedSi_PRDInfo):
319 f
"xAOD::TrackStateValidationContainer#{extension}PixelMSOSs",
320 f
"xAOD::TrackStateValidationAuxContainer#{extension}PixelMSOSsAux.",
321 f
"xAOD::TrackStateValidationContainer#{extension}SCT_MSOSs",
322 f
"xAOD::TrackStateValidationAuxContainer#{extension}SCT_MSOSsAux."
324 if (flags.Tracking.writeExtendedTRT_PRDInfo):
326 f
"xAOD::TrackStateValidationContainer#{extension}TRT_MSOSs",
327 f
"xAOD::TrackStateValidationAuxContainer#{extension}TRT_MSOSsAux."
330 if flags.Tracking.doTIDE_AmbiTrackMonitoring:
331 if (flags.Tracking.writeExtendedSi_PRDInfo):
333 "xAOD::TrackStateValidationContainer#ObservedTrack_PixelMSOSs",
334 "xAOD::TrackStateValidationAuxContainer#ObservedTrack_PixelMSOSsAux.",
335 "xAOD::TrackStateValidationContainer#ObservedTrack_SCT_MSOSs",
336 "xAOD::TrackStateValidationAuxContainer#ObservedTrack_SCT_MSOSsAux."
338 if (flags.Tracking.writeExtendedTRT_PRDInfo):
340 "xAOD::TrackStateValidationContainer#ObservedTrack_TRT_MSOSs",
341 "xAOD::TrackStateValidationAuxContainer#ObservedTrack_TRT_MSOSsAux."
344 if flags.Tracking.doPseudoTracking:
345 if (flags.Tracking.writeExtendedSi_PRDInfo):
347 "xAOD::TrackStateValidationContainer#Pseudo_PixelMSOSs",
348 "xAOD::TrackStateValidationAuxContainer#Pseudo_PixelMSOSsAux.",
349 "xAOD::TrackStateValidationContainer#Pseudo_SCT_MSOSs",
350 "xAOD::TrackStateValidationAuxContainer#Pseudo_SCT_MSOSsAux."
352 if (flags.Tracking.writeExtendedTRT_PRDInfo):
354 "xAOD::TrackStateValidationContainer#Pseudo_TRT_MSOSs",
355 "xAOD::TrackStateValidationAuxContainer#Pseudo_TRT_MSOSsAux."
358 if flags.Tracking.doV0Finder:
359 excludedVtxAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
360 V0Vertices = [
"V0UnconstrVertices",
"V0KshortVertices",
361 "V0LambdaVertices",
"V0LambdabarVertices"]
362 for v0
in V0Vertices:
364 f
"xAOD::VertexContainer#{v0}",
365 f
"xAOD::VertexAuxContainer#{v0}Aux.{excludedVtxAuxData}",
368 result = ComponentAccumulator()
369 result.merge(addToESD(flags, toESD + toAOD))
370 result.merge(addToAOD(flags, toAOD))