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.VertexFindingFlags Namespace Reference

Classes

class  VertexSetup
 
class  VertexSortingSetup
 

Functions

def createPriVertexingFlags ()
 

Function Documentation

◆ createPriVertexingFlags()

def python.VertexFindingFlags.createPriVertexingFlags ( )

Definition at line 24 of file VertexFindingFlags.py.

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("useBeamConstraint", lambda pcf:
67  not(pcf.Tracking.PrimaryPassConfig in [
68  PrimaryPassConfig.VtxLumi,
69  PrimaryPassConfig.VtxBeamSpot]))
70 
71  def maxD0(pcf):
72  if pcf.Detector.GeometryITk:
73  return 1.0 * Units.mm
74  else:
75  if not pcf.Tracking.PriVertex.useBeamConstraint:
76  return 10.0 * Units.mm
77  elif pcf.Tracking.PrimaryPassConfig is PrimaryPassConfig.VtxLumiHeavyIon:
78  return 10.0 * Units.mm
79  else: # Default ID
80  return 4.0 * Units.mm
81 
82  flags.addFlag("maxD0", maxD0)
83 
84  def minPt(pcf):
85  if pcf.Detector.GeometryITk:
86  return 900.0 * Units.MeV
87  else:
88  if pcf.Tracking.doMinBias or pcf.Tracking.doLowPt:
89  return 100.0 * Units.MeV
90  elif pcf.Reco.EnableHI or pcf.Tracking.doLowMu \
91  or pcf.Tracking.PrimaryPassConfig is PrimaryPassConfig.VtxLumiHeavyIon:
92  return 400.0 * Units.MeV
93  else: # Default ID
94  return 500.0 * Units.MeV
95 
96  flags.addFlag("minPt", minPt)
97 
98  def maxSigmaD0(pcf):
99  if pcf.Detector.GeometryITk:
100  return 0.35 * Units.mm
101  else:
102  if pcf.Tracking.doLowPt:
103  return 0.9 * Units.mm
104  else: # Default ID
105  return 5.0 * Units.mm
106 
107  flags.addFlag("maxSigmaD0", maxSigmaD0)
108 
109  idflags = { "maxSigmaZ0SinTheta" : 10.0 * Units.mm,
110  "minNPixelHits" : 1,
111  "minNSctHits" : 4,
112  "minNSiHits" : 6,
113  "maxZinterval" : 3}
114 
115  itkflags = {"maxSigmaZ0SinTheta" : 2.5 * Units.mm,
116  "minNPixelHits" : 3,
117  "minNSctHits" : 0,
118  "minNSiHits" : 7,
119  "maxZinterval" : 0.5}
120 
121  for k in idflags:
122  # Need to use default arguments in lambda function to keep them set
123  # despite the loop
124  flags.addFlag(k, lambda pcf, a=idflags[k], b=itkflags[k]:
125  a if pcf.Detector.GeometryID else b)
126 
127  flags.addFlag("gridMainGridSize", 20)
128  flags.addFlag("gridTrkGridSize", 10)
129  flags.addFlag("gridUseHighestSumZPosition", False)
130  flags.addFlag("gridMaxD0Significance", 3.5)
131  flags.addFlag("gridMaxZ0Significance", 12.0)
132 
133  return flags
134 
135 
python.VertexFindingFlags.createPriVertexingFlags
def createPriVertexingFlags()
Definition: VertexFindingFlags.py:24