ATLAS Offline Software
Loading...
Searching...
No Matches
python.InDetTrackOutputConfig Namespace Reference

Functions

 InDetTrackRecoOutputCfg (flags, extensions_list=None)

Variables

list FTAG_AUXDATA

Function Documentation

◆ InDetTrackRecoOutputCfg()

python.InDetTrackOutputConfig.InDetTrackRecoOutputCfg ( flags,
extensions_list = None )

Definition at line 23 of file InDetTrackOutputConfig.py.

23def InDetTrackRecoOutputCfg(flags, extensions_list=None):
24 if extensions_list is None:
25 extensions_list = []
26
27 from OutputStreamAthenaPool.OutputStreamConfig import addToESD, addToAOD
28 toAOD = []
29 toESD = []
30
31 # excluded track aux data
32 excludedAuxData = ('-clusterAssociation.-TTVA_AMVFVertices_forReco.-AssoClustersUFO'
33 '.-TTVA_AMVFWeights_forReco')
34 # remove track decorations used internally by FTAG software
35 excludedAuxData += '.-'.join([''] + FTAG_AUXDATA)
36 excludedAuxData += ('.-trackParameterCovarianceMatrices'
37 '.-parameterX.-parameterY.-parameterZ'
38 '.-parameterPX.-parameterPY.-parameterPZ'
39 '.-parameterPosition')
40
41 # exclude TTVA decorations
42 excludedAuxData += '.-TTVA_AMVFVertices.-TTVA_AMVFWeights'
43
44 # exclude IDTIDE decorations
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)
49
50 if not (flags.Tracking.writeExtendedSi_PRDInfo or
51 flags.Tracking.writeExtendedTRT_PRDInfo):
52 excludedAuxData += '.-msosLink'
53
54
57 toESD += [
58 "BCM_RDO_Container#BCM_RDOs",
59 "BCM_RDO_Container#BCM_CompactDOs",
60 ]
61
62 # write phase calculation into ESD
63 if flags.InDet.doTRTPhase:
64 toESD += ["ComTime#TRT_Phase"]
65
66 # Save PRD
67 toESD += [
68 "InDet::SCT_ClusterContainer#SCT_Clusters",
69 "InDet::PixelClusterContainer#PixelClusters",
70 "InDet::TRT_DriftCircleContainer#TRT_DriftCircles",
71 "InDet::PixelGangedClusterAmbiguities#PixelClusterAmbiguitiesMap",
72 ]
73 if flags.Tracking.doPixelClusterSplitting:
74 toESD += [
75 "InDet::PixelGangedClusterAmbiguities#SplitClusterAmbiguityMap"]
76 toESD += ["IDCInDetBSErrContainer#SCT_FlaggedCondData"]
77
78 from InDetConfig.TrackRecoConfig import ClusterSplitProbabilityContainerName
79 toESD += ["Trk::ClusterSplitProbabilityContainer#" +
80 ClusterSplitProbabilityContainerName(flags)]
81
82 # add tracks
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]
89
90 if flags.Tracking.doTrackSegmentsPixel:
91 toESD += ["TrackCollection#ResolvedPixelTracks"]
92 if flags.Tracking.doTruth:
93 toESD += [
94 "TrackTruthCollection#ResolvedPixelTracksTruthCollection",
95 "DetailedTrackTruthCollection#ResolvedPixelTracksDetailedTruth"]
96
97 if flags.Tracking.doTrackSegmentsSCT:
98 toESD += ["TrackCollection#ResolvedSCTTracks"]
99 if flags.Tracking.doTruth:
100 toESD += [
101 "TrackTruthCollection#ResolvedSCTTracksTruthCollection",
102 "DetailedTrackTruthCollection#ResolvedSCTTracksDetailedTruth"]
103
104 if flags.Tracking.doTrackSegmentsTRT:
105 toESD += ["TrackCollection#StandaloneTRTTracks"]
106 if flags.Tracking.doTruth:
107 toESD += [
108 "TrackTruthCollection#StandaloneTRTTracksTruthCollection",
109 "DetailedTrackTruthCollection#StandaloneTRTTracksDetailedTruth"]
110
111 if flags.Tracking.doPseudoTracking:
112 toESD += ["TrackCollection#InDetPseudoTracks"]
113 if flags.Tracking.doTruth:
114 toESD += [
115 "TrackTruthCollection#InDetPseudoTracksTruthCollection",
116 "DetailedTrackTruthCollection#InDetPseudoTracksDetailedTruth"]
117
118 if flags.Tracking.doTIDE_AmbiTrackMonitoring:
119 toESD += ["TrackCollection#ObservedTracksCollection"]
120
121 # add the forward tracks for combined muon reconstruction
122 if flags.Tracking.doForwardTracks:
123 toESD += ["TrackCollection#ResolvedForwardTracks"]
124 if flags.Tracking.doTruth:
125 toESD += [
126 "TrackTruthCollection#ResolvedForwardTracksTruthCollection",
127 "DetailedTrackTruthCollection#ResolvedForwardTracksDetailedTruth"]
128
129 if flags.Tracking.doTrackSegmentsDisappearing:
130 toESD += ["TrackCollection#DisappearingTracks"]
131 if flags.Tracking.doTruth:
132 toESD += [
133 "TrackTruthCollection#DisappearingTracksTruthCollection",
134 "DetailedTrackTruthCollection#DisappearingTracksDetailedTruth"]
135
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:
142 toESD += [
143 "TrackTruthCollection#ExtendedLowPtRoITracksTruthCollection",
144 "DetailedTrackTruthCollection#ExtendedLowPtRoITracksDetailedTruth"]
145
146 # Save (Detailed) Track Truth
147 if flags.Tracking.doTruth:
148 toESD += [
149 "TrackTruthCollection#CombinedInDetTracksTruthCollection",
150 "DetailedTrackTruthCollection#CombinedInDetTracksDetailedTruth"]
151
152 # save PRD MultiTruth
153 toESD += [
154 "PRD_MultiTruthCollection#PRD_MultiTruthPixel",
155 "PRD_MultiTruthCollection#PRD_MultiTruthSCT",
156 "PRD_MultiTruthCollection#PRD_MultiTruthTRT",
157 ]
158
159 if not flags.Input.isMC:
160 toESD += [
161 "InDetBSErrContainer#PixelByteStreamErrs",
162 "TRT_BSErrContainer#TRT_ByteStreamErrs",
163 "TRT_BSIdErrContainer#TRT_ByteStreamIdErrs",
164 "IDCInDetBSErrContainer#SCT_ByteStreamErrs",
165 ]
166
167 toESD += ["TrackCollection#CombinedInDetTracks"]
168
169
170 toAOD += [
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}"
177 ]
178
179 if flags.Tracking.storeBeamLineTrackParticles:
180 toAOD += [
181 "xAOD::TrackParticleContainer#InDetBeamLineTrackParticles",
182 f"xAOD::TrackParticleAuxContainer#InDetBeamLineTrackParticlesAux.{excludedAuxData}",
183 ]
184
185 if flags.Tracking.doTrackSegmentsDisappearing:
186 toAOD += [
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:
193 toAOD += [
194 "xAOD::TrackParticleContainer#InDetLowPtRoITrackParticles",
195 f"xAOD::TrackParticleAuxContainer#InDetLowPtRoITrackParticlesAux.{excludedAuxData}"]
196
197 if flags.Tracking.doTrackSegmentsPixel:
198 toAOD += [
199 "xAOD::TrackParticleContainer#InDetPixelTrackParticles",
200 f"xAOD::TrackParticleAuxContainer#InDetPixelTrackParticlesAux.{excludedAuxData}"]
201 if flags.Tracking.doTrackSegmentsSCT:
202 toAOD += [
203 "xAOD::TrackParticleContainer#InDetSCTTrackParticles",
204 f"xAOD::TrackParticleAuxContainer#InDetSCTTrackParticlesAux.{excludedAuxData}"]
205 if flags.Tracking.doTrackSegmentsTRT:
206 toAOD += [
207 "xAOD::TrackParticleContainer#InDetTRTTrackParticles",
208 f"xAOD::TrackParticleAuxContainer#InDetTRTTrackParticlesAux.{excludedAuxData}"]
209
210 if flags.Tracking.doPseudoTracking:
211 toAOD += [
212 "xAOD::TrackParticleContainer#InDetPseudoTrackParticles",
213 f"xAOD::TrackParticleAuxContainer#InDetPseudoTrackParticlesAux.{excludedAuxData}"]
214 if flags.Tracking.doTruth:
215 toAOD += [
216 "TrackTruthCollection#InDetPseudoTrackTruthCollection",
217 "DetailedTrackTruthCollection#InDetPseudoTrackDetailedTruth"]
218
219 if flags.Tracking.doTIDE_AmbiTrackMonitoring:
220 toAOD += [
221 "xAOD::TrackParticleContainer#InDetObservedTrackParticles",
222 f"xAOD::TrackParticleAuxContainer#InDetObservedTrackParticlesAux.{excludedAuxData}"]
223 if flags.Tracking.doTruth:
224 toAOD += [
225 "TrackTruthCollection#InDetObservedTrackTruthCollection",
226 "DetailedTrackTruthCollection#ObservedDetailedTracksTruth"]
227
228 if flags.Tracking.doStoreSiSPSeededTracks:
229 # get list of extensions requesting track candidates.
230 # Add always the Primary Pass.
231 listOfExtensionsRequesting = [
232 e for e in extensions_list
233 if (e == '' or
234 flags.Tracking[f"{e}Pass"].storeSiSPSeededTracks) ]
235 for extension in listOfExtensionsRequesting:
236 toAOD += [
237 f"xAOD::TrackParticleContainer#SiSPSeededTracks{extension}TrackParticles",
238 f"xAOD::TrackParticleAuxContainer#SiSPSeededTracks{extension}TrackParticlesAux.{excludedAuxData}"
239 ]
240
241 if flags.Tracking.doStoreTrackSeeds:
242 # get list of extensions requesting track seeds. Add always the Primary Pass.
243 listOfExtensionsRequesting = [
244 e for e in extensions_list
245 if (e == '' or flags.Tracking[f"{e}Pass"].storeTrackSeeds) ]
246 for extension in listOfExtensionsRequesting:
247 toAOD += [
248 f"xAOD::TrackParticleContainer#SiSPSeedSegments{extension}TrackParticles",
249 f"xAOD::TrackParticleAuxContainer#SiSPSeedSegments{extension}TrackParticlesAux."
250 ]
251
252 if (flags.Tracking.writeExtendedSi_PRDInfo or
253 flags.Tracking.writeExtendedTRT_PRDInfo):
254 if (flags.Tracking.writeExtendedSi_PRDInfo):
255 toAOD += [
256 "xAOD::TrackMeasurementValidationContainer#PixelClusters",
257 "xAOD::TrackMeasurementValidationAuxContainer#PixelClustersAux.",
258 "xAOD::TrackMeasurementValidationContainer#SCT_Clusters",
259 "xAOD::TrackMeasurementValidationAuxContainer#SCT_ClustersAux."
260 ]
261 if (flags.Tracking.writeExtendedTRT_PRDInfo):
262 toAOD += [
263 "xAOD::TrackMeasurementValidationContainer#TRT_DriftCircles",
264 "xAOD::TrackMeasurementValidationAuxContainer#TRT_DriftCirclesAux."
265 ]
266 # get list of extensions requesting track seeds. Add always the Primary Pass.
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):
272 toAOD += [
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."
277 ]
278 if (flags.Tracking.writeExtendedTRT_PRDInfo):
279 toAOD += [
280 f"xAOD::TrackStateValidationContainer#{extension}TRT_MSOSs",
281 f"xAOD::TrackStateValidationAuxContainer#{extension}TRT_MSOSsAux."
282 ]
283 if flags.Tracking.doStoreTrackSeeds:
284 if (flags.Tracking.writeExtendedSi_PRDInfo):
285 toAOD += [
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."
290 ]
291
292 # same logic as above, but now for track candidates (SiSPSeededTracks)
293 # get list of extensions requesting track candidates. Always add the primary pass
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):
300 toAOD += [
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."
305 ]
306 if (flags.Tracking.writeExtendedTRT_PRDInfo):
307 toAOD += [
308 f"xAOD::TrackStateValidationContainer#SiSP{extension}_TRT_MSOSs",
309 f"xAOD::TrackStateValidationAuxContainer#SiSP{extension}_TRT_MSOSsAux."
310 ]
311
312 # for final tracks, only require that output requested to be stored in separate container
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):
318 toAOD += [
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."
323 ]
324 if (flags.Tracking.writeExtendedTRT_PRDInfo):
325 toAOD += [
326 f"xAOD::TrackStateValidationContainer#{extension}TRT_MSOSs",
327 f"xAOD::TrackStateValidationAuxContainer#{extension}TRT_MSOSsAux."
328 ]
329
330 if flags.Tracking.doTIDE_AmbiTrackMonitoring:
331 if (flags.Tracking.writeExtendedSi_PRDInfo):
332 toAOD += [
333 "xAOD::TrackStateValidationContainer#ObservedTrack_PixelMSOSs",
334 "xAOD::TrackStateValidationAuxContainer#ObservedTrack_PixelMSOSsAux.",
335 "xAOD::TrackStateValidationContainer#ObservedTrack_SCT_MSOSs",
336 "xAOD::TrackStateValidationAuxContainer#ObservedTrack_SCT_MSOSsAux."
337 ]
338 if (flags.Tracking.writeExtendedTRT_PRDInfo):
339 toAOD += [
340 "xAOD::TrackStateValidationContainer#ObservedTrack_TRT_MSOSs",
341 "xAOD::TrackStateValidationAuxContainer#ObservedTrack_TRT_MSOSsAux."
342 ]
343
344 if flags.Tracking.doPseudoTracking:
345 if (flags.Tracking.writeExtendedSi_PRDInfo):
346 toAOD += [
347 "xAOD::TrackStateValidationContainer#Pseudo_PixelMSOSs",
348 "xAOD::TrackStateValidationAuxContainer#Pseudo_PixelMSOSsAux.",
349 "xAOD::TrackStateValidationContainer#Pseudo_SCT_MSOSs",
350 "xAOD::TrackStateValidationAuxContainer#Pseudo_SCT_MSOSsAux."
351 ]
352 if (flags.Tracking.writeExtendedTRT_PRDInfo):
353 toAOD += [
354 "xAOD::TrackStateValidationContainer#Pseudo_TRT_MSOSs",
355 "xAOD::TrackStateValidationAuxContainer#Pseudo_TRT_MSOSsAux."
356 ]
357
358 if flags.Tracking.doV0Finder:
359 excludedVtxAuxData = "-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
360 V0Vertices = ["V0UnconstrVertices", "V0KshortVertices",
361 "V0LambdaVertices", "V0LambdabarVertices"]
362 for v0 in V0Vertices:
363 toAOD += [
364 f"xAOD::VertexContainer#{v0}",
365 f"xAOD::VertexAuxContainer#{v0}Aux.{excludedVtxAuxData}",
366 ]
367
368 result = ComponentAccumulator()
369 result.merge(addToESD(flags, toESD + toAOD))
370 result.merge(addToAOD(flags, toAOD))
371
372 return result
373

Variable Documentation

◆ FTAG_AUXDATA

list python.InDetTrackOutputConfig.FTAG_AUXDATA
Initial value:
1= [
2 'VxTrackAtVertex',
3 'TrackCompatibility',
4 'JetFitter_TrackCompatibility_antikt4emtopo',
5 'JetFitter_TrackCompatibility_antikt4empflow',
6 'btagIp_d0Uncertainty',
7 'btagIp_z0SinThetaUncertainty',
8 'btagIp_z0SinTheta',
9 'btagIp_d0',
10 'btagIp_trackMomentum',
11 'btagIp_trackDisplacement',
12 'btagIp_invalidIp',
13]

Definition at line 8 of file InDetTrackOutputConfig.py.