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