ATLAS Offline Software
Loading...
Searching...
No Matches
ActsObjectDecorationConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5
6
8 name: str = "ActsTrackStateOnSurfaceDecoratorAlg",
9 **kwargs) -> ComponentAccumulator:
10 acc = ComponentAccumulator()
11
12 kwargs.setdefault('TrackParticles', 'InDetTrackParticles')
13 kwargs.setdefault('PixelMSOSs', 'ITkPixelMSOSs')
14 kwargs.setdefault('StripMSOSs', 'ITkStripMSOSs')
15 kwargs.setdefault('ExtraInputs',[
16 ( 'xAOD::PixelClusterContainer' , 'StoreGateSvc+ITkPixelClusters.validationMeasurementLink' ),
17 ( 'xAOD::StripClusterContainer' , 'StoreGateSvc+ITkStripClusters.validationMeasurementLink' ),
18 ( 'xAOD::TrackMeasurementValidationContainer' , 'StoreGateSvc+ITkPixelMeasurements' ),
19 ( 'xAOD::TrackMeasurementValidationContainer' , 'StoreGateSvc+ITkStripMeasurements' )
20 ])
21
22 acc.addEventAlgo(CompFactory.ActsTrk.ActsTrackStateOnSurfaceDecoratorAlg(name, **kwargs))
23
24 toAOD = []
25 toAOD += [f'xAOD::TrackStateValidationContainer#{kwargs["PixelMSOSs"]}',
26 f'xAOD::TrackStateValidationAuxContainer#{kwargs["PixelMSOSs"]}Aux.',
27 f'xAOD::TrackStateValidationContainer#{kwargs["StripMSOSs"]}',
28 f'xAOD::TrackStateValidationAuxContainer#{kwargs["StripMSOSs"]}Aux.']
29
30 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
31 acc.merge(addToAOD(flags, toAOD))
32 return acc
33
34
36 name: str = "ActsMeasurementToTrackParticleDecorationAlg",
37 **kwargs) -> ComponentAccumulator:
38 acc = ComponentAccumulator()
39 kwargs.setdefault("TrackParticleKey", "InDetTrackParticles")
40
41 # TODO:: The tracking geometry tool is not strictly necessary
42 # but can provide extra information on surfaces if needed in the future
43
44 if 'TrackingGeometryTool' not in kwargs:
45 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
46 kwargs.setdefault(
47 "TrackingGeometryTool",
48 acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)),
49 )
50
51 acc.addEventAlgo(CompFactory.ActsTrk.MeasurementToTrackParticleDecorationAlg(name, **kwargs))
52 return acc
53
54
56 name: str = "ActsPixelClusterTruthDecoratorAlg",
57 *,
58 TrackParticles: list[str] = None,
59 **kwargs) -> ComponentAccumulator:
60 acc = ComponentAccumulator()
61 kwargs.setdefault("ClusterContainer","ITkPixelClusters")
62 kwargs.setdefault("AssociationMapOut","ITkPixelClustersToTruthParticles")
63 kwargs.setdefault("MeasurementContainer","ITkPixelMeasurements")
64 kwargs.setdefault("UseTruthInfo", flags.Tracking.doTruth)
65
66 if flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements:
67 if TrackParticles is None:
68 raise ValueError("Requesting persistification of on-track clusters, but no track particle collection has been provided!")
69
70 kwargs.setdefault("KeepOnlyOnTrackMeasurements", True)
71 kwargs.setdefault("TrackParticles", TrackParticles)
72
73 deps = []
74 for collection in TrackParticles:
75 deps += [( 'xAOD::TrackParticleContainer' , f'StoreGateSvc+{collection}.actsTrack' )]
76 kwargs.setdefault('ExtraInputs', deps)
77
78 if "LorentzAngleTool" not in kwargs:
79 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig import ITkPixelLorentzAngleToolCfg
80 kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge( ITkPixelLorentzAngleToolCfg(flags) ))
81
82 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterTruthDecoratorAlg(name,**kwargs))
83
84 # add SDO and SiHit info
85 if flags.Acts.decoratePRD.sdoSiHit:
87
88 # Persistification
89 if flags.Tracking.writeExtendedSi_PRDInfo:
90 toAOD = [
91 f'xAOD::TrackMeasurementValidationContainer#{kwargs["MeasurementContainer"]}',
92 f'xAOD::TrackMeasurementValidationAuxContainer#{kwargs["MeasurementContainer"]}Aux.'
93 ]
94 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
95 acc.merge(addToAOD(flags, toAOD))
96
97 return acc
98
99
101 name: str = "ActsPLRClusterMeasurementDecoratorAlg",
102 **kwargs) -> ComponentAccumulator:
103 acc = ComponentAccumulator()
104 kwargs.setdefault("ClusterContainer", "PLR_Clusters")
105 kwargs.setdefault("MeasurementContainer", "PLRMeasurements")
106 kwargs.setdefault("PixelDetEleCollKey", "PLR_DetectorElementCollection")
107 kwargs.setdefault("IDHelperName", "PLR_ID")
108 kwargs.setdefault("MeasurementSizeZ", "sizeR")
109 kwargs.setdefault("UseTruthInfo", False)
110 kwargs.setdefault("KeepOnlyOnTrackMeasurements", False)
111
112 if "LorentzAngleTool" not in kwargs:
113 from SiLorentzAngleTool.PLR_LorentzAngleConfig import PLR_LorentzAngleToolCfg
114 kwargs.setdefault("LorentzAngleTool",
115 acc.popToolsAndMerge(PLR_LorentzAngleToolCfg(flags)))
116
117 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterTruthDecoratorAlg(name, **kwargs))
118
119 if flags.Tracking.writeExtendedSi_PRDInfo:
120 toAOD = [
121 f'xAOD::TrackMeasurementValidationContainer#{kwargs["MeasurementContainer"]}',
122 f'xAOD::TrackMeasurementValidationAuxContainer#{kwargs["MeasurementContainer"]}Aux.'
123 ]
124 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
125 acc.merge(addToAOD(flags, toAOD))
126
127 return acc
128
129
131 name: str = "ActsStripClusterTruthDecoratorAlg",
132 *,
133 TrackParticles: list[str] = None,
134 **kwargs) -> ComponentAccumulator:
135 acc = ComponentAccumulator()
136 kwargs.setdefault("ClusterContainer","ITkStripClusters")
137 kwargs.setdefault("AssociationMapOut","ITkStripClustersToTruthParticles")
138 kwargs.setdefault("MeasurementContainer","ITkStripMeasurements")
139
140 if flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements:
141 if TrackParticles is None:
142 raise ValueError("Requesting persistification of on-track clusters, but no track particle collection has been provided!")
143
144 kwargs.setdefault("KeepOnlyOnTrackMeasurements", True)
145 kwargs.setdefault("TrackParticles", TrackParticles)
146
147 deps = []
148 for collection in TrackParticles:
149 deps += [( 'xAOD::TrackParticleContainer' , f'StoreGateSvc+{collection}.actsTrack' )]
150 kwargs.setdefault('ExtraInputs', deps)
151
152 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterTruthDecoratorAlg(name,**kwargs))
153
154 if flags.Acts.decoratePRD.sdoSiHit:
156
157 # Persistification
158 if flags.Tracking.writeExtendedSi_PRDInfo:
159 toAOD = [
160 f'xAOD::TrackMeasurementValidationContainer#{kwargs["MeasurementContainer"]}',
161 f'xAOD::TrackMeasurementValidationAuxContainer#{kwargs["MeasurementContainer"]}Aux.'
162 ]
163 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
164 acc.merge(addToAOD(flags, toAOD))
165
166 return acc
167
169 name: str = "ActsPixelClusterSiHitDecoratorAlg",
170 **kwargs) -> ComponentAccumulator:
171 acc = ComponentAccumulator()
172 kwargs.setdefault('Measurements', 'ITkPixelMeasurements')
173 kwargs.setdefault('SDOs', 'ITkPixelSDO_Map')
174 kwargs.setdefault('SiHits', 'ITkPixelHits')
175 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterSiHitDecoratorAlg(name, **kwargs))
176 return acc
177
179 name: str = "ActsStripClusterSiHitDecoratorAlg",
180 **kwargs) -> ComponentAccumulator:
181 acc = ComponentAccumulator()
182 kwargs.setdefault('Measurements', 'ITkStripMeasurements')
183 kwargs.setdefault('SDOs', 'ITkStripSDO_Map')
184 kwargs.setdefault('SiHits', 'ITkStripHits')
185 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterSiHitDecoratorAlg(name, **kwargs))
186 return acc
187
188# ActsInDet... -- Run 3 Silicon Tracking specific decorators
190 name: str = "ActsInDetTrackStateOnSurfaceDecoratorAlg",
191 **kwargs) -> ComponentAccumulator:
192 acc = ComponentAccumulator()
193
194 kwargs.setdefault('TrackParticles', 'InDetTrackParticles')
195 kwargs.setdefault('PixelMSOSs', 'PixelMSOSs')
196 kwargs.setdefault('StripMSOSs', 'StripMSOSs')
197 kwargs.setdefault('ExtraInputs',[
198 ( 'xAOD::PixelClusterContainer' , 'StoreGateSvc+PixelClusters.validationMeasurementLink' ),
199 ( 'xAOD::StripClusterContainer' , 'StoreGateSvc+SCT_Clusters.validationMeasurementLink' ),
200 ( 'xAOD::TrackMeasurementValidationContainer' , 'StoreGateSvc+PixelMeasurements' ),
201 ( 'xAOD::TrackMeasurementValidationContainer' , 'StoreGateSvc+SCT_Measurements' )
202 ])
203 kwargs.setdefault('isITk', False)
204
205 acc.addEventAlgo(CompFactory.ActsTrk.ActsTrackStateOnSurfaceDecoratorAlg(name, **kwargs))
206
207 toAOD = []
208 toAOD += [f'xAOD::TrackStateValidationContainer#{kwargs["PixelMSOSs"]}',
209 f'xAOD::TrackStateValidationAuxContainer#{kwargs["PixelMSOSs"]}Aux.',
210 f'xAOD::TrackStateValidationContainer#{kwargs["StripMSOSs"]}',
211 f'xAOD::TrackStateValidationAuxContainer#{kwargs["StripMSOSs"]}Aux.']
212
213 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
214 acc.merge(addToAOD(flags, toAOD))
215 return acc
216
218 name: str = "ActsInDetPixelClusterTruthDecoratorAlg",
219 *,
220 TrackParticles: list[str] = None,
221 **kwargs) -> ComponentAccumulator:
222 acc = ComponentAccumulator()
223 kwargs.setdefault("ClusterContainer","PixelClusters")
224 kwargs.setdefault("AssociationMapOut","PixelClustersToTruthParticles")
225 kwargs.setdefault("MeasurementContainer","PixelMeasurements")
226 kwargs.setdefault("PixelDetEleCollKey", "PixelDetectorElementCollection")
227 kwargs.setdefault("UseTruthInfo", flags.Tracking.doTruth)
228
229 if flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements:
230 if TrackParticles is None:
231 raise ValueError("Requesting persistification of on-track clusters, but no track particle collection has been provided!")
232
233 kwargs.setdefault("KeepOnlyOnTrackMeasurements", True)
234 kwargs.setdefault("TrackParticles", TrackParticles)
235
236 deps = []
237 for collection in TrackParticles:
238 deps += [( 'xAOD::TrackParticleContainer' , f'StoreGateSvc+{collection}.actsTrack' )]
239 kwargs.setdefault('ExtraInputs', deps)
240
241 if "LorentzAngleTool" not in kwargs:
242 from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleToolCfg
243 kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge( PixelLorentzAngleToolCfg(flags) ))
244
245 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterTruthDecoratorAlg(name,**kwargs))
246
247 # add SDO and SiHit info
248 if flags.Acts.decoratePRD.sdoSiHit:
250
251 # Persistification
252 if flags.Tracking.writeExtendedSi_PRDInfo:
253 toAOD = [
254 f'xAOD::TrackMeasurementValidationContainer#{kwargs["MeasurementContainer"]}',
255 f'xAOD::TrackMeasurementValidationAuxContainer#{kwargs["MeasurementContainer"]}Aux.'
256 ]
257 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
258 acc.merge(addToAOD(flags, toAOD))
259
260 return acc
261
262
264 name: str = "ActsInDetStripClusterTruthDecoratorAlg",
265 *,
266 TrackParticles: list[str] = None,
267 **kwargs) -> ComponentAccumulator:
268 acc = ComponentAccumulator()
269 kwargs.setdefault("ClusterContainer","SCT_Clusters")
270 kwargs.setdefault("AssociationMapOut","SCT_ClustersToTruthParticles")
271 kwargs.setdefault("MeasurementContainer","SCT_Measurements")
272 kwargs.setdefault("StripDetectorElements", "SCT_DetectorElementCollection")
273
274 if flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements:
275 if TrackParticles is None:
276 raise ValueError("Requesting persistification of on-track clusters, but no track particle collection has been provided!")
277
278 kwargs.setdefault("KeepOnlyOnTrackMeasurements", True)
279 kwargs.setdefault("TrackParticles", TrackParticles)
280
281 deps = []
282 for collection in TrackParticles:
283 deps += [( 'xAOD::TrackParticleContainer' , f'StoreGateSvc+{collection}.actsTrack' )]
284 kwargs.setdefault('ExtraInputs', deps)
285
286 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterTruthDecoratorAlg(name,**kwargs))
287
288 if flags.Acts.decoratePRD.sdoSiHit:
290
291 # Persistification
292 if flags.Tracking.writeExtendedSi_PRDInfo:
293 toAOD = [
294 f'xAOD::TrackMeasurementValidationContainer#{kwargs["MeasurementContainer"]}',
295 f'xAOD::TrackMeasurementValidationAuxContainer#{kwargs["MeasurementContainer"]}Aux.'
296 ]
297 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
298 acc.merge(addToAOD(flags, toAOD))
299
300 return acc
301
303 name: str = "ActsInDetPixelClusterSiHitDecoratorAlg",
304 **kwargs) -> ComponentAccumulator:
305 acc = ComponentAccumulator()
306 kwargs.setdefault('Measurements', 'PixelMeasurements')
307 kwargs.setdefault('SDOs', 'PixelSDO_Map')
308 kwargs.setdefault('SiHits', 'PixelHits')
309 kwargs.setdefault('PixelDetEleCollKey', 'PixelDetectorElementCollection')
310 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterSiHitDecoratorAlg(name, **kwargs))
311 return acc
312
314 name: str = "ActsInDetStripClusterSiHitDecoratorAlg",
315 **kwargs) -> ComponentAccumulator:
316 acc = ComponentAccumulator()
317 kwargs.setdefault('Measurements', 'SCT_Measurements')
318 kwargs.setdefault('SDOs', 'SCT_SDO_Map')
319 kwargs.setdefault('SiHits', 'SCT_Hits')
320 kwargs.setdefault('StripDetEleCollKey', 'SCT_DetectorElementCollection')
321 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterSiHitDecoratorAlg(name, **kwargs))
322 return acc
323
325 name: str = "ActsGNNScoreDecoratorAlg",
326 **kwargs) -> ComponentAccumulator:
327 acc = ComponentAccumulator()
328 acc.addEventAlgo(CompFactory.ActsTrk.GNNScoreDecoratorAlg(name, **kwargs))
329 return acc
ComponentAccumulator ActsStripClusterTruthDecoratorAlgCfg(flags, str name="ActsStripClusterTruthDecoratorAlg", *, list[str] TrackParticles=None, **kwargs)
ComponentAccumulator ActsPixelClusterSiHitDecoratorAlgCfg(flags, str name="ActsPixelClusterSiHitDecoratorAlg", **kwargs)
ComponentAccumulator ActsInDetTrackStateOnSurfaceDecoratorAlgCfg(flags, str name="ActsInDetTrackStateOnSurfaceDecoratorAlg", **kwargs)
ComponentAccumulator ActsGNNScoreDecoratorAlgCfg(flags, str name="ActsGNNScoreDecoratorAlg", **kwargs)
ComponentAccumulator ActsPLRClusterMeasurementDecoratorAlgCfg(flags, str name="ActsPLRClusterMeasurementDecoratorAlg", **kwargs)
ComponentAccumulator ActsPixelClusterTruthDecoratorAlgCfg(flags, str name="ActsPixelClusterTruthDecoratorAlg", *, list[str] TrackParticles=None, **kwargs)
ComponentAccumulator ActsInDetPixelClusterSiHitDecoratorAlgCfg(flags, str name="ActsInDetPixelClusterSiHitDecoratorAlg", **kwargs)
ComponentAccumulator ActsTrackStateOnSurfaceDecoratorAlgCfg(flags, str name="ActsTrackStateOnSurfaceDecoratorAlg", **kwargs)
ComponentAccumulator ActsStripClusterSiHitDecoratorAlgCfg(flags, str name="ActsStripClusterSiHitDecoratorAlg", **kwargs)
ComponentAccumulator ActsInDetStripClusterSiHitDecoratorAlgCfg(flags, str name="ActsInDetStripClusterSiHitDecoratorAlg", **kwargs)
ComponentAccumulator ActsMeasurementToTrackParticleDecorationAlgCfg(flags, str name="ActsMeasurementToTrackParticleDecorationAlg", **kwargs)
ComponentAccumulator ActsInDetStripClusterTruthDecoratorAlgCfg(flags, str name="ActsInDetStripClusterTruthDecoratorAlg", *, list[str] TrackParticles=None, **kwargs)
ComponentAccumulator ActsInDetPixelClusterTruthDecoratorAlgCfg(flags, str name="ActsInDetPixelClusterTruthDecoratorAlg", *, list[str] TrackParticles=None, **kwargs)