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