ATLAS Offline Software
Loading...
Searching...
No Matches
InDetPrepRawDataToxAODConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 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(flags))
25
26 if "PixelConditionsSummaryTool" not in kwargs:
27 from PixelConditionsTools.PixelConditionsSummaryConfig import PixelConditionsSummaryCfg
28 kwargs.setdefault("PixelConditionsSummaryTool", acc.popToolsAndMerge(PixelConditionsSummaryCfg(flags)))
29
30 if "LorentzAngleTool" not in kwargs:
31 from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleToolCfg
32 kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(PixelLorentzAngleToolCfg(flags)))
33
34 kwargs.setdefault("UseTruthInfo", flags.Input.isMC)
35 if flags.Input.isMC:
36 # need to decorate truth particles and clusters with same unique identified
37 # which is the origin truth particle index
38 acc.merge( TruthParticleIndexDecoratorAlgCfg(flags) )
39 kwargs.setdefault("InputTruthParticleLinks", "xAODTruthLinks")
40 kwargs.setdefault("WriteExtendedPRDinformation", True)
41
42 acc.addEventAlgo(CompFactory.PixelPrepDataToxAOD(name, **kwargs))
43 return acc
44
45
47 *,
48 PixelClusterContainer: str = "ITkPixelClusters",
49 StripClusterContainer: str = "ITkStripClusters",
50 PixelMeasurementContainer: str = "ITkPixelMeasurements",
51 StripMeasurementContainer: str = "ITkStripMeasurements",
52 TrackParticles: list[str] = None) -> ComponentAccumulator:
53 acc = ComponentAccumulator()
54
55 # need to decorate truth particles and clusters with same unique identified
56 # which is the origin truth particle index
57 if not flags.Tracking.doTruth:
58 return acc
59
60 acc.merge( TruthParticleIndexDecoratorAlgCfg(flags) )
61
62 from ActsConfig.ActsObjectDecorationConfig import ActsPixelClusterTruthDecoratorAlgCfg,ActsStripClusterTruthDecoratorAlgCfg
63 acc.merge(ActsPixelClusterTruthDecoratorAlgCfg(flags,
64 ClusterContainer = PixelClusterContainer,
65 MeasurementContainer = PixelMeasurementContainer,
66 TrackParticles = TrackParticles))
67 acc.merge(ActsStripClusterTruthDecoratorAlgCfg(flags,
68 ClusterContainer = StripClusterContainer,
69 MeasurementContainer = StripMeasurementContainer,
70 TrackParticles = TrackParticles))
71
72 return acc
73
74def InDetPixelPrepDataToxAOD_ExtraTruthCfg(flags, name='InDetPixelPrepDataToxAOD_ExtraTruth', **kwargs):
75 kwargs.setdefault("WriteSDOs", True)
76 kwargs.setdefault("WriteSiHits", True)
77 return InDetPixelPrepDataToxAODCfg(flags, name, **kwargs)
78
79def ITkPixelPrepDataToxAODCfg(flags, name='ITkPixelPrepDataToxAOD', **kwargs):
80 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
81 acc = ITkPixelReadoutGeometryCfg(flags)
82
83 from PixelConditionsAlgorithms.ITkPixelConditionsConfig import ITkPixelChargeCalibCondAlgCfg, ITkPixelDCSCondStateAlgCfg, ITkPixelDCSCondStatusAlgCfg, ITkPixelDCSCondTempAlgCfg, ITkPixelDCSCondHVAlgCfg
84 acc.merge(ITkPixelChargeCalibCondAlgCfg(flags))
85 acc.merge(ITkPixelDCSCondStateAlgCfg(flags))
86 acc.merge(ITkPixelDCSCondStatusAlgCfg(flags))
87 acc.merge(ITkPixelDCSCondTempAlgCfg(flags))
88 acc.merge(ITkPixelDCSCondHVAlgCfg(flags))
89
90 from TrkConfig.TrkConfigFlags import TrackingComponent
91 if TrackingComponent.AthenaChain in flags.Tracking.recoChain:
92 from InDetConfig.PixelCalibAlgsConfig import ITkPixelChargeToTConversionCfg
93 acc.merge(ITkPixelChargeToTConversionCfg(flags))
94
95 if "PixelConditionsSummaryTool" not in kwargs:
96 from PixelConditionsTools.ITkPixelConditionsSummaryConfig import ITkPixelConditionsSummaryCfg
97 kwargs.setdefault("PixelConditionsSummaryTool", acc.popToolsAndMerge(ITkPixelConditionsSummaryCfg(flags)))
98
99 if "LorentzAngleTool" not in kwargs:
100 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig import ITkPixelLorentzAngleToolCfg
101 kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(ITkPixelLorentzAngleToolCfg(flags)))
102
103 kwargs.setdefault("UseTruthInfo", flags.Input.isMC)
104 if flags.Input.isMC:
105 # need to decorate truth particles and clusters with same unique identified
106 # which is the origin truth particle index
107 acc.merge( TruthParticleIndexDecoratorAlgCfg(flags) )
108
109 from PixelReadoutGeometry.PixelReadoutGeometryConfig import ITkPixelReadoutManagerCfg
110 kwargs.setdefault("PixelReadoutManager", acc.getPrimaryAndMerge(ITkPixelReadoutManagerCfg(flags)))
111
112 kwargs.setdefault("WriteExtendedPRDinformation", True)
113 kwargs.setdefault("PixelChargeCalibCondData", "ITkPixelChargeCalibCondData")
114 kwargs.setdefault("PixelDCSStateCondData", "ITkPixelDCSStateCondData")
115 kwargs.setdefault("PixelDCSStatusCondData", "ITkPixelDCSStatusCondData")
116 kwargs.setdefault("ReadKeyTemp", "ITkPixelDCSTempCondData")
117 kwargs.setdefault("ReadKeyHV", "ITkPixelDCSHVCondData")
118 kwargs.setdefault("SiClusterContainer", "ITkPixelClusters")
119 kwargs.setdefault("MC_SDOs", "ITkPixelSDO_Map")
120 kwargs.setdefault("MC_Hits", "ITkPixelHits")
121 kwargs.setdefault("PRD_MultiTruth", "PRD_MultiTruthITkPixel")
122 kwargs.setdefault("InputTruthParticleLinks", "xAODTruthLinks")
123 kwargs.setdefault("OutputClusterContainer", "ITkPixelMeasurements")
124
125 acc.addEventAlgo(CompFactory.PixelPrepDataToxAOD(name, **kwargs))
126 return acc
127
128def ITkPixelPrepDataToxAOD_ExtraTruthCfg(flags, name='ITkPixelPrepDataToxAOD_ExtraTruth', **kwargs):
129 kwargs.setdefault("WriteSDOs", True)
130 kwargs.setdefault("WriteSiHits", True)
131 return ITkPixelPrepDataToxAODCfg(flags, name, **kwargs)
132
133def InDetSCT_PrepDataToxAODCfg(flags, name='InDetSCTPrepDataToxAOD', **kwargs):
134 from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
135 acc = SCT_ReadoutGeometryCfg(flags)
136 kwargs.setdefault("UseTruthInfo", flags.Input.isMC)
137 if flags.Input.isMC:
138 # need to decorate truth particles and clusters with same unique identified
139 # which is the origin truth particle index
140 acc.merge( TruthParticleIndexDecoratorAlgCfg(flags) )
141 kwargs.setdefault("InputTruthParticleLinks", "xAODTruthLinks")
142 acc.addEventAlgo(CompFactory.SCT_PrepDataToxAOD(name, **kwargs))
143 return acc
144
145def InDetSCT_RawDataToxAODCfg(flags, name='InDetSCTRawDataToxAOD', **kwargs):
146 from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
147 acc = SCT_ReadoutGeometryCfg(flags)
148 acc.addEventAlgo(CompFactory.SCT_RawDataToxAOD(name, **kwargs))
149 return acc
150
151def InDetSCT_PrepDataToxAOD_ExtraTruthCfg(flags, name='InDetSCTPrepDataToxAOD_ExtraTruth', **kwargs):
152 kwargs.setdefault("WriteSDOs", True)
153 kwargs.setdefault("WriteSiHits", True)
154 return InDetSCT_PrepDataToxAODCfg(flags, name, **kwargs)
155
156
157def ITkStripPrepDataToxAODCfg(flags, name='ITkStripPrepDataToxAOD', **kwargs):
158 from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
159 acc = ITkStripReadoutGeometryCfg(flags)
160
161 kwargs.setdefault("SiClusterContainer", "ITkStripClusters")
162 kwargs.setdefault("MC_SDOs", "ITkStripSDO_Map")
163 kwargs.setdefault("MC_Hits", "ITkStripHits")
164 kwargs.setdefault("PRD_MultiTruth", "PRD_MultiTruthITkStrip")
165 kwargs.setdefault("InputTruthParticleLinks", "xAODTruthLinks")
166 kwargs.setdefault("SctRdoContainer", "ITkStripRDOs")
167 kwargs.setdefault("SctxAodContainer", "ITkStripMeasurements")
168 kwargs.setdefault("SctxAodOffset", "ITkStripClustersOffsets")
169 kwargs.setdefault("SCTDetEleCollKey", "ITkStripDetectorElementCollection")
170 kwargs.setdefault("UseTruthInfo", flags.Input.isMC)
171 if flags.Input.isMC:
172 # need to decorate truth particles and clusters with same unique identified
173 # which is the origin truth particle index
174 acc.merge( TruthParticleIndexDecoratorAlgCfg(flags) )
175
176 acc.addEventAlgo(CompFactory.SCT_PrepDataToxAOD(name, **kwargs))
177 return acc
178
179def ITkStripPrepDataToxAOD_ExtraTruthCfg(flags, name='ITkStripPrepDataToxAOD_ExtraTruth', **kwargs):
180 kwargs.setdefault("WriteSDOs", True)
181 kwargs.setdefault("WriteSiHits", True)
182 return ITkStripPrepDataToxAODCfg(flags, name, **kwargs)
183
184def InDetTRT_PrepDataToxAODCfg(flags, name='InDetTRTPrepDataToxAOD', **kwargs):
185 acc = ComponentAccumulator()
186 kwargs.setdefault("UseTruthInfo", flags.Input.isMC)
187
188 if "TRTCalDbTool" not in kwargs:
189 from TRT_ConditionsServices.TRT_ConditionsServicesConfig import (
190 TRT_CalDbToolCfg)
191 kwargs.setdefault("TRTCalDbTool", acc.popToolsAndMerge(
192 TRT_CalDbToolCfg(flags)))
193
194 if "TRTStrawSummaryTool" not in kwargs:
195 from TRT_ConditionsServices.TRT_ConditionsServicesConfig import (
196 TRT_StrawStatusSummaryToolCfg)
197 kwargs.setdefault("TRTStrawSummaryTool", acc.popToolsAndMerge(
198 TRT_StrawStatusSummaryToolCfg(flags)))
199
200 if "NeighbourSvc" not in kwargs:
201 from TRT_ConditionsServices.TRT_ConditionsServicesConfig import (
202 TRT_StrawNeighbourSvcCfg)
203 kwargs.setdefault("NeighbourSvc", acc.getPrimaryAndMerge(
204 TRT_StrawNeighbourSvcCfg(flags)))
205
206 if "TRTDriftFunctionTool" not in kwargs:
207 from InDetConfig.TRT_DriftFunctionToolConfig import (
208 TRT_DriftFunctionToolCfg)
209 kwargs.setdefault("TRTDriftFunctionTool", acc.popToolsAndMerge(
210 TRT_DriftFunctionToolCfg(flags)))
211
212 acc.addEventAlgo(CompFactory.TRT_PrepDataToxAOD(name, **kwargs))
213 return acc
214
215def InDetTRT_PrepDataToxAOD_ExtraTruthCfg(flags, name='InDetTRTPrepDataToxAOD_ExtraTruth', **kwargs):
216 kwargs.setdefault("WriteSDOs", True)
217 return InDetTRT_PrepDataToxAODCfg(flags, name, **kwargs)
218
220 acc = ComponentAccumulator()
221
222 if flags.Detector.EnablePixel:
223 from InDetConfig.TrackRecoConfig import (
224 ClusterSplitProbabilityContainerName)
226 flags, ClusterSplitProbabilityName=(
227 ClusterSplitProbabilityContainerName(flags))))
228
229 if flags.Detector.EnableSCT:
230 acc.merge(InDetSCT_PrepDataToxAODCfg(flags))
231
232 if flags.Detector.EnableTRT:
233 acc.merge(InDetTRT_PrepDataToxAODCfg(flags))
234
235 return acc
236
238 from InDetConfig.ITkActsHelpers import primaryPassUsesActs
239 if primaryPassUsesActs(flags):
240 return ITkActsPrepDataToxAODCfg(flags)
241
242 acc = ComponentAccumulator()
243 extra_truth = flags.Tracking.doTIDE_AmbiTrackMonitoring
244 if flags.Detector.EnableITkPixel:
245 from InDetConfig.ITkTrackRecoConfig import (
246 ITkClusterSplitProbabilityContainerName)
247 if extra_truth :
249 flags, ClusterSplitProbabilityName=(
250 ITkClusterSplitProbabilityContainerName(flags))))
251 else :
253 flags, ClusterSplitProbabilityName=(
254 ITkClusterSplitProbabilityContainerName(flags))))
255
256 if flags.Detector.EnableITkStrip:
257 if extra_truth :
259 else :
260 acc.merge(ITkStripPrepDataToxAODCfg(flags))
261
262 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)
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)