23 from AthenaConfiguration.AthConfigFlags
import AthConfigFlags
24 flags = AthConfigFlags()
26 flags.addFlag(
"maxAbsEta", 9999.0)
27 flags.addFlag(
"minNTrtHits", 0)
28 flags.addFlag(
"maxNPixelHoles", 1)
29 flags.addFlag(
"maxZ0", 1000.0 * Units.mm)
30 flags.addFlag(
"maxZ0SinTheta", 1000.0 * Units.mm)
31 flags.addFlag(
"minNInnermostLayerHits", 0)
33 flags.addFlag(
"doMaxTracksCut",
lambda pcf:
34 not(pcf.Tracking.PriVertex.useBeamConstraint
or
35 pcf.Tracking.PrimaryPassConfig
is (
36 PrimaryPassConfig.HeavyIon)))
37 flags.addFlag(
"maxTracks", 3000)
38 flags.addFlag(
"maxVertices",
lambda pcf:
39 1
if pcf.Tracking.PrimaryPassConfig
in [
40 PrimaryPassConfig.HeavyIon, PrimaryPassConfig.VtxLumiHeavyIon]
47 return VertexSetup.FastIVF
48 elif pcf.Tracking.PrimaryPassConfig
is PrimaryPassConfig.VtxLumiHeavyIon:
49 return VertexSetup.FastIVF
50 elif (pcf.Tracking.doMinBias
or
51 pcf.Tracking.doLowMu
or
52 pcf.Tracking.PrimaryPassConfig
in [
53 PrimaryPassConfig.VtxLumi,
54 PrimaryPassConfig.VtxBeamSpot,
55 PrimaryPassConfig.HighPileup]):
56 return VertexSetup.IVF
58 return VertexSetup.ActsGaussAMVF
60 flags.addFlag(
"setup", vertexSetup, type=VertexSetup)
63 flags.addFlag(
"sortingSetup", VertexSortingSetup.SumPt2Sorting, type=VertexSortingSetup)
64 flags.addFlag(
"useBeamConstraint",
lambda pcf:
65 not(pcf.Tracking.PrimaryPassConfig
in [
66 PrimaryPassConfig.VtxLumi,
67 PrimaryPassConfig.VtxBeamSpot]))
70 if pcf.Detector.GeometryITk:
73 if not pcf.Tracking.PriVertex.useBeamConstraint:
74 return 10.0 * Units.mm
75 elif pcf.Tracking.PrimaryPassConfig
is PrimaryPassConfig.VtxLumiHeavyIon:
76 return 10.0 * Units.mm
80 flags.addFlag(
"maxD0", maxD0)
83 if pcf.Detector.GeometryITk:
84 return 900.0 * Units.MeV
86 if pcf.Tracking.doMinBias
or pcf.Tracking.doLowPt:
87 return 100.0 * Units.MeV
88 elif pcf.Reco.EnableHI
or pcf.Tracking.doLowMu \
89 or pcf.Tracking.PrimaryPassConfig
is PrimaryPassConfig.VtxLumiHeavyIon:
90 return 400.0 * Units.MeV
92 return 500.0 * Units.MeV
94 flags.addFlag(
"minPt", minPt)
97 if pcf.Detector.GeometryITk:
98 return 0.35 * Units.mm
100 if pcf.Tracking.doLowPt:
101 return 0.9 * Units.mm
103 return 5.0 * Units.mm
105 flags.addFlag(
"maxSigmaD0", maxSigmaD0)
107 idflags = {
"maxSigmaZ0SinTheta" : 10.0 * Units.mm,
113 itkflags = {
"maxSigmaZ0SinTheta" : 2.5 * Units.mm,
117 "maxZinterval" : 0.5}
122 flags.addFlag(k,
lambda pcf, a=idflags[k], b=itkflags[k]:
123 a
if pcf.Detector.GeometryID
else b)