ATLAS Offline Software
Loading...
Searching...
No Matches
python.ITkTrackingSiPatternConfig Namespace Reference

Functions

 ITkTrackingSiPatternCfg (flags, InputCollections=None, ResolvedTrackCollectionKey=None, SiSPSeededTrackCollectionKey=None, ClusterSplitProbContainer='', previousActsExtension=None)

Function Documentation

◆ ITkTrackingSiPatternCfg()

python.ITkTrackingSiPatternConfig.ITkTrackingSiPatternCfg ( flags,
InputCollections = None,
ResolvedTrackCollectionKey = None,
SiSPSeededTrackCollectionKey = None,
ClusterSplitProbContainer = '',
previousActsExtension = None )

Definition at line 11 of file ITkTrackingSiPatternConfig.py.

16 previousActsExtension=None):
17 acc = ComponentAccumulator()
18 #
19 # --- get list of already associated hits (always do this, even if no other tracking ran before)
20 #
21 if flags.Tracking.ActiveConfig.usePrdAssociationTool:
22 from InDetConfig.InDetTrackPRD_AssociationConfig import (
23 ITkTrackPRD_AssociationCfg)
24 acc.merge(ITkTrackPRD_AssociationCfg(
25 flags,
26 name=('ITkTrackPRD_Association' +
27 flags.Tracking.ActiveConfig.extension),
28 TracksName=list(InputCollections)))
29
30 # Can use FastTrackFinder instead of SiSPSeededTrackFinder
31 if flags.Tracking.useITkFTF:
32
33 # ------------------------------------------------------------
34 #
35 # ----------- FastTrackFinder
36 #
37 # ------------------------------------------------------------
38
39 from TrigFastTrackFinder.ITkFastTrackFinderStandaloneConfig import (
40 ITkFastTrackFinderStandaloneCfg)
41 acc.merge(ITkFastTrackFinderStandaloneCfg(
42 flags, SiSPSeededTrackCollectionKey))
43
44 else:
45
46 # ------------------------------------------------------------
47 #
48 # ----------- SiSPSeededTrackFinder
49 #
50 # ------------------------------------------------------------
51
52 # Athena Track
53 if flags.Tracking.ActiveConfig.doAthenaTrack:
54 if (flags.Tracking.ActiveConfig.extension in
55 ["Conversion", "ActsValidateConversionSeeds"]):
56 from InDetConfig.SiSPSeededTrackFinderConfig import (
57 ITkSiSPSeededTrackFinderROIConvCfg)
58 acc.merge(ITkSiSPSeededTrackFinderROIConvCfg(
59 flags, TracksLocation=SiSPSeededTrackCollectionKey))
60 else:
61 from InDetConfig.SiSPSeededTrackFinderConfig import (
62 ITkSiSPSeededTrackFinderCfg)
63 acc.merge(ITkSiSPSeededTrackFinderCfg(
64 flags, TracksLocation=SiSPSeededTrackCollectionKey))
65
66 # GNN Track
67 if flags.Tracking.ActiveConfig.doGNNTrack:
68 from InDetGNNTracking.InDetGNNTrackingConfig import GNNTrackMakerCfg
69 acc.merge(GNNTrackMakerCfg(
70 flags, TracksLocation=SiSPSeededTrackCollectionKey))
71
72 # FPGA seed
73 if flags.Tracking.ActiveConfig.doFPGASeed:
74 if flags.Tracking.ActiveConfig.doFPGATrackSim:
75 from FPGATrackSimConfTools import FPGATrackSimAnalysisConfig
76 acc.merge(FPGATrackSimAnalysisConfig.FPGATrackSimSeedingCfg(flags))
77 else:
78 from EFTrackingFPGAPipeline.F150IntegrationConfig import FPGA150Pipeline
79 acc.merge(FPGA150Pipeline(flags, runStandalone=False))
80
81 # ACTS seed
82 if flags.Tracking.ActiveConfig.doActsSeed:
83 from ActsConfig.ActsSeedingConfig import ActsSeedingCfg
84 acc.merge(ActsSeedingCfg(flags))
85
86 # ACTS track
87 if flags.Tracking.ActiveConfig.doActsTrack:
88 from ActsConfig.ActsTrackFindingConfig import ActsTrackFindingCfg
89 acc.merge(ActsTrackFindingCfg(flags))
90
91 # Convert Tracks Acts -> Athena (before ambi)
92 if flags.Tracking.ActiveConfig.doActsToAthenaTrack:
93 from ActsConfig.ActsEventCnvConfig import ActsToTrkConvertorAlgCfg
94 acc.merge(ActsToTrkConvertorAlgCfg(
95 flags,
96 ACTSTracksLocation=f"{flags.Tracking.ActiveConfig.extension}Tracks",
97 TracksLocation=SiSPSeededTrackCollectionKey))
98
99 # Convert tracks Athena -> Acts (before ambi)
100 if flags.Tracking.ActiveConfig.doAthenaToActsTrack:
101 from ActsConfig.ActsEventCnvConfig import TrkToActsConvertorAlgCfg
102 acc.merge(TrkToActsConvertorAlgCfg(
103 flags,
104 TrackContainerLocation=f"{flags.Tracking.ActiveConfig.extension}Tracks",
105 TrackCollectionKeys=[SiSPSeededTrackCollectionKey]))
106
107
108 runTruth = (flags.Tracking.ActiveConfig.doAthenaTrack or
109 flags.Tracking.ActiveConfig.doActsToAthenaTrack or
110 flags.Tracking.ActiveConfig.doGNNTrack)
111 from InDetConfig.ITkTrackTruthConfig import ITkTrackTruthCfg
112 if flags.Tracking.doTruth and runTruth:
113 acc.merge(ITkTrackTruthCfg(
114 flags, Tracks=SiSPSeededTrackCollectionKey,
115 DetailedTruth=SiSPSeededTrackCollectionKey+"DetailedTruth",
116 TracksTruth=SiSPSeededTrackCollectionKey+"TruthCollection"))
117
118 # ------------------------------------------------------------
119 #
120 # ---------- Ambiguity solving
121 #
122 # ------------------------------------------------------------
123
124 runCopyAlg = ((flags.Tracking.doITkFastTracking and
125 flags.Tracking.ActiveConfig.doAthenaTrack) or
126 (flags.Tracking.ActiveConfig.doGNNTrack and
127 not flags.Tracking.GNN.doAmbiResolution))
128
129 if runCopyAlg:
130 from TrkConfig.TrkCollectionAliasAlgConfig import CopyAlgForAmbiCfg
131 acc.merge(CopyAlgForAmbiCfg(
132 flags, "ITkCopyAlgForAmbi"+flags.Tracking.ActiveConfig.extension,
133 CollectionName=SiSPSeededTrackCollectionKey, # Input
134 AliasName=ResolvedTrackCollectionKey)) # Output
135
136 else:
137 # If we run Athena tracking we also want CTIDE ambi
138 if flags.Tracking.ActiveConfig.doAthenaAmbiguityResolution:
139 # with Acts.doAmbiguityResolution the converter will directly produce
140 # tracks with the key ResolvedTrackCollectionKey
141 from TrkConfig.TrkAmbiguitySolverConfig import (
142 ITkTrkAmbiguityScoreCfg, ITkTrkAmbiguitySolverCfg)
143 acc.merge(ITkTrkAmbiguityScoreCfg(
144 flags, SiSPSeededTrackCollectionKey=SiSPSeededTrackCollectionKey,
145 ClusterSplitProbContainer=ClusterSplitProbContainer))
146
147 acc.merge(ITkTrkAmbiguitySolverCfg(
148 flags, ResolvedTrackCollectionKey=ResolvedTrackCollectionKey))
149
150 # If we run Acts tracking we may want Acts ambi, depending on the flag
151 if flags.Tracking.ActiveConfig.doActsAmbiguityResolution:
152 # Schedule ACTS ambi. resolution and eventually the track convertions
153 from ActsConfig.ActsTrackFindingConfig import ActsAmbiguityResolutionCfg
154 acc.merge(ActsAmbiguityResolutionCfg(flags))
155
156 from ActsConfig.ActsPrdAssociationConfig import ActsPrdAssociationAlgCfg
157 acc.merge(ActsPrdAssociationAlgCfg(
158 flags, name = f'{flags.Tracking.ActiveConfig.extension}PrdAssociationAlg',
159 previousActsExtension=previousActsExtension))
160
161 if flags.Tracking.ActiveConfig.doActsToAthenaResolvedTrack:
162 from ActsConfig.ActsEventCnvConfig import ActsToTrkConvertorAlgCfg
163 acc.merge(ActsToTrkConvertorAlgCfg(
164 flags,
165 ACTSTracksLocation=f"{flags.Tracking.ActiveConfig.extension}ResolvedTracks",
166 TracksLocation=ResolvedTrackCollectionKey))
167
168 runTruth = (flags.Tracking.ActiveConfig.doAthenaTrack or
169 flags.Tracking.ActiveConfig.doAthenaAmbiguityResolution or
170 (flags.Tracking.ActiveConfig.doGNNTrack and
171 not flags.Tracking.GNN.doAmbiResolution))
172 if flags.Tracking.doTruth and runTruth:
173 acc.merge(ITkTrackTruthCfg(
174 flags, Tracks=ResolvedTrackCollectionKey,
175 DetailedTruth=ResolvedTrackCollectionKey+"DetailedTruth",
176 TracksTruth=ResolvedTrackCollectionKey+"TruthCollection"))
177
178 if flags.Tracking.ActiveConfig.doActsTrack and flags.Tracking.doTruth:
179 from ActsConfig.ActsTruthConfig import (
180 ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg)
181 acts_tracks = (f"{flags.Tracking.ActiveConfig.extension}Tracks"
182 if not flags.Acts.doAmbiguityResolution else
183 f"{flags.Tracking.ActiveConfig.extension}ResolvedTracks")
184 acc.merge(ActsTrackToTruthAssociationAlgCfg(
185 flags, name=f"{acts_tracks}TrackToTruthAssociationAlg",
186 ACTSTracksLocation=acts_tracks,
187 AssociationMapOut=acts_tracks+"ToTruthParticleAssociation"))
188
189 acc.merge(ActsTrackFindingValidationAlgCfg(
190 flags, name=f"{acts_tracks}TrackFindingValidationAlg",
191 TrackToTruthAssociationMap=acts_tracks+"ToTruthParticleAssociation"))
192
193
194 return acc