Back to home page

EIC code displayed by LXR

 
 

    


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()