Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-01-09 09:26:49

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, trk_geo):
0022 
0023     with pytest.raises(ValueError):
0024         conf_const(acts.Navigator)
0025     with pytest.raises(ValueError):
0026         conf_const(acts.Navigator, trackingGeometry=None)
0027 
0028     conf_const(acts.Navigator, trackingGeometry=trk_geo)
0029 
0030 
0031 def test_steppers(conf_const, trk_geo):
0032     with pytest.raises(TypeError):
0033         acts.examples.PropagationAlgorithm()
0034     with pytest.raises(ValueError):
0035         acts.examples.PropagationAlgorithm(level=acts.logging.INFO)
0036 
0037     with pytest.raises(TypeError):
0038         acts.Propagator()
0039 
0040     nav = acts.Navigator(trackingGeometry=trk_geo)
0041 
0042     with pytest.raises(TypeError):
0043         acts.Propagator(navigator=nav)
0044 
0045     for stepper in (acts.EigenStepper, acts.AtlasStepper):
0046         with pytest.raises(TypeError):
0047             stepper()
0048         s = stepper(acts.NullBField())
0049         assert s
0050 
0051         seq = acts.examples.Sequencer(
0052             events=10, numThreads=1, logLevel=acts.logging.WARNING
0053         )
0054 
0055         rnd = acts.examples.RandomNumbers(seed=42)
0056 
0057         addParticleGun(
0058             seq,
0059             ParticleConfig(num=10, pdg=acts.PdgParticle.eMuon, randomizeCharge=True),
0060             EtaConfig(-4.0, 4.0),
0061             rnd=rnd,
0062         )
0063 
0064         prop = acts.examples.ConcretePropagator(
0065             acts.Propagator(stepper=s, navigator=nav)
0066         )
0067 
0068         trkParamExtractor = acts.examples.ParticleTrackParamExtractor(
0069             level=acts.logging.WARNING,
0070             inputParticles="particles_generated",
0071             outputTrackParameters="params_particles_generated",
0072         )
0073         seq.addAlgorithm(trkParamExtractor)
0074 
0075         alg = conf_const(
0076             acts.examples.PropagationAlgorithm,
0077             level=acts.logging.WARNING,
0078             propagatorImpl=prop,
0079             inputTrackParameters="params_particles_generated",
0080             outputSummaryCollection="propagation_summary",
0081             sterileLogger=False,
0082         )
0083         seq.addAlgorithm(alg)
0084 
0085         chkAlg = AssertCollectionExistsAlg(
0086             "propagation_summary", "chk_alg", level=acts.logging.WARNING
0087         )
0088         seq.addAlgorithm(chkAlg)
0089 
0090         seq.run()
0091 
0092     assert acts.StraightLineStepper()