3 from pathlib
import Path
24 addAmbiguityResolution,
25 AmbiguityResolutionConfig,
31 from physmon_common
import makeSetup
33 u = acts.UnitConstants
39 with tempfile.TemporaryDirectory()
as temp:
43 logLevel=acts.logging.INFO,
45 Path(__file__).parent.parent /
"fpe_masks.yml"
51 for d
in setup.decorators:
52 s.addContextDecorator(d)
54 rnd = acts.examples.RandomNumbers(seed=42)
62 vtxGen=acts.examples.GaussianVertexGenerator(
63 mean=acts.Vector4(0, 0, 0, 0),
65 0.0125 * u.mm, 0.0125 * u.mm, 55.5 * u.mm, 1.0 * u.ns
74 setup.trackingGeometry,
76 enableInteractions=
True,
82 setup.trackingGeometry,
84 digiConfigFile=setup.digiConfig,
90 setup.trackingGeometry,
93 r=(33 * u.mm, 200 * u.mm),
94 deltaR=(1 * u.mm, 60 * u.mm),
95 collisionRegion=(-250 * u.mm, 250 * u.mm),
96 z=(-2000 * u.mm, 2000 * u.mm),
104 seedingAlgorithm=SeedingAlgorithm.Default,
105 geoSelectionConfigFile=setup.geoSel,
110 setup.trackingGeometry,
113 loc0=(-4.0 * u.mm, 4.0 * u.mm),
114 pt=(500 * u.MeV,
None),
135 perf_file = tp / f
"performance_vertexing.root"
136 assert perf_file.exists(),
"Performance file not found"
139 setup.outdir / f
"performance_vertexing_{fitter.name}_mu{mu}.root",
143 for fitter
in (VertexFinder.Iterative, VertexFinder.AMVF):
144 for mu
in (1, 10, 25, 50, 75, 100, 125, 150, 175, 200):
145 start = datetime.datetime.now()
150 delta = datetime.datetime.now() - start
152 duration = delta.total_seconds() / events
155 setup.outdir / f
"performance_vertexing_{fitter.name}_mu{mu}_time.txt"
156 ).write_text(
str(duration))