4from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory
import CompFactory
6from AthenaConfiguration.Enums
import BeamType, LHCPeriod
7from IOVDbSvc.IOVDbSvcConfig
import addFoldersSplitOnline
11 acc = ComponentAccumulator()
15 from PixelConditionsAlgorithms.PixelConditionsConfig
import (
16 PixelChargeCalibCondCfg, PixelOfflineCalibCondAlgCfg)
17 if (
'SCT' in flags.Digitization.DoFastDigi
and
18 'Pixel' not in flags.Digitization.DoFastDigi):
19 acc.merge(PixelChargeCalibCondCfg(flags, ReadKey=
""))
21 acc.merge(PixelChargeCalibCondCfg(flags))
22 acc.merge(PixelOfflineCalibCondAlgCfg(flags))
24 if "PixelLorentzAngleTool" not in kwargs:
25 from SiLorentzAngleTool.PixelLorentzAngleConfig
import (
26 PixelLorentzAngleToolCfg)
27 kwargs.setdefault(
"PixelLorentzAngleTool", acc.popToolsAndMerge(
28 PixelLorentzAngleToolCfg(flags)))
30 if "SCTLorentzAngleTool" not in kwargs:
31 from SiLorentzAngleTool.SCT_LorentzAngleConfig
import (
32 SCT_LorentzAngleToolCfg)
33 kwargs.setdefault(
"SCTLorentzAngleTool", acc.popToolsAndMerge(
34 SCT_LorentzAngleToolCfg(flags)))
36 acc.setPrivateTools(CompFactory.InDet.ClusterMakerTool(name, **kwargs))
41 acc = ComponentAccumulator()
43 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import (
44 ITkPixelChargeCalibCondAlgCfg)
48 acc.merge(ITkPixelChargeCalibCondAlgCfg(flags))
50 if "PixelLorentzAngleTool" not in kwargs:
51 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig
import (
52 ITkPixelLorentzAngleToolCfg)
53 kwargs.setdefault(
"PixelLorentzAngleTool", acc.popToolsAndMerge(
54 ITkPixelLorentzAngleToolCfg(flags)))
56 if "SCTLorentzAngleTool" not in kwargs:
57 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import (
58 ITkStripLorentzAngleToolCfg)
59 kwargs.setdefault(
"SCTLorentzAngleTool", acc.popToolsAndMerge(
60 ITkStripLorentzAngleToolCfg(flags)))
62 acc.setPrivateTools(CompFactory.InDet.ClusterMakerTool(name, **kwargs))
68 from PixelGeoModel.PixelGeoModelConfig
import PixelReadoutGeometryCfg
69 acc = PixelReadoutGeometryCfg(flags)
71 kwargs.setdefault(
"PixelDetElStatus",
"PixelDetectorElementStatus")
73 if kwargs[
"PixelDetElStatus"] !=
"":
74 from PixelConditionsAlgorithms.PixelConditionsConfig
import (
75 PixelDetectorElementStatusAlgCfg)
76 acc.merge(PixelDetectorElementStatusAlgCfg(flags))
78 if "PixelConditionsSummaryTool" not in kwargs:
79 from PixelConditionsTools.PixelConditionsSummaryConfig
import (
80 PixelConditionsSummaryCfg)
81 kwargs.setdefault(
"PixelConditionsSummaryTool", acc.popToolsAndMerge(
82 PixelConditionsSummaryCfg(flags)))
86 kwargs.setdefault(
"CheckDuplicatedRDO",
87 (len(flags.Input.ProjectName) >= 6
and
88 flags.Input.ProjectName[:6] ==
"data15"))
90 acc.setPrivateTools(CompFactory.InDet.PixelRDOTool(name, **kwargs))
96 from PixelGeoModelXml.ITkPixelGeoModelConfig
import (
97 ITkPixelReadoutGeometryCfg)
98 acc = ITkPixelReadoutGeometryCfg(flags)
100 kwargs.setdefault(
"PixelConditionsSummaryTool",
None)
101 if "PixelDetElStatus" not in kwargs :
102 if not flags.Trigger.doHLT :
103 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import (
104 ITkPixelDetectorElementStatusAlgCfg)
105 acc.merge(ITkPixelDetectorElementStatusAlgCfg(flags))
106 kwargs.setdefault(
"PixelDetElStatus",
"ITkPixelDetectorElementStatus")
108 kwargs.setdefault(
"PixelDetEleCollKey",
"ITkPixelDetectorElementCollection")
109 kwargs.setdefault(
"CheckGanged",
False)
110 kwargs.setdefault(
"isITk",
True)
112 acc.setPrivateTools(CompFactory.InDet.PixelRDOTool(name, **kwargs))
121 acc = ComponentAccumulator()
123 kwargs.setdefault(
"globalPosAlg", acc.popToolsAndMerge(
125 kwargs.setdefault(
"PixelRDOTool", acc.popToolsAndMerge(
128 acc.setPrivateTools(CompFactory.InDet.MergedPixelsTool(name, **kwargs))
133 acc = ComponentAccumulator()
139 acc.setPrivateTools(CompFactory.InDet.MergedPixelsTool(name, **kwargs))
144 acc = ComponentAccumulator()
146 kwargs.setdefault(
"globalPosAlg", acc.popToolsAndMerge(
148 kwargs.setdefault(
"PixelRDOTool", acc.popToolsAndMerge(
151 kwargs.setdefault(
"PixelChargeCalibCondData",
"ITkPixelChargeCalibCondData")
152 kwargs.setdefault(
"PixelOfflineCalibData",
"")
154 acc.setPrivateTools(CompFactory.InDet.MergedPixelsTool(name, **kwargs))
159 flags, name="PixelClusterNnCondAlg", trackNetwork=False, **kwargs):
160 acc = ComponentAccumulator()
163 "NumberParticles_NoTrack/",
164 "ImpactPoints1P_NoTrack/",
165 "ImpactPoints2P_NoTrack/",
166 "ImpactPoints3P_NoTrack/",
167 "ImpactPointErrorsX1_NoTrack/",
168 "ImpactPointErrorsX2_NoTrack/",
169 "ImpactPointErrorsX3_NoTrack/",
170 "ImpactPointErrorsY1_NoTrack/",
171 "ImpactPointErrorsY2_NoTrack/",
172 "ImpactPointErrorsY3_NoTrack/"]
175 nn_names = [elm.replace(
'_NoTrack',
'')
for elm
in nn_names]
177 kwargs.setdefault(
"NetworkNames", nn_names)
178 kwargs.setdefault(
"GetInputsInfo",
True)
179 kwargs.setdefault(
"WriteKey", (
"PixelClusterNN" if not trackNetwork
180 else "PixelClusterNNWithTrack"))
182 acc.merge(addFoldersSplitOnline(
184 "/PIXEL/Onl/PixelClustering/PixelClusNNCalib",
185 "/PIXEL/PixelClustering/PixelClusNNCalib",
186 className=
'CondAttrListCollection'))
188 if "NetworkToHistoTool" not in kwargs:
189 from TrkConfig.TrkNeuralNetworkUtilsConfig
import (
190 NeuralNetworkToHistoToolCfg)
191 kwargs.setdefault(
"NetworkToHistoTool", acc.popToolsAndMerge(
192 NeuralNetworkToHistoToolCfg(flags)))
194 acc.addCondAlgo(CompFactory.InDet.TTrainedNetworkCondAlg(name, **kwargs))
199 flags, name="PixelClusterNnWithTrackCondAlg"):
204 acc = ComponentAccumulator()
206 acc.merge(addFoldersSplitOnline(
208 "/PIXEL/Onl/PixelClustering/PixelNNCalibJSON",
209 "/PIXEL/PixelClustering/PixelNNCalibJSON",
210 className=
"CondAttrListCollection"))
212 kwargs.setdefault(
"WriteKey",
"PixelClusterNNJSON")
214 acc.addCondAlgo(CompFactory.InDet.LWTNNCondAlg(name, **kwargs))
219 from PixelConditionsAlgorithms.PixelConditionsConfig
import (
220 PixelChargeCalibCondCfg)
221 acc = PixelChargeCalibCondCfg(flags)
223 if flags.GeoModel.Run
is LHCPeriod.Run1:
229 if "PixelLorentzAngleTool" not in kwargs:
230 from SiLorentzAngleTool.PixelLorentzAngleConfig
import (
231 PixelLorentzAngleToolCfg)
232 kwargs.setdefault(
"PixelLorentzAngleTool", acc.popToolsAndMerge(
233 PixelLorentzAngleToolCfg(flags)))
235 kwargs.setdefault(
"doRunI", flags.GeoModel.Run
is LHCPeriod.Run1)
236 kwargs.setdefault(
"useToT",
False)
237 kwargs.setdefault(
"useRecenteringNNWithoutTracks", (
238 flags.GeoModel.Run
is LHCPeriod.Run1))
239 kwargs.setdefault(
"useRecenteringNNWithTracks",
False)
240 kwargs.setdefault(
"correctLorShiftBarrelWithoutTracks", 0)
241 kwargs.setdefault(
"correctLorShiftBarrelWithTracks", (
242 0.03
if flags.GeoModel.Run
is LHCPeriod.Run1
else 0.))
243 kwargs.setdefault(
"useTTrainedNetworks",
244 flags.GeoModel.Run
is LHCPeriod.Run1)
245 kwargs.setdefault(
"NnCollectionReadKey", (
246 "PixelClusterNN" if flags.GeoModel.Run
is LHCPeriod.Run1
else ""))
247 kwargs.setdefault(
"NnCollectionWithTrackReadKey", (
248 "PixelClusterNNWithTrack" if flags.GeoModel.Run
is LHCPeriod.Run1
250 kwargs.setdefault(
"NnCollectionJSONReadKey", (
251 "" if flags.GeoModel.Run
is LHCPeriod.Run1
252 else "PixelClusterNNJSON"))
255 CompFactory.InDet.NnClusterizationFactory(name, **kwargs))
260 acc = ComponentAccumulator()
263 from PixelConditionsAlgorithms.PixelConditionsConfig
import (
264 PixelChargeCalibCondCfg)
265 acc.merge(PixelChargeCalibCondCfg(flags))
270 from SiLorentzAngleTool.PixelLorentzAngleConfig
import (
271 PixelLorentzAngleToolCfg)
272 kwargs[
"PixelLorentzAngleTool"] = acc.popToolsAndMerge(
273 PixelLorentzAngleToolCfg(flags))
275 kwargs[
"useToT"] =
False
276 kwargs[
"NnCollectionReadKey"] =
"PixelClusterNN"
277 kwargs[
"NnCollectionWithTrackReadKey"] =
"PixelClusterNNWithTrack"
280 CompFactory.InDet.NnClusterizationFactory(name, **kwargs))
284 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import (
285 ITkPixelChargeCalibCondAlgCfg)
286 acc = ITkPixelChargeCalibCondAlgCfg(flags)
290 if "PixelLorentzAngleTool" not in kwargs:
291 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig
import (
292 ITkPixelLorentzAngleToolCfg)
293 kwargs.setdefault(
"PixelLorentzAngleTool", acc.popToolsAndMerge(
294 ITkPixelLorentzAngleToolCfg(flags)))
296 kwargs.setdefault(
"useToT",
False)
297 kwargs.setdefault(
"NnCollectionReadKey",
"")
298 kwargs.setdefault(
"NnCollectionWithTrackReadKey",
"")
299 kwargs.setdefault(
"NnCollectionJSONReadKey",
"PixelClusterNNJSON")
301 kwargs.setdefault(
"PixelChargeCalibCondData",
"ITkPixelChargeCalibCondData")
304 CompFactory.InDet.NnClusterizationFactory(name, **kwargs))
309 flags, name="NnPixelClusterSplitProbTool", **kwargs):
310 acc = ComponentAccumulator()
312 kwargs.setdefault(
"NnClusterizationFactory", acc.popToolsAndMerge(
314 kwargs.setdefault(
"PriorMultiplicityContent", [1, 1, 1])
315 kwargs.setdefault(
"useBeamSpotInfo", flags.Tracking.useBeamSpotInfoNN)
318 CompFactory.InDet.NnPixelClusterSplitProbTool(name, **kwargs))
322 flags, name="ITkNnPixelClusterSplitProbTool", **kwargs):
323 acc = ComponentAccumulator()
325 kwargs.setdefault(
"NnClusterizationFactory", acc.popToolsAndMerge(
327 kwargs.setdefault(
"PriorMultiplicityContent", [1, 1, 1])
328 kwargs.setdefault(
"useBeamSpotInfo", flags.Tracking.useBeamSpotInfoNN)
331 CompFactory.InDet.NnPixelClusterSplitProbTool(name, **kwargs))
336 flags, name="InDetPixelGangedAmbiguitiesFinder", **kwargs):
338 from PixelGeoModel.PixelGeoModelConfig
import PixelReadoutGeometryCfg
339 acc = PixelReadoutGeometryCfg(flags)
341 CompFactory.InDet.PixelGangedAmbiguitiesFinder(name, **kwargs))
346 flags, name="ITkPixelGangedAmbiguitiesFinder", **kwargs):
348 from PixelGeoModelXml.ITkPixelGeoModelConfig
import (
349 ITkPixelReadoutGeometryCfg)
350 acc = ITkPixelReadoutGeometryCfg(flags)
351 kwargs.setdefault(
"PixelDetEleCollKey",
"ITkPixelDetectorElementCollection")
353 CompFactory.InDet.PixelGangedAmbiguitiesFinder(name, **kwargs))
358 flags, name="InDetSCT_ClusteringTool", **kwargs):
360 from SCT_GeoModel.SCT_GeoModelConfig
import SCT_ReadoutGeometryCfg
361 acc = SCT_ReadoutGeometryCfg(flags)
363 kwargs.setdefault(
"SCTDetElStatus",
364 "SCTDetectorElementStatusWithoutFlagged")
366 kwargs.setdefault(
"doSimplePositionWidthCalculation",
367 flags.InDet.doSCTSimpleWidth)
369 if "conditionsTool" not in kwargs:
370 from SCT_ConditionsTools.SCT_ConditionsToolsConfig
import (
371 SCT_ConditionsSummaryToolCfg)
372 kwargs.setdefault(
"conditionsTool", acc.popToolsAndMerge(
373 SCT_ConditionsSummaryToolCfg(flags, withFlaggedCondTool=
False)))
375 if "LorentzAngleTool" not in kwargs:
376 from SiLorentzAngleTool.SCT_LorentzAngleConfig
import (
377 SCT_LorentzAngleToolCfg)
378 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(
379 SCT_LorentzAngleToolCfg(flags)))
381 kwargs.setdefault(
"globalPosAlg", acc.popToolsAndMerge(
384 if flags.InDet.selectSCTIntimeHits:
385 coll_25ns = (flags.Beam.BunchSpacing <= 25
and
386 flags.Beam.Type
is BeamType.Collisions)
387 kwargs.setdefault(
"timeBins",
"01X" if coll_25ns
else "X1X")
389 acc.setPrivateTools(CompFactory.InDet.SCT_ClusteringTool(name, **kwargs))
394 acc = ComponentAccumulator()
396 if "conditionsTool" not in kwargs:
397 from SCT_ConditionsTools.SCT_ConditionsToolsConfig
import (
398 SCT_ConditionsSummaryToolCfg)
399 kwargs.setdefault(
"conditionsTool", acc.popToolsAndMerge(
400 SCT_ConditionsSummaryToolCfg(flags, withFlaggedCondTool=
False, withTdaqTool=
False)))
402 kwargs.setdefault(
"SCTDetElStatus",
"")
405 kwargs.setdefault(
"doSimplePositionWidthCalculation",
False)
407 acc.setPrivateTools(acc.popToolsAndMerge(
413 flags, name="ITkStripClusteringTool", **kwargs):
415 from StripGeoModelXml.ITkStripGeoModelConfig
import (
416 ITkStripReadoutGeometryCfg)
417 acc = ITkStripReadoutGeometryCfg(flags)
419 kwargs.setdefault(
"SCTDetEleCollKey",
"ITkStripDetectorElementCollection")
420 kwargs.setdefault(
"doSimplePositionWidthCalculation",
True)
422 kwargs.setdefault(
"conditionsTool",
None)
423 if "SCTDetElStatus" not in kwargs :
424 if not flags.Trigger.doHLT :
425 from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig
import (
426 ITkStripDetectorElementStatusAlgCfg)
427 acc.merge(ITkStripDetectorElementStatusAlgCfg(flags))
428 kwargs.setdefault(
"SCTDetElStatus",
"ITkStripDetectorElementStatus")
430 if "LorentzAngleTool" not in kwargs:
431 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import (
432 ITkStripLorentzAngleToolCfg)
433 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(
434 ITkStripLorentzAngleToolCfg(flags)))
436 kwargs.setdefault(
"globalPosAlg", acc.popToolsAndMerge(
439 if flags.ITk.selectStripIntimeHits:
440 coll_25ns = (flags.Beam.BunchSpacing <= 25
and
441 flags.Beam.Type
is BeamType.Collisions)
442 kwargs.setdefault(
"timeBins",
"01X" if coll_25ns
else "X1X")
444 acc.setPrivateTools(CompFactory.InDet.SCT_ClusteringTool(name, **kwargs))
449 flags, name='TruthClusterizationFactory', **kwargs):
450 acc = ComponentAccumulator()
452 kwargs.setdefault(
"discardPUHits", flags.Digitization.PileUp)
453 kwargs.setdefault(
"truthClusterSplittingEff", flags.Tracking.TruthClusterSplittingEff)
455 CompFactory.InDet.TruthClusterizationFactory(name, **kwargs))
460 flags, name='ITkTruthClusterizationFactory', **kwargs):
461 acc = ComponentAccumulator()
463 kwargs.setdefault(
"InputSDOMap",
"ITkPixelSDO_Map")
464 kwargs.setdefault(
"discardPUHits", flags.Digitization.PileUp)
465 kwargs.setdefault(
"truthClusterSplittingEff", flags.Tracking.TruthClusterSplittingEff)
467 CompFactory.InDet.TruthClusterizationFactory(name, **kwargs))
472 flags, name="TruthPixelClusterSplitProbTool", **kwargs):
473 acc = ComponentAccumulator()
474 kwargs.setdefault(
"PriorMultiplicityContent", [1, 1, 1])
475 kwargs.setdefault(
"NnClusterizationFactory", acc.popToolsAndMerge(
478 CompFactory.InDet.TruthPixelClusterSplitProbTool(name, **kwargs))
483 flags, name="ITkTruthPixelClusterSplitProbTool", **kwargs):
484 acc = ComponentAccumulator()
485 kwargs.setdefault(
"PriorMultiplicityContent", [1, 1, 1])
486 kwargs.setdefault(
"NnClusterizationFactory", acc.popToolsAndMerge(
489 CompFactory.InDet.TruthPixelClusterSplitProbTool(name, **kwargs))
494 ca = ComponentAccumulator()
495 from InDetConfig.SiClusterizationToolConfig
import ITkPixelRDOToolCfg
497 alg = CompFactory.InDet.HitsToxAODCopier(PixelRDOTool=tool, PixelRDOContainerKey=
"ITkPixelRDOs")
500 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD, addToAOD
502 toRecod = [
"xAOD::BaseContainer#PixelHits",
"xAOD::AuxContainerBase#PixelHitsAux.col.row.tot.eta_module.phi_module.layer_disk.barrel_ec.detid",
503 "xAOD::BaseContainer#StripHits",
"xAOD::AuxContainerBase#StripHitsAux.strip.side.eta_module.phi_module.layer_disk.barrel_ec.detid" ]
504 ca.merge(addToAOD(flags, toRecod))
505 ca.merge(addToESD(flags, toRecod))