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