5def EFSpacePointFormationCfg(flags, previousActsExtension = None, **kwargs) -> ComponentAccumulator:
6 acc = ComponentAccumulator()
7
8 processPixels = flags.Detector.EnableITkPixel
9 processStrips = flags.Detector.EnableITkStrip
10
11 kwargs = dict()
12 kwargs.setdefault('processPixels', processPixels)
13 kwargs.setdefault('processStrips', processStrips)
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 kwargs.setdefault('runCacheCreation', flags.Acts.useCache)
34 kwargs.setdefault('runReconstruction', True)
35 kwargs.setdefault('runPreparation', flags.Acts.useCache)
36
37
38 processOverlapSpacePoints = processStrips
39
40 kwargs.setdefault('processOverlapSpacePoints', processOverlapSpacePoints)
41
42
43 roisName = f'{flags.Tracking.ActiveConfig.extension}RegionOfInterest'
44
45
46
47 pixelClustersName = 'ITkPixelClusters'
48 stripClustersName = 'ITkStripClusters'
49 pixelSpacePointsName = 'FPGAITkPixelSpacePoints'
50 stripSpacePointsName = 'FPGAITkStripSpacePoints'
51 stripOverlapSpacePointsName = 'ITkStripOverlapSpacePoints'
52
53 if flags.Acts.useCache:
54 pixelClustersName += "_Cached"
55 stripClustersName += "_Cached"
56
57
58 primaryPixelSpacePointsName = 'FPGAITkPixelSpacePoints'
59 primaryStripSpacePointsName = 'FPGAITkStripSpacePoints'
60 primaryStripOverlapSpacePointsName = 'ITkStripOverlapSpacePoints'
61
62
63 if kwargs['runCacheCreation']:
64 kwargs.setdefault('SpacePointCacheCreatorAlg.name', f'{flags.Tracking.ActiveConfig.extension}SpacePointCacheCreatorAlg')
65
66
67 if kwargs['runReconstruction']:
68 if kwargs['processPixels']:
69 kwargs.setdefault('PixelSpacePointFormationAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointFormationAlg')
70 kwargs.setdefault('PixelSpacePointFormationAlg.useCache', flags.Acts.useCache)
71 kwargs.setdefault('PixelSpacePointFormationAlg.SPCache', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
72 kwargs.setdefault('PixelSpacePointFormationAlg.PixelClusters', pixelClustersName)
73 kwargs.setdefault('PixelSpacePointFormationAlg.PixelSpacePoints', pixelSpacePointsName)
74
75 if kwargs['processStrips']:
76 kwargs.setdefault('StripSpacePointFormationAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointFormationAlg')
77 kwargs.setdefault('StripSpacePointFormationAlg.useCache', flags.Acts.useCache)
78 kwargs.setdefault('StripSpacePointFormationAlg.SPCache', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
79 kwargs.setdefault('StripSpacePointFormationAlg.StripClusters', stripClustersName)
80 kwargs.setdefault('StripSpacePointFormationAlg.StripSpacePoints', stripSpacePointsName)
81
82
83 kwargs.setdefault('StripSpacePointFormationAlg.ProcessOverlapForStrip', kwargs['processOverlapSpacePoints'])
84 kwargs.setdefault('StripSpacePointFormationAlg.OSPCache', f'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
85 if kwargs['processOverlapSpacePoints']:
86 kwargs.setdefault('StripSpacePointFormationAlg.StripOverlapSpacePoints', stripOverlapSpacePointsName)
87 else:
88
89 kwargs.setdefault('StripSpacePointFormationAlg.StripOverlapSpacePoints', '')
90
91
92 if kwargs['runPreparation']:
93 if kwargs['processPixels']:
94 kwargs.setdefault('PixelSpacePointPreparationAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointPreparationAlg')
95 kwargs.setdefault('PixelSpacePointPreparationAlg.useCache', flags.Acts.useCache)
96 kwargs.setdefault('PixelSpacePointPreparationAlg.OutputCollection', f'{pixelSpacePointsName}_Cached' if kwargs['runReconstruction'] else pixelSpacePointsName)
97
98 if not flags.Acts.useCache:
99
100 kwargs.setdefault('PixelSpacePointPreparationAlg.InputCollection', pixelSpacePointsName if kwargs['runReconstruction'] else primaryPixelSpacePointsName)
101 kwargs.setdefault('PixelSpacePointPreparationAlg.InputIDC', '')
102 else:
103 kwargs.setdefault('PixelSpacePointPreparationAlg.InputCollection', '')
104 kwargs.setdefault('PixelSpacePointPreparationAlg.InputIDC', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
105
106
107 if kwargs['processStrips']:
108 kwargs.setdefault('StripSpacePointPreparationAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointPreparationAlg')
109 kwargs.setdefault('StripSpacePointPreparationAlg.useCache', flags.Acts.useCache)
110 kwargs.setdefault('StripSpacePointPreparationAlg.OutputCollection', f'{stripSpacePointsName}_Cached' if kwargs['runReconstruction'] else stripSpacePointsName)
111
112 if not flags.Acts.useCache:
113
114 kwargs.setdefault('StripSpacePointPreparationAlg.InputCollection', stripSpacePointsName if kwargs['runReconstruction'] else primaryStripSpacePointsName)
115 kwargs.setdefault('StripSpacePointPreparationAlg.InputIDC', '')
116 else:
117 kwargs.setdefault('StripSpacePointPreparationAlg.InputCollection', '')
118 kwargs.setdefault('StripSpacePointPreparationAlg.InputIDC', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
119
120 if kwargs['processOverlapSpacePoints']:
121 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointPreparationAlg')
122 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.useCache', flags.Acts.useCache)
123 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.OutputCollection', f'{stripOverlapSpacePointsName}_Cached' if kwargs['runReconstruction'] else stripOverlapSpacePointsName)
124
125 if not flags.Acts.useCache:
126
127 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputCollection', stripOverlapSpacePointsName if kwargs['runReconstruction'] else primaryStripOverlapSpacePointsName)
128 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputIDC', '')
129 else:
130 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputCollection', '')
131 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputIDC', f'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
132
133
134 if flags.Acts.SpacePoints.doAnalysis:
135
136
137 if kwargs['processPixels']:
138 kwargs.setdefault('PixelSpacePointAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointAnalysisAlg')
139 kwargs.setdefault('PixelSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
140 kwargs.setdefault('PixelSpacePointAnalysisAlg.SpacePointContainerKey', kwargs['PixelSpacePointPreparationAlg.OutputCollection'] if kwargs['runPreparation'] else kwargs['PixelSpacePointFormationAlg.PixelSpacePoints'])
141
142 if kwargs['processStrips']:
143 kwargs.setdefault('StripSpacePointAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointAnalysisAlg')
144 kwargs.setdefault('StripSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
145 kwargs.setdefault('StripSpacePointAnalysisAlg.SpacePointContainerKey', kwargs['StripSpacePointPreparationAlg.OutputCollection'] if kwargs['runPreparation'] else kwargs['StripSpacePointFormationAlg.StripSpacePoints'])
146
147 if kwargs['processOverlapSpacePoints']:
148 kwargs.setdefault('StripOverlapSpacePointAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointAnalysisAlg')
149 kwargs.setdefault('StripOverlapSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
150 kwargs.setdefault('StripOverlapSpacePointAnalysisAlg.SpacePointContainerKey', kwargs['StripOverlapSpacePointPreparationAlg.OutputCollection'] if kwargs['runPreparation'] else kwargs['StripSpacePointFormationAlg.StripOverlapSpacePoints'])
151
152 from ActsConfig.ActsSpacePointFormationConfig import ActsMainSpacePointFormationCfg
153 acc.merge(ActsMainSpacePointFormationCfg(flags, RoIs=roisName, **kwargs))
154 return acc
155