3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory
import CompFactory
5 from ActsConfig.ActsConfigFlags
import SeedingStrategy
6 from ActsConfig.ActsUtilities
import extractChildKwargs
7 from ActsInterop
import UnitConstants
11 name: str =
"ActsPixelSeedingTool",
12 **kwargs) -> ComponentAccumulator:
16 kwargs.setdefault(
"numSeedIncrement" ,
float(
"inf"))
17 kwargs.setdefault(
"deltaZMax" ,
float(
"inf"))
18 kwargs.setdefault(
"maxPtScattering",
float(
"inf"))
19 acc.setPrivateTools(CompFactory.ActsTrk.SeedingTool(name, **kwargs))
23 name: str =
"ActsFastPixelSeedingTool",
24 **kwargs) -> ComponentAccumulator:
26 kwargs.setdefault(
"minPt", 1000 * UnitConstants.MeV)
27 kwargs.setdefault(
"collisionRegionMin", -150 * UnitConstants.mm)
28 kwargs.setdefault(
"collisionRegionMax", 150 * UnitConstants.mm)
29 kwargs.setdefault(
"maxPhiBins", 200)
30 kwargs.setdefault(
"gridRMax", 250 * UnitConstants.mm)
31 kwargs.setdefault(
"deltaRMax", 200 * UnitConstants.mm)
32 kwargs.setdefault(
"zBinsCustomLooping" , [2, 10, 3, 9, 6, 4, 8, 5, 7])
33 kwargs.setdefault(
"rRangeMiddleSP", [
45 kwargs.setdefault(
"useVariableMiddleSPRange",
False)
46 kwargs.setdefault(
"useExperimentCuts",
True)
51 name: str =
"ActsStripSeedingTool",
52 **kwargs) -> ComponentAccumulator:
56 kwargs.setdefault(
"doSeedQualitySelection",
False)
58 kwargs.setdefault(
"gridRMax" , 1000. * UnitConstants.mm)
59 kwargs.setdefault(
"deltaRMax" , 600. * UnitConstants.mm)
60 kwargs.setdefault(
"impactMax" , 20. * UnitConstants.mm)
62 kwargs.setdefault(
"rMax" , 1200. * UnitConstants.mm)
63 kwargs.setdefault(
"deltaRMinTopSP" , 20. * UnitConstants.mm)
64 kwargs.setdefault(
"deltaRMaxTopSP" , 300. * UnitConstants.mm)
65 kwargs.setdefault(
"deltaRMinBottomSP" , 20. * UnitConstants.mm)
66 kwargs.setdefault(
"deltaRMaxBottomSP" , 300. * UnitConstants.mm)
67 kwargs.setdefault(
"deltaZMax" , 900. * UnitConstants.mm)
68 kwargs.setdefault(
"interactionPointCut" ,
False)
69 kwargs.setdefault(
"zBinsCustomLooping" , [6, 7, 5, 8, 4, 9, 3, 10, 2, 11, 1])
70 kwargs.setdefault(
"deltaRMiddleMinSPRange" , 30 * UnitConstants.mm)
71 kwargs.setdefault(
"deltaRMiddleMaxSPRange" , 150 * UnitConstants.mm)
72 kwargs.setdefault(
"useDetailedDoubleMeasurementInfo" ,
True)
73 kwargs.setdefault(
"maxPtScattering",
float(
"inf"))
75 kwargs.setdefault(
"useDeltaRorTopRadius" ,
False)
76 kwargs.setdefault(
"seedConfirmationInFilter" ,
False)
77 kwargs.setdefault(
"impactWeightFactor" , 1.)
78 kwargs.setdefault(
"compatSeedLimit" , 4)
79 kwargs.setdefault(
"numSeedIncrement" , 1.)
80 kwargs.setdefault(
"seedWeightIncrement" , 10100.)
81 kwargs.setdefault(
"maxSeedsPerSpMConf" , 100)
82 kwargs.setdefault(
"maxQualitySeedsPerSpMConf" , 100)
84 kwargs.setdefault(
"zBinNeighborsBottom" , [(0,1),(0,1),(0,1),(0,2),(0,1),(0,0),(-1,0),(-2,0),(-1,0),(-1,0),(-1,0)])
86 acc.setPrivateTools(CompFactory.ActsTrk.SeedingTool(name, **kwargs))
90 name: str =
"ActsPixelOrthogonalSeedingTool",
91 **kwargs) -> ComponentAccumulator:
94 acc.setPrivateTools(CompFactory.ActsTrk.OrthogonalSeedingTool(name, **kwargs))
98 name: str =
"ActsFastPixelOrthogonalSeedingTool",
99 **kwargs) -> ComponentAccumulator:
104 kwargs.setdefault(
"minPt", 1000 * UnitConstants.MeV)
105 kwargs.setdefault(
"collisionRegionMin", -150 * UnitConstants.mm)
106 kwargs.setdefault(
"collisionRegionMax", 150 * UnitConstants.mm)
107 kwargs.setdefault(
"useExperimentCuts",
True)
109 acc.setPrivateTools(CompFactory.ActsTrk.OrthogonalSeedingTool(name, **kwargs))
113 name: str =
"ActsStripOrthogonalSeedingTool",
114 **kwargs) -> ComponentAccumulator:
118 kwargs.setdefault(
"impactMax" , 20. * UnitConstants.mm)
119 kwargs.setdefault(
'rMax', 1200. * UnitConstants.mm)
120 kwargs.setdefault(
"deltaRMinTopSP" , 20. * UnitConstants.mm)
121 kwargs.setdefault(
"deltaRMaxTopSP" , 300. * UnitConstants.mm)
122 kwargs.setdefault(
"deltaRMinBottomSP" , 20. * UnitConstants.mm)
123 kwargs.setdefault(
"deltaRMaxBottomSP" , 300. * UnitConstants.mm)
124 kwargs.setdefault(
"deltaZMax" , 900. * UnitConstants.mm)
125 kwargs.setdefault(
"interactionPointCut" ,
False)
126 kwargs.setdefault(
"impactWeightFactor" , 1.)
127 kwargs.setdefault(
"compatSeedLimit" , 4)
128 kwargs.setdefault(
"seedWeightIncrement" , 10100.)
129 kwargs.setdefault(
"numSeedIncrement" , 1.)
130 kwargs.setdefault(
"seedConfirmationInFilter" ,
False)
131 kwargs.setdefault(
"maxSeedsPerSpMConf" , 100)
132 kwargs.setdefault(
"maxQualitySeedsPerSpMConf" , 100)
133 kwargs.setdefault(
"useDeltaRorTopRadius" ,
False)
134 kwargs.setdefault(
"rMinMiddle", 33. * UnitConstants.mm)
135 kwargs.setdefault(
"rMaxMiddle", 1200. * UnitConstants.mm)
137 acc.setPrivateTools(CompFactory.ActsTrk.OrthogonalSeedingTool(name, **kwargs))
141 name: str =
'ActsSiSpacePointsSeedMakerTool',
142 **kwargs) -> ComponentAccumulator:
143 assert isinstance(name, str)
147 if flags.Tracking.ActiveConfig.extension ==
"ActsValidateConversionSeeds":
148 kwargs.setdefault(
'useOverlapSpCollection',
False)
151 kwargs.setdefault(
'usePixel',
152 flags.Tracking.ActiveConfig.useITkPixel
and
153 flags.Tracking.ActiveConfig.useITkPixelSeeding)
154 kwargs.setdefault(
'useStrip',
155 flags.Tracking.ActiveConfig.useITkStrip
and
156 flags.Tracking.ActiveConfig.useITkStripSeeding)
157 kwargs.setdefault(
'useOverlapSpCollection',
158 flags.Tracking.ActiveConfig.useITkStrip
and
159 flags.Tracking.ActiveConfig.useITkStripSeeding)
160 kwargs.setdefault(
'ActsSpacePointsPixelName' ,
"ITkPixelSpacePoints")
161 kwargs.setdefault(
'ActsSpacePointsStripName' ,
"ITkStripSpacePoints")
162 kwargs.setdefault(
'ActsSpacePointsOverlapName' ,
"ITkStripOverlapSpacePoints")
172 useClusters = flags.Tracking.ActiveConfig.doAthenaToActsCluster
and not flags.Tracking.ActiveConfig.doAthenaToActsSpacePoint
173 kwargs.setdefault(
'useClustersForSeedConversion', useClusters)
175 if flags.Tracking.ActiveConfig.usePrdAssociationTool:
177 kwargs.setdefault(
'PRDtoTrackMap', (
178 'ITkPRDtoTrackMap' + flags.Tracking.ActiveConfig.extension))
182 seedTool_pixel =
None
183 if 'SeedToolPixel' not in kwargs:
184 if flags.Acts.SeedingStrategy
is SeedingStrategy.Orthogonal:
185 if flags.Tracking.doITkFastTracking:
190 if flags.Tracking.doITkFastTracking:
191 kwargs.setdefault(
"useFastTracking",
True)
196 seedTool_strip =
None
197 if 'SeedToolStrip' not in kwargs:
198 if flags.Acts.SeedingStrategy
is SeedingStrategy.Orthogonal:
202 rMax=flags.Tracking.ActiveConfig.radMax,
203 gridRMax=flags.Tracking.ActiveConfig.radMax))
205 kwargs.setdefault(
'SeedToolPixel', seedTool_pixel)
206 kwargs.setdefault(
'SeedToolStrip', seedTool_strip)
209 if flags.Tracking.writeSeedValNtuple:
210 kwargs.setdefault(
'WriteNtuple',
True)
211 HistService = CompFactory.THistSvc(Output = [
"valNtuples DATAFILE='SeedMakerValidation.root' OPT='RECREATE'"])
212 acc.addService(HistService)
214 acc.setPrivateTools(CompFactory.ActsTrk.SiSpacePointsSeedMaker(name, **kwargs))
220 name: str =
'ActsPixelSeedingAlg',
221 **kwargs) -> ComponentAccumulator:
225 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
228 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
231 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
236 if 'TrackingGeometryTool' not in kwargs:
237 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometryToolCfg
239 acc.addPublicTool(geoTool)
240 kwargs.setdefault(
'TrackingGeometryTool', acc.getPublicTool(geoTool.name))
243 if 'ATLASConverterTool' not in kwargs:
244 from ActsConfig.ActsEventCnvConfig
import ActsToTrkConverterToolCfg
248 if 'TrackParamsEstimationTool' not in kwargs:
249 from ActsConfig.ActsTrackParamsEstimationConfig
import ActsTrackParamsEstimationToolCfg
252 if "SeedTool" not in kwargs:
253 if flags.Acts.SeedingStrategy
is SeedingStrategy.Orthogonal:
254 if flags.Tracking.doITkFastTracking:
259 if flags.Tracking.doITkFastTracking:
264 kwargs.setdefault(
"useFastTracking", flags.Tracking.doITkFastTracking)
265 kwargs.setdefault(
'InputSpacePoints', [
'ITkPixelSpacePoints_Cached']
if flags.Acts.useCache
else [
'ITkPixelSpacePoints'])
266 kwargs.setdefault(
'OutputSeeds',
'ActsPixelSeeds')
267 kwargs.setdefault(
'OutputEstimatedTrackParameters',
'ActsPixelEstimatedTrackParams')
268 kwargs.setdefault(
'DetectorElements',
'ITkPixelDetectorElementCollection')
270 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
271 from ActsConfig.ActsMonitoringConfig
import ActsITkPixelSeedingMonitoringToolCfg
274 acc.addEventAlgo(CompFactory.ActsTrk.SeedingAlg(name, **kwargs))
279 name: str =
'ActsStripSeedingAlg',
280 **kwargs) -> ComponentAccumulator:
284 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
287 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
290 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
295 if 'TrackingGeometryTool' not in kwargs:
296 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometryToolCfg
298 acc.addPublicTool(geoTool)
299 kwargs.setdefault(
'TrackingGeometryTool', acc.getPublicTool(geoTool.name))
302 if 'ATLASConverterTool' not in kwargs:
303 from ActsConfig.ActsEventCnvConfig
import ActsToTrkConverterToolCfg
307 if 'TrackParamsEstimationTool' not in kwargs:
308 from ActsConfig.ActsTrackParamsEstimationConfig
import ActsTrackParamsEstimationToolCfg
311 if "SeedTool" not in kwargs:
312 if flags.Acts.SeedingStrategy
is SeedingStrategy.Orthogonal:
317 kwargs.setdefault(
'InputSpacePoints', [
'ITkStripSpacePoints_Cached',
'ITkStripOverlapSpacePoints_Cached']
if flags.Acts.useCache
else [
'ITkStripSpacePoints',
'ITkStripOverlapSpacePoints'])
318 kwargs.setdefault(
'OutputSeeds',
'ActsStripSeeds')
319 kwargs.setdefault(
'OutputEstimatedTrackParameters',
'ActsStripEstimatedTrackParams')
320 kwargs.setdefault(
'DetectorElements',
'ITkStripDetectorElementCollection')
322 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
323 from ActsConfig.ActsMonitoringConfig
import ActsITkStripSeedingMonitoringToolCfg
326 acc.addEventAlgo(CompFactory.ActsTrk.SeedingAlg(name, **kwargs))
331 **kwargs) -> ComponentAccumulator:
334 kwargs.setdefault(
'processPixels', flags.Detector.EnableITkPixel)
335 kwargs.setdefault(
'processStrips', flags.Detector.EnableITkStrip)
337 if kwargs[
'processPixels']:
339 if kwargs[
'processStrips']:
343 if flags.Acts.doAnalysis:
344 if kwargs[
'processPixels']:
345 from ActsConfig.ActsAnalysisConfig
import ActsPixelSeedAnalysisAlgCfg, ActsPixelEstimatedTrackParamsAnalysisAlgCfg
349 if kwargs[
'processStrips']:
350 from ActsConfig.ActsAnalysisConfig
import ActsStripSeedAnalysisAlgCfg, ActsStripEstimatedTrackParamsAnalysisAlgCfg
359 processPixels = flags.Detector.EnableITkPixel
360 processStrips = flags.Detector.EnableITkStrip
363 if flags.Tracking.ActiveConfig.extension
in [
"ActsConversion",
"ActsLargeRadius"]:
364 processPixels =
False
366 elif flags.Tracking.doITkFastTracking:
367 processStrips =
False
370 kwargs.setdefault(
'processPixels', processPixels)
371 kwargs.setdefault(
'processStrips', processStrips)
373 if flags.Tracking.ActiveConfig.extension ==
"ActsHeavyIon" and processPixels:
374 kwargs.setdefault(
'PixelSeedingAlg.SeedTool', acc.popToolsAndMerge(
ActsPixelSeedingToolCfg(flags, name=f
'{flags.Tracking.ActiveConfig.extension}PixelSeedingTool', minPt=flags.Tracking.ActiveConfig.minPTSeed)))
378 kwargs.setdefault(
'PixelSeedingAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSeedingAlg')
379 kwargs.setdefault(
'PixelSeedingAlg.useFastTracking', flags.Tracking.doITkFastTracking)
380 kwargs.setdefault(
'PixelSeedingAlg.OutputSeeds', f
'{flags.Tracking.ActiveConfig.extension}PixelSeeds')
381 kwargs.setdefault(
'PixelSeedingAlg.OutputEstimatedTrackParameters', f
'{flags.Tracking.ActiveConfig.extension}PixelEstimatedTrackParams')
383 pixelSpacePoints = [
'ITkPixelSpacePoints_Cached']
if flags.Acts.useCache
else [
'ITkPixelSpacePoints']
384 if flags.Tracking.ActiveConfig.isSecondaryPass:
385 pixelSpacePoints = [f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelSpacePoints_Cached']
if flags.Acts.useCache
else [f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelSpacePoints']
386 kwargs.setdefault(
'PixelSeedingAlg.InputSpacePoints', pixelSpacePoints)
389 if flags.Acts.doAnalysis:
390 kwargs.setdefault(
'PixelSeedAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSeedAnalysisAlg')
391 kwargs.setdefault(
'PixelSeedAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
392 kwargs.setdefault(
'PixelSeedAnalysisAlg.InputSeedCollection', kwargs[
'PixelSeedingAlg.OutputSeeds'])
394 kwargs.setdefault(
'PixelEstimatedTrackParamsAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelEstimatedTrackParamsAnalysisAlg')
395 kwargs.setdefault(
'PixelEstimatedTrackParamsAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
396 kwargs.setdefault(
'PixelEstimatedTrackParamsAnalysisAlg.InputTrackParamsCollection', kwargs[
'PixelSeedingAlg.OutputEstimatedTrackParameters'])
400 kwargs.setdefault(
'StripSeedingAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSeedingAlg')
401 kwargs.setdefault(
'StripSeedingAlg.OutputSeeds', f
'{flags.Tracking.ActiveConfig.extension}StripSeeds')
402 kwargs.setdefault(
'StripSeedingAlg.OutputEstimatedTrackParameters', f
'{flags.Tracking.ActiveConfig.extension}StripEstimatedTrackParams')
405 if flags.Tracking.ActiveConfig.extension ==
'ActsConversion':
406 kwargs.setdefault(
'StripSeedingAlg.InputSpacePoints', [
'ITkConversionStripSpacePoints_Cached']
if flags.Acts.useCache
else [
'ITkConversionStripSpacePoints'])
407 elif flags.Tracking.ActiveConfig.extension ==
'ActsLargeRadius':
408 kwargs.setdefault(
'StripSeedingAlg.InputSpacePoints', [
'ITkLargeRadiusStripSpacePoints_Cached',
409 'ITkLargeRadiusStripOverlapSpacePoints_Cached']
if flags.Acts.useCache
else [
'ITkLargeRadiusStripSpacePoints',
410 'ITkLargeRadiusStripOverlapSpacePoints'])
411 elif flags.Tracking.ActiveConfig.extension ==
'ActsLowPt':
412 kwargs.setdefault(
'StripSeedingAlg.InputSpacePoints', [
'ITkLowPtStripSpacePoints_Cached',
413 'ITkLowPtStripOverlapSpacePoints_Cached']
if flags.Acts.useCache
else [
'ITkLowPtStripSpacePoints',
414 'ITkLowPtStripOverlapSpacePoints'])
416 kwargs.setdefault(
'StripSeedingAlg.InputSpacePoints', [
'ITkStripSpacePoints_Cached',
417 'ITkStripOverlapSpacePoints_Cached']
if flags.Acts.useCache
else [
'ITkStripSpacePoints',
418 'ITkStripOverlapSpacePoints'])
421 if flags.Acts.doAnalysis:
422 kwargs.setdefault(
'StripSeedAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSeedAnalysisAlg')
423 kwargs.setdefault(
'StripSeedAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
424 kwargs.setdefault(
'StripSeedAnalysisAlg.InputSeedCollection', kwargs[
'StripSeedingAlg.OutputSeeds'])
426 kwargs.setdefault(
'StripEstimatedTrackParamsAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripEstimatedTrackParamsAnalysisAlg')
427 kwargs.setdefault(
'StripEstimatedTrackParamsAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
428 kwargs.setdefault(
'StripEstimatedTrackParamsAnalysisAlg.InputTrackParamsCollection', kwargs[
'StripSeedingAlg.OutputEstimatedTrackParameters'])