File indexing completed on 2025-02-25 09:17:22
0001 import pytest
0002
0003 import acts
0004 import acts.examples
0005 from acts.examples.simulation import addParticleGun, EtaConfig, ParticleConfig
0006
0007
0008 class AssertCollectionExistsAlg(acts.examples.IAlgorithm):
0009 events_seen = 0
0010
0011 def __init__(self, collection, *args, **kwargs):
0012 self.collection = collection
0013 acts.examples.IAlgorithm.__init__(self, *args, **kwargs)
0014
0015 def execute(self, ctx):
0016 assert ctx.eventStore.exists(self.collection)
0017 self.events_seen += 1
0018 return acts.examples.ProcessCode.SUCCESS
0019
0020
0021 def test_navigator(conf_const):
0022 nav = conf_const(acts.Navigator)
0023 nav = conf_const(acts.Navigator, trackingGeometry=None)
0024
0025
0026 def test_steppers(conf_const, trk_geo):
0027 with pytest.raises(TypeError):
0028 acts.examples.PropagationAlgorithm()
0029 with pytest.raises(ValueError):
0030 acts.examples.PropagationAlgorithm(level=acts.logging.INFO)
0031
0032 with pytest.raises(TypeError):
0033 acts.Propagator()
0034
0035 nav = acts.Navigator(trackingGeometry=trk_geo)
0036
0037 with pytest.raises(TypeError):
0038 acts.Propagator(navigator=nav)
0039
0040 for stepper in (acts.EigenStepper, acts.AtlasStepper):
0041 with pytest.raises(TypeError):
0042 stepper()
0043 s = stepper(acts.NullBField())
0044 assert s
0045
0046 seq = acts.examples.Sequencer(
0047 events=10, numThreads=1, logLevel=acts.logging.WARNING
0048 )
0049
0050 rnd = acts.examples.RandomNumbers(seed=42)
0051
0052 addParticleGun(
0053 seq,
0054 ParticleConfig(num=10, pdg=acts.PdgParticle.eMuon, randomizeCharge=True),
0055 EtaConfig(-4.0, 4.0),
0056 rnd=rnd,
0057 )
0058
0059 prop = acts.examples.ConcretePropagator(
0060 acts.Propagator(stepper=s, navigator=nav)
0061 )
0062
0063 trkParamExtractor = acts.examples.ParticleTrackParamExtractor(
0064 level=acts.logging.WARNING,
0065 inputParticles="particles_generated",
0066 outputTrackParameters="params_particles_generated",
0067 )
0068 seq.addAlgorithm(trkParamExtractor)
0069
0070 alg = conf_const(
0071 acts.examples.PropagationAlgorithm,
0072 level=acts.logging.WARNING,
0073 propagatorImpl=prop,
0074 inputTrackParameters="params_particles_generated",
0075 outputSummaryCollection="propagation_summary",
0076 sterileLogger=False,
0077 )
0078 seq.addAlgorithm(alg)
0079
0080 chkAlg = AssertCollectionExistsAlg(
0081 "propagation_summary", "chk_alg", level=acts.logging.WARNING
0082 )
0083 seq.addAlgorithm(chkAlg)
0084
0085 seq.run()
0086
0087 assert acts.StraightLineStepper()