59def lowPtPassCfg(flags):
60 flags = flags.cloneAndReplace("Tracking.ActiveConfig",
61 "Tracking.HeavyIonLowPtPass")
62
63 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
64 acc = ComponentAccumulator()
65
66 from InDetConfig.TrackRecoConfig import TrackRecoPassCfg
67 ClusterSplitProbContainer = "InDetAmbiguityProcessorSplitProbHeavyIon"
68 result, ClusterSplitProbContainer = TrackRecoPassCfg(flags,
69 extension="HeavyIonLowPt",
70 InputExtendedInDetTracks=["CombinedInDetTracks"],
71 doTrackingSiPattern=True,
72 ClusterSplitProbContainer=ClusterSplitProbContainer)
73 acc.merge(result)
74 TrackContainer = "CombinedInDetTracksWithSecondPass"
75 from TrkConfig.TrkTrackCollectionMergerConfig import TrackCollectionMergerAlgCfg
76 acc.merge(TrackCollectionMergerAlgCfg(flags,
77 name="TrackCollectionMergerLowPtAlg",
78 InputCombinedTracks=['ResolvedHeavyIonLowPtTracks'],
79 OutputCombinedTracks=TrackContainer,
80 AssociationMapName=f"PRDtoTrackMapMerge_{TrackContainer}"))
81
82 if flags.Tracking.doTruth:
83 from InDetConfig.TrackTruthConfig import InDetTrackTruthCfg
84 acc.merge(InDetTrackTruthCfg(flags,
85 Tracks=TrackContainer,
86 DetailedTruth=f"{TrackContainer}DetailedTruth",
87 TracksTruth=f"{TrackContainer}TruthCollection"))
88
89
90 TrackParticleContainer = "InDetHeavyIonLowPtTrackParticles"
91 from xAODTrackingCnv.xAODTrackingCnvConfig import TrackParticleCnvAlgCfg
92 acc.merge(TrackParticleCnvAlgCfg(flags,
93 name="InDetTrackParticlesLowPtAlg",
94 TrackContainerName=TrackContainer,
95 xAODTrackParticlesFromTracksContainerName=TrackParticleContainer,
96 ClusterSplitProbabilityName="InDetAmbiguityProcessorSplitProbHeavyIonLowPt",
97 AssociationMapName=f"PRDtoTrackMapMerge_{TrackContainer}"))
98
99 acc.merge(PesistifyTrackParticles(flags,
100 trackParticleCollections=[TrackParticleContainer]))
101
102 return acc
103
104