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

Functions

 ITkTrackRecoOutputCfg (flags, extensions_list=None)

Function Documentation

◆ ITkTrackRecoOutputCfg()

python.ITkTrackOutputConfig.ITkTrackRecoOutputCfg ( flags,
extensions_list = None )

Definition at line 6 of file ITkTrackOutputConfig.py.

6def ITkTrackRecoOutputCfg(flags, extensions_list=None):
7 if extensions_list is None:
8 extensions_list = []
9
10 from OutputStreamAthenaPool.OutputStreamConfig import addToESD, addToAOD
11 toAOD = []
12 toESD = []
13
14 # excluded track aux data
15 excludedAuxData = ('-clusterAssociation.-TTVA_AMVFVertices_forReco.-AssoClustersUFO'
16 '.-TTVA_AMVFWeights_forReco')
17 # remove track decorations used internally by FTAG software
18 excludedAuxData += '.-'.join([''] + FTAG_AUXDATA)
19 excludedAuxData += ('.-trackParameterCovarianceMatrices'
20 '.-parameterX.-parameterY.-parameterZ'
21 '.-parameterPX.-parameterPY.-parameterPZ'
22 '.-parameterPosition')
23
24 # exclude TTVA decorations
25 excludedAuxData += '.-TTVA_AMVFVertices.-TTVA_AMVFWeights'
26
27 # exclude IDTIDE decorations
28 from DerivationFrameworkInDet.IDTIDE import IDTIDE_AOD_EXCLUDED_AUXDATA
29 excludedAuxData += '.-'.join([''] + IDTIDE_AOD_EXCLUDED_AUXDATA)
30 from DerivationFrameworkInDet.IDTRKVALID import IDTRKVALID_AOD_EXCLUDED_AUXDATA
31 excludedAuxData += '.-'.join([''] + IDTRKVALID_AOD_EXCLUDED_AUXDATA)
32
33 if not flags.Tracking.writeExtendedSi_PRDInfo:
34 excludedAuxData += '.-msosLink'
35
36 if not flags.Tracking.writeExtendedHGTDInfo:
37 excludedAuxData += '.-HGTD_cluster_merged.-HGTD_cluster_raw_time.-HGTD_cluster_shadowed.-HGTD_cluster_time.-HGTD_cluster_truth_class.-HGTD_extrap_x.-HGTD_extrap_y.-HGTD_primary_expected.-HGTD_summaryinfo.-HGTD_times_of_compatible_hits'
38
39 # Save PRD
40 toESD += [
41 "InDet::SCT_ClusterContainer#ITkStripClusters",
42 "InDet::PixelClusterContainer#ITkPixelClusters",
43 "InDet::PixelGangedClusterAmbiguities#ITkPixelClusterAmbiguitiesMap",
44 ]
45 if flags.Tracking.doPixelClusterSplitting:
46 toESD += [
47 "InDet::PixelGangedClusterAmbiguities#ITkSplitClusterAmbiguityMap"]
48
49 from InDetConfig.ITkTrackRecoConfig import ITkClusterSplitProbabilityContainerName
50 toESD += ["Trk::ClusterSplitProbabilityContainer#" +
51 ITkClusterSplitProbabilityContainerName(flags)]
52
53 # Save (Detailed) Track Truth
54 if flags.Tracking.doTruth:
55 toESD += [
56 "TrackTruthCollection#CombinedITkTracksTrackTruthCollection",
57 "DetailedTrackTruthCollection#CombinedITkTracksDetailedTrackTruth"]
58
59 if flags.Tracking.doStoreTrackSeeds:
60 listOfExtensionsRequesting = [
61 e for e in extensions_list
62 if (e == '' or flags.Tracking[f"ITk{e}Pass"].storeTrackSeeds) ]
63
64 for extension in listOfExtensionsRequesting:
65 toESD += ["TrackCollection#SiSPSeedSegments"+extension]
66
67 toESD += ["TrackCollection#CombinedITkTracks"]
68
69
70 toAOD += [
71 "xAOD::TrackParticleContainer#InDetTrackParticles",
72 f"xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux.{excludedAuxData}"
73 ]
74
75 # This should be activated only if both Legacy and Acts-based tracking
76 # are executed at the same time during reconstruction
77 toAOD += [
78 "xAOD::TrackParticleContainer#ActsInDetTrackParticles",
79 f"xAOD::TrackParticleAuxContainer#ActsInDetTrackParticlesAux.{excludedAuxData}"]
80
81 if flags.Tracking.writeExtendedSi_PRDInfo:
82 # Different convention wrt Run 3 for TrackMeasurementValidationContainer
83 # from ITkPixelClusters to ITkPixelMeasurements
84 # This is to avoid clashes with the xAOD::ClusterContainer names, which was not
85 # an issue for Run 3 since they were not xAOD back then
86 toAOD += [
87 "xAOD::TrackMeasurementValidationContainer#ITkPixelMeasurements",
88 "xAOD::TrackMeasurementValidationAuxContainer#ITkPixelMeasurementsAux.",
89 "xAOD::TrackMeasurementValidationContainer#ITkStripMeasurements",
90 "xAOD::TrackMeasurementValidationAuxContainer#ITkStripMeasurementsAux.",
91 "xAOD::TrackStateValidationContainer#ITkPixelMSOSs",
92 "xAOD::TrackStateValidationAuxContainer#ITkPixelMSOSsAux.",
93 "xAOD::TrackStateValidationContainer#ITkStripMSOSs",
94 "xAOD::TrackStateValidationAuxContainer#ITkStripMSOSsAux."
95 ]
96
97 if flags.Detector.EnablePLR:
98 toAOD += [
99 "xAOD::TrackMeasurementValidationContainer#PLRMeasurements",
100 "xAOD::TrackMeasurementValidationAuxContainer#PLRMeasurementsAux."
101 ]
102
103 if flags.Tracking.doStoreSiSPSeededTracks:
104 toAOD += [
105 "xAOD::TrackStateValidationContainer#SiSP_ITkPixel_MSOSs",
106 "xAOD::TrackStateValidationAuxContainer#SiSP_ITkPixel_MSOSsAux.",
107 "xAOD::TrackStateValidationContainer#SiSP_ITkStrip_MSOSs",
108 "xAOD::TrackStateValidationAuxContainer#SiSP_ITkStrip_MSOSsAux."
109 ]
110
111 if (flags.Tracking.doLargeD0 and
112 flags.Tracking.storeSeparateLargeD0Container):
113 toAOD += [
114 "xAOD::TrackParticleContainer#InDetLargeD0TrackParticles",
115 f"xAOD::TrackParticleAuxContainer#InDetLargeD0TrackParticlesAux.{excludedAuxData}"
116 ]
117
118 if flags.Tracking.doStoreSiSPSeededTracks:
119 # get list of extensions requesting track candidates. Add always the Primary Pass.
120 listOfExtensionsRequesting = [
121 e for e in extensions_list
122 if (e == '' or flags.Tracking[f"ITk{e}Pass"].storeSiSPSeededTracks) ]
123
124 for extension in listOfExtensionsRequesting:
125 toAOD += [
126 f"xAOD::TrackParticleContainer#SiSPSeededTracks{extension}TrackParticles",
127 f"xAOD::TrackParticleAuxContainer#SiSPSeededTracks{extension}TrackParticlesAux.{excludedAuxData}"]
128
129 if flags.Tracking.doStoreTrackSeeds:
130 # get list of extensions requesting track seeds. Add always the Primary Pass.
131 listOfExtensionsRequesting = [
132 e for e in extensions_list
133 if (e == '' or flags.Tracking[f"ITk{e}Pass"].storeTrackSeeds) ]
134 for extension in listOfExtensionsRequesting:
135 toAOD += [
136 f"xAOD::TrackParticleContainer#SiSPSeedSegments{extension}PixelTrackParticles",
137 f"xAOD::TrackParticleAuxContainer#SiSPSeedSegments{extension}PixelTrackParticlesAux.",
138 f"xAOD::TrackParticleContainer#SiSPSeedSegments{extension}StripTrackParticles",
139 f"xAOD::TrackParticleAuxContainer#SiSPSeedSegments{extension}StripTrackParticlesAux."
140 ]
141
142 result = ComponentAccumulator()
143 result.merge(addToESD(flags, toAOD+toESD))
144 result.merge(addToAOD(flags, toAOD))
145 return result