4 from AthenaConfiguration.Enums
import FlagEnum
5 from TrkConfig.TrkConfigFlags
import PrimaryPassConfig
9 SumPt2Sorting =
'SumPt2Sorting'
10 SumPtSorting =
'SumPtSorting'
11 JetWeightedSorting =
'JetWeightedSorting'
15 IVF =
'IterativeFinding'
16 FastIVF =
'FastIterativeFinding'
17 ActsGaussAMVF =
'ActsGaussAdaptiveMultiFinding'
19 ExperimentalActsIVF =
'ExperimentalActsIterativeFinding'
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
is (
40 PrimaryPassConfig.HeavyIon)
47 return VertexSetup.FastIVF
48 elif (pcf.Tracking.doMinBias
or
49 pcf.Tracking.doLowMu
or
50 pcf.Tracking.PrimaryPassConfig
in [
51 PrimaryPassConfig.VtxLumi,
52 PrimaryPassConfig.VtxBeamSpot,
53 PrimaryPassConfig.HighPileup]):
54 return VertexSetup.IVF
56 return VertexSetup.ActsGaussAMVF
58 flags.addFlag(
"setup", vertexSetup, type=VertexSetup)
61 flags.addFlag(
"sortingSetup", VertexSortingSetup.SumPt2Sorting, type=VertexSortingSetup)
62 flags.addFlag(
"useBeamConstraint",
lambda pcf:
63 not(pcf.Tracking.PrimaryPassConfig
in [
64 PrimaryPassConfig.VtxLumi,
65 PrimaryPassConfig.VtxBeamSpot]))
68 if pcf.Detector.GeometryITk:
71 if not pcf.Tracking.PriVertex.useBeamConstraint:
72 return 10.0 * Units.mm
76 flags.addFlag(
"maxD0", maxD0)
79 if pcf.Detector.GeometryITk:
80 return 900.0 * Units.MeV
82 if pcf.Tracking.doMinBias
or pcf.Tracking.doLowPt:
83 return 100.0 * Units.MeV
84 elif pcf.Reco.EnableHI
or pcf.Tracking.doLowMu:
85 return 400.0 * Units.MeV
87 return 500.0 * Units.MeV
89 flags.addFlag(
"minPt", minPt)
92 if pcf.Detector.GeometryITk:
93 return 0.35 * Units.mm
95 if pcf.Tracking.doLowPt:
100 flags.addFlag(
"maxSigmaD0", maxSigmaD0)
102 idflags = {
"maxSigmaZ0SinTheta" : 10.0 * Units.mm,
108 itkflags = {
"maxSigmaZ0SinTheta" : 2.5 * Units.mm,
112 "maxZinterval" : 0.5}
117 flags.addFlag(k,
lambda pcf, a=idflags[k], b=itkflags[k]:
118 a
if pcf.Detector.GeometryID
else b)