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 67 of file TrkConfigFlags.py.

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