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
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
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
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
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)
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
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, ]
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
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
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, ]
def test_fuzzy_name_search(): particles = Particle.findall("p~") assert len(particles) == 2 assert -2212 in particles assert -1000010010 in particles
def test_fuzzy_name_search(): particles = Particle.findall('p~') assert len(particles) == 1 assert -2212 in particles