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
85 if flags.Acts.decoratePRD.sdoSiHit:
86 acc.merge(ActsPixelClusterSiHitDecoratorAlgCfg(flags))
87
88
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