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