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