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 = "ActsStripClusterTruthDecoratorAlg",
102 *,
103 TrackParticles: list[str] = None,
104 **kwargs) -> ComponentAccumulator:
105 acc = ComponentAccumulator()
106 kwargs.setdefault("ClusterContainer","ITkStripClusters")
107 kwargs.setdefault("AssociationMapOut","ITkStripClustersToTruthParticles")
108 kwargs.setdefault("MeasurementContainer","ITkStripMeasurements")
109
110 if flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements:
111 if TrackParticles is None:
112 raise ValueError("Requesting persistification of on-track clusters, but no track particle collection has been provided!")
113
114 kwargs.setdefault("KeepOnlyOnTrackMeasurements", True)
115 kwargs.setdefault("TrackParticles", TrackParticles)
116
117 deps = []
118 for collection in TrackParticles:
119 deps += [( 'xAOD::TrackParticleContainer' , f'StoreGateSvc+{collection}.actsTrack' )]
120 kwargs.setdefault('ExtraInputs', deps)
121
122 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterTruthDecoratorAlg(name,**kwargs))
123
124 if flags.Acts.decoratePRD.sdoSiHit:
126
127 # Persistification
128 if flags.Tracking.writeExtendedSi_PRDInfo:
129 toAOD = [
130 f'xAOD::TrackMeasurementValidationContainer#{kwargs["MeasurementContainer"]}',
131 f'xAOD::TrackMeasurementValidationAuxContainer#{kwargs["MeasurementContainer"]}Aux.'
132 ]
133 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
134 acc.merge(addToAOD(flags, toAOD))
135
136 return acc
137
139 name: str = "ActsPixelClusterSiHitDecoratorAlg",
140 **kwargs) -> ComponentAccumulator:
141 acc = ComponentAccumulator()
142 kwargs.setdefault('Measurements', 'ITkPixelMeasurements')
143 kwargs.setdefault('SDOs', 'ITkPixelSDO_Map')
144 kwargs.setdefault('SiHits', 'ITkPixelHits')
145 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterSiHitDecoratorAlg(name, **kwargs))
146 return acc
147
149 name: str = "ActsStripClusterSiHitDecoratorAlg",
150 **kwargs) -> ComponentAccumulator:
151 acc = ComponentAccumulator()
152 kwargs.setdefault('Measurements', 'ITkStripMeasurements')
153 kwargs.setdefault('SDOs', 'ITkStripSDO_Map')
154 kwargs.setdefault('SiHits', 'ITkStripHits')
155 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterSiHitDecoratorAlg(name, **kwargs))
156 return acc
157
158# ActsInDet... -- Run 3 Silicon Tracking specific decorators
160 name: str = "ActsInDetTrackStateOnSurfaceDecoratorAlg",
161 **kwargs) -> ComponentAccumulator:
162 acc = ComponentAccumulator()
163
164 kwargs.setdefault('TrackParticles', 'InDetTrackParticles')
165 kwargs.setdefault('PixelMSOSs', 'PixelMSOSs')
166 kwargs.setdefault('StripMSOSs', 'StripMSOSs')
167 kwargs.setdefault('ExtraInputs',[
168 ( 'xAOD::PixelClusterContainer' , 'StoreGateSvc+PixelClusters.validationMeasurementLink' ),
169 ( 'xAOD::StripClusterContainer' , 'StoreGateSvc+SCT_Clusters.validationMeasurementLink' ),
170 ( 'xAOD::TrackMeasurementValidationContainer' , 'StoreGateSvc+PixelMeasurements' ),
171 ( 'xAOD::TrackMeasurementValidationContainer' , 'StoreGateSvc+SCT_Measurements' )
172 ])
173 kwargs.setdefault('isITk', False)
174
175 acc.addEventAlgo(CompFactory.ActsTrk.ActsTrackStateOnSurfaceDecoratorAlg(name, **kwargs))
176
177 toAOD = []
178 toAOD += [f'xAOD::TrackStateValidationContainer#{kwargs["PixelMSOSs"]}',
179 f'xAOD::TrackStateValidationAuxContainer#{kwargs["PixelMSOSs"]}Aux.',
180 f'xAOD::TrackStateValidationContainer#{kwargs["StripMSOSs"]}',
181 f'xAOD::TrackStateValidationAuxContainer#{kwargs["StripMSOSs"]}Aux.']
182
183 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
184 acc.merge(addToAOD(flags, toAOD))
185 return acc
186
188 name: str = "ActsInDetPixelClusterTruthDecoratorAlg",
189 *,
190 TrackParticles: list[str] = None,
191 **kwargs) -> ComponentAccumulator:
192 acc = ComponentAccumulator()
193 kwargs.setdefault("ClusterContainer","PixelClusters")
194 kwargs.setdefault("AssociationMapOut","PixelClustersToTruthParticles")
195 kwargs.setdefault("MeasurementContainer","PixelMeasurements")
196 kwargs.setdefault("PixelDetEleCollKey", "PixelDetectorElementCollection")
197 kwargs.setdefault("UseTruthInfo", flags.Tracking.doTruth)
198
199 if flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements:
200 if TrackParticles is None:
201 raise ValueError("Requesting persistification of on-track clusters, but no track particle collection has been provided!")
202
203 kwargs.setdefault("KeepOnlyOnTrackMeasurements", True)
204 kwargs.setdefault("TrackParticles", TrackParticles)
205
206 deps = []
207 for collection in TrackParticles:
208 deps += [( 'xAOD::TrackParticleContainer' , f'StoreGateSvc+{collection}.actsTrack' )]
209 kwargs.setdefault('ExtraInputs', deps)
210
211 if "LorentzAngleTool" not in kwargs:
212 from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleToolCfg
213 kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge( PixelLorentzAngleToolCfg(flags) ))
214
215 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterTruthDecoratorAlg(name,**kwargs))
216
217 # add SDO and SiHit info
218 if flags.Acts.decoratePRD.sdoSiHit:
220
221 # Persistification
222 if flags.Tracking.writeExtendedSi_PRDInfo:
223 toAOD = [
224 f'xAOD::TrackMeasurementValidationContainer#{kwargs["MeasurementContainer"]}',
225 f'xAOD::TrackMeasurementValidationAuxContainer#{kwargs["MeasurementContainer"]}Aux.'
226 ]
227 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
228 acc.merge(addToAOD(flags, toAOD))
229
230 return acc
231
232
234 name: str = "ActsInDetStripClusterTruthDecoratorAlg",
235 *,
236 TrackParticles: list[str] = None,
237 **kwargs) -> ComponentAccumulator:
238 acc = ComponentAccumulator()
239 kwargs.setdefault("ClusterContainer","SCT_Clusters")
240 kwargs.setdefault("AssociationMapOut","SCT_ClustersToTruthParticles")
241 kwargs.setdefault("MeasurementContainer","SCT_Measurements")
242 kwargs.setdefault("StripDetectorElements", "SCT_DetectorElementCollection")
243
244 if flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements:
245 if TrackParticles is None:
246 raise ValueError("Requesting persistification of on-track clusters, but no track particle collection has been provided!")
247
248 kwargs.setdefault("KeepOnlyOnTrackMeasurements", True)
249 kwargs.setdefault("TrackParticles", TrackParticles)
250
251 deps = []
252 for collection in TrackParticles:
253 deps += [( 'xAOD::TrackParticleContainer' , f'StoreGateSvc+{collection}.actsTrack' )]
254 kwargs.setdefault('ExtraInputs', deps)
255
256 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterTruthDecoratorAlg(name,**kwargs))
257
258 if flags.Acts.decoratePRD.sdoSiHit:
260
261 # Persistification
262 if flags.Tracking.writeExtendedSi_PRDInfo:
263 toAOD = [
264 f'xAOD::TrackMeasurementValidationContainer#{kwargs["MeasurementContainer"]}',
265 f'xAOD::TrackMeasurementValidationAuxContainer#{kwargs["MeasurementContainer"]}Aux.'
266 ]
267 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
268 acc.merge(addToAOD(flags, toAOD))
269
270 return acc
271
273 name: str = "ActsInDetPixelClusterSiHitDecoratorAlg",
274 **kwargs) -> ComponentAccumulator:
275 acc = ComponentAccumulator()
276 kwargs.setdefault('Measurements', 'PixelMeasurements')
277 kwargs.setdefault('SDOs', 'PixelSDO_Map')
278 kwargs.setdefault('SiHits', 'PixelHits')
279 kwargs.setdefault('PixelDetEleCollKey', 'PixelDetectorElementCollection')
280 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterSiHitDecoratorAlg(name, **kwargs))
281 return acc
282
284 name: str = "ActsInDetStripClusterSiHitDecoratorAlg",
285 **kwargs) -> ComponentAccumulator:
286 acc = ComponentAccumulator()
287 kwargs.setdefault('Measurements', 'SCT_Measurements')
288 kwargs.setdefault('SDOs', 'SCT_SDO_Map')
289 kwargs.setdefault('SiHits', 'SCT_Hits')
290 kwargs.setdefault('StripDetEleCollKey', 'SCT_DetectorElementCollection')
291 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterSiHitDecoratorAlg(name, **kwargs))
292 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 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)