ATLAS Offline Software
Loading...
Searching...
No Matches
python.VertexFindingFlags Namespace Reference

Classes

class  VertexSortingSetup
class  VertexSetup

Functions

 createPriVertexingFlags ()

Function Documentation

◆ createPriVertexingFlags()

python.VertexFindingFlags.createPriVertexingFlags ( )

Definition at line 24 of file VertexFindingFlags.py.

24def createPriVertexingFlags():
25 from AthenaConfiguration.AthConfigFlags import AthConfigFlags
26 flags = AthConfigFlags()
27
28 flags.addFlag("maxAbsEta", 9999.0)
29 flags.addFlag("minNTrtHits", 0)
30 flags.addFlag("maxNPixelHoles", 1)
31 flags.addFlag("maxZ0", 1000.0 * Units.mm)
32 flags.addFlag("maxZ0SinTheta", 1000.0 * Units.mm)
33 flags.addFlag("minNInnermostLayerHits", 0)
34 # MaxTracks cuts are specific to the IterativeFinding config
35 flags.addFlag("doMaxTracksCut", lambda pcf:
36 not(pcf.Tracking.PriVertex.useBeamConstraint or
37 pcf.Tracking.PrimaryPassConfig is (
38 PrimaryPassConfig.HeavyIon)))
39 flags.addFlag("maxTracks", 3000)
40 flags.addFlag("maxVertices", lambda pcf:
41 1 if pcf.Tracking.PrimaryPassConfig in [
42 PrimaryPassConfig.HeavyIon, PrimaryPassConfig.VtxLumiHeavyIon]
43 else 200)
44
45 # string to store the setup for primary vertexing.
46
47 def vertexSetup(pcf):
48 if pcf.Reco.EnableHI:
49 return VertexSetup.FastIVF
50 elif pcf.Tracking.PrimaryPassConfig is PrimaryPassConfig.VtxLumiHeavyIon:
51 return VertexSetup.FastIVF
52 elif (pcf.Tracking.doMinBias or
53 pcf.Tracking.doLowMu or
54 pcf.Tracking.PrimaryPassConfig in [
55 PrimaryPassConfig.VtxLumi,
56 PrimaryPassConfig.VtxBeamSpot,
57 PrimaryPassConfig.HighPileup]):
58 return VertexSetup.IVF
59 else: # Default
60 return VertexSetup.ActsGaussAMVF
61
62 flags.addFlag("setup", vertexSetup, type=VertexSetup)
63
64 # string to store the type of sorting algorithm to separate signal and pile-up vertices.
65 flags.addFlag("sortingSetup", VertexSortingSetup.SumPt2Sorting, type=VertexSortingSetup)
66 flags.addFlag("HSGNN.nnFile", "InDetGNNHardScatterSelection/v2.0/network.onnx")
67 flags.addFlag("useBeamConstraint", lambda pcf:
68 not(pcf.Tracking.PrimaryPassConfig in [
69 PrimaryPassConfig.VtxLumi,
70 PrimaryPassConfig.VtxBeamSpot]))
71
72 def maxD0(pcf):
73 if pcf.Detector.GeometryITk:
74 return 1.0 * Units.mm
75 else:
76 if not pcf.Tracking.PriVertex.useBeamConstraint:
77 return 10.0 * Units.mm
78 elif pcf.Tracking.PrimaryPassConfig is PrimaryPassConfig.VtxLumiHeavyIon:
79 return 10.0 * Units.mm
80 else: # Default ID
81 return 4.0 * Units.mm
82
83 flags.addFlag("maxD0", maxD0)
84
85 def minPt(pcf):
86 if pcf.Detector.GeometryITk:
87 return 900.0 * Units.MeV
88 else:
89 if pcf.Tracking.doMinBias or pcf.Tracking.doLowPt:
90 return 100.0 * Units.MeV
91 elif pcf.Reco.EnableHI or pcf.Tracking.doLowMu \
92 or pcf.Tracking.PrimaryPassConfig is PrimaryPassConfig.VtxLumiHeavyIon:
93 return 400.0 * Units.MeV
94 else: # Default ID
95 return 500.0 * Units.MeV
96
97 flags.addFlag("minPt", minPt)
98
99 def maxSigmaD0(pcf):
100 if pcf.Detector.GeometryITk:
101 return 0.35 * Units.mm
102 else:
103 if pcf.Tracking.doLowPt:
104 return 0.9 * Units.mm
105 else: # Default ID
106 return 5.0 * Units.mm
107
108 flags.addFlag("maxSigmaD0", maxSigmaD0)
109
110 idflags = { "maxSigmaZ0SinTheta" : 10.0 * Units.mm,
111 "minNPixelHits" : 1,
112 "minNSctHits" : 4,
113 "minNSiHits" : 6,
114 "maxZinterval" : 3}
115
116 itkflags = {"maxSigmaZ0SinTheta" : 2.5 * Units.mm,
117 "minNPixelHits" : 3,
118 "minNSctHits" : 0,
119 "minNSiHits" : 7,
120 "maxZinterval" : 0.5}
121
122 for k in idflags:
123 # Need to use default arguments in lambda function to keep them set
124 # despite the loop
125 flags.addFlag(k, lambda pcf, a=idflags[k], b=itkflags[k]:
126 a if pcf.Detector.GeometryID else b)
127
128 flags.addFlag("gridMainGridSize", 20)
129 flags.addFlag("gridTrkGridSize", 10)
130 flags.addFlag("gridUseHighestSumZPosition", False)
131 flags.addFlag("gridMaxD0Significance", 3.5)
132 flags.addFlag("gridMaxZ0Significance", 12.0)
133
134 return flags
135
136