File indexing completed on 2026-04-17 07:47:27
0001 import acts
0002 import acts.fatras
0003
0004
0005 def test_barcode_roundtrip_properties():
0006 barcode = acts.fatras.Barcode()
0007 assert not barcode.isValid()
0008
0009 barcode.vertexPrimary = 1
0010 barcode.vertexSecondary = 2
0011 barcode.particle = 3
0012 barcode.generation = 4
0013 barcode.subParticle = 5
0014
0015 assert barcode.vertexPrimary == 1
0016 assert barcode.vertexSecondary == 2
0017 assert barcode.particle == 3
0018 assert barcode.generation == 4
0019 assert barcode.subParticle == 5
0020 assert barcode.isValid()
0021 assert "vp=" in repr(barcode)
0022
0023
0024 def test_invalid_barcode_factory():
0025 invalid = acts.fatras.Barcode.Invalid()
0026 assert isinstance(invalid, acts.fatras.Barcode)
0027 assert not invalid.isValid()
0028
0029
0030 def test_process_and_outcome_enums_available():
0031 assert (
0032 acts.fatras.GenerationProcess.eUndefined != acts.fatras.GenerationProcess.eDecay
0033 )
0034 assert (
0035 acts.fatras.GenerationProcess.ePhotonConversion
0036 == acts.fatras.GenerationProcess.ePhotonConversion
0037 )
0038 assert (
0039 acts.fatras.SimulationOutcome.Alive
0040 != acts.fatras.SimulationOutcome.KilledInteraction
0041 )
0042
0043
0044 def test_particle_construction_and_properties():
0045 barcode = acts.fatras.Barcode()
0046 barcode.vertexPrimary = 1
0047 barcode.particle = 42
0048
0049 particle = acts.fatras.Particle(barcode, acts.PdgParticle.eMuon, -1.0, 0.105658)
0050
0051 assert isinstance(particle.particleId, acts.fatras.Barcode)
0052 assert particle.particleId.vertexPrimary == 1
0053 assert particle.particleId.particle == 42
0054 assert particle.pdg == acts.PdgParticle.eMuon
0055 assert particle.absolutePdg == acts.PdgParticle.eMuon
0056 assert particle.charge == -1.0
0057 assert particle.mass == 0.105658
0058
0059
0060 def test_particle_construction_from_pdg_table():
0061 barcode = acts.fatras.Barcode()
0062 barcode.vertexPrimary = 1
0063 barcode.particle = 7
0064
0065 particle = acts.fatras.Particle(barcode, acts.PdgParticle.eMuon)
0066 assert particle.particleId.particle == 7
0067 assert particle.pdg == acts.PdgParticle.eMuon
0068 assert particle.absolutePdg == acts.PdgParticle.eMuon
0069 assert particle.mass > 0