File indexing completed on 2026-01-09 09:25:44
0001 def test_generic_construction(tmp_path):
0002 outputDir = str(tmp_path)
0003
0004
0005 import os
0006
0007 import acts
0008 from acts import UnitConstants as u
0009 import acts.examples
0010 from acts.examples.simulation import (
0011 addParticleGun,
0012 EtaConfig,
0013 ParticleConfig,
0014 MomentumConfig,
0015 )
0016 from acts.examples.root import (
0017 RootPropagationSummaryWriter,
0018 RootPropagationStepsWriter,
0019 )
0020
0021 detector = acts.examples.GenericDetector()
0022 trackingGeometry = detector.trackingGeometry()
0023 s = acts.examples.Sequencer(events=10)
0024
0025 rnd = acts.examples.RandomNumbers(seed=42)
0026
0027 for d in detector.contextDecorators():
0028 s.addContextDecorator(d)
0029
0030 rnd = acts.examples.RandomNumbers(seed=42)
0031
0032 addParticleGun(
0033 s,
0034 ParticleConfig(num=1000, pdg=acts.PdgParticle.eMuon, randomizeCharge=True),
0035 EtaConfig(-4.0, 4.0),
0036 MomentumConfig(1 * u.GeV, 100 * u.GeV, transverse=True),
0037 rnd=rnd,
0038 )
0039
0040 trkParamExtractor = acts.examples.ParticleTrackParamExtractor(
0041 level=acts.logging.WARNING,
0042 inputParticles="particles_generated",
0043 outputTrackParameters="params_particles_generated",
0044 )
0045 s.addAlgorithm(trkParamExtractor)
0046
0047 nav = acts.Navigator(trackingGeometry=trackingGeometry)
0048
0049 field = acts.ConstantBField(acts.Vector3(0, 0, 2 * acts.UnitConstants.T))
0050 stepper = acts.EigenStepper(field)
0051
0052 propagator = acts.examples.ConcretePropagator(acts.Propagator(stepper, nav))
0053
0054 propagationAlgorithm = acts.examples.PropagationAlgorithm(
0055 propagatorImpl=propagator,
0056 level=acts.logging.INFO,
0057 sterileLogger=False,
0058 inputTrackParameters="params_particles_generated",
0059 outputSummaryCollection="propagation_summary",
0060 )
0061 s.addAlgorithm(propagationAlgorithm)
0062
0063 s.addWriter(
0064 RootPropagationSummaryWriter(
0065 level=acts.logging.INFO,
0066 inputSummaryCollection="propagation_summary",
0067 filePath=outputDir + "/propagation_summary.root",
0068 )
0069 )
0070
0071 s.addWriter(
0072 RootPropagationStepsWriter(
0073 level=acts.logging.INFO,
0074 collection="propagation_summary",
0075 filePath=outputDir + "/propagation_steps.root",
0076 )
0077 )
0078
0079 s.run()
0080