ATLAS Offline Software
Classes | Functions
python.TrkConfigFlags Namespace Reference

Classes

class  ITkPrimaryPassConfig
 
class  KalmanUpdatorType
 
class  PixelClusterSplittingType
 
class  PrimaryPassConfig
 
class  TrackFitterType
 
class  TrackingComponent
 

Functions

def createTrackingConfigFlags ()
 

Function Documentation

◆ createTrackingConfigFlags()

def python.TrkConfigFlags.createTrackingConfigFlags ( )

Definition at line 71 of file TrkConfigFlags.py.

72  icf = AthConfigFlags()
73 
74  # Turn running of truth matching on and off (by default on for MC off for data)
75  icf.addFlag("Tracking.doTruth", lambda prevFlags: prevFlags.Input.isMC or
76  (prevFlags.Overlay.DataOverlay and prevFlags.Common.ProductionStep is not ProductionStep.MinbiasPreprocessing))
77 
78  # control which fitter to be used
79  icf.addFlag("Tracking.trackFitterType",
80  TrackFitterType.GlobalChi2Fitter, type=TrackFitterType)
81  # control which measurement updator to load as InDetUpdator
82  icf.addFlag("Tracking.kalmanUpdator",
83  KalmanUpdatorType.KalmanUpdatorSMatrix, type=KalmanUpdatorType)
84 
85  icf.addFlag("Tracking.materialInteractions", lambda prevFlags:
86  prevFlags.Beam.Type is not BeamType.SingleBeam)
87  # Control which type of particle hypothesis to use for the material interactions
88  # 0=non-interacting,1=electron,2=muon,3=pion,4=kaon,5=proton. See ParticleHypothesis.h for full definition.
89  icf.addFlag("Tracking.materialInteractionsType", lambda prevFlags:
90  2 if prevFlags.Beam.Type is BeamType.Cosmics else 3)
91 
92  # Turn on running of Brem Recovery in tracking
93  icf.addFlag("Tracking.doBremRecovery", lambda prevFlags: (
94  prevFlags.Detector.EnableCalo and
95  not (prevFlags.Tracking.PrimaryPassConfig in
96  [PrimaryPassConfig.VtxLumi, PrimaryPassConfig.VtxLumiHeavyIon, PrimaryPassConfig.VtxBeamSpot] or
97  prevFlags.Tracking.doLowMu or
98  prevFlags.Beam.Type is not BeamType.Collisions or
99  not prevFlags.BField.solenoidOn)))
100  icf.addFlag("Tracking.doCaloSeededBrem", lambda prevFlags: (
101  prevFlags.Detector.EnableCalo and prevFlags.Tracking.doBremRecovery))
102  icf.addFlag("Tracking.phiWidthBrem", 0.3)
103  icf.addFlag("Tracking.etaWidthBrem", 0.2)
104  # Use Recover SSS to Calo ROIs
105  icf.addFlag("Tracking.doHadCaloSeededSSS", False)
106  # Use Calo ROIs to seed specific cuts for the ambi
107  icf.addFlag("Tracking.doCaloSeededAmbi", lambda prevFlags:
108  prevFlags.Detector.EnableCalo)
109  # control if the shared hits are recorded in TrackPatricles
110  icf.addFlag("Tracking.doSharedHits", True)
111  # Switch for running TIDE Ambi
112  icf.addFlag("Tracking.doTIDE_Ambi", lambda prevFlags:
113  not (prevFlags.Beam.Type is BeamType.Cosmics))
114  # Use simple position and error estimate for on-track pixel cluster
115  icf.addFlag("Tracking.doPixelDigitalClustering", False)
116  # Try to split pixel clusters
117  icf.addFlag("Tracking.doPixelClusterSplitting",
118  lambda prevFlags: not (prevFlags.Beam.Type is BeamType.Cosmics))
119  # choose splitter type: NeuralNet or AnalogClus
120  icf.addFlag("Tracking.pixelClusterSplittingType", lambda prevFlags:
121  PixelClusterSplittingType.NeuralNet
122  if prevFlags.GeoModel.Run <= LHCPeriod.Run3
123  else PixelClusterSplittingType.Truth,
124  type=PixelClusterSplittingType)
125  # Cut value for splitting clusters into two parts
126  icf.addFlag("Tracking.pixelClusterSplitProb1",
127  lambda prevFlags: (
128  0.5 if prevFlags.GeoModel.Run is LHCPeriod.Run1 else 0.55))
129  # Cut value for splitting clusters into three parts
130  icf.addFlag("Tracking.pixelClusterSplitProb2",
131  lambda prevFlags: (
132  0.5 if prevFlags.GeoModel.Run is LHCPeriod.Run1 else 0.45))
133  # Skip ambiguity solver in hadronic ROI
134  icf.addFlag("Tracking.doSkipAmbiROI", False)
135 
136  # Guaranteed not-subtracted topo clusters even in heavy ions
137  icf.addFlag("Tracking.TopoClusters", "CaloTopoClusters")
138  icf.addFlag("Tracking.EgammaTopoClusters", "egammaTopoClusters")
139 
140  # Express track parameters wrt. to : 'BeamLine','BeamSpot','Vertex' (first primary vertex)
141  icf.addFlag("Tracking.perigeeExpression", lambda prevFlags:
142  "Vertex" if (prevFlags.Tracking.PrimaryPassConfig in [
143  PrimaryPassConfig.HeavyIon, PrimaryPassConfig.VtxLumiHeavyIon] or
144  prevFlags.Tracking.ITkPrimaryPassConfig in [
145  ITkPrimaryPassConfig.HeavyIon, ITkPrimaryPassConfig.ActsHeavyIon]
146  )
147  else "BeamLine")
148 
149  # to make eta overlap space points in endcap (aligned with search eta neighbour in strip endcaps)
150  icf.addFlag("Tracking.doEndcapEtaOverlapSpacePoint", lambda prevFlags: prevFlags.ITk.doEndcapEtaNeighbour)
151 
152  # Tracking passes/configurations scheduled
153 
154  def doLargeD0(flags):
155  if flags.GeoModel.Run <= LHCPeriod.Run3:
156  return not ((flags.Beam.Type in
157  [BeamType.SingleBeam, BeamType.Cosmics]) or
158  flags.Tracking.PrimaryPassConfig in [
159  PrimaryPassConfig.HeavyIon,
160  PrimaryPassConfig.UPC,
161  PrimaryPassConfig.HIP,
162  PrimaryPassConfig.VtxLumi,
163  PrimaryPassConfig.VtxLumiHeavyIon,
164  PrimaryPassConfig.VtxBeamSpot,
165  PrimaryPassConfig.HighPileup])
166  else: # LRT disabled by default for Run4 for now
167  return False
168 
169  icf.addFlag("Tracking.doLargeD0", doLargeD0)
170  icf.addFlag("Tracking.storeSeparateLargeD0Container", True)
171 
172  # Special configuration for low-mu runs
173  icf.addFlag("Tracking.doLowMu", False)
174  # Turn running of doLowPt second pass on and off
175  icf.addFlag("Tracking.doLowPt",
176  lambda prevFlags: prevFlags.Tracking.doLowMu)
177 
178  # Turn on to save the Track Seeds in a xAOD track collecting for development studies
179  icf.addFlag("Tracking.doStoreTrackSeeds", False)
180  # Save SiSP tracks (input to the ambiguity solver)
181  icf.addFlag("Tracking.doStoreSiSPSeededTracks", False)
182  # Turn writing of seed validation ntuple on and off
183  icf.addFlag("Tracking.writeSeedValNtuple", False)
184  # Save xAOD TrackMeasurementValidation + TrackStateValidation containers
185  icf.addFlag("Tracking.writeExtendedSi_PRDInfo", False)
186  icf.addFlag("Tracking.writeExtendedTRT_PRDInfo", False)
187  icf.addFlag("Tracking.PRDInfo.KeepOnlyOnTrackMeasurements", False)
188 
189  # Only keep entries in xAOD TrackMeasurementValidation + TrackStateValidation containers for tracks passing user cut
190  # Indicate detector technology from which clusters should be thinned
191  icf.addFlag("Tracking.thinPixelClustersOnTrack", False)
192  icf.addFlag("Tracking.thinSCTClustersOnTrack", False)
193  icf.addFlag("Tracking.thinTRTClustersOnTrack", False)
194  icf.addFlag("Tracking.thinInDetClustersOnTrack",
195  lambda prevFlags: (
196  prevFlags.Tracking.thinPixelClustersOnTrack or
197  prevFlags.Tracking.thinSCTClustersOnTrack or
198  prevFlags.Tracking.thinTRTClustersOnTrack ))
199 
200  # For cluster thinning (if enabled): list of containers and selection strings used in ThinInDetClustersAlg
201  icf.addFlag("Tracking.thinInDetClustersTrackContainers", ["InDetTrackParticles"])
202  icf.addFlag("Tracking.thinInDetClustersPixelMSOSContainers", ["PixelMSOSs"])
203  icf.addFlag("Tracking.thinInDetClustersSCTMSOSContainers", ["SCT_MSOSs"])
204  icf.addFlag("Tracking.thinInDetClustersTRTMSOSContainers", ["TRT_MSOSs"])
205  icf.addFlag("Tracking.thinInDetClustersSelectionStrings", ["InDetTrackParticles.pt > (1*GeV)"])
206 
207  # Toggle track slimming
208  icf.addFlag("Tracking.doSlimming", lambda prevFlags:
209  not (prevFlags.Beam.Type in
210  [BeamType.SingleBeam, BeamType.Cosmics] or
211  prevFlags.Tracking.PrimaryPassConfig in [
212  PrimaryPassConfig.VtxLumi,
213  PrimaryPassConfig.VtxLumiHeavyIon,
214  PrimaryPassConfig.VtxBeamSpot,
215  PrimaryPassConfig.HighPileup]))
216 
217 
218 
219  # The following flags are only used in InDet configurations for now
220  # No corresponding ITk config is available yet
221 
222  icf.addFlag("Tracking.useNewParamTRT", lambda prevFlags:
223  prevFlags.Tracking.PrimaryPassConfig is not(
224  PrimaryPassConfig.HeavyIon))
225 
226  # --- run back tracking and TRT only in RoI seed regions
227  icf.addFlag("Tracking.BackTracking.doRoISeeded", lambda prevFlags:
228  prevFlags.Detector.EnableCalo and not(
229  prevFlags.Tracking.doLowMu or
230  prevFlags.Tracking.PrimaryPassConfig is (
231  PrimaryPassConfig.HeavyIon) or
232  prevFlags.Beam.Type is BeamType.Cosmics or
233  prevFlags.Tracking.doMinBias))
234 
235  # --- defaults for backtracking
236  def BackTrackingMinPt(flags):
237  if flags.Tracking.doMinBias:
238  return 0.4 * Units.GeV * flags.BField.configuredSolenoidFieldScale
239  elif (flags.Tracking.doLowMu or
240  flags.Tracking.PrimaryPassConfig in [
241  PrimaryPassConfig.HeavyIon, PrimaryPassConfig.VtxLumiHeavyIon] or
242  flags.Beam.Type is BeamType.Cosmics):
243  return 1.0 * Units.GeV * flags.BField.configuredSolenoidFieldScale
244  else:
245  return 3.0 * Units.GeV * flags.BField.configuredSolenoidFieldScale
246  icf.addFlag("Tracking.BackTracking.minPt", BackTrackingMinPt)
247  icf.addFlag("Tracking.BackTracking.TRTSegFinderPtBins", 50)
248  icf.addFlag("Tracking.BackTracking.maxTRTSharedFrac", 0.7)
249  icf.addFlag("Tracking.BackTracking.maxSecondaryImpact", 100.0 * Units.mm)
250  icf.addFlag("Tracking.BackTracking.minClusters", 4)
251  icf.addFlag("Tracking.BackTracking.minSiNotShared", 4)
252  # cut is now on number of shared modules
253  icf.addFlag("Tracking.BackTracking.maxShared", 1)
254  icf.addFlag("Tracking.BackTracking.minTRT", lambda prevFlags:
255  10 if (prevFlags.Tracking.doLowMu or
256  prevFlags.Tracking.PrimaryPassConfig is (
257  PrimaryPassConfig.HeavyIon))
258  else 15)
259  icf.addFlag("Tracking.BackTracking.minTRTPrecFrac", lambda prevFlags:
260  0. if (prevFlags.Tracking.doLowMu or
261  prevFlags.Tracking.PrimaryPassConfig is (
262  PrimaryPassConfig.HeavyIon))
263  else 0.3)
264 
265  icf.addFlag("Tracking.BackTracking.maxHoles", lambda prevFlags:
266  2 if (prevFlags.Tracking.doLowMu or
267  prevFlags.Tracking.PrimaryPassConfig is (
268  PrimaryPassConfig.HeavyIon))
269  else 1)
270  icf.addFlag("Tracking.BackTracking.maxPixelHoles", lambda prevFlags:
271  2 if (prevFlags.Tracking.doLowMu or
272  prevFlags.Tracking.PrimaryPassConfig is (
273  PrimaryPassConfig.HeavyIon))
274  else 1)
275  icf.addFlag("Tracking.BackTracking.maxSCTHoles", lambda prevFlags:
276  2 if (prevFlags.Tracking.doLowMu or
277  prevFlags.Tracking.PrimaryPassConfig is (
278  PrimaryPassConfig.HeavyIon))
279  else 1)
280  icf.addFlag("Tracking.BackTracking.maxDoubleHoles", lambda prevFlags:
281  1 if (prevFlags.Tracking.doLowMu or
282  prevFlags.Tracking.PrimaryPassConfig is (
283  PrimaryPassConfig.HeavyIon))
284  else 0)
285  icf.addFlag("Tracking.BackTracking.nHolesMax", 2)
286  icf.addFlag("Tracking.BackTracking.nHolesGapMax", 2)
287 
288  # extension finder in back tracking
289  icf.addFlag("Tracking.BackTracking.rejectShortExtensions", lambda prevFlags:
290  not(prevFlags.Beam.Type is BeamType.Cosmics or
291  prevFlags.Tracking.doLowMu or
292  prevFlags.Tracking.PrimaryPassConfig is (
293  PrimaryPassConfig.HeavyIon)))
294  # cut in Si Extensions before fit
295  icf.addFlag("Tracking.BackTracking.SiExtensionCuts", lambda prevFlags:
296  not(prevFlags.Tracking.doLowMu or
297  prevFlags.Tracking.PrimaryPassConfig is (
298  PrimaryPassConfig.HeavyIon)))
299  icf.addFlag("Tracking.BackTracking.minRoIClusterEt", lambda prevFlags:
300  0. if (prevFlags.Tracking.doLowMu or
301  prevFlags.Tracking.PrimaryPassConfig in [
302  PrimaryPassConfig.HeavyIon, PrimaryPassConfig.VtxLumiHeavyIon] or
303  prevFlags.Beam.Type is BeamType.Cosmics or
304  prevFlags.Tracking.doMinBias)
305  else 6.*Units.GeV * prevFlags.BField.configuredSolenoidFieldScale)
306 
307  # TRT standalone configuration
308  def TRTStandaloneMinPt(flags):
309  if flags.Tracking.doMinBias:
310  return 0.4 * Units.GeV * flags.BField.configuredSolenoidFieldScale
311  elif flags.Tracking.doLowMu or (
312  flags.Tracking.PrimaryPassConfig is PrimaryPassConfig.HeavyIon):
313  return 1.0 * Units.GeV * flags.BField.configuredSolenoidFieldScale
314  else:
315  return 2.0 * Units.GeV * flags.BField.configuredSolenoidFieldScale
316  icf.addFlag("Tracking.TRTStandalone.minPt", TRTStandaloneMinPt)
317  icf.addFlag("Tracking.TRTStandalone.minTRTPrecFrac", 0.15)
318  icf.addFlag("Tracking.TRTStandalone.minTRT", 15)
319 
320  # Disabled for data-taking up to 2024 included and MC campaigns up to MC23e included
321  icf.addFlag("Tracking.TRTStandalone.startAtOriginalPerigee",
322  lambda prevFlags: (
323  (not prevFlags.Input.isMC and prevFlags.Input.DataYear >= 2025) or
324  (prevFlags.Input.isMC and prevFlags.Input.MCCampaign >= Campaign.MC23g)))
325 
326  # Turn on InDetRecStatistics
327  icf.addFlag("Tracking.doStats", False)
328  # Switch for track observer tool
329  icf.addFlag("Tracking.doTIDE_AmbiTrackMonitoring", False)
330  # use beam spot position in pixel NN
331  icf.addFlag("Tracking.useBeamSpotInfoNN", True)
332  # Threshold for NN cut in large D0 tracking for tracks in ambi
333  icf.addFlag("Tracking.nnCutLargeD0Threshold", -1.0)
334  # Use broad cluster errors for Pixel
335  icf.addFlag("Tracking.useBroadPixClusterErrors", False)
336  # Use broad cluster errors for SCT
337  icf.addFlag("Tracking.useBroadSCTClusterErrors", False)
338 
339  # Tracking passes/configurations scheduled
340 
341  # Turn running of track segment creation in pixel on and off
342  icf.addFlag("Tracking.doTrackSegmentsPixel",
343  lambda prevFlags: (
344  prevFlags.Detector.EnablePixel and (
345  prevFlags.Tracking.doMinBias or
346  prevFlags.Tracking.doLowMu or
347  prevFlags.Beam.Type is BeamType.Cosmics)))
348  # Turn running of track segment creation in SCT on and off
349  icf.addFlag("Tracking.doTrackSegmentsSCT",
350  lambda prevFlags: (
351  prevFlags.Detector.EnableSCT and (
352  prevFlags.Tracking.doLowMu or
353  prevFlags.Beam.Type is BeamType.Cosmics)))
354  # Turn running of track segment creation in TRT on and off
355  icf.addFlag("Tracking.doTrackSegmentsTRT",
356  lambda prevFlags: (
357  prevFlags.Detector.EnableTRT and
358  (prevFlags.Tracking.doLowMu or
359  prevFlags.Beam.Type is BeamType.Cosmics)))
360  # turn on / off TRT extensions
361  icf.addFlag("Tracking.doTRTExtension",
362  lambda prevFlags: prevFlags.Detector.EnableTRT)
363  # control to run TRT Segment finding (do it always after new tracking!)
364  icf.addFlag("Tracking.doTRTSegments",
365  lambda prevFlags: (prevFlags.Detector.EnableTRT and
366  (prevFlags.Tracking.doBackTracking or
367  prevFlags.Tracking.doTRTStandalone)))
368  # Turn running of backtracking on and off
369  icf.addFlag("Tracking.doBackTracking", lambda prevFlags: (
370  prevFlags.Detector.EnableTRT and
371  not(prevFlags.Beam.Type in [BeamType.SingleBeam, BeamType.Cosmics] or
372  prevFlags.Tracking.PrimaryPassConfig in [
373  PrimaryPassConfig.HeavyIon,
374  PrimaryPassConfig.VtxLumi,
375  PrimaryPassConfig.VtxLumiHeavyIon,
376  PrimaryPassConfig.VtxBeamSpot,
377  PrimaryPassConfig.HighPileup])))
378  # control TRT Standalone
379  icf.addFlag("Tracking.doTRTStandalone", lambda prevFlags: (
380  prevFlags.Detector.EnableTRT and
381  not(prevFlags.Tracking.PrimaryPassConfig in [
382  PrimaryPassConfig.HeavyIon,
383  PrimaryPassConfig.VtxLumi,
384  PrimaryPassConfig.VtxLumiHeavyIon,
385  PrimaryPassConfig.VtxBeamSpot,
386  PrimaryPassConfig.HighPileup])))
387 
388  # Turn running of doForwardTracks pass on and off
389  icf.addFlag("Tracking.doForwardTracks", lambda prevFlags: (
390  prevFlags.Detector.EnablePixel and
391  not(prevFlags.Beam.Type in [BeamType.SingleBeam, BeamType.Cosmics] or
392  prevFlags.Tracking.PrimaryPassConfig in [
393  PrimaryPassConfig.HeavyIon,
394  PrimaryPassConfig.VtxLumi,
395  PrimaryPassConfig.VtxLumiHeavyIon,
396  PrimaryPassConfig.VtxBeamSpot,
397  PrimaryPassConfig.HighPileup] or
398  prevFlags.Tracking.doMinBias or
399  prevFlags.Tracking.doLowMu)))
400  icf.addFlag("Tracking.doTrackSegmentsDisappearing",
401  lambda prevFlags: (
402  not((prevFlags.Tracking.PrimaryPassConfig is
403  PrimaryPassConfig.HeavyIon) or
404  prevFlags.Beam.Type is BeamType.Cosmics)))
405 
406  # Turn running of doVeryLowPt third pass on and off
407  icf.addFlag("Tracking.doVeryLowPt", False)
408  # Turn running of doLargeD0 second pass down to 100 MeV on and off
409  icf.addFlag("Tracking.doLowPtLargeD0", False)
410  # Switch for running LowPtRoI settings
411  icf.addFlag("Tracking.doLowPtRoI", False)
412  # Switch for running UPC settings
413  icf.addFlag("Tracking.doUPC", lambda prevFlags: prevFlags.Reco.HIMode is HIMode.UPC)
414  # Switch for running HIP settings
415  icf.addFlag("Tracking.doHIP", lambda prevFlags: prevFlags.Reco.HIMode is HIMode.HIP)
416  # Switch for running MinBias settings (UPC or HIP turn this ON)
417  icf.addFlag("Tracking.doMinBias", lambda prevFlags:
418  prevFlags.Tracking.doUPC or prevFlags.Tracking.doHIP)
419  # Turn running of BeamGas second pass on and off
420  icf.addFlag("Tracking.doBeamGas",
421  lambda prevFlags: prevFlags.Beam.Type is BeamType.SingleBeam)
422  # Special reconstruction for BLS physics
423  icf.addFlag("Tracking.doBLS", False)
424 
425  # Special pass using truth information for pattern recognition, runs in parallel to/instead of the first pass
426  icf.addFlag("Tracking.doPseudoTracking", False)
427  # Special pass using truth information for pattern recognition, removes assumed in-efficencies applied to PseudoTracking
428  icf.addFlag("Tracking.doIdealPseudoTracking", False)
429 
430 
431 
432  # The following flags are only used in ITk configurations
433 
434  # Turn running of ITk FastTracking on and off
435  icf.addFlag("Tracking.doITkFastTracking", False)
436 
437  # Turn running of Conversion second tracking pass on and off
438  icf.addFlag("Tracking.doITkConversion",
439  lambda prevFlags: not prevFlags.Tracking.doITkFastTracking)
440 
441  # Allows TrigFastTrackFinder to be run as an offline algorithm by replacing
442  # SiSPSeededTrackFinder
443  icf.addFlag("Tracking.useITkFTF", False)
444 
445  # GNN for ITk flags
446  from InDetGNNTracking.InDetGNNTrackingConfigFlags import createGNNTrackingConfigFlags
447  icf.join(createGNNTrackingConfigFlags())
448 
449  # enable reco steps
450  icf.addFlag("Tracking.recoChain", [TrackingComponent.AthenaChain])
451 
452 
453 
454  # Tracking pass flags
455 
456  # InDet
457 
458  from TrkConfig.TrackingPassFlags import (
459  createTrackingPassFlags, createHighPileupTrackingPassFlags,
460  createMinBiasTrackingPassFlags, createUPCTrackingPassFlags,
461  createHIPTrackingPassFlags, createR3LargeD0TrackingPassFlags,
462  createLowPtLargeD0TrackingPassFlags,
463  createLowPtTrackingPassFlags, createVeryLowPtTrackingPassFlags,
464  createLowPtRoITrackingPassFlags, createForwardTracksTrackingPassFlags,
465  createBeamGasTrackingPassFlags, createVtxLumiTrackingPassFlags, createVtxLumiHeavyIonTrackingPassFlags,
466  createVtxBeamSpotTrackingPassFlags, createCosmicsTrackingPassFlags,
467  createHeavyIonTrackingPassFlags, createPixelTrackingPassFlags,
468  createDisappearingTrackingPassFlags, createSCTTrackingPassFlags,
469  createTRTTrackingPassFlags, createTRTStandaloneTrackingPassFlags)
470 
471  def primaryPass(flags):
472  if flags.Beam.Type is BeamType.Cosmics:
473  return PrimaryPassConfig.Cosmics
474  elif flags.Reco.EnableHI:
475  if flags.Tracking.doUPC: #For UPC
476  return PrimaryPassConfig.UPC
477  elif flags.Tracking.doHIP: #For HIP
478  return PrimaryPassConfig.HIP
479  else: #For HI (default)
480  return PrimaryPassConfig.HeavyIon
481  elif flags.Tracking.doMinBias:
482  return PrimaryPassConfig.MinBias
483  else:
484  return PrimaryPassConfig.Default
485 
486  icf.addFlag("Tracking.PrimaryPassConfig", lambda prevFlags:
487  primaryPass(prevFlags), type=PrimaryPassConfig)
488 
489  # Set up for first tracking pass, updated for second passes
490  icf.addFlagsCategory("Tracking.MainPass",
491  createTrackingPassFlags, prefix=True)
492  icf.addFlagsCategory("Tracking.HighPileupPass",
493  createHighPileupTrackingPassFlags, prefix=True)
494  icf.addFlagsCategory("Tracking.UPCPass",
495  createUPCTrackingPassFlags, prefix=True)
496  icf.addFlagsCategory("Tracking.HIPPass",
497  createHIPTrackingPassFlags, prefix=True)
498  icf.addFlagsCategory("Tracking.MinBiasPass",
499  createMinBiasTrackingPassFlags, prefix=True)
500  icf.addFlagsCategory("Tracking.R3LargeD0Pass",
501  createR3LargeD0TrackingPassFlags, prefix=True)
502  icf.addFlagsCategory("Tracking.LowPtLargeD0Pass",
503  createLowPtLargeD0TrackingPassFlags, prefix=True)
504  icf.addFlagsCategory("Tracking.LowPtPass",
505  createLowPtTrackingPassFlags, prefix=True)
506  icf.addFlagsCategory("Tracking.VeryLowPtPass",
507  createVeryLowPtTrackingPassFlags, prefix=True)
508  icf.addFlagsCategory("Tracking.LowPtRoIPass",
509  createLowPtRoITrackingPassFlags, prefix=True)
510  icf.addFlagsCategory("Tracking.ForwardPass",
511  createForwardTracksTrackingPassFlags, prefix=True)
512  icf.addFlagsCategory("Tracking.BeamGasPass",
513  createBeamGasTrackingPassFlags, prefix=True)
514  icf.addFlagsCategory("Tracking.VtxLumiPass",
515  createVtxLumiTrackingPassFlags, prefix=True)
516  icf.addFlagsCategory("Tracking.VtxLumiHeavyIonPass",
517  createVtxLumiHeavyIonTrackingPassFlags, prefix=True)
518  icf.addFlagsCategory("Tracking.VtxBeamSpotPass",
519  createVtxBeamSpotTrackingPassFlags, prefix=True)
520  icf.addFlagsCategory("Tracking.CosmicsPass",
521  createCosmicsTrackingPassFlags, prefix=True)
522  icf.addFlagsCategory("Tracking.HeavyIonPass",
523  createHeavyIonTrackingPassFlags, prefix=True)
524  icf.addFlagsCategory("Tracking.PixelPass",
525  createPixelTrackingPassFlags, prefix=True)
526  icf.addFlagsCategory("Tracking.DisappearingPass",
527  createDisappearingTrackingPassFlags, prefix=True)
528  icf.addFlagsCategory("Tracking.SCTPass",
529  createSCTTrackingPassFlags, prefix=True)
530  icf.addFlagsCategory("Tracking.TRTPass",
531  createTRTTrackingPassFlags, prefix=True)
532  icf.addFlagsCategory("Tracking.TRTStandalonePass",
533  createTRTStandaloneTrackingPassFlags, prefix=True)
534 
535  # ITk
536 
537  from TrkConfig.TrackingPassFlags import (
538  createITkTrackingPassFlags, createITkLargeD0TrackingPassFlags,
539  createITkConversionTrackingPassFlags,
540  createITkFastTrackingPassFlags, createITkLargeD0FastTrackingPassFlags,
541  createITkFTFPassFlags, createITkFTFLargeD0PassFlags, createITkLowPtTrackingPassFlags,
542  createITkHeavyIonTrackingPassFlags)
543 
544  def itkPrimaryPass(flags):
545  if flags.Tracking.useITkFTF:
546  return ITkPrimaryPassConfig.FTF
547  elif TrackingComponent.ActsChain in flags.Tracking.recoChain:
548  return ITkPrimaryPassConfig.Acts
549  elif TrackingComponent.ActsLegacyChain in flags.Tracking.recoChain:
550  return ITkPrimaryPassConfig.ActsLegacy
551  elif TrackingComponent.ActsHeavyIon in flags.Tracking.recoChain:
552  return ITkPrimaryPassConfig.ActsHeavyIon
553  elif flags.Tracking.doITkFastTracking:
554  return ITkPrimaryPassConfig.FastTracking
555  elif flags.Reco.EnableHI:
556  return ITkPrimaryPassConfig.HeavyIon
557  else:
558  return ITkPrimaryPassConfig.Default
559 
560  icf.addFlag("Tracking.ITkPrimaryPassConfig", lambda prevFlags:
561  itkPrimaryPass(prevFlags), type=ITkPrimaryPassConfig)
562 
563  icf.addFlagsCategory ("Tracking.ITkMainPass",
564  createITkTrackingPassFlags, prefix=True)
565  icf.addFlagsCategory ("Tracking.ITkLargeD0Pass",
566  createITkLargeD0TrackingPassFlags, prefix=True)
567  icf.addFlagsCategory ("Tracking.ITkConversionPass",
568  createITkConversionTrackingPassFlags, prefix=True)
569  icf.addFlagsCategory ("Tracking.ITkLowPtPass",
570  createITkLowPtTrackingPassFlags, prefix=True)
571  icf.addFlagsCategory ("Tracking.ITkFastPass",
572  createITkFastTrackingPassFlags, prefix=True)
573  icf.addFlagsCategory ("Tracking.ITkLargeD0FastPass",
574  createITkLargeD0FastTrackingPassFlags, prefix=True)
575  icf.addFlagsCategory ("Tracking.ITkFTFPass",
576  createITkFTFPassFlags, prefix=True)
577  icf.addFlagsCategory ("Tracking.ITkFTFLargeD0Pass",
578  createITkFTFLargeD0PassFlags, prefix=True)
579  icf.addFlagsCategory ("Tracking.ITkHeavyIonPass",
580  createITkHeavyIonTrackingPassFlags, prefix=True)
581 
582  # Acts
583  from ActsConfig.ActsTrackingPassFlags import (
584  createActsTrackingPassFlags,
585  createActsLegacyTrackingPassFlags,
586  createActsLargeRadiusTrackingPassFlags,
587  createActsConversionTrackingPassFlags,
588  createActsLowPtTrackingPassFlags,
589  createActsValidateClustersTrackingPassFlags,
590  createActsValidateSpacePointsTrackingPassFlags,
591  createActsValidateSeedsTrackingPassFlags,
592  createActsValidateConversionSeedsTrackingPassFlags,
593  createActsValidateLargeRadiusSeedsTrackingPassFlags,
594  createActsValidateLargeRadiusStandaloneTrackingPassFlags,
595  createActsValidateTracksTrackingPassFlags,
596  createActsValidateAmbiguityResolutionTrackingPassFlags,
597  createActsHeavyIonTrackingPassFlags,
598  createEFValidateF100TrackingPassFlags,
599  createEFValidateF150TrackingPassFlags
600  )
601 
602  icf.addFlagsCategory ("Tracking.ITkActsPass",
603  createActsTrackingPassFlags, prefix=True)
604  icf.addFlagsCategory ("Tracking.ITkActsLegacyPass",
605  createActsLegacyTrackingPassFlags, prefix=True)
606  icf.addFlagsCategory ("Tracking.ITkActsLargeRadiusPass",
607  createActsLargeRadiusTrackingPassFlags, prefix=True)
608  icf.addFlagsCategory ('Tracking.ITkActsConversionPass',
609  createActsConversionTrackingPassFlags, prefix=True)
610  icf.addFlagsCategory ('Tracking.ITkActsLowPtPass',
611  createActsLowPtTrackingPassFlags, prefix=True)
612  icf.addFlagsCategory ("Tracking.ITkActsValidateClustersPass",
613  createActsValidateClustersTrackingPassFlags, prefix=True)
614  icf.addFlagsCategory ("Tracking.ITkActsValidateSpacePointsPass",
615  createActsValidateSpacePointsTrackingPassFlags, prefix=True)
616  icf.addFlagsCategory ("Tracking.ITkActsValidateSeedsPass",
617  createActsValidateSeedsTrackingPassFlags, prefix=True)
618  icf.addFlagsCategory ("Tracking.ITkActsValidateConversionSeedsPass",
619  createActsValidateConversionSeedsTrackingPassFlags, prefix=True)
620  icf.addFlagsCategory ("Tracking.ITkActsValidateLargeRadiusSeedsPass",
621  createActsValidateLargeRadiusSeedsTrackingPassFlags, prefix=True)
622  icf.addFlagsCategory ("Tracking.ITkActsValidateLargeRadiusStandalonePass",
623  createActsValidateLargeRadiusStandaloneTrackingPassFlags, prefix=True)
624  icf.addFlagsCategory ("Tracking.ITkActsValidateTracksPass",
625  createActsValidateTracksTrackingPassFlags, prefix=True)
626  icf.addFlagsCategory ("Tracking.ITkActsValidateAmbiguityResolutionPass",
627  createActsValidateAmbiguityResolutionTrackingPassFlags, prefix=True)
628  icf.addFlagsCategory ("Tracking.ITkActsHeavyIonPass",
629  createActsHeavyIonTrackingPassFlags, prefix=True)
630 
631  # Acts F100 validation pass
632  icf.addFlagsCategory ("Tracking.ITkActsValidateF100Pass",
633  createEFValidateF100TrackingPassFlags, prefix=True)
634 
635  # Acts F150 validation pass
636  icf.addFlagsCategory ("Tracking.ITkActsValidateF150Pass",
637  createEFValidateF150TrackingPassFlags, prefix=True)
638 
639  # GNN
640  from InDetGNNTracking.InDetGNNTrackingFlags import createGNNTrackingPassFlags
641  icf.addFlagsCategory ("Tracking.ITkGNNPass",
642  createGNNTrackingPassFlags, prefix=True)
643  # FPGA
644  from TrkConfig.InDetFPGATrackingFlags import createFPGATrackingPassFlags
645  icf.addFlagsCategory ("Tracking.ITkFPGAPass",
646  createFPGATrackingPassFlags, prefix=True)
647 
648 
649 
650 
651  # Vertexing flags
652  from TrkConfig.VertexFindingFlags import createPriVertexingFlags
653  icf.addFlagsCategory("Tracking.PriVertex",
654  createPriVertexingFlags, prefix=True)
655 
656  # Turn on the primary vertex reconstruction
657  icf.addFlag("Tracking.doVertexFinding",
658  lambda prevFlags: prevFlags.Beam.Type is not BeamType.Cosmics)
659  # Turn on the secondary vertex V0 finder
660  icf.addFlag("Tracking.doV0Finder", False)
661 
662  icf.addFlag('Tracking.TruthClusterSplittingEff', 0.9)
663 
664  # Dump GBTS training data: 0=no dump, 1=standard tracking, 2=LRT
665  icf.addFlag("Tracking.dumpGBTSTrainingData", 0)
666 
667  return icf
python.TrkConfigFlags.createTrackingConfigFlags
def createTrackingConfigFlags()
Definition: TrkConfigFlags.py:71
python.InDetGNNTrackingConfigFlags.createGNNTrackingConfigFlags
def createGNNTrackingConfigFlags()
Definition: InDetGNNTrackingConfigFlags.py:15