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 ["Conversion"]):
55 from InDetConfig.SiSPSeededTrackFinderConfig import (
56 ITkSiSPSeededTrackFinderROIConvCfg)
57 acc.merge(ITkSiSPSeededTrackFinderROIConvCfg(
58 flags, TracksLocation=SiSPSeededTrackCollectionKey))
59 else:
60 from InDetConfig.SiSPSeededTrackFinderConfig import (
61 ITkSiSPSeededTrackFinderCfg)
62 acc.merge(ITkSiSPSeededTrackFinderCfg(
63 flags, TracksLocation=SiSPSeededTrackCollectionKey))
64
65 # GNN Track
66 if flags.Tracking.ActiveConfig.doGNNTrack:
67 from InDetGNNTracking.InDetGNNTrackingConfig import GNNTrackMakerCfg
68 acc.merge(GNNTrackMakerCfg(
69 flags, TracksLocation=SiSPSeededTrackCollectionKey))
70
71 # FPGA seed
72 if flags.Tracking.ActiveConfig.doFPGASeed:
73 if flags.Tracking.ActiveConfig.doFPGATrackSim:
74 from FPGATrackSimConfTools import FPGATrackSimAnalysisConfig
75 acc.merge(FPGATrackSimAnalysisConfig.FPGATrackSimSeedingCfg(flags))
76 else:
77 from EFTrackingFPGAPipeline.F150IntegrationConfig import FPGA150Pipeline
78 acc.merge(FPGA150Pipeline(flags, runStandalone=False))
79
80 # ACTS seed
81 if flags.Tracking.ActiveConfig.doActsSeed:
82 from ActsConfig.ActsSeedingConfig import ActsSeedingCfg
83 acc.merge(ActsSeedingCfg(flags))
84
85 # ACTS track
86 if flags.Tracking.ActiveConfig.doActsTrack:
87 from ActsConfig.ActsTrackFindingConfig import ActsTrackFindingCfg
88 acc.merge(ActsTrackFindingCfg(flags))
89
90 # Convert Tracks Acts -> Athena (before ambi)
91 if flags.Tracking.ActiveConfig.doActsToAthenaTrack:
92 from ActsConfig.ActsEventCnvConfig import ActsToTrkConvertorAlgCfg
93 acc.merge(ActsToTrkConvertorAlgCfg(
94 flags,
95 ACTSTracksLocation=f"{flags.Tracking.ActiveConfig.extension}Tracks",
96 TracksLocation=SiSPSeededTrackCollectionKey))
97
98 # Convert tracks Athena -> Acts (before ambi)
99 if flags.Tracking.ActiveConfig.doAthenaToActsTrack:
100 from ActsConfig.ActsEventCnvConfig import TrkToActsConvertorAlgCfg
101 acc.merge(TrkToActsConvertorAlgCfg(
102 flags,
103 TrackContainerLocation=f"{flags.Tracking.ActiveConfig.extension}Tracks",
104 TrackCollectionKeys=[SiSPSeededTrackCollectionKey]))
105
106
107 runTruth = (flags.Tracking.ActiveConfig.doAthenaTrack or
108 flags.Tracking.ActiveConfig.doActsToAthenaTrack or
109 flags.Tracking.ActiveConfig.doGNNTrack)
110 from InDetConfig.ITkTrackTruthConfig import ITkTrackTruthCfg
111 if flags.Tracking.doTruth and runTruth:
112 acc.merge(ITkTrackTruthCfg(
113 flags, Tracks=SiSPSeededTrackCollectionKey,
114 DetailedTruth=SiSPSeededTrackCollectionKey+"DetailedTruth",
115 TracksTruth=SiSPSeededTrackCollectionKey+"TruthCollection"))
116
117 # ------------------------------------------------------------
118 #
119 # ---------- Ambiguity solving
120 #
121 # ------------------------------------------------------------
122
123 runCopyAlg = ((flags.Tracking.doITkFastTracking and
124 flags.Tracking.ActiveConfig.doAthenaTrack) or
125 (flags.Tracking.ActiveConfig.doGNNTrack and
126 not flags.Tracking.GNN.doAmbiResolution))
127
128 if runCopyAlg:
129 from TrkConfig.TrkCollectionAliasAlgConfig import CopyAlgForAmbiCfg
130 acc.merge(CopyAlgForAmbiCfg(
131 flags, "ITkCopyAlgForAmbi"+flags.Tracking.ActiveConfig.extension,
132 CollectionName=SiSPSeededTrackCollectionKey, # Input
133 AliasName=ResolvedTrackCollectionKey)) # Output
134
135 else:
136 # If we run Athena tracking we also want CTIDE ambi
137 if flags.Tracking.ActiveConfig.doAthenaAmbiguityResolution:
138 # with Acts.doAmbiguityResolution the converter will directly produce
139 # tracks with the key ResolvedTrackCollectionKey
140 from TrkConfig.TrkAmbiguitySolverConfig import (
141 ITkTrkAmbiguityScoreCfg, ITkTrkAmbiguitySolverCfg)
142 acc.merge(ITkTrkAmbiguityScoreCfg(
143 flags, SiSPSeededTrackCollectionKey=SiSPSeededTrackCollectionKey,
144 ClusterSplitProbContainer=ClusterSplitProbContainer))
145
146 acc.merge(ITkTrkAmbiguitySolverCfg(
147 flags, ResolvedTrackCollectionKey=ResolvedTrackCollectionKey))
148
149 # If we run Acts tracking we may want Acts ambi, depending on the flag
150 if flags.Tracking.ActiveConfig.doActsAmbiguityResolution:
151 # Schedule ACTS ambi. resolution and eventually the track convertions
152 from ActsConfig.ActsTrackFindingConfig import ActsAmbiguityResolutionCfg
153 acc.merge(ActsAmbiguityResolutionCfg(flags))
154
155 from ActsConfig.ActsPrdAssociationConfig import ActsPrdAssociationAlgCfg
156 acc.merge(ActsPrdAssociationAlgCfg(
157 flags, name = f'{flags.Tracking.ActiveConfig.extension}PrdAssociationAlg',
158 previousActsExtension=previousActsExtension))
159
160 if flags.Tracking.ActiveConfig.doActsToAthenaResolvedTrack:
161 from ActsConfig.ActsEventCnvConfig import ActsToTrkConvertorAlgCfg
162 acc.merge(ActsToTrkConvertorAlgCfg(
163 flags,
164 ACTSTracksLocation=f"{flags.Tracking.ActiveConfig.extension}ResolvedTracks",
165 TracksLocation=ResolvedTrackCollectionKey))
166
167 runTruth = (flags.Tracking.ActiveConfig.doAthenaTrack or
168 flags.Tracking.ActiveConfig.doAthenaAmbiguityResolution or
169 (flags.Tracking.ActiveConfig.doGNNTrack and
170 not flags.Tracking.GNN.doAmbiResolution))
171 if flags.Tracking.doTruth and runTruth:
172 acc.merge(ITkTrackTruthCfg(
173 flags, Tracks=ResolvedTrackCollectionKey,
174 DetailedTruth=ResolvedTrackCollectionKey+"DetailedTruth",
175 TracksTruth=ResolvedTrackCollectionKey+"TruthCollection"))
176
177 if flags.Tracking.ActiveConfig.doActsTrack and flags.Tracking.doTruth:
178 from ActsConfig.ActsTruthConfig import (
179 ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg)
180 acts_tracks = (f"{flags.Tracking.ActiveConfig.extension}Tracks"
181 if not flags.Acts.doAmbiguityResolution else
182 f"{flags.Tracking.ActiveConfig.extension}ResolvedTracks")
183 acc.merge(ActsTrackToTruthAssociationAlgCfg(
184 flags, name=f"{acts_tracks}TrackToTruthAssociationAlg",
185 ACTSTracksLocation=acts_tracks,
186 AssociationMapOut=acts_tracks+"ToTruthParticleAssociation"))
187
188 acc.merge(ActsTrackFindingValidationAlgCfg(
189 flags, name=f"{acts_tracks}TrackFindingValidationAlg",
190 TrackToTruthAssociationMap=acts_tracks+"ToTruthParticleAssociation"))
191
192
193 return acc