12 acc = ComponentAccumulator()
14 if "layerNumberTool" not in kwargs:
15 from TrigFastTrackFinder.TrigFastTrackFinderConfig
import (
16 ITkTrigL2LayerNumberToolCfg)
17 kwargs.setdefault(
"layerNumberTool", acc.popToolsAndMerge(
18 ITkTrigL2LayerNumberToolCfg(
19 flags, UseNewLayerScheme=
True,
20 dumpGbtsGeometry=flags.Acts.Gbts.dumpGbtsGeometry,
21 geometryDump=flags.Acts.Gbts.geometryDump)))
23 kwargs.setdefault(
"DoPhiFiltering",
False)
24 kwargs.setdefault(
"UseBeamTilt",
False)
25 kwargs.setdefault(
"pTmin", flags.Tracking.ActiveConfig.minPTSeed)
26 kwargs.setdefault(
"MaxGraphEdges", 3000000)
27 kwargs.setdefault(
"AddTriplets",
False)
29 isLargeD0 = flags.Tracking.ActiveConfig.isLargeD0
30 kwargs.setdefault(
"ConnectionFileName",
31 "binTables_ITK_RUN4_LRT.txt" if isLargeD0
else
32 "binTables_ITK_RUN4.txt")
34 acc.setPrivateTools(CompFactory.GbtsFtfActsSeedingTool(name, **kwargs))
40 flags, name: str =
"ActsPixelGridTripletSeedingTool",
41 **kwargs) -> ComponentAccumulator:
42 acc = ComponentAccumulator()
45 kwargs.setdefault(
"numSeedIncrement" , float(
"inf"))
46 kwargs.setdefault(
"deltaZMax" , float(
"inf"))
47 kwargs.setdefault(
"maxPtScattering", float(
"inf"))
48 kwargs.setdefault(
"useVariableMiddleSPRange",
False)
49 kwargs.setdefault(
"rMax", 320. * ActsUnits.mm)
50 kwargs.setdefault(
"minPt", flags.Tracking.ActiveConfig.minPTSeed *
51 ActsUnits.GeV / GaudiUnits.GeV)
52 kwargs.setdefault(
"impactMax", flags.Tracking.ActiveConfig.maxPrimaryImpactSeed *
53 ActsUnits.mm / GaudiUnits.mm)
54 kwargs.setdefault(
"rBinEdges", [0, kwargs[
'rMax']])
55 kwargs.setdefault(
"rRangeMiddleSP", [
70 kwargs.setdefault(
"useHVCollisionRegion",
71 flags.Tracking.ActiveConfig.useHoughVertexFilter)
72 kwargs.setdefault(
"hvCollisionRegionTolerance", 10. * ActsUnits.mm)
73 kwargs.setdefault(
"inputHoughVtx",
74 "HoughVertices" if flags.Tracking.ActiveConfig.useHoughVertexFilter
else "")
76 acc.setPrivateTools(CompFactory.ActsTrk.GridTripletSeedingTool(name, **kwargs))
80 name: str =
"ActsFastPixelSeedingTool",
81 **kwargs) -> ComponentAccumulator:
83 kwargs.setdefault(
"sigmaScattering", 2.)
84 kwargs.setdefault(
"maxSeedsPerSpM", 3)
85 kwargs.setdefault(
"collisionRegionMin", -flags.Tracking.ActiveConfig.maxZImpactSeed *
86 ActsUnits.mm / GaudiUnits.mm)
87 kwargs.setdefault(
"collisionRegionMax", flags.Tracking.ActiveConfig.maxZImpactSeed *
88 ActsUnits.mm / GaudiUnits.mm)
89 kwargs.setdefault(
"maxPhiBins", 200)
90 kwargs.setdefault(
"gridRMax", 250 * ActsUnits.mm)
91 kwargs.setdefault(
"deltaRMax", 200 * ActsUnits.mm)
92 kwargs.setdefault(
"zBinsCustomLooping" , [2, 10, 3, 9, 6, 4, 8, 5, 7])
93 kwargs.setdefault(
"rRangeMiddleSP", [
106 kwargs.setdefault(
"zBinNeighborsTop", [
119 kwargs.setdefault(
"zBinNeighborsBottom", [
133 kwargs.setdefault(
"zBinEdges", [-3000., -2000, -1400., -910., -500., -250., 250., 500., 910., 1400., 2000, 3000.])
134 kwargs.setdefault(
"useExperimentCuts",
True)
136 kwargs.setdefault(
"deltaRMaxTopSP", 220 * ActsUnits.mm)
137 kwargs.setdefault(
"deltaRMaxBottomSP", 135 * ActsUnits.mm)
142 name: str =
"ActsStripSeedingTool",
143 **kwargs) -> ComponentAccumulator:
144 acc = ComponentAccumulator()
147 kwargs.setdefault(
"doSeedQualitySelection",
False)
149 kwargs.setdefault(
"gridRMax", 1000. * ActsUnits.mm)
150 kwargs.setdefault(
"deltaRMax", 600. * ActsUnits.mm)
153 kwargs.setdefault(
"impactMax", flags.Tracking.ActiveConfig.maxdImpactSSSSeeds[0] *
154 ActsUnits.mm / GaudiUnits.mm)
155 kwargs.setdefault(
"minPt", flags.Tracking.ActiveConfig.minPTSeed *
156 ActsUnits.GeV / GaudiUnits.GeV)
158 kwargs.setdefault(
"rMax", flags.Tracking.ActiveConfig.radMax)
159 kwargs.setdefault(
"deltaRMinTopSP", 20. * ActsUnits.mm)
160 kwargs.setdefault(
"deltaRMaxTopSP", 300. * ActsUnits.mm)
161 kwargs.setdefault(
"deltaRMinBottomSP", 20. * ActsUnits.mm)
162 kwargs.setdefault(
"deltaRMaxBottomSP", 300. * ActsUnits.mm)
163 kwargs.setdefault(
"deltaZMax", 900. * ActsUnits.mm)
164 kwargs.setdefault(
"interactionPointCut",
False)
165 kwargs.setdefault(
"zBinsCustomLooping", [7, 8, 6, 9, 5, 10, 4, 11, 3, 12, 2])
166 kwargs.setdefault(
"deltaRMiddleMinSPRange", 30 * ActsUnits.mm)
167 kwargs.setdefault(
"deltaRMiddleMaxSPRange", 150 * ActsUnits.mm)
168 kwargs.setdefault(
"useDetailedDoubleMeasurementInfo",
True)
169 kwargs.setdefault(
"maxPtScattering", float(
"inf"))
171 kwargs.setdefault(
"useDeltaRorTopRadius",
False)
172 kwargs.setdefault(
"seedConfirmationInFilter",
False)
173 kwargs.setdefault(
"impactWeightFactor", 1.)
174 kwargs.setdefault(
"compatSeedLimit", 4)
175 kwargs.setdefault(
"numSeedIncrement", 1.)
176 kwargs.setdefault(
"seedWeightIncrement", 10100.)
177 kwargs.setdefault(
"maxSeedsPerSpMConf", 100)
178 kwargs.setdefault(
"maxQualitySeedsPerSpMConf", 100)
180 kwargs.setdefault(
"zBinNeighborsBottom", [
181 (0,0),(0,1),(0,1),(0,1),(0,2),(0,1),(0,0),
182 (-1,0),(-2,0),(-1,0),(-1,0),(-1,0),(0,0)] )
184 kwargs.setdefault(
"rBinEdges", [0, kwargs[
'rMax']])
185 kwargs.setdefault(
"collisionRegionMin", -flags.Tracking.ActiveConfig.maxZImpactSeed *
186 ActsUnits.mm / GaudiUnits.mm)
187 kwargs.setdefault(
"collisionRegionMax", flags.Tracking.ActiveConfig.maxZImpactSeed *
188 ActsUnits.mm / GaudiUnits.mm)
189 kwargs.setdefault(
"useHVCollisionRegion",
190 flags.Tracking.ActiveConfig.useHoughVertexFilter)
191 kwargs.setdefault(
"hvCollisionRegionTolerance", 10. * ActsUnits.mm)
192 kwargs.setdefault(
"inputHoughVtx",
193 "HoughVertices" if flags.Tracking.ActiveConfig.useHoughVertexFilter
else "")
195 acc.setPrivateTools(CompFactory.ActsTrk.GridTripletSeedingTool(name, **kwargs))
199 name: str =
"ActsLargeRadiusStripSeedingTool",
200 **kwargs) -> ComponentAccumulator:
202 kwargs.setdefault(
"interactionPointCut",
True)
203 kwargs.setdefault(
"impactMax", flags.Tracking.ActiveConfig.maxPrimaryImpactSeed *
204 ActsUnits.mm / GaudiUnits.mm)
207 kwargs.setdefault(
"doubletDPhiCut",
True)
208 kwargs.setdefault(
"doubletDPhiCap", 0.10)
213 kwargs.setdefault(
"deltaRMax", 400. * ActsUnits.mm)
214 kwargs.setdefault(
"collisionRegionMin", -flags.Tracking.ActiveConfig.maxZImpactSeed *
215 ActsUnits.mm / GaudiUnits.mm)
216 kwargs.setdefault(
"collisionRegionMax", flags.Tracking.ActiveConfig.maxZImpactSeed *
217 ActsUnits.mm / GaudiUnits.mm)
218 kwargs.setdefault(
"deltaRMiddleMaxSPRange", 75 * ActsUnits.mm)
219 kwargs.setdefault(
"deltaRMinTopSP", 50. * ActsUnits.mm)
220 kwargs.setdefault(
"deltaRMaxTopSP", 250. * ActsUnits.mm)
221 kwargs.setdefault(
"deltaRMinBottomSP", 50. * ActsUnits.mm)
222 kwargs.setdefault(
"deltaRMaxBottomSP", 250. * ActsUnits.mm)
223 kwargs.setdefault(
"deltaZMax", 850. * ActsUnits.mm)
224 kwargs.setdefault(
"cotThetaMax", 5.0)
225 kwargs.setdefault(
"maxSeedsPerSpM", 1)
226 kwargs.setdefault(
"maxStripDeltaCotTheta", 0.3)
227 kwargs.setdefault(
"absDeltaEtaWeightFactor", 10.)
228 kwargs.setdefault(
"absDeltaEtaMinImpact", 2.)
229 kwargs.setdefault(
"zBinEdges", [-3000., -2500, -1400., -910., -500., -250.,
230 250., 500., 910., 1400., 2500, 3000.])
231 kwargs.setdefault(
"zBinsCustomLooping" , [2, 10, 3, 9, 6, 4, 8, 5, 7])
232 kwargs.setdefault(
"useVariableMiddleSPRange",
False)
233 kwargs.setdefault(
"zBinNeighborsTop", [
246 kwargs.setdefault(
"zBinNeighborsBottom", [
259 kwargs.setdefault(
"rRangeMiddleSP", [
273 kwargs.setdefault(
"seedConfirmation",
True)
274 kwargs.setdefault(
"seedConfirmationInFilter",
True)
275 kwargs.setdefault(
"zOriginWeightFactor", 1.)
276 kwargs.setdefault(
"maxSeedsPerSpMConf", 1)
277 kwargs.setdefault(
"maxQualitySeedsPerSpMConf", 1)
278 kwargs.setdefault(
"seedConfCentralZMin", -1400. * ActsUnits.mm)
279 kwargs.setdefault(
"seedConfCentralZMax", 1400. * ActsUnits.mm)
280 kwargs.setdefault(
"seedConfCentralRMax", 140. * ActsUnits.mm)
281 kwargs.setdefault(
"seedConfCentralNTopLargeR", 1)
282 kwargs.setdefault(
"seedConfCentralNTopSmallR", 0)
283 kwargs.setdefault(
"seedConfCentralMinBottomRadius", 0. * ActsUnits.mm)
284 kwargs.setdefault(
"seedConfCentralMaxZOrigin", 1500. * ActsUnits.mm)
285 kwargs.setdefault(
"seedConfCentralMinImpact", 200. * ActsUnits.mm)
286 kwargs.setdefault(
"seedConfForwardZMin", -3000. * ActsUnits.mm)
287 kwargs.setdefault(
"seedConfForwardZMax", 3000. * ActsUnits.mm)
288 kwargs.setdefault(
"seedConfForwardRMax", 140. * ActsUnits.mm)
289 kwargs.setdefault(
"seedConfForwardNTopLargeR", 1)
290 kwargs.setdefault(
"seedConfForwardNTopSmallR", 0)
291 kwargs.setdefault(
"seedConfForwardMinBottomRadius", 350. * ActsUnits.mm)
292 kwargs.setdefault(
"seedConfForwardMaxZOrigin", 1500. * ActsUnits.mm)
293 kwargs.setdefault(
"seedConfForwardMinImpact", 200. * ActsUnits.mm)
298 name: str =
"ActsGbtsLayerTool",
299 **kwargs) -> ComponentAccumulator:
300 """The GBTS layer geometry, built from the ITk readout geometry.
302 One instance is shared by every GBTS seeding tool: the layer indices it
303 hands out have to agree with the connection table they all read.
305 acc = ComponentAccumulator()
306 kwargs.setdefault(
"dumpGbtsGeometry", flags.Acts.Gbts.dumpGbtsGeometry)
307 kwargs.setdefault(
"geometryDump", flags.Acts.Gbts.geometryDump)
308 acc.setPrivateTools(CompFactory.ActsTrk.GbtsLayerTool(name, **kwargs))
313 name: str =
"ActsPixelGbtsSeedingTool",
314 **kwargs) -> ComponentAccumulator:
315 acc = ComponentAccumulator()
316 if "layerTool" not in kwargs:
323 kwargs.setdefault(
"usePixelLayers",
True)
324 kwargs.setdefault(
"useStripLayers",
False)
325 kwargs.setdefault(
"connectorInputFile" , find_datafile(flags.Acts.Gbts.connectionTable))
326 kwargs.setdefault(
"lutInputFile" , find_datafile(
"gbts_ml_pixel_barrel_loose.lut"))
327 kwargs.setdefault(
"minPt" , flags.Tracking.ActiveConfig.minPTSeed *
328 ActsUnits.GeV / GaudiUnits.GeV)
329 kwargs.setdefault(
"d0Max", flags.Tracking.ActiveConfig.maxPrimaryImpactSeed *
330 ActsUnits.mm / GaudiUnits.mm)
331 kwargs.setdefault(
"addTriplets",
False)
334 kwargs.setdefault(
"tauRatioCut", 0.007)
337 kwargs.setdefault(
"minZ0", -flags.Tracking.ActiveConfig.maxZImpactSeed *
338 ActsUnits.mm / GaudiUnits.mm)
339 kwargs.setdefault(
"maxZ0", flags.Tracking.ActiveConfig.maxZImpactSeed *
340 ActsUnits.mm / GaudiUnits.mm)
341 kwargs.setdefault(
"filterMaxZ0", flags.Tracking.ActiveConfig.maxZImpactSeed *
342 ActsUnits.mm / GaudiUnits.mm)
344 acc.setPrivateTools(CompFactory.ActsTrk.GbtsSeedingTool(name, **kwargs))
348 name: str =
"ActsStripGbtsSeedingTool",
349 **kwargs) -> ComponentAccumulator:
350 """GBTS strip seeding for the primary pass. ActsLargeRadiusStripGbtsSeedingToolCfg is the LRT one."""
351 acc = ComponentAccumulator()
352 if "layerTool" not in kwargs:
358 kwargs.setdefault(
"usePixelLayers",
False)
359 kwargs.setdefault(
"useStripLayers",
True)
360 kwargs.setdefault(
"usePixelConnections",
False)
361 kwargs.setdefault(
"useStripConnections",
True)
363 kwargs.setdefault(
"LRTmode",
False)
365 kwargs.setdefault(
"useML",
False)
366 kwargs.setdefault(
"connectorInputFile", find_datafile(flags.Acts.Gbts.connectionTable))
368 kwargs.setdefault(
"minPt", flags.Tracking.ActiveConfig.minPTSeed *
369 ActsUnits.GeV / GaudiUnits.GeV)
370 kwargs.setdefault(
"d0Max", flags.Tracking.ActiveConfig.maxPrimaryImpactSeed *
371 ActsUnits.mm / GaudiUnits.mm)
373 kwargs.setdefault(
"addTriplets",
True)
374 kwargs.setdefault(
"maxEtaAddTriplets", 3.0)
377 kwargs.setdefault(
"maxOuterRadius", 1100.0)
379 kwargs.setdefault(
"cutDPhiMax", 0.012)
380 kwargs.setdefault(
"cutDCurvMax", 0.001)
381 kwargs.setdefault(
"minDeltaPhi", 0.001)
384 kwargs.setdefault(
"tauRatioCut", 0.014)
385 kwargs.setdefault(
"precutTauRatioMax", 0.018)
388 kwargs.setdefault(
"minZ0", -flags.Tracking.ActiveConfig.maxZImpactSeed *
389 ActsUnits.mm / GaudiUnits.mm)
390 kwargs.setdefault(
"maxZ0", flags.Tracking.ActiveConfig.maxZImpactSeed *
391 ActsUnits.mm / GaudiUnits.mm)
392 kwargs.setdefault(
"filterMaxZ0", flags.Tracking.ActiveConfig.maxZImpactSeed *
393 ActsUnits.mm / GaudiUnits.mm)
397 acc.setPrivateTools(CompFactory.ActsTrk.GbtsSeedingTool(name, **kwargs))
401 name: str =
"ActsLargeRadiusStripGbtsSeedingTool",
402 **kwargs) -> ComponentAccumulator:
404 kwargs.setdefault(
"LRTmode",
True)
405 kwargs.setdefault(
"connectorInputFile", find_datafile(flags.Acts.Gbts.connectionTableLrt))
406 kwargs.setdefault(
"filterMaxZ0", 500. * ActsUnits.mm)
407 kwargs.setdefault(
"cutDPhiMax", 0.07)
408 kwargs.setdefault(
"cutDCurvMax", 0.015)
409 kwargs.setdefault(
"tauRatioCut", 0.015)
410 kwargs.setdefault(
"minZ0", -flags.Tracking.ActiveConfig.maxZImpactSeed *
411 ActsUnits.mm / GaudiUnits.mm)
412 kwargs.setdefault(
"maxZ0", flags.Tracking.ActiveConfig.maxZImpactSeed *
413 ActsUnits.mm / GaudiUnits.mm)
414 kwargs.setdefault(
"maxOuterRadius", 1050.0)
420 name: str =
"ActsGnnSeedingTool",
421 **kwargs) -> ComponentAccumulator:
422 acc = ComponentAccumulator()
424 if 'GnnPipelineTool' not in kwargs:
425 from ActsConfig.ActsTrackFindingConfig
import ActsGnnPipelineToolCfg
426 kwargs.setdefault(
'GnnPipelineTool', acc.popToolsAndMerge(
427 ActsGnnPipelineToolCfg(flags, name=
"GnnSeedingPipeline")))
429 acc.setPrivateTools(CompFactory.ActsTrk.GnnSeedingTool(name, **kwargs))
434 name: str =
'PixelSeedingAlg',
435 **kwargs) -> ComponentAccumulator:
436 acc = ComponentAccumulator()
439 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
440 acc.merge(BeamSpotCondAlgCfg(flags))
442 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
443 acc.merge(AtlasFieldCacheCondAlgCfg(flags))
445 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
446 acc.merge(ITkPixelReadoutGeometryCfg(flags))
448 from InDetConfig.ITkActsHelpers
import isFastPrimaryPass
449 useFastTracking = kwargs.get(
"useFastTracking", isFastPrimaryPass(flags))
451 if "SeedTool" not in kwargs:
452 if flags.Tracking.ActiveConfig.PixelSeedingStrategy
is SeedingStrategy.Gbts:
453 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
455 elif flags.Tracking.ActiveConfig.PixelSeedingStrategy
is SeedingStrategy.GbtsFtf:
456 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
458 elif flags.Tracking.ActiveConfig.PixelSeedingStrategy
is SeedingStrategy.Gnn:
459 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
461 elif flags.Tracking.ActiveConfig.PixelSeedingStrategy
is SeedingStrategy.GridTriplet:
463 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
466 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
469 kwargs.setdefault(
"useFastTracking", useFastTracking)
471 suffix =
'_Cached' if flags.Acts.useCache
else ''
472 pixelSpacePoints = [
'ITkPixelSpacePoints' + suffix]
473 if flags.Tracking.ActiveConfig.isSecondaryPass:
475 'ITk' + flags.Tracking.ActiveConfig.extension.replace(
"Acts",
"") +
476 'PixelSpacePoints' + suffix]
477 kwargs.setdefault(
'InputSpacePoints', pixelSpacePoints)
479 kwargs.setdefault(
'OutputSeeds',
480 f
'{flags.Tracking.ActiveConfig.extension}PixelSeeds')
481 kwargs.setdefault(
'UsePixel',
True)
483 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
484 from ActsConfig.ActsMonitoringConfig
import ActsITkPixelSeedingMonitoringToolCfg
485 kwargs.setdefault(
'MonTool', acc.popToolsAndMerge(
486 ActsITkPixelSeedingMonitoringToolCfg(flags)))
488 acc.addEventAlgo(CompFactory.ActsTrk.GenericSeedingAlg(
489 flags.Tracking.ActiveConfig.extension + name, **kwargs))
494 name: str =
'StripSeedingAlg',
495 **kwargs) -> ComponentAccumulator:
496 acc = ComponentAccumulator()
499 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
500 acc.merge(BeamSpotCondAlgCfg(flags))
502 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
503 acc.merge(AtlasFieldCacheCondAlgCfg(flags))
505 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
506 acc.merge(ITkStripReadoutGeometryCfg(flags))
508 if "SeedTool" not in kwargs:
509 if flags.Tracking.ActiveConfig.StripSeedingStrategy
is SeedingStrategy.Gbts:
510 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
513 elif flags.Tracking.ActiveConfig.StripSeedingStrategy
is SeedingStrategy.GbtsFtf:
515 elif flags.Tracking.ActiveConfig.StripSeedingStrategy
is SeedingStrategy.GridTriplet:
516 if flags.Tracking.ActiveConfig.isLargeD0:
517 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
520 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
523 suffix =
"_Cached" if flags.Acts.useCache
else ""
524 stripSpacePoints = [
'ITkStripSpacePoints' + suffix,
525 'ITkStripOverlapSpacePoints' + suffix]
526 if flags.Tracking.ActiveConfig.isSecondaryPass:
527 prefix =
'ITk' + flags.Tracking.ActiveConfig.extension.replace(
"Acts",
"")
528 stripSpacePoints = [prefix +
'StripSpacePoints' + suffix,
529 prefix +
'StripOverlapSpacePoints' + suffix]
531 if flags.Tracking.ActiveConfig.extension ==
'ActsConversion':
532 stripSpacePoints = [prefix +
'StripSpacePoints' + suffix]
533 kwargs.setdefault(
'InputSpacePoints', stripSpacePoints)
535 kwargs.setdefault(
'OutputSeeds',
536 f
'{flags.Tracking.ActiveConfig.extension}StripSeeds')
537 kwargs.setdefault(
'UsePixel',
False)
539 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
540 from ActsConfig.ActsMonitoringConfig
import ActsITkStripSeedingMonitoringToolCfg
541 kwargs.setdefault(
'MonTool', acc.popToolsAndMerge(
542 ActsITkStripSeedingMonitoringToolCfg(flags)))
544 acc.addEventAlgo(CompFactory.ActsTrk.GenericSeedingAlg(
545 flags.Tracking.ActiveConfig.extension + name, **kwargs))
563 acc = ComponentAccumulator()
565 processPixels = flags.Tracking.ActiveConfig.useITkPixelSeeding
566 processStrips = flags.Tracking.ActiveConfig.useITkStripSeeding
573 prefix = flags.Tracking.ActiveConfig.extension
574 if (flags.Tracking.ActiveConfig.storeTrackSeeds
or flags.Acts.Seeds.doAnalysis):
576 from ActsConfig.ActsAnalysisConfig
import ActsPixelSeedsToTrackParamsAlgCfg
577 acc.merge(ActsPixelSeedsToTrackParamsAlgCfg(
578 flags, name = prefix +
'PixelSeedsToTrackParamsAlg',
579 InputSeedContainerKey = prefix +
'PixelSeeds',
580 OutputTrackParamsCollectionKey = prefix +
'PixelEstimatedTrackParams'))
583 from ActsConfig.ActsAnalysisConfig
import ActsStripSeedsToTrackParamsAlgCfg
584 acc.merge(ActsStripSeedsToTrackParamsAlgCfg(
585 flags, name = prefix +
'StripSeedsToTrackParamsAlg',
586 InputSeedContainerKey = prefix +
'StripSeeds',
587 OutputTrackParamsCollectionKey = prefix +
'StripEstimatedTrackParams'))
589 if flags.Acts.Seeds.doAnalysis:
591 from ActsConfig.ActsAnalysisConfig
import (
592 ActsPixelSeedAnalysisAlgCfg, ActsPixelEstimatedTrackParamsAnalysisAlgCfg)
593 acc.merge(ActsPixelSeedAnalysisAlgCfg(
594 flags, name = prefix +
'PixelSeedAnalysisAlg',
595 extension = prefix, InputSeedCollection = prefix +
'PixelSeeds'))
597 acc.merge(ActsPixelEstimatedTrackParamsAnalysisAlgCfg(
598 flags, name = prefix +
'PixelEstimatedTrackParamsAnalysisAlg',
600 InputTrackParamsCollection = prefix +
'PixelEstimatedTrackParams'))
603 from ActsConfig.ActsAnalysisConfig
import (
604 ActsStripSeedAnalysisAlgCfg, ActsStripEstimatedTrackParamsAnalysisAlgCfg)
605 acc.merge(ActsStripSeedAnalysisAlgCfg(
606 flags, name = prefix +
'StripSeedAnalysisAlg',
607 extension = prefix, InputSeedCollection = prefix +
'StripSeeds'))
609 acc.merge(ActsStripEstimatedTrackParamsAnalysisAlgCfg(
610 flags, name = prefix +
'StripEstimatedTrackParamsAnalysisAlg',
612 InputTrackParamsCollection = prefix +
'StripEstimatedTrackParams'))
614 if flags.Tracking.ActiveConfig.storeTrackSeeds:
617 flags, processPixels=
True, processStrips=
False))
620 flags, processPixels=
False, processStrips=
True))
621 if processPixels
and processStrips:
623 flags, processPixels=
True, processStrips=
True))
626 if flags.Acts.Gbts.Training.enable:
627 from ActsConfig.ActsTruthConfig
import ActsGbtsTrainingAlgCfg
628 acc.merge(ActsGbtsTrainingAlgCfg(flags))
635 processStrips: bool) -> ComponentAccumulator:
637 acc = ComponentAccumulator()
639 prefix = flags.Tracking.ActiveConfig.extension
640 if processPixels
and not processStrips:
641 prefix = prefix +
'Pixel'
642 if processStrips
and not processPixels:
643 prefix = prefix +
'Strip'
644 processBoth = processPixels
and processStrips
645 tracks =
'SiSPTracksSeedSegments' + prefix +
'Tracks'
649 flags, name = prefix +
'PixelSeedToTrackCnvAlg',
650 EstimatedTrackParametersKey = (
651 [prefix +
'PixelEstimatedTrackParams', prefix +
'StripEstimatedTrackParams']
652 if processBoth
else [prefix +
'EstimatedTrackParams']),
654 [prefix +
'PixelSeeds', prefix +
'StripSeeds']
655 if processBoth
else [prefix +
'Seeds']),
656 ACTSTracksLocation = tracks))
659 if flags.Tracking.doTruth:
660 from ActsConfig.ActsTruthConfig
import (
661 ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg)
662 acc.merge(ActsTrackToTruthAssociationAlgCfg(
663 flags, name = prefix +
'SeedTrackToTruthAssociationAlg',
664 ACTSTracksLocation = tracks,
665 AssociationMapOut = tracks +
'ToTruthParticleAssociation'))
667 acc.merge(ActsTrackFindingValidationAlgCfg(
668 flags, name = prefix +
'SeedTrackFindingValidationAlg',
669 TrackToTruthAssociationMap = tracks +
'ToTruthParticleAssociation'))
672 from InDetConfig.ITkActsParticleCreationConfig
import (
673 ITkActsTrackParticleCreationCfg)
674 acc.merge(ITkActsTrackParticleCreationCfg(
676 TrackContainers = [tracks],
677 TrackParticleContainer =
'SiSPSeedSegments' + prefix +
'TrackParticles'))