ATLAS Offline Software
TrackingPassFlags.py
Go to the documentation of this file.
1 #Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 
4 import AthenaCommon.SystemOfUnits as Units
5 from AthenaConfiguration.Enums import BeamType, FlagEnum
6 from TrkConfig.TrkConfigFlags import PrimaryPassConfig
7 
8 class RoIStrategy(FlagEnum):
9  LeadTracks = 'LeadTracks'
10  Random = 'Random'
11  File = 'File'
12  TruthHS = 'TruthHS'
13 
14 
18  from AthenaConfiguration.AthConfigFlags import AthConfigFlags
19  icf = AthConfigFlags()
20 
21  icf.addFlag("extension", "" )
22 
23  icf.addFlag("usePrdAssociationTool", False)
24  icf.addFlag("isLowPt", False)
25  icf.addFlag("useTIDE_Ambi", lambda pcf: pcf.Tracking.doTIDE_Ambi)
26  icf.addFlag("useTRTExtension", lambda pcf: pcf.Tracking.doTRTExtension)
27  icf.addFlag("storeSeparateContainer", False)
28  icf.addFlag("doAmbiguityProcessorTrackFit", True)
29 
30  # --- first set kinematic defaults
31  icf.addFlag("minPT", lambda pcf: (pcf.BField.configuredSolenoidFieldScale *
32  (0.4 * Units.GeV if pcf.Tracking.doLowMu else
33  0.5 * Units.GeV)))
34  icf.addFlag("maxPT", 1000.0 * Units.TeV) # off!
35  icf.addFlag("minEta", -1) # off!
36  icf.addFlag("maxEta", 2.7)
37 
38 
39  # --- cluster cuts
40  icf.addFlag("minClusters", lambda pcf:
41  3 if (pcf.Detector.EnablePixel and not pcf.Detector.EnableSCT) else
42  6 if (pcf.Detector.EnableSCT and not pcf.Detector.EnablePixel) else
43  7 if pcf.Tracking.doLowMu else
44  8 )
45 
46  icf.addFlag("minSiNotShared", 6)
47 
48  icf.addFlag("maxShared", 1) # cut is now on number of shared modules
49  icf.addFlag("minPixel", 0)
50  icf.addFlag("maxHoles", lambda pcf: 3 if pcf.Tracking.doLowMu else 2)
51  icf.addFlag("maxPixelHoles", lambda pcf: 2 if pcf.Tracking.doLowMu else 1)
52  icf.addFlag("maxSctHoles", 2)
53  icf.addFlag("maxDoubleHoles", 1)
54 
55  icf.addFlag("maxPrimaryImpact", lambda pcf:
56  10.0 * Units.mm if (pcf.Tracking.doBLS or pcf.Tracking.doLowMu) else
57  5.0 * Units.mm)
58  icf.addFlag("maxEMImpact", 50.0 * Units.mm)
59  icf.addFlag("maxZImpact", lambda pcf:
60  320.0 * Units.mm if pcf.Tracking.doLowMu else
61  200.0 * Units.mm)
62 
63  # --- this is for the TRT-extension
64  icf.addFlag("minTRTonTrk", 9)
65  icf.addFlag("minTRTPrecFrac", 0.3)
66 
67  # --- general pattern cuts for NewTracking
68 
69  # default R cut for SP in SiSpacePointsSeedMaker
70  icf.addFlag("radMax", 600.0 * Units.mm)
71  icf.addFlag("roadWidth", lambda pcf: 20. if pcf.Tracking.doLowMu else 12.)
72  icf.addFlag("nHolesMax", lambda pcf: 3 if pcf.Tracking.doLowMu else 2)
73  icf.addFlag("nHolesGapMax", lambda pcf: 3 if pcf.Tracking.doLowMu else 2)
74  icf.addFlag("Xi2max", lambda pcf: 15. if pcf.Tracking.doLowMu else 9.)
75  icf.addFlag("Xi2maxNoAdd", lambda pcf: 35. if pcf.Tracking.doLowMu else 25.)
76  icf.addFlag("nWeightedClustersMin", 6)
77 
78  # --- seeding
79  icf.addFlag("useSeedFilter", True)
80  icf.addFlag("maxTracksPerSharedPRD", 0)
81  icf.addFlag("maxdImpactPPSSeeds", lambda pcf: 1.7 if pcf.Tracking.doLowMu else 2.)
82  icf.addFlag("maxdImpactSSSSeeds", lambda pcf:
83  1000. * Units.mm if pcf.Tracking.doLowMu else
84  10. * Units.mm if pcf.Tracking.doBLS else
85  5. * Units.mm)
86  icf.addFlag("maxSeedsPerSP_Pixels", lambda pcf: 5 if pcf.Tracking.doLowMu else 1)
87  icf.addFlag("maxSeedsPerSP_Strips", 5)
88  icf.addFlag("keepAllConfirmedPixelSeeds", lambda pcf: not pcf.Tracking.doLowMu)
89  icf.addFlag("keepAllConfirmedStripSeeds", False)
90 
91  # --- min pt cut for brem
92  icf.addFlag("doBremRecoverySi", lambda pcf: pcf.Tracking.doBremRecovery)
93  icf.addFlag("minPTBrem", lambda pcf: (
94  1. * Units.GeV * pcf.BField.configuredSolenoidFieldScale))
95 
96  # --- Z Boundary Seeding
97  icf.addFlag("doZBoundary", lambda pcf:
98  not (pcf.Beam.Type is BeamType.Cosmics or pcf.Tracking.doLowMu))
99 
100  icf.addFlag("usePixel" , lambda pcf : pcf.Detector.EnablePixel )
101  icf.addFlag("useTRT" , lambda pcf : pcf.Detector.EnableTRT )
102  icf.addFlag("useSCT" , lambda pcf : pcf.Detector.EnableSCT )
103  icf.addFlag("usePixelSeeding" , lambda pcf : pcf.Detector.EnablePixel )
104  icf.addFlag("useSCTSeeding" , lambda pcf : pcf.Detector.EnableSCT )
105 
106  # --- Pixel and TRT particle ID during particle creation
107  icf.addFlag("RunPixelPID", True)
108  icf.addFlag("RunTRTPID", True)
109 
110  # --- Flags for detailed information.
111  # Ignored for Primary Pass (always active);
112  # Enable for other passes with dedicated output container, if desired.
113  icf.addFlag("storeTrackSeeds", False)
114  icf.addFlag("storeSiSPSeededTracks", False)
115 
116  return icf
117 
118 
119 
121 
122  # Set ITk flags from scratch to avoid relying on InDet flags through lambda functions
123  from AthenaConfiguration.AthConfigFlags import AthConfigFlags
124  icf = AthConfigFlags()
125 
126  icf.addFlag("extension", "" )
127 
128  icf.addFlag("useITkPixel" , lambda pcf : pcf.Detector.EnableITkPixel )
129  icf.addFlag("useITkStrip" , lambda pcf : pcf.Detector.EnableITkStrip )
130  icf.addFlag("useITkPixelSeeding" , True )
131  icf.addFlag("useITkStripSeeding" , True )
132 
133  icf.addFlag("usePrdAssociationTool" , False)
134  icf.addFlag("storeSeparateContainer" , False)
135  icf.addFlag("doZBoundary" , True)
136  icf.addFlag("doAmbiguityProcessorTrackFit", True)
137 
138  icf.addFlag("useTIDE_Ambi", lambda pcf: pcf.Tracking.doTIDE_Ambi)
139 
140  # Maximum bin set to 9999 instead of four to prevent out of bounds lookups
141  icf.addFlag("etaBins" , [-1.0, 2.0, 2.6, 9999.0])
142  icf.addFlag("maxEta" , 4.0)
143  icf.addFlag("minPT" , lambda pcf :
144  [0.2 * Units.GeV * pcf.BField.configuredSolenoidFieldScale]
145  if pcf.Tracking.doLowMu else
146  [0.9 * Units.GeV * pcf.BField.configuredSolenoidFieldScale,
147  0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale,
148  0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale])
149 
150  icf.addFlag("minPTSeed" , lambda pcf : (
151  pcf.BField.configuredSolenoidFieldScale *
152  (0.2 * Units.GeV if pcf.Tracking.doLowMu
153  else 0.9 * Units.GeV)))
154  icf.addFlag("maxPrimaryImpactSeed" , 2.0 * Units.mm)
155  icf.addFlag("maxZImpactSeed" , 200.0 * Units.mm)
156  icf.addFlag("useSeedFilter" , True)
157 
158  # --- cluster cuts
159  icf.addFlag("minClusters" , lambda pcf :
160  [6, 5, 4] if pcf.Tracking.doLowMu else [9, 8, 7])
161  icf.addFlag("minSiNotShared" , lambda pcf :
162  [6, 5, 4] if pcf.Tracking.doLowMu else [7, 6, 5])
163  icf.addFlag("maxShared" , [2])
164  icf.addFlag("minPixel" , [1])
165  icf.addFlag("maxHoles" , [2])
166  icf.addFlag("maxPixelHoles" , [2])
167  icf.addFlag("maxSctHoles" , [2])
168  icf.addFlag("maxDoubleHoles" , [1])
169  icf.addFlag("maxPrimaryImpact" , [2.0 * Units.mm, 2.0 * Units.mm, 10.0 * Units.mm])
170  icf.addFlag("maxEMImpact" , [50.0 * Units.mm])
171  icf.addFlag("maxZImpact" , [200.0 * Units.mm])
172 
173  # --- general pattern cuts for NewTracking
174  icf.addFlag("roadWidth" , 20.)
175  icf.addFlag("nHolesMax" , icf.maxHoles)
176  icf.addFlag("nHolesGapMax" , icf.maxHoles)
177 
178  icf.addFlag("Xi2max" , [9.0])
179  icf.addFlag("Xi2maxNoAdd" , [25.0])
180  icf.addFlag("nWeightedClustersMin" , [6])
181 
182  # --- seeding
183  icf.addFlag("maxdImpactSSSSeeds" , [20.0 * Units.mm])
184  icf.addFlag("radMax" , 1100. * Units.mm)
185 
186  # --- min pt cut for brem
187  icf.addFlag("doBremRecoverySi", lambda pcf: pcf.Tracking.doBremRecovery)
188  icf.addFlag("minPTBrem", lambda pcf: (
189  [1. * Units.GeV * pcf.BField.configuredSolenoidFieldScale]))
190 
191  # -- use of calo information
192  icf.addFlag("doCaloSeededBremSi", lambda pcf: pcf.Tracking.doCaloSeededBrem)
193  icf.addFlag("doCaloSeededAmbiSi", lambda pcf: pcf.Tracking.doCaloSeededAmbi)
194 
195  # --- handle ACTS workflow coexistence
196  # Athena components
197  icf.addFlag("doAthenaCluster", True)
198  icf.addFlag("doAthenaSpacePoint", True)
199  icf.addFlag("doAthenaSeed", True)
200  icf.addFlag("doAthenaTrack", True)
201  icf.addFlag("doAthenaAmbiguityResolution", True)
202  # Acts components
203  icf.addFlag("doActsCluster", False)
204  icf.addFlag("doActsSpacePoint", False)
205  icf.addFlag("doActsSeed", False)
206  icf.addFlag("doActsTrack", False)
207  icf.addFlag("doActsAmbiguityResolution", False)
208  # Athena -> Acts EDM converters
209  icf.addFlag("doAthenaToActsCluster", False)
210  icf.addFlag("doAthenaToActsSpacePoint", False)
211  icf.addFlag("doAthenaToActsTrack", False)
212  # Acts -> Athena EDM converters
213  icf.addFlag("doActsToAthenaCluster", False)
214  icf.addFlag("doActsToAthenaSpacePoint", False)
215  icf.addFlag("doActsToAthenaSeed", False)
216  icf.addFlag("doActsToAthenaTrack", False)
217  icf.addFlag("doActsToAthenaResolvedTrack", False)
218 
219  # --- flags for GNN tracking
220  icf.addFlag("doGNNTrack", False)
221 
222  # ---flag for FPGA tracking
223  icf.addFlag("doFPGASpacePoint", False)
224  icf.addFlag("doFPGACluster", False)
225  icf.addFlag("doFPGATrackSim", False)
226 
227  # --- Flags for detailed information.
228  # Ignored for Primary Pass (always active);
229  # Enable for other passes with dedicated output container, if desired.
230  icf.addFlag("storeTrackSeeds", False)
231  icf.addFlag("storeSiSPSeededTracks", False)
232 
233  # --- flags for ACTS tracking
234  icf.addFlag("isSecondaryPass", False)
235 
236  return icf
237 
238 
239 
240 
243  icf.extension = "HeavyIon"
244  icf.maxPrimaryImpact = [2.0 * Units.mm]
245  icf.minPT = lambda pcf : (
246  [0.4 *Units.GeV * pcf.BField.configuredSolenoidFieldScale])
247  icf.minPTSeed = lambda pcf : (
248  0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
249  icf.minClusters = [6]
250  icf.minSiNotShared = [6]
251  icf.Xi2max = [6.]
252  icf.Xi2maxNoAdd = [9.]
253  icf.maxPixelHoles = [1]
254  icf.maxSctHoles = [1]
255  icf.maxDoubleHoles = [0]
256  icf.doBremRecoverySi = False
257  return icf
258 
259 
261 
263 
264  icf.minPT = lambda pcf : (
265  [0.9 * Units.GeV * pcf.BField.configuredSolenoidFieldScale,
266  0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale,
267  0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale])
268  icf.maxZImpact = [150.0 * Units.mm]
269  icf.minPixel = [3]
270  icf.maxHoles = [1]
271  icf.nHolesMax = icf.maxHoles
272  icf.nHolesGapMax = [1]
273  icf.minPTSeed = lambda pcf: (
274  0.9 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
275  icf.maxZImpactSeed = 150.0 * Units.mm
276  icf.useITkStripSeeding = False
277 
278  return icf
279 
280 
282 
284 
285  icf.addFlag("doHitDV" , False)
286  icf.addFlag("doDisappearingTrk" , False)
287  icf.addFlag("useTrigTrackFollowing", False)
288  icf.addFlag("useTrigRoadPredictor", False)
289  icf.addFlag("useTracklets", False)
290  icf.useSeedFilter = False
291  icf.minPT = lambda pcf : (
292  [0.9 * Units.GeV * pcf.BField.configuredSolenoidFieldScale,
293  0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale,
294  0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale])
295  icf.minPTSeed = lambda pcf : (
296  0.9 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
297 
298  return icf
299 
302  icf.addFlag("doHitDV" , False)
303  icf.addFlag("doDisappearingTrk" , False)
304  icf.addFlag("useTrigTrackFollowing", False)
305  icf.addFlag("useTrigRoadPredictor", False)
306  icf.addFlag("useTracklets", False)
307  icf.useSeedFilter = False
308  icf.minPT = lambda pcf : (
309  [1.0 * Units.GeV * pcf.BField.configuredSolenoidFieldScale])
310 
311  icf.maxPrimaryImpact = [400.0 * Units.mm]
312  icf.maxPrimaryImpactSeed = 400.0 * Units.mm
313  icf.maxdImpactSSSSeeds = [400.0 * Units.mm]
314 
315 
316  return icf
317 
318 
319 
321 
323  icf.extension = "LargeD0"
324  icf.usePrdAssociationTool = True
325  icf.storeSeparateContainer = lambda pcf : pcf.Tracking.storeSeparateLargeD0Container
326 
327  icf.minPT = lambda pcf : (
328  [1000 * Units.MeV * pcf.BField.configuredSolenoidFieldScale])
329  icf.maxEta = 4.0
330  icf.etaBins = [-1.0, 4.0]
331  icf.maxPrimaryImpact = [300 * Units.mm]
332  icf.maxZImpact = [500 * Units.mm]
333  icf.minClusters = [8]
334  icf.minSiNotShared = [6]
335  icf.maxShared = [2]
336  icf.minPixel = [0]
337  icf.maxHoles = [1]
338  icf.maxPixelHoles = [1]
339  icf.maxSctHoles = [1]
340  icf.maxDoubleHoles = [0]
341 
342  icf.maxZImpactSeed = 500.0 * Units.mm
343  icf.maxPrimaryImpactSeed = 300.0 * Units.mm
344  icf.minPTSeed = lambda pcf : (
345  1000 * Units.MeV * pcf.BField.configuredSolenoidFieldScale)
346 
347  icf.radMax = 1100. * Units.mm
348  icf.nHolesMax = icf.maxHoles
349  icf.nHolesGapMax = icf.maxHoles
350  icf.roadWidth = 5
351 
352  # --- seeding
353  icf.useITkPixelSeeding = False
354  icf.maxdImpactSSSSeeds = [300.0 * Units.mm]
355 
356  icf.doBremRecoverySi = False
357 
358  icf.Xi2max = [9.0]
359  icf.Xi2maxNoAdd = [25.0]
360  icf.nWeightedClustersMin = [6]
361 
362  return icf
363 
365 
367 
368  icf.useITkPixelSeeding = False
369  icf.useITkStripSeeding = True
370 
371  icf.maxEta = 2.4
372  icf.etaBins = [-1.0, 2.4]
373  icf.minPT = lambda pcf : (
374  [5.0 * Units.GeV * pcf.BField.configuredSolenoidFieldScale])
375  icf.minPTSeed = lambda pcf : (
376  5.0 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
377  icf.nWeightedClustersMin = [8]
378  icf.maxPrimaryImpact = [150 * Units.mm]
379  icf.maxPrimaryImpactSeed = 150. * Units.mm
380  icf.maxdImpactSSSSeeds = [150.0 * Units.mm]
381  icf.maxZImpact = [200 * Units.mm]
382  icf.maxZImpactSeed = 200. * Units.mm
383  icf.radMax = 400. * Units.mm
384 
385  return icf
386 
387 
389 
391  icf.extension = "LowPt"
392  icf.minPT = lambda pcf : (
393  [0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale])
394  icf.minPTSeed = lambda pcf : (
395  0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
396  icf.doBremRecoverySi = False
397 
398  return icf
399 
400 
403  icf.extension = "HighPileup"
404  icf.minPT = lambda pcf : (
405  0.900 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
406  icf.minClusters = 9
407  icf.maxPixelHoles = 0
408  icf.doBremRecoverySi = False
409 
410  return icf
411 
412 
415  icf.extension = "MinBias"
416  icf.minPT = lambda pcf: (
417  0.1 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
418  icf.maxPrimaryImpact = 10. * Units.mm
419  icf.maxZImpact = 250. * Units.mm
420  icf.minClusters = 5
421  icf.maxdImpactSSSSeeds = 20.0 * Units.mm # apply cut on SSS seeds
422  icf.roadWidth = 20.
423  icf.doBremRecoverySi = False
424  icf.maxSeedsPerSP_Pixels = 5
425  icf.keepAllConfirmedPixelSeeds = False
426 
427  return icf
428 
429 
432  icf.extension = "UPC"
433  # --- min pt cut for brem
434  icf.minPTBrem = lambda pcf: (
435  0.75 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
436  # MinBias turns off Brem Recovery, turn it on here
437  icf.doBremRecoverySi = lambda pcf: pcf.Tracking.doBremRecovery
438  return icf
439 
440 
443  icf.extension = "HIP"
444  return icf
445 
446 
447 
450  icf.extension = "LowPtRoI"
451  icf.usePrdAssociationTool = True
452  icf.storeSeparateContainer = True
453  icf.maxPT = lambda pcf: (
454  0.850 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
455  icf.minPT = lambda pcf: (
456  0.050 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
457  icf.minClusters = 5
458  icf.minSiNotShared = 4
459  icf.maxShared = 1 # cut is now on number of shared modules
460  icf.minPixel = 2
461  icf.maxHoles = 2
462  icf.maxPixelHoles = 1
463  icf.maxSctHoles = 2
464  icf.maxDoubleHoles = 1
465  icf.radMax = 600. * Units.mm
466  icf.nHolesMax = icf.maxHoles
467  icf.nHolesGapMax = icf.maxHoles # not as tight as 2*maxDoubleHoles
468  icf.doBremRecoverySi = False
469  # Add custom flags valid for this pass only
470  icf.addFlag("z0WindowRoI", 30.0) # mm
471  icf.addFlag("doRandomSpot", False)
472  icf.addFlag("RoIStrategy", RoIStrategy.LeadTracks)
473  icf.addFlag("inputLowPtRoIfile","")
474 
475  return icf
476 
477 
478 
481  icf.extension = "R3LargeD0"
482  icf.usePrdAssociationTool = True
483  icf.usePixelSeeding = False
484  icf.storeSeparateContainer = lambda pcf : pcf.Tracking.storeSeparateLargeD0Container
485  icf.maxPT = lambda pcf : (
486  1.0 * Units.TeV * pcf.BField.configuredSolenoidFieldScale)
487  icf.minPT = lambda pcf : (
488  1.0 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
489  icf.maxEta = 3
490  icf.maxPrimaryImpact = 300.0 * Units.mm
491  icf.maxEMImpact = 300 * Units.mm
492  icf.maxZImpact = 500 * Units.mm
493  icf.minClusters = 8
494  icf.minSiNotShared = 6
495  icf.maxShared = 2 # cut is now on number of shared modules
496  icf.minPixel = 0
497  icf.maxHoles = 2
498  icf.maxPixelHoles = 1
499  icf.maxSctHoles = 1
500  icf.maxDoubleHoles = 0
501  icf.radMax = 600. * Units.mm
502  icf.nHolesMax = icf.maxHoles
503  icf.nHolesGapMax = 1
504  icf.maxTracksPerSharedPRD = 2
505  icf.Xi2max = 9.0
506  icf.Xi2maxNoAdd = 25.0
507  icf.roadWidth = 5.
508  icf.nWeightedClustersMin = 8
509  icf.maxdImpactSSSSeeds = 300.0
510  icf.doZBoundary = True
511  icf.keepAllConfirmedStripSeeds = True
512  icf.maxSeedsPerSP_Strips = 1
513  icf.doBremRecoverySi = False
514 
515  icf.RunPixelPID = False
516  icf.RunTRTPID = False
517 
518  return icf
519 
520 
523  icf.extension = "LowPtLargeD0"
524  icf.usePrdAssociationTool = True
525  icf.storeSeparateContainer = lambda pcf : pcf.Tracking.storeSeparateLargeD0Container
526  icf.maxPT = lambda pcf: (
527  1.0 * Units.TeV * pcf.BField.configuredSolenoidFieldScale)
528  icf.minPT = lambda pcf: (
529  100 * Units.MeV * pcf.BField.configuredSolenoidFieldScale)
530  icf.maxEta = 5
531  icf.maxPrimaryImpact = 300.0 * Units.mm
532  icf.maxZImpact = 1500.0 * Units.mm
533  icf.minClusters = 5
534  icf.minSiNotShared = 5
535  icf.maxShared = 2 # cut is now on number of shared modules
536  icf.minPixel = 0
537  icf.maxHoles = 2
538  icf.maxPixelHoles = 1
539  icf.maxSctHoles = 2
540  icf.maxDoubleHoles = 1
541  icf.radMax = 600. * Units.mm
542  icf.nHolesMax = icf.maxHoles
543  icf.nHolesGapMax = icf.maxHoles
544  icf.maxTracksPerSharedPRD = 2
545  icf.doBremRecoverySi = False
546 
547  icf.RunPixelPID = False
548  icf.RunTRTPID = False
549 
550  return icf
551 
552 
555  icf.extension = "LowPt"
556  icf.usePrdAssociationTool = True
557  icf.isLowPt = True
558  icf.maxPT = lambda pcf: (
559  pcf.BField.configuredSolenoidFieldScale *
560  (1e6 if pcf.Tracking.doMinBias else
561  pcf.Tracking.MainPass.minPT + 0.3) * Units.GeV)
562  icf.minPT = lambda pcf: (
563  0.05 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
564  icf.minClusters = 5
565  icf.minSiNotShared = 4
566  icf.maxShared = 1 # cut is now on number of shared modules
567  icf.minPixel = 2 # At least one pixel hit for low-pt (assoc. seeded on pixels!)
568  icf.maxHoles = 2
569  icf.maxPixelHoles = 1
570  icf.maxSctHoles = 2
571  icf.maxDoubleHoles = 1
572  icf.radMax = 600. * Units.mm
573  icf.nHolesMax = icf.maxHoles
574  icf.nHolesGapMax = icf.maxHoles # not as tight as 2*maxDoubleHoles
575  icf.maxPrimaryImpact = lambda pcf: (
576  100. * Units.mm if pcf.Tracking.doMinBias else 10. * Units.mm)
577  icf.doBremRecoverySi = False
578 
579  return icf
580 
581 
584  icf.extension = "Conversion"
585  icf.usePrdAssociationTool = True
586 
587  icf.etaBins = [-1.0,4.0]
588  icf.minPT = lambda pcf: (
589  [0.9 * Units.GeV * pcf.BField.configuredSolenoidFieldScale])
590  icf.maxPrimaryImpact = [10.0 * Units.mm]
591  icf.maxZImpact = [150.0 * Units.mm]
592  icf.minClusters = [6]
593  icf.minSiNotShared = [6]
594  icf.maxShared = [0]
595  icf.minPixel = [0]
596  icf.maxHoles = [0]
597  icf.maxPixelHoles = [1]
598  icf.maxSctHoles = [2]
599  icf.maxDoubleHoles = [1]
600 
601  icf.nHolesMax = icf.maxHoles
602  icf.nHolesGapMax = icf.maxHoles
603  icf.nWeightedClustersMin = [6]
604  icf.maxdImpactSSSSeeds = [20.0 * Units.mm]
605  icf.radMax = 1100. * Units.mm
606  icf.doZBoundary = False
607 
608  icf.Xi2max = [9.0]
609  icf.Xi2maxNoAdd = [25.0]
610  icf.doBremRecoverySi = True
611 
612  return icf
613 
614 
616  icf = createTrackingPassFlags() #TODO consider using createLowPtTrackingPassFlags as a base here
617  icf.extension = "VeryLowPt"
618  icf.usePrdAssociationTool = True
619  icf.isLowPt = True
620  icf.useTRTExtension = False
621  icf.maxPT = lambda pcf : (
622  pcf.BField.configuredSolenoidFieldScale *
623  (1e6 if pcf.Tracking.doMinBias else
624  pcf.Tracking.MainPass.minPT + 0.3) * Units.GeV)
625  icf.minPT = lambda pcf : (
626  0.050 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
627  icf.minClusters = 3
628  icf.minSiNotShared = 3
629  icf.maxShared = 1 # cut is now on number of shared modules
630  icf.minPixel = 3 # At least one pixel hit for low-pt (assoc. seeded on pixels!)
631  icf.maxHoles = 1
632  icf.maxPixelHoles = 1
633  icf.maxSctHoles = 1
634  icf.maxDoubleHoles = 0
635  icf.nHolesMax = 1
636  icf.nHolesGapMax = 1 # not as tight as 2*maxDoubleHoles
637  icf.radMax = 600. * Units.mm # restrivt to pixels
638  icf.doBremRecoverySi = False
639 
640  return icf
641 
642 
645  icf.extension = "Forward"
646  icf.usePrdAssociationTool = True
647  icf.useTIDE_Ambi = False
648  icf.useTRTExtension = False
649  icf.storeSeparateContainer = True
650  icf.minEta = 2.4 # restrict to minimal eta
651  icf.maxEta = 2.7
652  icf.minPT = lambda pcf: (
653  2 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
654  icf.minClusters = 3
655  icf.minSiNotShared = 3
656  icf.maxShared = 1
657  icf.minPixel = 3
658  icf.maxHoles = 1
659  icf.maxPixelHoles = 1
660  icf.maxSctHoles = 1
661  icf.maxDoubleHoles = 0
662  icf.nHolesMax = icf.maxHoles
663  icf.nHolesGapMax = icf.maxHoles
664  icf.radMax = 600. * Units.mm
665  icf.useTRT = False # no TRT for forward tracks
666  icf.doBremRecoverySi = False
667  icf.doZBoundary = False
668 
669  icf.RunPixelPID = False
670  icf.RunTRTPID = False
671 
672  return icf
673 
674 
677  icf.extension = "BeamGas"
678  icf.usePrdAssociationTool = True
679  icf.minPT = lambda pcf: (
680  0.5 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
681  icf.maxPrimaryImpact = 300. * Units.mm
682  icf.maxZImpact = 2000. * Units.mm
683  icf.minClusters = 6
684  icf.maxHoles = 3
685  icf.maxPixelHoles = 3
686  icf.maxSctHoles = 3
687  icf.maxDoubleHoles = 1
688  icf.nHolesMax = 3
689  icf.nHolesGapMax = 3 # not as tight as 2*maxDoubleHoles
690  icf.doBremRecoverySi = False
691 
692  return icf
693 
694 
697  icf.extension = "VtxLumi"
698  icf.minPT = lambda pcf: (
699  0.9 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
700  icf.minClusters = 7
701  icf.maxPixelHoles = 1
702  icf.radMax = 600. * Units.mm
703  icf.nHolesMax = 2
704  icf.nHolesGapMax = 1
705  icf.useTRT = False
706  icf.doBremRecoverySi = False
707 
708  return icf
709 
710 
713  icf.extension = "VtxLumiHeavyIon"
714  icf.minPT = lambda pcf: (
715  0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
716  icf.maxPrimaryImpact = 10. * Units.mm
717  icf.maxZImpact = 250.0 * Units.mm
718  icf.minClusters = 7
719  icf.maxPixelHoles = 1
720  icf.radMax = 600. * Units.mm
721  icf.nHolesMax = 2
722  icf.nHolesGapMax = 1
723  icf.maxdImpactSSSSeeds = 20.
724  icf.roadWidth = 20.
725  icf.keepAllConfirmedPixelSeeds = False
726  icf.maxSeedsPerSP_Pixels = 5
727  icf.useTRT = False
728  icf.doBremRecoverySi = False
729 
730  return icf
731 
732 
735  icf.extension = "VtxBeamSpot"
736  icf.minPT = lambda pcf: (
737  0.9 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
738  icf.minClusters = 9
739  icf.maxPixelHoles = 0
740  icf.radMax = 320. * Units.mm
741  icf.nHolesMax = 2
742  icf.nHolesGapMax = 1
743  icf.useTRT = False
744  icf.doBremRecoverySi = False
745 
746  return icf
747 
748 
751  icf.extension = "Cosmics"
752  icf.minPT = lambda pcf: (
753  0.5 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
754  icf.maxPrimaryImpact = 1000. * Units.mm
755  icf.maxZImpact = 10000. * Units.mm
756  icf.minClusters = 4
757  icf.minSiNotShared = 4
758  icf.maxHoles = 3
759  icf.maxPixelHoles = 3
760  icf.maxSctHoles = 3
761  icf.maxDoubleHoles = 1
762  icf.minTRTonTrk = 15
763  icf.roadWidth = 60.
764  icf.Xi2max = 60.
765  icf.Xi2maxNoAdd = 100.
766  icf.nWeightedClustersMin = 8
767  icf.nHolesMax = 3
768  icf.nHolesGapMax = 3 # not as tight as 2*maxDoubleHoles
769  icf.maxdImpactSSSSeeds = 20. * Units.mm
770  icf.doBremRecoverySi = False
771  icf.doZBoundary = False
772  icf.maxSeedsPerSP_Pixels = 5
773  icf.keepAllConfirmedPixelSeeds = False
774 
775  return icf
776 
777 
780  icf.extension = "HeavyIon"
781  icf.maxPrimaryImpact = 10. * Units.mm
782  icf.maxZImpact = 200. * Units.mm
783  icf.minClusters = 9
784  icf.minSiNotShared = 7
785  icf.maxShared = 2 # was 1, cut is now on number of shared modules
786 
787  icf.nHolesMax = 0
788  icf.nHolesGapMax = 0
789  icf.Xi2max = 6.
790  icf.Xi2maxNoAdd = 10.
791 
792  icf.minPT = lambda pcf: (
793  0.5 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
794 
795  icf.maxdImpactSSSSeeds = 20. * Units.mm
796  icf.maxdImpactPPSSeeds = 1.7
797 
798  icf.maxHoles = 2
799  icf.maxPixelHoles = 1
800  icf.maxSctHoles = 1
801  icf.maxDoubleHoles = 0
802  icf.Xi2max = 9.
803  icf.Xi2maxNoAdd = 25.
804  icf.radMax = 600. * Units.mm # restrict to pixels + first SCT layer
805  icf.roadWidth = 20.
806  icf.useTRT = False
807  icf.doBremRecoverySi = False
808  icf.doZBoundary = False
809  icf.maxSeedsPerSP_Pixels = 5
810  icf.keepAllConfirmedPixelSeeds = False
811 
812  return icf
813 
814 
817  icf.extension = "Pixel"
818  icf.isLowPt = lambda pcf : pcf.Tracking.doMinBias
819 
820  def _minPt( pcf ):
821  if pcf.Beam.Type is BeamType.Cosmics:
822  return 0.5 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
823  if pcf.Tracking.PrimaryPassConfig is PrimaryPassConfig.UPC:
824  return 0.05 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
825  if pcf.Tracking.PrimaryPassConfig is PrimaryPassConfig.HIP:
826  return 0.05 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
827  if pcf.Tracking.doMinBias:
828  return 0.05 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
829  return 0.1 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
830 
831  icf.minPT = _minPt
832  icf.minClusters = 3
833 
834  def _pick( default, hion, cosmics):
835  def _internal( pcf ):
836  if pcf.Tracking.PrimaryPassConfig is PrimaryPassConfig.HeavyIon:
837  return hion
838  if pcf.Beam.Type is BeamType.Cosmics:
839  return cosmics
840  return default
841  return _internal
842 
843  icf.maxHoles = _pick( default = 1, hion = 0, cosmics = 3 )
844  icf.maxPixelHoles = _pick( default = 1, hion = 0, cosmics = 3 )
845  icf.maxSctHoles = 0
846  icf.maxDoubleHoles = 0
847  icf.minSiNotShared = 3
848  icf.maxShared = 0
849  icf.nHolesMax = _pick( default = 1, hion = 0, cosmics = 3 )
850  icf.nHolesGapMax = _pick( default = 1, hion = 0, cosmics = 3 )
851  icf.useSCT = False
852  icf.useSCTSeeding = False
853  icf.useTRT = False
854  icf.maxPrimaryImpact = lambda pcf: (
855  1000. * Units.mm if pcf.Beam.Type is BeamType.Cosmics else
856  10. * Units.mm if pcf.Tracking.doUPC else
857  5. * Units.mm)
858  icf.roadWidth = lambda pcf: (
859  60.0 if pcf.Beam.Type is BeamType.Cosmics else
860  12.0)
861  icf.maxZImpact = lambda pcf: (
862  10000. * Units.mm if pcf.Beam.Type is BeamType.Cosmics else
863  320. * Units.mm if pcf.Tracking.doLowMu else
864  250. * Units.mm if pcf.Tracking.doMinBias else
865  200. * Units.mm)
866  icf.Xi2max = lambda pcf: (
867  60. if pcf.Beam.Type is BeamType.Cosmics else
868  15. if pcf.Tracking.doLowMu else
869  9.)
870  icf.Xi2maxNoAdd = lambda pcf: (
871  100.0 if pcf.Beam.Type is BeamType.Cosmics else
872  35. if pcf.Tracking.doLowMu else
873  25.)
874  icf.nWeightedClustersMin = 6
875  icf.doBremRecoverySi = False
876 
877  icf.RunPixelPID = lambda pcf: (
878  pcf.Tracking.PrimaryPassConfig is PrimaryPassConfig.UPC)
879  icf.RunTRTPID = False
880  return icf
881 
882 
885  icf.extension = "Disappearing"
886  icf.usePrdAssociationTool = True
887  icf.storeSeparateContainer = True
888  icf.minPT = lambda pcf: (
889  5 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
890  icf.minClusters = 4
891  icf.maxHoles = 0
892  icf.maxPixelHoles = 0
893  icf.maxSctHoles = 0
894  icf.maxDoubleHoles = 0
895  icf.minSiNotShared = 3
896  icf.maxShared = 0
897  icf.nHolesMax = 0
898  icf.nHolesGapMax = 0
899  icf.useSCT = True
900  icf.useTRT = True
901  icf.useSCTSeeding = False
902  icf.maxEta = 2.2
903  icf.doBremRecoverySi = False
904  def MainPassFlags(pcf):
905  return pcf.Tracking.__getattr__(pcf.Tracking.PrimaryPassConfig.value+'Pass')
906  icf.maxPrimaryImpact = lambda pcf: MainPassFlags(pcf).maxPrimaryImpact
907  icf.maxZImpact = lambda pcf: MainPassFlags(pcf).maxZImpact
908  icf.roadWidth = lambda pcf: MainPassFlags(pcf).roadWidth
909  return icf
910 
911 
914  icf.extension = "SCT"
915  icf.minClusters = 7
916  icf.maxDoubleHoles = 1
917  icf.minSiNotShared = 5
918  icf.usePixel = False
919  icf.usePixelSeeding = False
920  icf.useTRT = False
921 
922  def _minpt( pcf ):
923  if pcf.Beam.Type is BeamType.Cosmics:
924  return 0.5 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
925  if pcf.Tracking.doMinBias:
926  return 0.1 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
927  return 0.1 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
928 
929  icf.minPT = _minpt
930 
931  icf.maxPrimaryImpact = lambda pcf: (
932  1000. * Units.mm if pcf.Beam.Type is BeamType.Cosmics else
933  10. * Units.mm if pcf.Tracking.doLowMu else
934  5. * Units.mm)
935  icf.maxZImpact = lambda pcf: (
936  10000. * Units.mm if pcf.Beam.Type is BeamType.Cosmics else
937  320. * Units.mm if pcf.Tracking.doLowMu else
938  200.0 * Units.mm)
939 
940  icf.maxHoles = lambda pcf: 3 if pcf.Beam.Type is BeamType.Cosmics else 2
941  icf.nHolesMax = lambda pcf: 3 if pcf.Beam.Type is BeamType.Cosmics else 2
942  icf.nHolesGapMax = lambda pcf: 3 if pcf.Beam.Type is BeamType.Cosmics else 2
943  icf.maxPixelHoles = lambda pcf: 0 if pcf.Beam.Type is BeamType.Cosmics else 0
944  icf.maxSctHoles = lambda pcf: 3 if pcf.Beam.Type is BeamType.Cosmics else 2
945  icf.maxShared = 0
946  icf.roadWidth = lambda pcf: (
947  60. if pcf.Beam.Type is BeamType.Cosmics else
948  20. if pcf.Tracking.doLowMu else
949  12.)
950  icf.Xi2max = lambda pcf: (
951  60. if pcf.Beam.Type is BeamType.Cosmics else
952  15. if pcf.Tracking.doLowMu else
953  9.)
954  icf.Xi2maxNoAdd = lambda pcf: (
955  100.0 if pcf.Beam.Type is BeamType.Cosmics else
956  35. if pcf.Tracking.doLowMu else
957  25.)
958  icf.nWeightedClustersMin = lambda pcf: 4 if pcf.Beam.Type is BeamType.Cosmics else 6
959  icf.minClusters = lambda pcf: (
960  4 if pcf.Beam.Type is BeamType.Cosmics else
961  7 if pcf.Tracking.doLowMu else
962  8)
963  icf.minSiNotShared = lambda pcf: 4 if pcf.Beam.Type is BeamType.Cosmics else 5
964  icf.doBremRecoverySi = False
965 
966  icf.RunPixelPID = False
967  icf.RunTRTPID = False
968  return icf
969 
970 
973  icf.extension = "TRT"
974  icf.useTIDE_Ambi = False
975  icf.usePrdAssociationTool = True
976  icf.minPT = lambda pcf: (
977  0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
978  icf.doBremRecoverySi = False
979 
980  icf.RunPixelPID = False
981  icf.RunTRTPID = False
982  return icf
983 
984 
985 
988  icf.extension = "TRTStandalone"
989  icf.useTIDE_Ambi = False
990  icf.usePrdAssociationTool = True
991  icf.doBremRecoverySi = False
992 
993  return icf
994 
995 
996 
998  print()
999  print("************************************************************************")
1000 
1001  print("******************** Tracking reconstruction Config ********************")
1002  print(" Primary Config is",flags.Tracking[flags.Tracking.PrimaryPassConfig.value+"Pass"].extension)
1003  flags.dump(pattern="Tracking."+flags.Tracking.PrimaryPassConfig.value+"Pass.*", evaluate=True)
1004  print("************************************************************************")
1005  return
1006 
1007 
1009  print()
1010  print("************************************************************************")
1011 
1012  print("******************** Tracking reconstruction Config ********************")
1013  print(" Active Config is",flags.Tracking.ActiveConfig.extension)
1014  flags.dump(pattern="Tracking.ActiveConfig.*", evaluate=True)
1015  print("************************************************************************")
1016  return
1017 
1018 
1019 
1021 
1022 if __name__ == "__main__":
1023 
1024  from AthenaConfiguration.AllConfigFlags import initConfigFlags
1026 
1027  from AthenaConfiguration.TestDefaults import defaultTestFiles
1028  flags.Input.Files=defaultTestFiles.RAW_RUN2
1029 
1030  from AthenaCommon.Logging import logging
1031  l = logging.getLogger('TrackingPassFlags')
1032  from AthenaCommon.Constants import INFO
1033  l.setLevel(INFO)
1034 
1035  flags = flags.cloneAndReplace("Tracking.ActiveConfig","Tracking.MainPass")
1036 
1037  assert flags.Tracking.ActiveConfig.maxPrimaryImpact == 5.0 * Units.mm, "wrong cut value {} ".format(flags.Tracking.ActiveConfig.maxPrimaryImpact)
1038  assert flags.Tracking.HeavyIonPass.maxPrimaryImpact == 10.0 * Units.mm, "wrong cut value {} ".format(flags.Tracking.HeavyIonPass.maxPrimaryImpact)
1039  flags.Tracking.doBLS = True
1040  assert flags.Tracking.ActiveConfig.maxPrimaryImpact == 10.0 * Units.mm, "wrong cut value {} ".format(flags.Tracking.ActiveConfig.maxPrimaryImpact)
1041 
1042  assert flags.Tracking.ActiveConfig.minPT == 0.5 * Units.GeV, "wrong cut value {} ".format(flags.Tracking.ActiveConfig.minPT)
1043  flags.BField.configuredSolenoidFieldScale = 0.1
1044  assert flags.Tracking.ActiveConfig.minPT == 0.05 * Units.GeV, "wrong cut value {} ".format(flags.Tracking.ActiveConfig.minPT)
1045 
1046  l.info("flags.Tracking.ActiveConfig.minPT %f", flags.Tracking.ActiveConfig.minPT * 1.0)
1047  l.info("type(flags.Tracking.ActiveConfig.minPT) " + str(type(flags.Tracking.ActiveConfig.minPT)))
1048 
1049 
1050 
1051 
python.TrackingPassFlags.createVtxBeamSpotTrackingPassFlags
def createVtxBeamSpotTrackingPassFlags()
VtxBeamSpot mode ########################.
Definition: TrackingPassFlags.py:733
SystemOfUnits
python.TrackingPassFlags.createLowPtTrackingPassFlags
def createLowPtTrackingPassFlags()
LowPt mode ########################.
Definition: TrackingPassFlags.py:553
vtune_athena.format
format
Definition: vtune_athena.py:14
python.TrackingPassFlags.RoIStrategy
Definition: TrackingPassFlags.py:8
python.TrackingPassFlags.createVtxLumiTrackingPassFlags
def createVtxLumiTrackingPassFlags()
VtxLumi mode ########################.
Definition: TrackingPassFlags.py:695
python.TrackingPassFlags.createUPCTrackingPassFlags
def createUPCTrackingPassFlags()
UPC mode ########################.
Definition: TrackingPassFlags.py:430
python.TrackingPassFlags.printPrimaryConfig
def printPrimaryConfig(flags)
Definition: TrackingPassFlags.py:997
python.TrackingPassFlags.createMinBiasTrackingPassFlags
def createMinBiasTrackingPassFlags()
MinBias mode ########################.
Definition: TrackingPassFlags.py:413
python.TrackingPassFlags.createPixelTrackingPassFlags
def createPixelTrackingPassFlags()
Pixel mode ###############################################.
Definition: TrackingPassFlags.py:815
python.TrackingPassFlags.createITkLargeD0FastTrackingPassFlags
def createITkLargeD0FastTrackingPassFlags()
Definition: TrackingPassFlags.py:364
python.TrackingPassFlags.createLowPtRoITrackingPassFlags
def createLowPtRoITrackingPassFlags()
LowPtRoI mode ########################.
Definition: TrackingPassFlags.py:448
python.TrackingPassFlags.createITkHeavyIonTrackingPassFlags
def createITkHeavyIonTrackingPassFlags()
Heavyion mode #######################.
Definition: TrackingPassFlags.py:241
python.TrackingPassFlags.createCosmicsTrackingPassFlags
def createCosmicsTrackingPassFlags()
Cosmics mode ########################.
Definition: TrackingPassFlags.py:749
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
python.TrackingPassFlags.createTRTStandaloneTrackingPassFlags
def createTRTStandaloneTrackingPassFlags()
TRT standalone tracklet cuts ##########.
Definition: TrackingPassFlags.py:986
python.TrackingPassFlags.printActiveConfig
def printActiveConfig(flags)
Definition: TrackingPassFlags.py:1008
python.TrackingPassFlags.createTrackingPassFlags
def createTrackingPassFlags()
Definition: TrackingPassFlags.py:17
python.TrackingPassFlags.createBeamGasTrackingPassFlags
def createBeamGasTrackingPassFlags()
BeamGas mode ########################.
Definition: TrackingPassFlags.py:675
python.TrackingPassFlags.createDisappearingTrackingPassFlags
def createDisappearingTrackingPassFlags()
Disappearing mode ######################.
Definition: TrackingPassFlags.py:883
python.TrackingPassFlags.createITkFTFLargeD0PassFlags
def createITkFTFLargeD0PassFlags()
Definition: TrackingPassFlags.py:300
python.TrackingPassFlags.createITkFastTrackingPassFlags
def createITkFastTrackingPassFlags()
Definition: TrackingPassFlags.py:260
python.TrackingPassFlags.createForwardTracksTrackingPassFlags
def createForwardTracksTrackingPassFlags()
ForwardTracks mode ########################.
Definition: TrackingPassFlags.py:643
python.TrackingPassFlags.createVeryLowPtTrackingPassFlags
def createVeryLowPtTrackingPassFlags()
VeryLowPt mode ########################.
Definition: TrackingPassFlags.py:615
python.TrackingPassFlags.createHeavyIonTrackingPassFlags
def createHeavyIonTrackingPassFlags()
Heavyion mode #######################.
Definition: TrackingPassFlags.py:778
python.TrackingPassFlags.createITkConversionTrackingPassFlags
def createITkConversionTrackingPassFlags()
ITkConversion mode ########################.
Definition: TrackingPassFlags.py:582
Constants
some useful constants -------------------------------------------------—
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
python.TrackingPassFlags.createTRTTrackingPassFlags
def createTRTTrackingPassFlags()
TRT subdetector tracklet cuts ##########.
Definition: TrackingPassFlags.py:971
python.TrackingPassFlags.createHighPileupTrackingPassFlags
def createHighPileupTrackingPassFlags()
HighPileUP mode ####################.
Definition: TrackingPassFlags.py:401
python.TrackingPassFlags.createITkLowPtTrackingPassFlags
def createITkLowPtTrackingPassFlags()
ITk LowPt mode ####################.
Definition: TrackingPassFlags.py:388
python.TrackingPassFlags.createR3LargeD0TrackingPassFlags
def createR3LargeD0TrackingPassFlags()
R3LargeD0 mode ########################.
Definition: TrackingPassFlags.py:479
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.TrackingPassFlags.createSCTTrackingPassFlags
def createSCTTrackingPassFlags()
SCT mode ######################.
Definition: TrackingPassFlags.py:912
python.TrackingPassFlags.createITkFTFPassFlags
def createITkFTFPassFlags()
ITk with FTF standalone mode ####.
Definition: TrackingPassFlags.py:281
str
Definition: BTagTrackIpAccessor.cxx:11
python.TrackingPassFlags.createHIPTrackingPassFlags
def createHIPTrackingPassFlags()
HIP mode ########################.
Definition: TrackingPassFlags.py:441
python.TrackingPassFlags.createITkTrackingPassFlags
def createITkTrackingPassFlags()
ITk mode ####################.
Definition: TrackingPassFlags.py:120
python.TrackingPassFlags.createVtxLumiHeavyIonTrackingPassFlags
def createVtxLumiHeavyIonTrackingPassFlags()
VtxLumiHeavyIon mode ################.
Definition: TrackingPassFlags.py:711
python.TrackingPassFlags.createLowPtLargeD0TrackingPassFlags
def createLowPtLargeD0TrackingPassFlags()
LowPtLargeD0 mode ########################.
Definition: TrackingPassFlags.py:521
python.TrackingPassFlags.createITkLargeD0TrackingPassFlags
def createITkLargeD0TrackingPassFlags()
ITk LRT mode ####################.
Definition: TrackingPassFlags.py:320