58def FPGATruthDecorationCfg(flags, FinalProtoTrackChainxAODTracksKey="xAODFPGAPrototracks", **kwargs):
59
61 from ActsConfig.ActsTruthConfig import ActsTruthParticleHitCountAlgCfg, ActsPixelClusterToTruthAssociationAlgCfg,ActsStripClusterToTruthAssociationAlgCfg
62
63 ACTSProtoTrackChainTrackKey = "ACTSProtoTrackChainTestTracks"
64 FinalProtoTrackChainxAODTracksKey=FinalProtoTrackChainxAODTracksKey
65
66 acc = ComponentAccumulator()
67 truthLinkVector="xAODFPGATruthLinks" if flags.Trigger.FPGATrackSim.useFPGATruthTrackMatching else "xAODTruthLinks"
68 acc.merge(ActsPixelClusterToTruthAssociationAlgCfg(flags,
69 name="ActsFPGAPixelClusterToTruthAssociationAlg",
70 InputTruthParticleLinks=truthLinkVector,
71 AssociationMapOut="ITkFPGAPixelClustersToTruthParticles",
72 Measurements="xAODPixelClustersFromFPGACluster"))
73
74 acc.merge(ActsStripClusterToTruthAssociationAlgCfg(flags,
75 name="ActsFPGAStripClusterToTruthAssociationAlg",
76 InputTruthParticleLinks=truthLinkVector,
77 AssociationMapOut="ITkFPGAStripClustersToTruthParticles",
78 Measurements="xAODStripClustersFromFPGACluster"))
79
80
81 acc.merge(ActsTruthParticleHitCountAlgCfg(flags,
82 name="ActsFPGATruthParticleHitCountAlg",
83 PixelClustersToTruthAssociationMap="ITkFPGAPixelClustersToTruthParticles",
84 StripClustersToTruthAssociationMap="ITkFPGAStripClustersToTruthParticles",
85 TruthParticleHitCountsOut="FPGATruthParticleHitCounts"))
86
87
88 from ActsConfig.ActsTruthConfig import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
89 acts_tracks=f"{flags.Tracking.ActiveConfig.extension}Tracks" if not flags.Acts.doAmbiguityResolution else f"{flags.Tracking.ActiveConfig.extension}ResolvedTracks"
90 acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
91 name=f"{acts_tracks}FPGATrackToTruthAssociationAlg",
92 PixelClustersToTruthAssociationMap="ITkFPGAPixelClustersToTruthParticles",
93 StripClustersToTruthAssociationMap="ITkFPGAStripClustersToTruthParticles",
94 ACTSTracksLocation=ACTSProtoTrackChainTrackKey,
95 AssociationMapOut=acts_tracks+"FPGAToTruthParticleAssociation"))
96
97
98 acc.merge(ActsTrackFindingValidationAlgCfg(flags,
99 name=f"{acts_tracks}FPGATrackFindingValidationAlg",
100 TrackToTruthAssociationMap=acts_tracks+"FPGAToTruthParticleAssociation",
101 TruthParticleHitCounts="FPGATruthParticleHitCounts"
102 ))
103
104
106 prefix = flags.Tracking.ActiveConfig.extension
107 from ActsConfig.ActsTrackFindingConfig import ActsTrackToTrackParticleCnvAlgCfg
108 acc.merge(ActsTrackToTrackParticleCnvAlgCfg(flags, f"{prefix}ResolvedProtoTrackToAltTrackParticleCnvAlg",
109 ACTSTracksLocation=[ACTSProtoTrackChainTrackKey,],
110 TrackParticlesOutKey=f"{FinalProtoTrackChainxAODTracksKey}TrackParticles"))
111
112 from ActsConfig.ActsTruthConfig import ActsTrackParticleTruthDecorationAlgCfg
113 acc.merge(ActsTrackParticleTruthDecorationAlgCfg(flags,
114 f"{prefix}ActsFPGATrackParticleTruthDecorationAlg",
115 TrackToTruthAssociationMaps=[acts_tracks+"FPGAToTruthParticleAssociation"],
116 TrackParticleContainerName=f"{FinalProtoTrackChainxAODTracksKey}TrackParticles",
117 TruthParticleHitCounts="FPGATruthParticleHitCounts",
118 ComputeTrackRecoEfficiency=True))
119 return acc