118 trackParticleCollections: list[str] = None) -> ComponentAccumulator:
119 toAOD = []
120 if trackParticleCollections is not None:
121 trackparticles_shortlist = ['-clusterAssociation',
122 '-TTVA_AMVFVertices_forReco',
123 '-AssoClustersUFO',
124 '-TTVA_AMVFWeights_forReco',
125 '-trackParameterCovarianceMatrices',
126 '-caloExtensionLink',
127 '-parameterX', '-parameterY', '-parameterZ',
128 '-parameterPX', '-parameterPY', '-parameterPZ',
129 '-parameterPosition']
130
131
132 trackparticles_shortlist += ['-TTVA_AMVFVertices',
133 '-TTVA_AMVFWeights']
134
135 if not flags.Acts.EDM.PersistifyTracks:
136 trackparticles_shortlist += ['-actsTrack',
137 '-hgtdTrackLink']
138
139 if not flags.Tracking.writeExtendedHGTDInfo:
140 trackparticles_shortlist += ['-HGTD_cluster_merged',
141 '-HGTD_cluster_raw_time',
142 '-HGTD_cluster_shadowed',
143 '-HGTD_cluster_time',
144 '-HGTD_cluster_truth_class',
145 '-HGTD_extrap_x',
146 '-HGTD_extrap_y',
147 '-HGTD_primary_expected',
148 '-HGTD_summaryinfo',
149 '-HGTD_times_of_compatible_hits']
150
151 trackparticles_variables = ".".join(trackparticles_shortlist)
152
153 from InDetConfig.InDetTrackOutputConfig import FTAG_AUXDATA
154 trackparticles_variables += '.-'.join([''] + FTAG_AUXDATA)
155
156 from DerivationFrameworkInDet.IDTIDE import IDTIDE_AOD_EXCLUDED_AUXDATA
157 trackparticles_variables += '.-'.join([''] + IDTIDE_AOD_EXCLUDED_AUXDATA)
158 from DerivationFrameworkInDet.IDTRKVALID import IDTRKVALID_AOD_EXCLUDED_AUXDATA
159 trackparticles_variables += '.-'.join([''] + IDTRKVALID_AOD_EXCLUDED_AUXDATA)
160
161 for trackParticleCollection in trackParticleCollections:
162 toAOD += [f"xAOD::TrackParticleContainer#{trackParticleCollection}",
163 f"xAOD::TrackParticleAuxContainer#{trackParticleCollection}Aux." + trackparticles_variables]
164
165 acc = ComponentAccumulator()
166 if len(toAOD) == 0:
167 return acc
168
169 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
170 acc.merge(addToAOD(flags, toAOD))
171 return acc