Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-01-09 09:25:44

0001 def test_generic_construction(tmp_path):
0002     outputDir = str(tmp_path)
0003 
0004     #! [Basic propagation example with GenericDetector]
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     #! [Basic propagation example with GenericDetector]