179def GNNSeedingTrackMakerCfg(flags, name="GNNSeedingTrackMaker", **kwargs):
180 """Sets up a GNN for seeding algorithm and returns it."""
181 acc = ComponentAccumulator()
182
183 from InDetConfig.SiCombinatorialTrackFinderToolConfig import SiDetElementBoundaryLinksCondAlg_xk_ITkPixel_Cfg, SiDetElementBoundaryLinksCondAlg_xk_ITkStrip_Cfg
184 acc.merge(SiDetElementBoundaryLinksCondAlg_xk_ITkPixel_Cfg(flags))
185 acc.merge(SiDetElementBoundaryLinksCondAlg_xk_ITkStrip_Cfg(flags))
186
187
188 from MagFieldServices.MagFieldServicesConfig import (
189 AtlasFieldCacheCondAlgCfg)
190 acc.merge(AtlasFieldCacheCondAlgCfg(flags))
191
192 from TrkConfig.TrkRIO_OnTrackCreatorConfig import ITkRotCreatorCfg
193 ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(
194 flags, name="ITkRotCreator"+flags.Tracking.ActiveConfig.extension))
195 acc.addPublicTool(ITkRotCreator)
196 kwargs.setdefault("RIOonTrackTool", ITkRotCreator)
197
198 from TrkConfig.TrkExRungeKuttaPropagatorConfig import (
199 RungeKuttaPropagatorCfg)
200 ITkPatternPropagator = acc.popToolsAndMerge(
201 RungeKuttaPropagatorCfg(flags, name="ITkPatternPropagator"))
202 acc.addPublicTool(ITkPatternPropagator)
203 kwargs.setdefault("PropagatorTool", ITkPatternPropagator)
204
205 from TrkConfig.TrkMeasurementUpdatorConfig import KalmanUpdator_xkCfg
206 ITkPatternUpdator = acc.popToolsAndMerge(
207 KalmanUpdator_xkCfg(flags, name="ITkPatternUpdator"))
208 acc.addPublicTool(ITkPatternUpdator)
209 kwargs.setdefault("UpdatorTool", ITkPatternUpdator)
210
211 from InDetConfig.InDetBoundaryCheckToolConfig import ITkBoundaryCheckToolCfg
212 kwargs.setdefault("BoundaryCheckTool", acc.popToolsAndMerge(
213 ITkBoundaryCheckToolCfg(flags)))
214
215 from PixelConditionsTools.ITkPixelConditionsSummaryConfig import (
216 ITkPixelConditionsSummaryCfg)
217 kwargs.setdefault("PixelSummaryTool", acc.popToolsAndMerge(
218 ITkPixelConditionsSummaryCfg(flags)))
219
220 from SCT_ConditionsTools.ITkStripConditionsToolsConfig import (
221 ITkStripConditionsSummaryToolCfg)
222 kwargs.setdefault("StripSummaryTool", acc.popToolsAndMerge(
223 ITkStripConditionsSummaryToolCfg(flags)))
224
225 if flags.Tracking.GNN.useTrackFinder:
226 kwargs.setdefault("GNNTrackFinderTool", acc.popToolsAndMerge(GNNTrackFinderToolCfg(flags)))
227 kwargs.setdefault("GNNTrackReaderTool", None)
228 elif flags.Tracking.GNN.useTrackReader:
229 kwargs.setdefault("GNNTrackReaderTool", acc.popToolsAndMerge(GNNTrackReaderToolCfg(flags)))
230 kwargs.setdefault("GNNTrackFinderTool", None)
231 else:
232 raise RuntimeError("GNNTrackFinder or GNNTrackReader must be enabled!")
233
234 kwargs.setdefault("SeedFitterTool", acc.popToolsAndMerge(SeedFitterToolCfg(flags)))
235
236 from TrkConfig.CommonTrackFitterConfig import ITkTrackFitterCfg
237 kwargs.setdefault("TrackFitter", acc.popToolsAndMerge(ITkTrackFitterCfg(flags)))
238
239 from InDetConfig.SiDetElementsRoadToolConfig import ITkSiDetElementsRoadMaker_xkCfg
240 kwargs.setdefault("RoadTool", acc.popToolsAndMerge(ITkSiDetElementsRoadMaker_xkCfg(flags)))
241
242
243
244 kwargs.setdefault("nClustersMin", flags.Tracking.ActiveConfig.minClusters[0])
245 kwargs.setdefault("nWeightedClustersMin", flags.Tracking.ActiveConfig.nWeightedClustersMin[0])
246 kwargs.setdefault("nHolesMax", flags.Tracking.ActiveConfig.nHolesMax[0])
247 kwargs.setdefault("nHolesGapMax", flags.Tracking.ActiveConfig.nHolesGapMax[0])
248
249 kwargs.setdefault("pTmin", flags.Tracking.ActiveConfig.minPT[0])
250 kwargs.setdefault("pTminBrem", flags.Tracking.ActiveConfig.minPTBrem[0])
251 kwargs.setdefault("Xi2max", flags.Tracking.ActiveConfig.Xi2max[0])
252 kwargs.setdefault("Xi2maxNoAdd", flags.Tracking.ActiveConfig.Xi2maxNoAdd[0])
253 kwargs.setdefault("Xi2maxMultiTracks", flags.Tracking.ActiveConfig.Xi2max[0])
254 kwargs.setdefault("doMultiTracksProd", False)
255
256 acc.addEventAlgo(CompFactory.InDet.GNNSeedingTrackMaker(name, **kwargs))
257 return acc