Esempio n. 1
0
def test_complex_search():
    # Find all strange mesons with c*tau > 1 meter
    particles = Particle.findall(lambda p: p.pdgid.is_meson and p.pdgid.has_strange and p.width > 0 and p.ctau > 1000., particle=True)
    assert len(particles) == 2 # K+ and KL0
    assert 130 in particles
    assert 321 in particles

    # Find all strange anti-mesons with c*tau > 1 meter
    particles = Particle.findall(lambda p: p.pdgid.is_meson and p.pdgid.has_strange and p.width > 0 and p.ctau > 1000., particle=False)
    assert len(particles) == 1 # only the K-
    assert -321 in particles
Esempio n. 2
0
def test_keyword_style_search_with_except_catch():
    particles = Particle.findall(ctau=float("inf"))
    assert 11 in particles

    particles = Particle.findall(name="p")
    assert len(particles) == 1
    assert 2212 in particles

    assert Particle.find(pdg_name="p", particle=True) == 2212
    assert Particle.find(pdg_name="p", particle=False) == -2212

    assert Particle.find(name="p", particle=True) == 2212
    assert Particle.find(name="p~", particle=False) == -2212
Esempio n. 3
0
def test_keyword_style_search():
    particles = Particle.findall(pdg_name='p')
    assert len(particles) == 2
    assert 2212 in particles
    assert -2212 in particles

    particles = Particle.findall(name='p')
    assert len(particles) == 1
    assert 2212 in particles

    assert Particle.find(pdg_name='p', particle=True) == 2212
    assert Particle.find(pdg_name='p', particle=False) == -2212

    assert Particle.find(name='p', particle=True) == 2212
    assert Particle.find(name='p~', particle=False) == -2212
Esempio n. 4
0
def test_keyword_style_search():
    particles = Particle.findall(pdg_name="p")
    assert len(particles) == 4
    assert 2212 in particles
    assert -2212 in particles
    assert 1000010010 in particles
    assert -1000010010 in particles
Esempio n. 5
0
def test_keyword_lambda_style_search():
    particles = Particle.findall(pdg_name=lambda x: 'p' == x)
    assert len(particles) == 2
    assert 2212 in particles
    assert -2212 in particles

    # Fuzzy name
    particles = Particle.findall(name=lambda x: 'p' in x)
    assert len(particles) > 2
    assert 2212 in particles
    assert -2212 in particles

    # Name and particle
    assert Particle.find(name=lambda x: x == 'p', particle=True) == 2212

    # Unit based comparison
    assert 2212 in Particle.findall(lifetime=lambda x: x > 1 * second)
Esempio n. 6
0
def test_lambda_style_search():
    particles = Particle.findall(lambda p: p.pdg_name == 'p')
    assert len(particles) == 2
    assert 2212 in particles
    assert -2212 in particles

    assert Particle.find(lambda p: p.pdg_name == 'p' and p > 0) == 2212
    assert Particle.find(lambda p: p.pdg_name == 'p' and p < 0) == -2212
Esempio n. 7
0
def test_lambda_style_search():
    particles = Particle.findall(lambda p: p.pdg_name == "p")
    assert len(particles) == 4
    assert 2212 in particles
    assert -2212 in particles
    assert 1000010010 in particles
    assert -1000010010 in particles

    [p.pdgid
     for p in Particle.findall(lambda p: p.pdg_name == "p" and p > 0)] == [
         2212,
         1000010010,
     ]
    [p.pdgid
     for p in Particle.findall(lambda p: p.pdg_name == "p" and p < 0)] == [
         -2212,
         -1000010010,
     ]
Esempio n. 8
0
def test_keyword_lambda_style_search():
    particles = Particle.findall(pdg_name=lambda x: "p" == x)
    assert len(particles) == 4
    assert 2212 in particles
    assert -2212 in particles
    assert 1000010010 in particles
    assert -1000010010 in particles

    # Fuzzy name
    particles = Particle.findall(name=lambda x: "p" in x)
    assert len(particles) > 2
    assert 2212 in particles
    assert -2212 in particles

    # Name and particle
    assert len(Particle.findall(name=lambda x: x == "p", particle=True)) == 2

    # Unit based comparison
    assert 2212 in Particle.findall(lifetime=lambda x: x > 1 * second)
def test_P_consistency_baryons():
    """
    The parity quantum number is stored in the (curated) data CSV files.
    For baryons the (intrinsic) parity flips sign for the antiparticle.
    """
    pdgid = lambda p: p.pdgid

    pdgids_baryons = [
        pdgid(b) for b in Particle.findall(
            lambda p: p.P != Parity.u and p.pdgid.is_baryon and p.pdgid > 0)
    ]
    pdgids_antibaryons = [
        pdgid(b) for b in Particle.findall(
            lambda p: p.P != Parity.u and p.pdgid.is_baryon and p.pdgid < 0)
    ]

    for pdgid in pdgids_baryons:
        # Only consider checks on existing baryon-antibaryon pairs in the "DB"
        if not (-pdgid in pdgids_antibaryons):
            continue

        assert Particle.from_pdgid(pdgid).P == -Particle.from_pdgid(-pdgid).P
Esempio n. 10
0
def test_P_consistency_baryons():
    """
    The parity quantum number is stored in the (curated) data CSV files.
    For baryons the (intrinsic) parity flips sign for the antiparticle.
    As for baryons with undefined parity, that of the antibaryon
    is equally undefined, of course.
    """
    pdgid = lambda p: p.pdgid

    pdgids_baryons_defined_P = [
        pdgid(b) for b in Particle.findall(
            lambda p: p.P != Parity.u and p.pdgid.is_baryon and p.pdgid > 0)
    ]

    pdgids_baryons_undefined_P = [
        pdgid(b) for b in Particle.findall(
            lambda p: p.P == Parity.u and p.pdgid.is_baryon and p.pdgid > 0)
    ]

    for pdgid in pdgids_baryons_defined_P:
        assert Particle.from_pdgid(pdgid).P == -Particle.from_pdgid(-pdgid).P

    for pdgid in pdgids_baryons_undefined_P:
        assert Particle.from_pdgid(pdgid).P == Particle.from_pdgid(-pdgid).P
Esempio n. 11
0
def test_keyword_style_search_with_except_catch():
    particles = Particle.findall(ctau=float("inf"))
    assert 11 in particles

    particles = Particle.findall(name="p")
    assert len(particles) == 2
    assert 2212 in particles
    assert 1000010010 in particles

    [p.pdgid for p in Particle.findall(pdg_name="p", particle=True)] == [
        2212,
        1000010010,
    ]
    [p.pdgid for p in Particle.findall(pdg_name="p", particle=False)] == [
        -2212,
        -1000010010,
    ]

    [p.pdgid
     for p in Particle.findall(name="p", particle=True)] == [2212, 1000010010]
    [p.pdgid for p in Particle.findall(name="p~", particle=False)] == [
        -2212,
        -1000010010,
    ]
Esempio n. 12
0
def test_fuzzy_name_search():
    particles = Particle.findall("p~")
    assert len(particles) == 2
    assert -2212 in particles
    assert -1000010010 in particles
Esempio n. 13
0
def test_fuzzy_name_search():
    particles = Particle.findall('p~')
    assert len(particles) == 1
    assert -2212 in particles