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