13 flags, name: str =
"ActsPixelGridTripletSeedingTool",
14 **kwargs) -> ComponentAccumulator:
15 acc = ComponentAccumulator()
18 kwargs.setdefault(
"numSeedIncrement" , float(
"inf"))
19 kwargs.setdefault(
"deltaZMax" , float(
"inf"))
20 kwargs.setdefault(
"maxPtScattering", float(
"inf"))
21 kwargs.setdefault(
"useVariableMiddleSPRange",
False)
22 kwargs.setdefault(
"rMax", 320. * ActsUnits.mm)
23 kwargs.setdefault(
"minPt", flags.Tracking.ActiveConfig.minPTSeed *
24 ActsUnits.GeV / GaudiUnits.GeV)
25 kwargs.setdefault(
"impactMax", flags.Tracking.ActiveConfig.maxPrimaryImpactSeed *
26 ActsUnits.mm / GaudiUnits.mm)
27 kwargs.setdefault(
"rBinEdges", [0, kwargs[
'rMax']])
28 kwargs.setdefault(
"rRangeMiddleSP", [
43 kwargs.setdefault(
"useHVCollisionRegion",
44 flags.Tracking.ActiveConfig.useHoughVertexFilter)
45 kwargs.setdefault(
"hvCollisionRegionTolerance", 10. * ActsUnits.mm)
46 kwargs.setdefault(
"inputHoughVtx",
47 "HoughVertices" if flags.Tracking.ActiveConfig.useHoughVertexFilter
else "")
49 acc.setPrivateTools(CompFactory.ActsTrk.GridTripletSeedingTool(name, **kwargs))
53 name: str =
"ActsFastPixelSeedingTool",
54 **kwargs) -> ComponentAccumulator:
56 kwargs.setdefault(
"sigmaScattering", 2.)
57 kwargs.setdefault(
"maxSeedsPerSpM", 3)
58 kwargs.setdefault(
"collisionRegionMin", -flags.Tracking.ActiveConfig.maxZImpactSeed *
59 ActsUnits.mm / GaudiUnits.mm)
60 kwargs.setdefault(
"collisionRegionMax", flags.Tracking.ActiveConfig.maxZImpactSeed *
61 ActsUnits.mm / GaudiUnits.mm)
62 kwargs.setdefault(
"maxPhiBins", 200)
63 kwargs.setdefault(
"gridRMax", 250 * ActsUnits.mm)
64 kwargs.setdefault(
"deltaRMax", 200 * ActsUnits.mm)
65 kwargs.setdefault(
"zBinsCustomLooping" , [2, 10, 3, 9, 6, 4, 8, 5, 7])
66 kwargs.setdefault(
"rRangeMiddleSP", [
79 kwargs.setdefault(
"zBinNeighborsTop", [
92 kwargs.setdefault(
"zBinNeighborsBottom", [
106 kwargs.setdefault(
"zBinEdges", [-3000., -2000, -1400., -910., -500., -250., 250., 500., 910., 1400., 2000, 3000.])
107 kwargs.setdefault(
"useExperimentCuts",
True)
109 kwargs.setdefault(
"deltaRMaxTopSP", 220 * ActsUnits.mm)
110 kwargs.setdefault(
"deltaRMaxBottomSP", 135 * ActsUnits.mm)
115 name: str =
"ActsStripSeedingTool",
116 **kwargs) -> ComponentAccumulator:
117 acc = ComponentAccumulator()
120 kwargs.setdefault(
"doSeedQualitySelection",
False)
122 kwargs.setdefault(
"gridRMax", 1000. * ActsUnits.mm)
123 kwargs.setdefault(
"deltaRMax", 600. * ActsUnits.mm)
126 kwargs.setdefault(
"impactMax", flags.Tracking.ActiveConfig.maxdImpactSSSSeeds[0] *
127 ActsUnits.mm / GaudiUnits.mm)
128 kwargs.setdefault(
"minPt", flags.Tracking.ActiveConfig.minPTSeed *
129 ActsUnits.GeV / GaudiUnits.GeV)
131 kwargs.setdefault(
"rMax", flags.Tracking.ActiveConfig.radMax)
132 kwargs.setdefault(
"deltaRMinTopSP", 20. * ActsUnits.mm)
133 kwargs.setdefault(
"deltaRMaxTopSP", 300. * ActsUnits.mm)
134 kwargs.setdefault(
"deltaRMinBottomSP", 20. * ActsUnits.mm)
135 kwargs.setdefault(
"deltaRMaxBottomSP", 300. * ActsUnits.mm)
136 kwargs.setdefault(
"deltaZMax", 900. * ActsUnits.mm)
137 kwargs.setdefault(
"interactionPointCut",
False)
138 kwargs.setdefault(
"zBinsCustomLooping", [7, 8, 6, 9, 5, 10, 4, 11, 3, 12, 2])
139 kwargs.setdefault(
"deltaRMiddleMinSPRange", 30 * ActsUnits.mm)
140 kwargs.setdefault(
"deltaRMiddleMaxSPRange", 150 * ActsUnits.mm)
141 kwargs.setdefault(
"useDetailedDoubleMeasurementInfo",
True)
142 kwargs.setdefault(
"maxPtScattering", float(
"inf"))
144 kwargs.setdefault(
"useDeltaRorTopRadius",
False)
145 kwargs.setdefault(
"seedConfirmationInFilter",
False)
146 kwargs.setdefault(
"impactWeightFactor", 1.)
147 kwargs.setdefault(
"compatSeedLimit", 4)
148 kwargs.setdefault(
"numSeedIncrement", 1.)
149 kwargs.setdefault(
"seedWeightIncrement", 10100.)
150 kwargs.setdefault(
"maxSeedsPerSpMConf", 100)
151 kwargs.setdefault(
"maxQualitySeedsPerSpMConf", 100)
153 kwargs.setdefault(
"zBinNeighborsBottom", [
154 (0,0),(0,1),(0,1),(0,1),(0,2),(0,1),(0,0),
155 (-1,0),(-2,0),(-1,0),(-1,0),(-1,0),(0,0)] )
157 kwargs.setdefault(
"rBinEdges", [0, kwargs[
'rMax']])
158 kwargs.setdefault(
"collisionRegionMin", -flags.Tracking.ActiveConfig.maxZImpactSeed *
159 ActsUnits.mm / GaudiUnits.mm)
160 kwargs.setdefault(
"collisionRegionMax", flags.Tracking.ActiveConfig.maxZImpactSeed *
161 ActsUnits.mm / GaudiUnits.mm)
162 kwargs.setdefault(
"useHVCollisionRegion",
163 flags.Tracking.ActiveConfig.useHoughVertexFilter)
164 kwargs.setdefault(
"hvCollisionRegionTolerance", 10. * ActsUnits.mm)
165 kwargs.setdefault(
"inputHoughVtx",
166 "HoughVertices" if flags.Tracking.ActiveConfig.useHoughVertexFilter
else "")
168 acc.setPrivateTools(CompFactory.ActsTrk.GridTripletSeedingTool(name, **kwargs))
172 name: str =
"ActsLargeRadiusStripSeedingTool",
173 **kwargs) -> ComponentAccumulator:
175 kwargs.setdefault(
"interactionPointCut",
True)
176 kwargs.setdefault(
"impactMax", flags.Tracking.ActiveConfig.maxPrimaryImpactSeed *
177 ActsUnits.mm / GaudiUnits.mm)
180 kwargs.setdefault(
"doubletDPhiCut",
True)
181 kwargs.setdefault(
"doubletDPhiCap", 0.10)
184 kwargs.setdefault(
"stripCalibrationTolerance", 1.75)
186 kwargs.setdefault(
"doubletStripCalibrationCut",
False)
187 kwargs.setdefault(
"doubletStripCalibrationTolerance", 2.)
192 kwargs.setdefault(
"deltaRMax", 400. * ActsUnits.mm)
193 kwargs.setdefault(
"collisionRegionMin", -flags.Tracking.ActiveConfig.maxZImpactSeed *
194 ActsUnits.mm / GaudiUnits.mm)
195 kwargs.setdefault(
"collisionRegionMax", flags.Tracking.ActiveConfig.maxZImpactSeed *
196 ActsUnits.mm / GaudiUnits.mm)
197 kwargs.setdefault(
"deltaRMiddleMaxSPRange", 75 * ActsUnits.mm)
198 kwargs.setdefault(
"deltaRMinTopSP", 50. * ActsUnits.mm)
199 kwargs.setdefault(
"deltaRMaxTopSP", 250. * ActsUnits.mm)
200 kwargs.setdefault(
"deltaRMinBottomSP", 50. * ActsUnits.mm)
201 kwargs.setdefault(
"deltaRMaxBottomSP", 250. * ActsUnits.mm)
202 kwargs.setdefault(
"deltaZMax", 850. * ActsUnits.mm)
203 kwargs.setdefault(
"cotThetaMax", 5.0)
204 kwargs.setdefault(
"maxSeedsPerSpM", 1)
205 kwargs.setdefault(
"maxStripDeltaCotTheta", 0.1)
208 kwargs.setdefault(
"spacePointVarianceScale", 0.5)
209 kwargs.setdefault(
"absDeltaEtaWeightFactor", 10.)
210 kwargs.setdefault(
"absDeltaEtaMinImpact", 2.)
211 kwargs.setdefault(
"zBinEdges", [-3000., -2500, -1400., -910., -500., -250.,
212 250., 500., 910., 1400., 2500, 3000.])
213 kwargs.setdefault(
"zBinsCustomLooping" , [2, 10, 3, 9, 6, 4, 8, 5, 7])
214 kwargs.setdefault(
"useVariableMiddleSPRange",
False)
215 kwargs.setdefault(
"zBinNeighborsTop", [
228 kwargs.setdefault(
"zBinNeighborsBottom", [
241 kwargs.setdefault(
"rRangeMiddleSP", [
255 kwargs.setdefault(
"seedConfirmation",
True)
256 kwargs.setdefault(
"seedConfirmationInFilter",
True)
257 kwargs.setdefault(
"zOriginWeightFactor", 1.)
258 kwargs.setdefault(
"maxSeedsPerSpMConf", 1)
259 kwargs.setdefault(
"maxQualitySeedsPerSpMConf", 1)
260 kwargs.setdefault(
"seedConfCentralZMin", -1400. * ActsUnits.mm)
261 kwargs.setdefault(
"seedConfCentralZMax", 1400. * ActsUnits.mm)
262 kwargs.setdefault(
"seedConfCentralRMax", 140. * ActsUnits.mm)
263 kwargs.setdefault(
"seedConfCentralNTopLargeR", 1)
264 kwargs.setdefault(
"seedConfCentralNTopSmallR", 0)
265 kwargs.setdefault(
"seedConfCentralMinBottomRadius", 0. * ActsUnits.mm)
266 kwargs.setdefault(
"seedConfCentralMaxZOrigin", 1500. * ActsUnits.mm)
267 kwargs.setdefault(
"seedConfCentralMinImpact", 200. * ActsUnits.mm)
268 kwargs.setdefault(
"seedConfForwardZMin", -3000. * ActsUnits.mm)
269 kwargs.setdefault(
"seedConfForwardZMax", 3000. * ActsUnits.mm)
270 kwargs.setdefault(
"seedConfForwardRMax", 140. * ActsUnits.mm)
271 kwargs.setdefault(
"seedConfForwardNTopLargeR", 1)
272 kwargs.setdefault(
"seedConfForwardNTopSmallR", 0)
273 kwargs.setdefault(
"seedConfForwardMinBottomRadius", 350. * ActsUnits.mm)
274 kwargs.setdefault(
"seedConfForwardMaxZOrigin", 1500. * ActsUnits.mm)
275 kwargs.setdefault(
"seedConfForwardMinImpact", 200. * ActsUnits.mm)
280 name: str =
"ActsGbtsLayerTool",
281 **kwargs) -> ComponentAccumulator:
282 """The GBTS layer geometry, built from the ITk readout geometry.
284 One instance is shared by every GBTS seeding tool: the layer indices it
285 hands out have to agree with the connection table they all read.
287 acc = ComponentAccumulator()
288 kwargs.setdefault(
"dumpGbtsGeometry", flags.Acts.Gbts.dumpGbtsGeometry)
289 kwargs.setdefault(
"geometryDump", flags.Acts.Gbts.geometryDump)
290 acc.setPrivateTools(CompFactory.ActsTrk.GbtsLayerTool(name, **kwargs))
295 name: str =
"ActsPixelGbtsSeedingTool",
296 **kwargs) -> ComponentAccumulator:
297 acc = ComponentAccumulator()
298 if "layerTool" not in kwargs:
305 kwargs.setdefault(
"usePixelLayers",
True)
306 kwargs.setdefault(
"useStripLayers",
False)
307 kwargs.setdefault(
"connectorInputFile" , find_datafile(flags.Acts.Gbts.connectionTable))
308 kwargs.setdefault(
"lutInputFile" , find_datafile(
"gbts_ml_pixel_barrel_loose.lut"))
309 kwargs.setdefault(
"minPt" , flags.Tracking.ActiveConfig.minPTSeed *
310 ActsUnits.GeV / GaudiUnits.GeV)
311 kwargs.setdefault(
"d0Max", flags.Tracking.ActiveConfig.maxPrimaryImpactSeed *
312 ActsUnits.mm / GaudiUnits.mm)
313 kwargs.setdefault(
"addTriplets",
False)
316 kwargs.setdefault(
"tauRatioCut", 0.007)
319 kwargs.setdefault(
"minZ0", -flags.Tracking.ActiveConfig.maxZImpactSeed *
320 ActsUnits.mm / GaudiUnits.mm)
321 kwargs.setdefault(
"maxZ0", flags.Tracking.ActiveConfig.maxZImpactSeed *
322 ActsUnits.mm / GaudiUnits.mm)
323 kwargs.setdefault(
"filterMaxZ0", flags.Tracking.ActiveConfig.maxZImpactSeed *
324 ActsUnits.mm / GaudiUnits.mm)
326 acc.setPrivateTools(CompFactory.ActsTrk.GbtsSeedingTool(name, **kwargs))
330 name: str =
"ActsStripGbtsSeedingTool",
331 **kwargs) -> ComponentAccumulator:
332 """GBTS strip seeding for the primary pass. ActsLargeRadiusStripGbtsSeedingToolCfg is the LRT one."""
333 acc = ComponentAccumulator()
334 if "layerTool" not in kwargs:
340 kwargs.setdefault(
"usePixelLayers",
False)
341 kwargs.setdefault(
"useStripLayers",
True)
342 kwargs.setdefault(
"usePixelConnections",
False)
343 kwargs.setdefault(
"useStripConnections",
True)
345 kwargs.setdefault(
"LRTmode",
False)
347 kwargs.setdefault(
"useML",
False)
348 kwargs.setdefault(
"connectorInputFile", find_datafile(flags.Acts.Gbts.connectionTable))
350 kwargs.setdefault(
"minPt", flags.Tracking.ActiveConfig.minPTSeed *
351 ActsUnits.GeV / GaudiUnits.GeV)
352 kwargs.setdefault(
"d0Max", flags.Tracking.ActiveConfig.maxPrimaryImpactSeed *
353 ActsUnits.mm / GaudiUnits.mm)
355 kwargs.setdefault(
"addTriplets",
True)
356 kwargs.setdefault(
"maxEtaAddTriplets", 3.0)
359 kwargs.setdefault(
"maxOuterRadius", 1100.0)
361 kwargs.setdefault(
"cutDPhiMax", 0.012)
362 kwargs.setdefault(
"cutDCurvMax", 0.001)
365 kwargs.setdefault(
"tauRatioCut", 0.014)
366 kwargs.setdefault(
"precutTauRatioMax", 0.018)
369 kwargs.setdefault(
"minZ0", -flags.Tracking.ActiveConfig.maxZImpactSeed *
370 ActsUnits.mm / GaudiUnits.mm)
371 kwargs.setdefault(
"maxZ0", flags.Tracking.ActiveConfig.maxZImpactSeed *
372 ActsUnits.mm / GaudiUnits.mm)
373 kwargs.setdefault(
"filterMaxZ0", flags.Tracking.ActiveConfig.maxZImpactSeed *
374 ActsUnits.mm / GaudiUnits.mm)
378 acc.setPrivateTools(CompFactory.ActsTrk.GbtsSeedingTool(name, **kwargs))
382 name: str =
"ActsLargeRadiusStripGbtsSeedingTool",
383 **kwargs) -> ComponentAccumulator:
385 kwargs.setdefault(
"LRTmode",
True)
386 kwargs.setdefault(
"connectorInputFile", find_datafile(flags.Acts.Gbts.connectionTableLrt))
387 kwargs.setdefault(
"filterMaxZ0", 500. * ActsUnits.mm)
388 kwargs.setdefault(
"cutDPhiMax", 0.07)
389 kwargs.setdefault(
"cutDCurvMax", 0.015)
390 kwargs.setdefault(
"tauRatioCut", 0.015)
391 kwargs.setdefault(
"minZ0", -flags.Tracking.ActiveConfig.maxZImpactSeed *
392 ActsUnits.mm / GaudiUnits.mm)
393 kwargs.setdefault(
"maxZ0", flags.Tracking.ActiveConfig.maxZImpactSeed *
394 ActsUnits.mm / GaudiUnits.mm)
395 kwargs.setdefault(
"maxOuterRadius", 1050.0)
401 name: str =
"ActsGnnSeedingTool",
402 **kwargs) -> ComponentAccumulator:
403 acc = ComponentAccumulator()
405 if 'GnnPipelineTool' not in kwargs:
406 from ActsConfig.ActsTrackFindingConfig
import ActsGnnPipelineToolCfg
407 kwargs.setdefault(
'GnnPipelineTool', acc.popToolsAndMerge(
408 ActsGnnPipelineToolCfg(flags, name=
"GnnSeedingPipeline")))
410 acc.setPrivateTools(CompFactory.ActsTrk.GnnSeedingTool(name, **kwargs))
415 name: str =
'PixelSeedingAlg',
416 **kwargs) -> ComponentAccumulator:
417 acc = ComponentAccumulator()
420 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
421 acc.merge(BeamSpotCondAlgCfg(flags))
423 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
424 acc.merge(AtlasFieldCacheCondAlgCfg(flags))
426 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
427 acc.merge(ITkPixelReadoutGeometryCfg(flags))
429 from InDetConfig.ITkActsHelpers
import isFastPrimaryPass
430 useFastTracking = kwargs.get(
"useFastTracking", isFastPrimaryPass(flags))
432 if "SeedTool" not in kwargs:
433 if flags.Tracking.ActiveConfig.PixelSeedingStrategy
is SeedingStrategy.Gbts:
434 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
436 elif flags.Tracking.ActiveConfig.PixelSeedingStrategy
is SeedingStrategy.Gnn:
437 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
439 elif flags.Tracking.ActiveConfig.PixelSeedingStrategy
is SeedingStrategy.GridTriplet:
441 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
444 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
447 kwargs.setdefault(
"useFastTracking", useFastTracking)
449 suffix =
'_Cached' if flags.Acts.useCache
else ''
450 pixelSpacePoints = [
'ITkPixelSpacePoints' + suffix]
451 if flags.Tracking.ActiveConfig.isSecondaryPass:
453 'ITk' + flags.Tracking.ActiveConfig.extension.replace(
"Acts",
"") +
454 'PixelSpacePoints' + suffix]
455 kwargs.setdefault(
'InputSpacePoints', pixelSpacePoints)
457 kwargs.setdefault(
'OutputSeeds',
458 f
'{flags.Tracking.ActiveConfig.extension}PixelSeeds')
459 kwargs.setdefault(
'UsePixel',
True)
461 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
462 from ActsConfig.ActsMonitoringConfig
import ActsITkPixelSeedingMonitoringToolCfg
463 kwargs.setdefault(
'MonTool', acc.popToolsAndMerge(
464 ActsITkPixelSeedingMonitoringToolCfg(flags)))
466 acc.addEventAlgo(CompFactory.ActsTrk.GenericSeedingAlg(
467 flags.Tracking.ActiveConfig.extension + name, **kwargs))
472 name: str =
'StripSeedingAlg',
473 **kwargs) -> ComponentAccumulator:
474 acc = ComponentAccumulator()
477 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
478 acc.merge(BeamSpotCondAlgCfg(flags))
480 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
481 acc.merge(AtlasFieldCacheCondAlgCfg(flags))
483 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
484 acc.merge(ITkStripReadoutGeometryCfg(flags))
486 if "SeedTool" not in kwargs:
487 if flags.Tracking.ActiveConfig.StripSeedingStrategy
is SeedingStrategy.Gbts:
488 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
491 elif flags.Tracking.ActiveConfig.StripSeedingStrategy
is SeedingStrategy.GridTriplet:
492 if flags.Tracking.ActiveConfig.isLargeD0:
493 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
496 kwargs.setdefault(
'SeedTool', acc.popToolsAndMerge(
499 suffix =
"_Cached" if flags.Acts.useCache
else ""
500 stripSpacePoints = [
'ITkStripSpacePoints' + suffix,
501 'ITkStripOverlapSpacePoints' + suffix]
502 if flags.Tracking.ActiveConfig.isSecondaryPass:
503 prefix =
'ITk' + flags.Tracking.ActiveConfig.extension.replace(
"Acts",
"")
504 stripSpacePoints = [prefix +
'StripSpacePoints' + suffix,
505 prefix +
'StripOverlapSpacePoints' + suffix]
507 if flags.Tracking.ActiveConfig.extension ==
'ActsConversion':
508 stripSpacePoints = [prefix +
'StripSpacePoints' + suffix]
509 kwargs.setdefault(
'InputSpacePoints', stripSpacePoints)
511 kwargs.setdefault(
'OutputSeeds',
512 f
'{flags.Tracking.ActiveConfig.extension}StripSeeds')
513 kwargs.setdefault(
'UsePixel',
False)
515 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
516 from ActsConfig.ActsMonitoringConfig
import ActsITkStripSeedingMonitoringToolCfg
517 kwargs.setdefault(
'MonTool', acc.popToolsAndMerge(
518 ActsITkStripSeedingMonitoringToolCfg(flags)))
520 acc.addEventAlgo(CompFactory.ActsTrk.GenericSeedingAlg(
521 flags.Tracking.ActiveConfig.extension + name, **kwargs))
539 acc = ComponentAccumulator()
541 processPixels = flags.Tracking.ActiveConfig.useITkPixelSeeding
542 processStrips = flags.Tracking.ActiveConfig.useITkStripSeeding
549 prefix = flags.Tracking.ActiveConfig.extension
550 if (flags.Tracking.ActiveConfig.storeTrackSeeds
or flags.Acts.Seeds.doAnalysis):
552 from ActsConfig.ActsAnalysisConfig
import ActsPixelSeedsToTrackParamsAlgCfg
553 acc.merge(ActsPixelSeedsToTrackParamsAlgCfg(
554 flags, name = prefix +
'PixelSeedsToTrackParamsAlg',
555 InputSeedContainerKey = prefix +
'PixelSeeds',
556 OutputTrackParamsCollectionKey = prefix +
'PixelEstimatedTrackParams'))
559 from ActsConfig.ActsAnalysisConfig
import ActsStripSeedsToTrackParamsAlgCfg
560 acc.merge(ActsStripSeedsToTrackParamsAlgCfg(
561 flags, name = prefix +
'StripSeedsToTrackParamsAlg',
562 InputSeedContainerKey = prefix +
'StripSeeds',
563 OutputTrackParamsCollectionKey = prefix +
'StripEstimatedTrackParams'))
565 if flags.Acts.Seeds.doAnalysis:
567 from ActsConfig.ActsAnalysisConfig
import (
568 ActsPixelSeedAnalysisAlgCfg, ActsPixelEstimatedTrackParamsAnalysisAlgCfg)
569 acc.merge(ActsPixelSeedAnalysisAlgCfg(
570 flags, name = prefix +
'PixelSeedAnalysisAlg',
571 extension = prefix, InputSeedCollection = prefix +
'PixelSeeds'))
573 acc.merge(ActsPixelEstimatedTrackParamsAnalysisAlgCfg(
574 flags, name = prefix +
'PixelEstimatedTrackParamsAnalysisAlg',
576 InputTrackParamsCollection = prefix +
'PixelEstimatedTrackParams'))
579 from ActsConfig.ActsAnalysisConfig
import (
580 ActsStripSeedAnalysisAlgCfg, ActsStripEstimatedTrackParamsAnalysisAlgCfg)
581 acc.merge(ActsStripSeedAnalysisAlgCfg(
582 flags, name = prefix +
'StripSeedAnalysisAlg',
583 extension = prefix, InputSeedCollection = prefix +
'StripSeeds'))
585 acc.merge(ActsStripEstimatedTrackParamsAnalysisAlgCfg(
586 flags, name = prefix +
'StripEstimatedTrackParamsAnalysisAlg',
588 InputTrackParamsCollection = prefix +
'StripEstimatedTrackParams'))
590 if flags.Tracking.ActiveConfig.storeTrackSeeds:
593 flags, processPixels=
True, processStrips=
False))
596 flags, processPixels=
False, processStrips=
True))
597 if processPixels
and processStrips:
599 flags, processPixels=
True, processStrips=
True))
602 if flags.Acts.Gbts.Training.enable:
603 from ActsConfig.ActsTruthConfig
import ActsGbtsTrainingAlgCfg
604 acc.merge(ActsGbtsTrainingAlgCfg(flags))
611 processStrips: bool) -> ComponentAccumulator:
613 acc = ComponentAccumulator()
615 prefix = flags.Tracking.ActiveConfig.extension
616 if processPixels
and not processStrips:
617 prefix = prefix +
'Pixel'
618 if processStrips
and not processPixels:
619 prefix = prefix +
'Strip'
620 processBoth = processPixels
and processStrips
621 tracks =
'SiSPTracksSeedSegments' + prefix +
'Tracks'
625 flags, name = prefix +
'PixelSeedToTrackCnvAlg',
626 EstimatedTrackParametersKey = (
627 [prefix +
'PixelEstimatedTrackParams', prefix +
'StripEstimatedTrackParams']
628 if processBoth
else [prefix +
'EstimatedTrackParams']),
630 [prefix +
'PixelSeeds', prefix +
'StripSeeds']
631 if processBoth
else [prefix +
'Seeds']),
632 ACTSTracksLocation = tracks))
635 if flags.Tracking.doTruth:
636 from ActsConfig.ActsTruthConfig
import (
637 ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg)
638 acc.merge(ActsTrackToTruthAssociationAlgCfg(
639 flags, name = prefix +
'SeedTrackToTruthAssociationAlg',
640 ACTSTracksLocation = tracks,
641 AssociationMapOut = tracks +
'ToTruthParticleAssociation'))
643 acc.merge(ActsTrackFindingValidationAlgCfg(
644 flags, name = prefix +
'SeedTrackFindingValidationAlg',
645 TrackToTruthAssociationMap = tracks +
'ToTruthParticleAssociation'))
648 from InDetConfig.ITkActsParticleCreationConfig
import (
649 ITkActsTrackParticleCreationCfg)
650 acc.merge(ITkActsTrackParticleCreationCfg(
652 TrackContainers = [tracks],
653 TrackParticleContainer =
'SiSPSeedSegments' + prefix +
'TrackParticles'))