ATLAS Offline Software
Loading...
Searching...
No Matches
SiSPSeededTrackFinderConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2# Configuration of SiSPSeededTrackFinder package
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5from TrkConfig.TrackingPassFlags import RoIStrategy
6from AthenaConfiguration.Enums import ProductionStep
7
8def SiSPSeededTrackFinderCfg(flags, name="InDetSiSpTrackFinder", **kwargs):
9 acc = ComponentAccumulator()
10
11 if "TrackTool" not in kwargs:
12 from InDetConfig.SiTrackMakerConfig import SiTrackMaker_xkCfg
13 kwargs.setdefault("TrackTool", acc.popToolsAndMerge(
14 SiTrackMaker_xkCfg(flags)))
15
16 if "PropagatorTool" not in kwargs:
17 from TrkConfig.TrkExRungeKuttaPropagatorConfig import InDetPropagatorCfg
18 InDetPropagator = acc.popToolsAndMerge(InDetPropagatorCfg(flags))
19 acc.addPublicTool(InDetPropagator)
20 kwargs.setdefault("PropagatorTool", InDetPropagator)
21
22 if "TrackSummaryTool" not in kwargs:
23 from TrkConfig.TrkTrackSummaryToolConfig import (
24 InDetTrackSummaryToolNoHoleSearchCfg)
25 kwargs.setdefault("TrackSummaryTool", acc.popToolsAndMerge(
26 InDetTrackSummaryToolNoHoleSearchCfg(flags)))
27
28 if "SeedsTool" not in kwargs:
29 from InDetConfig.SiSpacePointsSeedToolConfig import (
30 SiSpacePointsSeedMakerCfg)
31 kwargs.setdefault("SeedsTool", acc.popToolsAndMerge(
32 SiSpacePointsSeedMakerCfg(flags)))
33
34 if flags.Tracking.ActiveConfig.usePrdAssociationTool:
35 # not all classes have that property !!!
36 kwargs.setdefault("PRDtoTrackMap", (
37 'InDetPRDtoTrackMap' + flags.Tracking.ActiveConfig.extension))
38
39 kwargs.setdefault("useZBoundFinding",
40 flags.Tracking.ActiveConfig.doZBoundary)
41 if flags.Common.ProductionStep in [ProductionStep.PileUpPretracking, ProductionStep.MinbiasPreprocessing]:
42 kwargs.setdefault("EventInfoKey", flags.Overlay.BkgPrefix + "EventInfo")
43
44 # Heavy-ion config
45 kwargs.setdefault("useZvertexTool",
46 flags.Tracking.ActiveConfig.extension in ["HeavyIon", "VtxLumiHeavyIon"])
47 if flags.Tracking.ActiveConfig.extension in ["HeavyIon", "VtxLumiHeavyIon"]:
48 # Optimization from Igor
49 kwargs.setdefault("FreeClustersCut", 2)
50 kwargs.setdefault("useMBTSTimeDiff", True)
51
52 # Z-coordinates primary vertices finder (only for collisions)
53 if "ZvertexTool" not in kwargs:
54 from InDetConfig.SiZvertexToolConfig import SiZvertexMaker_xkCfg
55 kwargs.setdefault("ZvertexTool", acc.popToolsAndMerge(
56 SiZvertexMaker_xkCfg(flags)))
57
58 acc.addEventAlgo(CompFactory.InDet.SiSPSeededTrackFinder(
59 name+flags.Tracking.ActiveConfig.extension, **kwargs))
60 return acc
61
62def TrigSiSPSeededTrackFinderCfg(flags, name="InDetTrigSiSpTrackFinder", **kwargs):
63 acc = ComponentAccumulator()
64
65 if "TracksLocation" not in kwargs:
66 kwargs.setdefault("TracksLocation", flags.Tracking.ActiveConfig.trkTracks_IDTrig)
67
68 kwargs.setdefault("SpacePointsSCTName","SCT_TrigSpacePoints")
69 kwargs.setdefault("SpacePointsPixelName","PixelTrigSpacePoints")
70
71 if "TrackTool" not in kwargs:
72 from InDetConfig.SiTrackMakerConfig import TrigSiTrackMaker_xkCfg
73 kwargs.setdefault("TrackTool", acc.popToolsAndMerge(
74 TrigSiTrackMaker_xkCfg(flags)))
75
76 #for the time being no need of InDetTrigPropagator
77 # acc.popToolsAndMerge(InDetPropagatorCfg(flags, name="InDetTrigPropagator"))
78
79 if "TrackSummaryTool" not in kwargs:
80 from TrkConfig.TrkTrackSummaryToolConfig import (
81 InDetTrigFastTrackSummaryToolCfg)
82 kwargs.setdefault("TrackSummaryTool", acc.popToolsAndMerge(
83 InDetTrigFastTrackSummaryToolCfg(flags)))
84
85 if "SeedsTool" not in kwargs:
86 from InDetConfig.SiSpacePointsSeedToolConfig import (
87 TrigSiSpacePointsSeedMakerCfg)
88 kwargs.setdefault("SeedsTool", acc.popToolsAndMerge(
89 TrigSiSpacePointsSeedMakerCfg(flags)))
90
91 # Heavy-ion config (TODO the steering for the trigger)
92 kwargs.setdefault("useMBTSTimeDiff", False)
93 kwargs.setdefault("useZvertexTool", False)
94 kwargs.setdefault("useZBoundFinding",
95 flags.Tracking.ActiveConfig.doZBoundary)
96 if flags.Reco.EnableHI:
97 # Heavy Ion optimization from Igor
98 kwargs.setdefault("FreeClustersCut", 2)
99
100
101 if flags.Tracking.ActiveConfig.usePrdAssociationTool:
102 # not all classes have that property !!!
103 kwargs.setdefault("PRDtoTrackMap", (
104 'InDetPRDtoTrackMap' + flags.Tracking.ActiveConfig.input_name))
105 else:
106 kwargs.setdefault("PRDtoTrackMap", "")
107
108 acc.merge(SiSPSeededTrackFinderCfg(flags, name, **kwargs))
109 return acc
110
111def ITkSiSPSeededTrackFinderCfg(flags, name="ITkSiSpTrackFinder", **kwargs):
112 acc = ComponentAccumulator()
113
114 if "TrackTool" not in kwargs:
115 from InDetConfig.SiTrackMakerConfig import ITkSiTrackMaker_xkCfg
116 kwargs.setdefault("TrackTool", acc.popToolsAndMerge(
117 ITkSiTrackMaker_xkCfg(flags)))
118
119 if "PropagatorTool" not in kwargs:
120 from TrkConfig.TrkExRungeKuttaPropagatorConfig import ITkPropagatorCfg
121 ITkPropagator = acc.popToolsAndMerge(ITkPropagatorCfg(flags))
122 acc.addPublicTool(ITkPropagator)
123 kwargs.setdefault("PropagatorTool", ITkPropagator)
124
125 if "TrackSummaryTool" not in kwargs:
126 from TrkConfig.TrkTrackSummaryToolConfig import (
127 ITkTrackSummaryToolNoHoleSearchCfg)
128 kwargs.setdefault("TrackSummaryTool", acc.popToolsAndMerge(
129 ITkTrackSummaryToolNoHoleSearchCfg(flags)))
130
131 if "SeedsTool" not in kwargs:
132 ITkSiSpacePointsSeedMaker = None
133
134 from InDetConfig.SiSpacePointsSeedToolConfig import ITkSiSpacePointsSeedMakerCfg
135 ITkSiSpacePointsSeedMaker = acc.popToolsAndMerge(ITkSiSpacePointsSeedMakerCfg(flags))
136
137 kwargs.setdefault("SeedsTool", ITkSiSpacePointsSeedMaker)
138
139 if flags.Tracking.ActiveConfig.usePrdAssociationTool:
140 # not all classes have that property !!!
141 kwargs.setdefault("PRDtoTrackMap", (
142 'ITkPRDtoTrackMap' + flags.Tracking.ActiveConfig.extension))
143
144 kwargs.setdefault("useZvertexTool", False)
145 kwargs.setdefault("useZBoundFinding",
146 flags.Tracking.ActiveConfig.doZBoundary)
147 kwargs.setdefault("ITKGeometry", True)
148 kwargs.setdefault("SpacePointsSCTName", "ITkStripSpacePoints"
149 if flags.Tracking.ActiveConfig.useITkStripSeeding else "")
150 kwargs.setdefault("SpacePointsPixelName", "ITkPixelSpacePoints"
151 if flags.Tracking.ActiveConfig.useITkPixelSeeding else "")
152 if flags.Common.ProductionStep in [ProductionStep.PileUpPretracking, ProductionStep.MinbiasPreprocessing]:
153 kwargs.setdefault("EventInfoKey", flags.Overlay.BkgPrefix + "EventInfo")
154
155 if flags.Tracking.doITkFastTracking:
156 kwargs.setdefault("doFastTracking", True)
157 kwargs.setdefault("writeHolesFromPattern", True)
158
159 if 'InDetEtaDependentCutsSvc' not in kwargs:
160 from InDetConfig.InDetEtaDependentCutsConfig import (
161 ITkEtaDependentCutsSvcCfg)
162 acc.merge(ITkEtaDependentCutsSvcCfg(flags))
163 kwargs.setdefault("InDetEtaDependentCutsSvc", acc.getService(
164 "ITkEtaDependentCutsSvc"+flags.Tracking.ActiveConfig.extension))
165
166 # Dump GBTS training data?
167 if flags.Tracking.dumpGBTSTrainingData == 1:
168 kwargs.setdefault("doDumpGBTSTrainingData", True)
169 elif flags.Tracking.dumpGBTSTrainingData == 2:
170 kwargs.setdefault("doDumpGBTSTrainingDataLRT", True)
171
172 acc.addEventAlgo(CompFactory.InDet.SiSPSeededTrackFinder(
173 name+flags.Tracking.ActiveConfig.extension, **kwargs))
174 return acc
175
176
178 flags, name="ITkSiSpTrackFinderROIConv", **kwargs):
179 from InDetConfig.InDetCaloClusterROISelectorConfig import (
180 ITkCaloClusterROIPhiRZContainerMakerCfg)
181 acc = ITkCaloClusterROIPhiRZContainerMakerCfg(flags)
182
183 if "RegSelTool_Strip" not in kwargs:
184 from RegionSelector.RegSelToolConfig import regSelTool_ITkStrip_Cfg
185 kwargs.setdefault("RegSelTool_Strip", acc.popToolsAndMerge(
186 regSelTool_ITkStrip_Cfg(flags)))
187
188 kwargs.setdefault("useITkConvSeeded", True)
189 kwargs.setdefault("EMROIPhiRZContainer",
190 "ITkCaloClusterROIPhiRZ15GeVUnordered")
191
192 if "SeedsTool" not in kwargs:
193 from InDetConfig.SiSpacePointsSeedToolConfig import ITkSiSpacePointsSeedMakerCfg
194 kwargs.setdefault("SeedsTool", acc.popToolsAndMerge(ITkSiSpacePointsSeedMakerCfg(flags)))
195
196 acc.merge(ITkSiSPSeededTrackFinderCfg(flags, name, **kwargs))
197 return acc
198
199
200def SiSPSeededTrackFinderRoICfg(flags, name="InDetSiSpTrackFinderRoI", **kwargs):
201 acc = ComponentAccumulator()
202
203 if "TrackTool" not in kwargs:
204 from InDetConfig.SiTrackMakerConfig import SiTrackMaker_xkCfg
205 kwargs.setdefault("TrackTool", acc.popToolsAndMerge(
206 SiTrackMaker_xkCfg(flags)))
207
208 if "TrackSummaryTool" not in kwargs:
209 from TrkConfig.TrkTrackSummaryToolConfig import (
210 InDetTrackSummaryToolNoHoleSearchCfg)
211 kwargs.setdefault("TrackSummaryTool", acc.popToolsAndMerge(
212 InDetTrackSummaryToolNoHoleSearchCfg(flags)))
213
214 if "SeedsTool" not in kwargs:
215 from InDetConfig.SiSpacePointsSeedToolConfig import (
216 SiSpacePointsSeedMakerCfg)
217 kwargs.setdefault("SeedsTool", acc.popToolsAndMerge(
218 SiSpacePointsSeedMakerCfg(flags)))
219
220 if flags.Tracking.ActiveConfig.usePrdAssociationTool:
221 kwargs.setdefault("PRDtoTrackMap", (
222 'InDetPRDtoTrackMap' + flags.Tracking.ActiveConfig.extension))
223
224 if "ZWindowRoISeedTool" not in kwargs:
225 if flags.Tracking.ActiveConfig.RoIStrategy is RoIStrategy.LeadTracks:
226 from InDetConfig.ZWindowRoISeedToolConfig import (
227 LeadTracksRoISeedToolCfg as ZWindowRoISeedToolCfg)
228 elif flags.Tracking.ActiveConfig.RoIStrategy is RoIStrategy.Random:
229 from InDetConfig.ZWindowRoISeedToolConfig import (
230 RandomRoISeedToolCfg as ZWindowRoISeedToolCfg)
231 elif flags.Tracking.ActiveConfig.RoIStrategy is RoIStrategy.File:
232 from InDetConfig.ZWindowRoISeedToolConfig import (
233 FileRoISeedToolCfg as ZWindowRoISeedToolCfg)
234 elif flags.Tracking.ActiveConfig.RoIStrategy is RoIStrategy.TruthHS:
235 from InDetConfig.ZWindowRoISeedToolConfig import (
236 TruthHSRoISeedToolCfg as ZWindowRoISeedToolCfg)
237 kwargs.setdefault("ZWindowRoISeedTool", acc.popToolsAndMerge(
238 ZWindowRoISeedToolCfg(flags)))
239
240 kwargs.setdefault("doRandomSpot", flags.Tracking.ActiveConfig.doRandomSpot)
241 if (flags.Tracking.ActiveConfig.doRandomSpot and
242 "RandomRoISeedTool" not in kwargs):
243 from InDetConfig.ZWindowRoISeedToolConfig import RandomRoISeedToolCfg
244 kwargs.setdefault("RandomRoISeedTool", acc.popToolsAndMerge(
245 RandomRoISeedToolCfg(flags)))
246
247 kwargs.setdefault("useRoIWidth", flags.Tracking.ActiveConfig.z0WindowRoI>0)
248 kwargs.setdefault("VxOutputName",
249 "RoIVertices"+flags.Tracking.ActiveConfig.extension)
250
251 acc.addEventAlgo(CompFactory.InDet.SiSPSeededTrackFinderRoI(
252 name+flags.Tracking.ActiveConfig.extension, **kwargs))
253
254 return acc
SiSPSeededTrackFinderRoICfg(flags, name="InDetSiSpTrackFinderRoI", **kwargs)
ITkSiSPSeededTrackFinderCfg(flags, name="ITkSiSpTrackFinder", **kwargs)
TrigSiSPSeededTrackFinderCfg(flags, name="InDetTrigSiSpTrackFinder", **kwargs)
SiSPSeededTrackFinderCfg(flags, name="InDetSiSpTrackFinder", **kwargs)
ITkSiSPSeededTrackFinderROIConvCfg(flags, name="ITkSiSpTrackFinderROIConv", **kwargs)