3 from pathlib
import Path
16 ParticleSmearingSigmas,
20 TruthEstimatedSeedingAlgorithmConfigArg,
22 addAmbiguityResolution,
23 AmbiguityResolutionConfig,
29 from physmon_common
import makeSetup
31 u = acts.UnitConstants
36 with tempfile.TemporaryDirectory()
as temp:
38 Path(__file__).parent.parent /
"fpe_masks.yml"
41 "Examples/Algorithms/Fatras/src/FatrasSimulation.cpp",
47 "Examples/Algorithms/Fatras/src/FatrasSimulation.cpp",
53 "Examples/Algorithms/Fatras/src/FatrasSimulation.cpp",
59 "Examples/Io/Root/src/RootTrajectorySummaryWriter.cpp",
65 "Core/src/Utilities/AnnealingUtility.cpp",
71 "Fatras/include/ActsFatras/Kernel/detail/SimulationActor.hpp",
77 "Fatras/include/ActsFatras/Kernel/Simulation.hpp",
86 logLevel=acts.logging.INFO,
92 for d
in setup.decorators:
93 s.addContextDecorator(d)
95 rnd = acts.examples.RandomNumbers(seed=42)
99 hardProcess=[
"Top:qqbar2ttbar=on"],
101 vtxGen=acts.examples.GaussianVertexGenerator(
102 mean=acts.Vector4(0, 0, 0, 0),
103 stddev=acts.Vector4(0.0125 * u.mm, 0.0125 * u.mm, 55.5 * u.mm, 5.0 * u.ns),
110 setup.trackingGeometry,
117 setup.trackingGeometry,
119 digiConfigFile=setup.digiConfig,
125 setup.trackingGeometry,
130 r=(
None, 200 * u.mm),
131 deltaR=(1 * u.mm, 60 * u.mm),
132 collisionRegion=(-250 * u.mm, 250 * u.mm),
133 z=(-2000 * u.mm, 2000 * u.mm),
136 radLengthPerSeed=0.1,
142 seedingAlgorithm=SeedingAlgorithm.Default,
143 geoSelectionConfigFile=setup.geoSel,
150 setup.trackingGeometry,
153 pt=(500 * u.MeV,
None),
154 loc0=(-4.0 * u.mm, 4.0 * u.mm),
169 seeder=acts.VertexSeedFinder.GaussianSeeder,
170 outputProtoVertices=
"amvf_protovertices",
171 outputVertices=
"amvf_fittedVertices",
172 vertexFinder=VertexFinder.AMVF,
173 outputDirRoot=tp /
"amvf",
179 seeder=acts.VertexSeedFinder.AdaptiveGridSeeder,
180 outputProtoVertices=
"amvf_gridseeder_protovertices",
181 outputVertices=
"amvf_gridseeder_fittedVertices",
182 vertexFinder=VertexFinder.AMVF,
183 outputDirRoot=tp /
"amvf_gridseeder",
189 for vertexing
in [
"amvf",
"amvf_gridseeder"]:
191 tp / f
"{vertexing}/performance_vertexing.root",
192 tp / f
"performance_{vertexing}.root",
199 "performance_amvf_gridseeder",
200 ] + ([
"performance_seeding",
"performance_ambi"]):
201 perf_file = tp / f
"{stem}.root"
202 assert perf_file.exists(),
"Performance file not found"
203 shutil.copy(perf_file, setup.outdir / f
"{stem}_ttbar.root")