ATLAS Offline Software
Loading...
Searching...
No Matches
InDetPrepRawDataToxAODConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2# Configuration of InDetPrepRawDataToxAOD package
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5
6def TruthParticleIndexDecoratorAlgCfg(flags, name='TruthParticleIndexDecoratorAlg', **kwargs) :
7 acc = ComponentAccumulator()
8 kwargs.setdefault('TruthParticleIndexDecoration', 'origTruthIndex')
9 acc.addEventAlgo(CompFactory.TruthParticleIndexDecoratorAlg(name, **kwargs))
10 return acc
11
12def InDetPixelPrepDataToxAODCfg(flags, name='InDetPixelPrepDataToxAOD', **kwargs):
13 from PixelGeoModel.PixelGeoModelConfig import PixelReadoutGeometryCfg
14 acc = PixelReadoutGeometryCfg(flags)
15
16 from PixelConditionsAlgorithms.PixelConditionsConfig import PixelChargeCalibCondCfg, PixelDCSCondStateAlgCfg, PixelDCSCondStatusAlgCfg, PixelDCSCondTempAlgCfg, PixelDCSCondHVAlgCfg
17 acc.merge(PixelChargeCalibCondCfg(flags))
18 acc.merge(PixelDCSCondStateAlgCfg(flags))
19 acc.merge(PixelDCSCondStatusAlgCfg(flags))
20 acc.merge(PixelDCSCondTempAlgCfg(flags))
21 acc.merge(PixelDCSCondHVAlgCfg(flags))
22
23 from InDetConfig.PixelCalibAlgsConfig import PixelChargeToTConversionCfg
24 acc.merge(PixelChargeToTConversionCfg(
25 flags,
26 # Remap the cluster container to the name used by PixelPrepDataToxAOD
27 PixelClusterContainer=kwargs.get('SiClusterContainer', 'PixelClusters')
28 ))
29
30 if "PixelConditionsSummaryTool" not in kwargs:
31 from PixelConditionsTools.PixelConditionsSummaryConfig import PixelConditionsSummaryCfg
32 kwargs.setdefault("PixelConditionsSummaryTool", acc.popToolsAndMerge(PixelConditionsSummaryCfg(flags)))
33
34 if "LorentzAngleTool" not in kwargs:
35 from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleToolCfg
36 kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(PixelLorentzAngleToolCfg(flags)))
37
38 useTruth = kwargs.setdefault("UseTruthInfo", flags.InDet.doTruth)
39 if useTruth:
40 # need to decorate truth particles and clusters with same unique identified
41 # which is the origin truth particle index
42 acc.merge( TruthParticleIndexDecoratorAlgCfg(flags) )
43 kwargs.setdefault("InputTruthParticleLinks", "xAODTruthLinks")
44 kwargs.setdefault("WriteExtendedPRDinformation", True)
45
46 acc.addEventAlgo(CompFactory.PixelPrepDataToxAOD(name, **kwargs))
47 return acc
48
49
51 *,
52 PixelClusterContainer: str = "ITkPixelClusters",
53 StripClusterContainer: str = "ITkStripClusters",
54 PixelMeasurementContainer: str = "ITkPixelMeasurements",
55 StripMeasurementContainer: str = "ITkStripMeasurements",
56 TrackParticles: list[str] = None) -> ComponentAccumulator:
57 acc = ComponentAccumulator()
58
59 # need to decorate truth particles and clusters with same unique identified
60 # which is the origin truth particle index
61 if not flags.Tracking.doTruth:
62 return acc
63
64 acc.merge( TruthParticleIndexDecoratorAlgCfg(flags) )
65
66 from ActsConfig.ActsObjectDecorationConfig import ActsPixelClusterTruthDecoratorAlgCfg,ActsStripClusterTruthDecoratorAlgCfg
67 acc.merge(ActsPixelClusterTruthDecoratorAlgCfg(flags,
68 ClusterContainer = PixelClusterContainer,
69 MeasurementContainer = PixelMeasurementContainer,
70 TrackParticles = TrackParticles))
71 acc.merge(ActsStripClusterTruthDecoratorAlgCfg(flags,
72 ClusterContainer = StripClusterContainer,
73 MeasurementContainer = StripMeasurementContainer,
74 TrackParticles = TrackParticles))
75
76 return acc
77
78def InDetPixelPrepDataToxAOD_ExtraTruthCfg(flags, name='InDetPixelPrepDataToxAOD_ExtraTruth', **kwargs):
79 kwargs.setdefault("WriteSDOs", True)
80 kwargs.setdefault("WriteSiHits", True)
81 return InDetPixelPrepDataToxAODCfg(flags, name, **kwargs)
82
83def ITkPixelPrepDataToxAODCfg(flags, name='ITkPixelPrepDataToxAOD', **kwargs):
84 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
85 acc = ITkPixelReadoutGeometryCfg(flags)
86
87 from PixelConditionsAlgorithms.ITkPixelConditionsConfig import ITkPixelChargeCalibCondAlgCfg, ITkPixelDCSCondStateAlgCfg, ITkPixelDCSCondStatusAlgCfg, ITkPixelDCSCondTempAlgCfg, ITkPixelDCSCondHVAlgCfg
88 acc.merge(ITkPixelChargeCalibCondAlgCfg(flags))
89 acc.merge(ITkPixelDCSCondStateAlgCfg(flags))
90 acc.merge(ITkPixelDCSCondStatusAlgCfg(flags))
91 acc.merge(ITkPixelDCSCondTempAlgCfg(flags))
92 acc.merge(ITkPixelDCSCondHVAlgCfg(flags))
93
94 kwargs.setdefault("SiClusterContainer", "ITkPixelClusters")
95
96 from TrkConfig.TrkConfigFlags import TrackingComponent
97 if TrackingComponent.AthenaChain in flags.Tracking.recoChain:
98 from InDetConfig.PixelCalibAlgsConfig import ITkPixelChargeToTConversionCfg
99 acc.merge(ITkPixelChargeToTConversionCfg(
100 flags,
101 # Remap the cluster container to the name used by PixelPrepDataToxAOD
102 PixelClusterContainer=kwargs['SiClusterContainer']
103 ))
104
105 if "PixelConditionsSummaryTool" not in kwargs:
106 from PixelConditionsTools.ITkPixelConditionsSummaryConfig import ITkPixelConditionsSummaryCfg
107 kwargs.setdefault("PixelConditionsSummaryTool", acc.popToolsAndMerge(ITkPixelConditionsSummaryCfg(flags)))
108
109 if "LorentzAngleTool" not in kwargs:
110 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig import ITkPixelLorentzAngleToolCfg
111 kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(ITkPixelLorentzAngleToolCfg(flags)))
112
113 useTruth = kwargs.setdefault("UseTruthInfo", flags.ITk.doTruth)
114 if useTruth:
115 # need to decorate truth particles and clusters with same unique identified
116 # which is the origin truth particle index
117 acc.merge( TruthParticleIndexDecoratorAlgCfg(flags) )
118
119 from PixelReadoutGeometry.PixelReadoutGeometryConfig import ITkPixelReadoutManagerCfg
120 kwargs.setdefault("PixelReadoutManager", acc.getPrimaryAndMerge(ITkPixelReadoutManagerCfg(flags)))
121
122 kwargs.setdefault("WriteExtendedPRDinformation", True)
123 kwargs.setdefault("PixelChargeCalibCondData", "ITkPixelChargeCalibCondData")
124 kwargs.setdefault("PixelDCSStateCondData", "ITkPixelDCSStateCondData")
125 kwargs.setdefault("PixelDCSStatusCondData", "ITkPixelDCSStatusCondData")
126 kwargs.setdefault("ReadKeyTemp", "ITkPixelDCSTempCondData")
127 kwargs.setdefault("ReadKeyHV", "ITkPixelDCSHVCondData")
128 kwargs.setdefault("MC_SDOs", "ITkPixelSDO_Map")
129 kwargs.setdefault("MC_Hits", "ITkPixelHits")
130 kwargs.setdefault("PRD_MultiTruth", "PRD_MultiTruthITkPixel")
131 kwargs.setdefault("InputTruthParticleLinks", "xAODTruthLinks")
132 kwargs.setdefault("OutputClusterContainer", "ITkPixelMeasurements")
133 kwargs.setdefault("PixelxAodOffset", "ITkPixelClustersOffsets")
134
135 acc.addEventAlgo(CompFactory.PixelPrepDataToxAOD(name, **kwargs))
136 return acc
137
138def ITkPixelPrepDataToxAOD_ExtraTruthCfg(flags, name='ITkPixelPrepDataToxAOD_ExtraTruth', **kwargs):
139 kwargs.setdefault("WriteSDOs", True)
140 kwargs.setdefault("WriteSiHits", True)
141 return ITkPixelPrepDataToxAODCfg(flags, name, **kwargs)
142
143def InDetSCT_PrepDataToxAODCfg(flags, name='InDetSCTPrepDataToxAOD', **kwargs):
144 from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
145 acc = SCT_ReadoutGeometryCfg(flags)
146 useTruth = kwargs.setdefault("UseTruthInfo", flags.InDet.doTruth)
147 if useTruth:
148 # need to decorate truth particles and clusters with same unique identified
149 # which is the origin truth particle index
150 acc.merge( TruthParticleIndexDecoratorAlgCfg(flags) )
151 kwargs.setdefault("InputTruthParticleLinks", "xAODTruthLinks")
152 acc.addEventAlgo(CompFactory.SCT_PrepDataToxAOD(name, **kwargs))
153 return acc
154
155def InDetSCT_RawDataToxAODCfg(flags, name='InDetSCTRawDataToxAOD', **kwargs):
156 from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
157 acc = SCT_ReadoutGeometryCfg(flags)
158 acc.addEventAlgo(CompFactory.SCT_RawDataToxAOD(name, **kwargs))
159 return acc
160
161def InDetSCT_PrepDataToxAOD_ExtraTruthCfg(flags, name='InDetSCTPrepDataToxAOD_ExtraTruth', **kwargs):
162 kwargs.setdefault("WriteSDOs", True)
163 kwargs.setdefault("WriteSiHits", True)
164 return InDetSCT_PrepDataToxAODCfg(flags, name, **kwargs)
165
166
167def ITkStripPrepDataToxAODCfg(flags, name='ITkStripPrepDataToxAOD', **kwargs):
168 from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
169 acc = ITkStripReadoutGeometryCfg(flags)
170
171 kwargs.setdefault("SiClusterContainer", "ITkStripClusters")
172 kwargs.setdefault("MC_SDOs", "ITkStripSDO_Map")
173 kwargs.setdefault("MC_Hits", "ITkStripHits")
174 kwargs.setdefault("PRD_MultiTruth", "PRD_MultiTruthITkStrip")
175 kwargs.setdefault("InputTruthParticleLinks", "xAODTruthLinks")
176 kwargs.setdefault("SctRdoContainer", "ITkStripRDOs")
177 kwargs.setdefault("SctxAodContainer", "ITkStripMeasurements")
178 kwargs.setdefault("SctxAodOffset", "ITkStripClustersOffsets")
179 kwargs.setdefault("SCTDetEleCollKey", "ITkStripDetectorElementCollection")
180 useTruth = kwargs.setdefault("UseTruthInfo", flags.ITk.doTruth)
181 if useTruth:
182 # need to decorate truth particles and clusters with same unique identified
183 # which is the origin truth particle index
184 acc.merge( TruthParticleIndexDecoratorAlgCfg(flags) )
185
186 acc.addEventAlgo(CompFactory.SCT_PrepDataToxAOD(name, **kwargs))
187 return acc
188
189def ITkStripPrepDataToxAOD_ExtraTruthCfg(flags, name='ITkStripPrepDataToxAOD_ExtraTruth', **kwargs):
190 kwargs.setdefault("WriteSDOs", True)
191 kwargs.setdefault("WriteSiHits", True)
192 return ITkStripPrepDataToxAODCfg(flags, name, **kwargs)
193
194def InDetTRT_PrepDataToxAODCfg(flags, name='InDetTRTPrepDataToxAOD', **kwargs):
195 acc = ComponentAccumulator()
196 kwargs.setdefault("UseTruthInfo", flags.InDet.doTruth)
197
198 if "TRTCalDbTool" not in kwargs:
199 from TRT_ConditionsServices.TRT_ConditionsServicesConfig import (
200 TRT_CalDbToolCfg)
201 kwargs.setdefault("TRTCalDbTool", acc.popToolsAndMerge(
202 TRT_CalDbToolCfg(flags)))
203
204 if "TRTStrawSummaryTool" not in kwargs:
205 from TRT_ConditionsServices.TRT_ConditionsServicesConfig import (
206 TRT_StrawStatusSummaryToolCfg)
207 kwargs.setdefault("TRTStrawSummaryTool", acc.popToolsAndMerge(
208 TRT_StrawStatusSummaryToolCfg(flags)))
209
210 if "NeighbourSvc" not in kwargs:
211 from TRT_ConditionsServices.TRT_ConditionsServicesConfig import (
212 TRT_StrawNeighbourSvcCfg)
213 kwargs.setdefault("NeighbourSvc", acc.getPrimaryAndMerge(
214 TRT_StrawNeighbourSvcCfg(flags)))
215
216 if "TRTDriftFunctionTool" not in kwargs:
217 from InDetConfig.TRT_DriftFunctionToolConfig import (
218 TRT_DriftFunctionToolCfg)
219 kwargs.setdefault("TRTDriftFunctionTool", acc.popToolsAndMerge(
220 TRT_DriftFunctionToolCfg(flags)))
221
222 acc.addEventAlgo(CompFactory.TRT_PrepDataToxAOD(name, **kwargs))
223 return acc
224
225def InDetTRT_PrepDataToxAOD_ExtraTruthCfg(flags, name='InDetTRTPrepDataToxAOD_ExtraTruth', **kwargs):
226 kwargs.setdefault("WriteSDOs", True)
227 return InDetTRT_PrepDataToxAODCfg(flags, name, **kwargs)
228
230 acc = ComponentAccumulator()
231
232 if flags.Detector.EnablePixel:
233 from InDetConfig.TrackRecoConfig import (
234 ClusterSplitProbabilityContainerName)
236 flags, ClusterSplitProbabilityName=(
237 ClusterSplitProbabilityContainerName(flags))))
238
239 if flags.Detector.EnableSCT:
240 acc.merge(InDetSCT_PrepDataToxAODCfg(flags))
241
242 if flags.Detector.EnableTRT:
243 acc.merge(InDetTRT_PrepDataToxAODCfg(flags))
244
245 return acc
246
248 from InDetConfig.ITkActsHelpers import primaryPassUsesActs
249 if primaryPassUsesActs(flags):
250 return ITkActsPrepDataToxAODCfg(flags)
251
252 acc = ComponentAccumulator()
253 extra_truth = flags.Tracking.doTIDE_AmbiTrackMonitoring
254 if flags.Detector.EnableITkPixel:
255 from InDetConfig.ITkTrackRecoConfig import (
256 ITkClusterSplitProbabilityContainerName)
257 if extra_truth :
259 flags, ClusterSplitProbabilityName=(
260 ITkClusterSplitProbabilityContainerName(flags))))
261 else :
263 flags, ClusterSplitProbabilityName=(
264 ITkClusterSplitProbabilityContainerName(flags))))
265
266 if flags.Detector.EnableITkStrip:
267 if extra_truth :
269 else :
270 acc.merge(ITkStripPrepDataToxAODCfg(flags))
271
272 return acc
273
275 *,
276 PixelClusterContainer: str = "PixelClusters",
277 StripClusterContainer: str = "SCT_Clusters",
278 PixelMeasurementContainer: str = "PixelMeasurements",
279 StripMeasurementContainer: str = "SCT_Measurements",
280 TrackParticles: list[str] = None) -> ComponentAccumulator:
281 acc = ComponentAccumulator()
282
283 # need to decorate truth particles and clusters with same unique identified
284 # which is the origin truth particle index
285 if not flags.Tracking.doTruth:
286 return acc
287
288 acc.merge( TruthParticleIndexDecoratorAlgCfg(flags) )
289
290 from ActsConfig.ActsObjectDecorationConfig import ActsInDetPixelClusterTruthDecoratorAlgCfg,ActsInDetStripClusterTruthDecoratorAlgCfg
291 acc.merge(ActsInDetPixelClusterTruthDecoratorAlgCfg(flags,
292 ClusterContainer = PixelClusterContainer,
293 MeasurementContainer = PixelMeasurementContainer,
294 TrackParticles = TrackParticles))
295 acc.merge(ActsInDetStripClusterTruthDecoratorAlgCfg(flags,
296 ClusterContainer = StripClusterContainer,
297 MeasurementContainer = StripMeasurementContainer,
298 TrackParticles = TrackParticles))
299
300 return acc
ITkStripPrepDataToxAOD_ExtraTruthCfg(flags, name='ITkStripPrepDataToxAOD_ExtraTruth', **kwargs)
TruthParticleIndexDecoratorAlgCfg(flags, name='TruthParticleIndexDecoratorAlg', **kwargs)
InDetPixelPrepDataToxAODCfg(flags, name='InDetPixelPrepDataToxAOD', **kwargs)
InDetSCT_PrepDataToxAODCfg(flags, name='InDetSCTPrepDataToxAOD', **kwargs)
ITkStripPrepDataToxAODCfg(flags, name='ITkStripPrepDataToxAOD', **kwargs)
InDetTRT_PrepDataToxAOD_ExtraTruthCfg(flags, name='InDetTRTPrepDataToxAOD_ExtraTruth', **kwargs)
ComponentAccumulator ActsPrepDataToxAODCfg(flags, *, str PixelClusterContainer="PixelClusters", str StripClusterContainer="SCT_Clusters", str PixelMeasurementContainer="PixelMeasurements", str StripMeasurementContainer="SCT_Measurements", list[str] TrackParticles=None)
InDetTRT_PrepDataToxAODCfg(flags, name='InDetTRTPrepDataToxAOD', **kwargs)
ComponentAccumulator ITkActsPrepDataToxAODCfg(flags, *, str PixelClusterContainer="ITkPixelClusters", str StripClusterContainer="ITkStripClusters", str PixelMeasurementContainer="ITkPixelMeasurements", str StripMeasurementContainer="ITkStripMeasurements", list[str] TrackParticles=None)
InDetPixelPrepDataToxAOD_ExtraTruthCfg(flags, name='InDetPixelPrepDataToxAOD_ExtraTruth', **kwargs)
InDetSCT_RawDataToxAODCfg(flags, name='InDetSCTRawDataToxAOD', **kwargs)
ITkPixelPrepDataToxAODCfg(flags, name='ITkPixelPrepDataToxAOD', **kwargs)
InDetSCT_PrepDataToxAOD_ExtraTruthCfg(flags, name='InDetSCTPrepDataToxAOD_ExtraTruth', **kwargs)
ITkPixelPrepDataToxAOD_ExtraTruthCfg(flags, name='ITkPixelPrepDataToxAOD_ExtraTruth', **kwargs)