2 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6 TrackContainers: list[str],
7 TrackParticleContainer: str,
8 persistifyCollection: bool =
True,
9 PerigeeExpression: str =
None) -> ComponentAccumulator:
19 assert isinstance(TrackContainers, list)
20 for container
in TrackContainers:
21 assert isinstance(container, str)
25 if PerigeeExpression
is None:
26 PerigeeExpression = flags.Tracking.perigeeExpression
28 print(
"Storing track and track particle containers:")
29 print(f
"- track collection(s): {TrackContainers}")
30 print(f
"- track particle collection: {TrackParticleContainer}")
34 prefix =
"ActsCombined" if "ActiveConfig" not in flags.Tracking
else flags.Tracking.ActiveConfig.extension
35 prefix += f
"To{TrackParticleContainer}"
36 from ActsConfig.ActsTrackFindingConfig
import ActsTrackToTrackParticleCnvAlgCfg
38 name = f
"{prefix}TrackToTrackParticleCnvAlg",
39 ACTSTracksLocation = TrackContainers,
40 TrackParticlesOutKey = TrackParticleContainer,
41 PerigeeExpression = PerigeeExpression))
43 if flags.Tracking.doTruth :
45 track_to_truth_maps = []
46 from ActsConfig.ActsTruthConfig
import ActsTrackParticleTruthDecorationAlgCfg
47 for trackContainer
in TrackContainers:
48 track_to_truth_maps.append(f
"{trackContainer}ToTruthParticleAssociation")
50 name = f
'{prefix}TruthDecorationAlg',
51 TrackToTruthAssociationMaps = track_to_truth_maps,
52 TrackParticleContainerName = TrackParticleContainer,
53 OutputLevel = WARNING
if len(TrackContainers)==1
else INFO,
54 ComputeTrackRecoEfficiency =
False if len(TrackContainers)==1
else True))
60 if persistifyCollection:
62 trackparticles_shortlist = []
if flags.Acts.EDM.PersistifyTracks
else [
'-actsTrack']
63 trackparticles_variables =
".".
join(trackparticles_shortlist)
64 toAOD += [f
"xAOD::TrackParticleContainer#{TrackParticleContainer}",
65 f
"xAOD::TrackParticleAuxContainer#{TrackParticleContainer}Aux." + trackparticles_variables]
67 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
77 if flags.Tracking.ActiveConfig.storeSiSPSeededTracks:
80 TrackContainers = [f
"{flags.Tracking.ActiveConfig.extension}Tracks"],
81 TrackParticleContainer = f
'SiSPSeededTracks{flags.Tracking.ActiveConfig.extension}TrackParticles'))
85 if flags.Tracking.ActiveConfig.storeSeparateContainer:
89 acts_tracks = f
"{flags.Tracking.ActiveConfig.extension}Tracks" if not flags.Acts.doAmbiguityResolution
else f
"{flags.Tracking.ActiveConfig.extension}ResolvedTracks"
91 TrackContainers = [acts_tracks],
92 TrackParticleContainer = f
'InDet{flags.Tracking.ActiveConfig.extension}TrackParticles'))