Пример #1
0
def test_DecayMode_describe_simple():
    dd = DaughtersDict("pi- pi0 nu_tau")
    dm = DecayMode(0.2551,
                   dd,
                   model="TAUHADNU",
                   model_params=[-0.108, 0.775, 0.149, 1.364, 0.400])
    assert "BF: 0.2551" in dm.describe()
    assert "Decay model: TAUHADNU [-0.108, 0.775, 0.149, 1.364, 0.4]" in dm.describe(
    )
Пример #2
0
def test_DecayMode_describe_simple():
    dd = DaughtersDict('pi- pi0 nu_tau')
    dm = DecayMode(0.2551,
                   dd,
                   model='TAUHADNU',
                   model_params=[-0.108, 0.775, 0.149, 1.364, 0.400])
    assert 'BF: 0.2551' in dm.describe()
    assert 'Decay model: TAUHADNU [-0.108, 0.775, 0.149, 1.364, 0.4]' in dm.describe(
    )
Пример #3
0
def test_DecayMode_charge_conjugate():
    dd = DaughtersDict('pi- pi0 nu(tau)')
    dm = DecayMode(0.2551,
                   dd,
                   model='TAUHADNU',
                   model_params=[-0.108, 0.775, 0.149, 1.364, 0.400])
    dm_cc = dm.charge_conjugate()
    assert dm_cc.daughters == DaughtersDict('pi+ pi0 nu(tau)~')
    assert 'BF: 0.2551' in dm.describe()
    assert 'Decay model: TAUHADNU [-0.108, 0.775, 0.149, 1.364, 0.4]' in dm.describe(
    )
Пример #4
0
def test_DecayMode_charge_conjugate():
    dd = DaughtersDict("pi- pi0 nu_tau")
    dm = DecayMode(0.2551,
                   dd,
                   model="TAUHADNU",
                   model_params=[-0.108, 0.775, 0.149, 1.364, 0.400])
    dm_cc = dm.charge_conjugate()
    assert dm_cc.daughters == DaughtersDict("pi+ pi0 anti-nu_tau")
    assert "BF: 0.2551" in dm.describe()
    assert "Decay model: TAUHADNU [-0.108, 0.775, 0.149, 1.364, 0.4]" in dm.describe(
    )

    dd = DaughtersDict("pi- pi0 nu(tau)")
    assert dd.charge_conjugate(
        pdg_name=True) == DaughtersDict("pi+ pi0 nu(tau)~")
Пример #5
0
def test_DecayChain_flatten_complex():
    dm1 = DecayMode(1.0, "D0 K_S0 pi+ pi0")
    dm2 = DecayMode(0.0124, "K_S0 pi0 pi0")
    dm3 = DecayMode(0.692, "pi+ pi-")
    dm4 = DecayMode(0.98823, "gamma gamma")
    dc = DecayChain("X+", {"X+": dm1, "D0": dm2, "K_S0": dm3, "pi0": dm4})
    dc_flatten = dc.flatten()
    assert dc_flatten.decays[dc_flatten.mother].daughters == DaughtersDict({
        "gamma":
        6,
        "pi+":
        3,
        "pi-":
        2
    })
    assert dc_flatten.bf == approx(1.0 * 0.0124 * (0.692**2) * (0.98823**3))
Пример #6
0
def test_DecayMode_constructor_from_pdgids():
    dm = DecayMode.from_pdgids(
        0.5,
        [321, -321],
        model="TAUHADNU",
        model_params=[-0.108, 0.775, 0.149, 1.364, 0.400],
    )
    assert dm.daughters == DaughtersDict("K+ K-")
Пример #7
0
def test_DecayMode_constructor_from_dict():
    dm = DecayMode.from_dict({
        'bf': 0.98823,
        'fs': ['gamma', 'gamma'],
        'model': 'PHSP',
        'model_params': ''
    })
    assert str(dm) == "<DecayMode: daughters=gamma gamma, BF=0.98823>"
Пример #8
0
def test_DecayMode_constructor_from_dict():
    dm = DecayMode.from_dict({
        "bf": 0.98823,
        "fs": ["gamma", "gamma"],
        "model": "PHSP",
        "model_params": ""
    })
    assert str(dm) == "<DecayMode: daughters=gamma gamma, BF=0.98823>"
Пример #9
0
def test_DecayMode_constructor_with_user_metadata():
    dd = DaughtersDict("K+ K-")
    dm = DecayMode(0.5, dd, model="PHSP", study="toy", year=2019)
    assert dm.metadata == {
        "model": "PHSP",
        "model_params": "",
        "study": "toy",
        "year": 2019,
    }
Пример #10
0
def test_DecayMode_constructor_with_user_model_info():
    dd = DaughtersDict('K+ K-')
    dm = DecayMode(0.5, dd, model='PHSP', study='toy', year=2019)
    assert dm.metadata == {
        'model': 'PHSP',
        'model_params': '',
        'study': 'toy',
        'year': 2019
    }
Пример #11
0
def test_DecayMode_constructor_with_model_info():
    dd = DaughtersDict("pi- pi0 nu_tau")
    dm = DecayMode(0.2551,
                   dd,
                   model="TAUHADNU",
                   model_params=[-0.108, 0.775, 0.149, 1.364, 0.400])
    assert dm.metadata == {
        "model": "TAUHADNU",
        "model_params": [-0.108, 0.775, 0.149, 1.364, 0.4],
    }
Пример #12
0
def test_DecayMode_constructor_with_model_info():
    dd = DaughtersDict('pi- pi0 nu_tau')
    dm = DecayMode(0.2551,
                   dd,
                   model='TAUHADNU',
                   model_params=[-0.108, 0.775, 0.149, 1.364, 0.400])
    assert dm.metadata == {
        'model': 'TAUHADNU',
        'model_params': [-0.108, 0.775, 0.149, 1.364, 0.4]
    }
Пример #13
0
def test_DecayChain_flatten_with_stable_particles():
    dm1 = DecayMode(0.5, "D0 anti-D0 pi+ pi0 pi0")
    dm2 = DecayMode(0.0124, "K_S0 pi0")
    dm3 = DecayMode(0.692, "pi+ pi-")
    dm4 = DecayMode(0.98823, "gamma gamma")
    dc = DecayChain("X+", {
        "X+": dm1,
        "D0": dm2,
        "anti-D0": dm2,
        "K_S0": dm3,
        "pi0": dm4
    })
    dc_flatten = dc.flatten(stable_particles=["pi0"])
    assert dc_flatten.decays[dc_flatten.mother].daughters == DaughtersDict({
        "pi0":
        4,
        "pi+":
        3,
        "pi-":
        2
    })
    assert dc_flatten.bf == approx(0.5 * (0.0124**2) * (0.692**2))
Пример #14
0
def test_DecayMode_constructor_from_pdgids_default():
    dm = DecayMode.from_pdgids()
    assert dm.bf == 0
    assert dm.daughters == DaughtersDict()
    assert dm.metadata == dict(model="", model_params="")
Пример #15
0
def test_DecayMode_constructor_simple():
    dd = DaughtersDict('K+ K-')
    dm = DecayMode(0.1234, dd)
    assert dm.bf == 0.1234
    assert dm.daughters == DaughtersDict('K+ K-')
    assert dm.metadata == dict(model='', model_params='')
Пример #16
0
def test_DecayMode_constructor_default():
    dm = DecayMode()
    assert dm.bf == 0
    assert dm.daughters == DaughtersDict()
    assert dm.metadata == dict(model='', model_params='')
Пример #17
0
def test_DecayMode_number_of_final_states():
    dd = DaughtersDict('p p~ K+ pi-')
    dm = DecayMode(1.e-6, dd, model='PHSP')
    assert len(dm) == 4
Пример #18
0
def test_DecayMode_string_repr():
    dd = DaughtersDict('p p~ K+ pi-')
    dm = DecayMode(1.e-6, dd, model='PHSP')
    assert str(dm) == "<DecayMode: daughters=K+ p pi- p~, BF=1e-06>"
Пример #19
0
def test_DecayMode_describe_with_user_metadata():
    dd = DaughtersDict("K+ K-")
    dm = DecayMode(1.0e-6, dd, model="PHSP", study="toy", year=2019)
    assert "Extra info:" in dm.describe()
    assert "study: toy" in dm.describe()
    assert "year: 2019" in dm.describe()
Пример #20
0
def test_DecayMode_describe_with_extra_info():
    dd = DaughtersDict('K+ K-')
    dm = DecayMode(1.e-6, dd, model='PHSP', study='toy', year=2019)
    assert 'Extra info:' in dm.describe()
    assert 'study: toy' in dm.describe()
    assert 'year: 2019' in dm.describe()
Пример #21
0
def test_DecayMode_string_repr():
    dd = DaughtersDict("p p~ K+ pi-")
    dm = DecayMode(1.0e-6, dd, model="PHSP")
    assert str(dm) == "<DecayMode: daughters=K+ p pi- p~, BF=1e-06>"
Пример #22
0
def test_DecayMode_number_of_final_states():
    dd = DaughtersDict("p p~ K+ pi-")
    dm = DecayMode(1.0e-6, dd, model="PHSP")
    assert len(dm) == 4
Пример #23
0
    )


def test_DecayMode_string_repr():
    dd = DaughtersDict('p p~ K+ pi-')
    dm = DecayMode(1.e-6, dd, model='PHSP')
    assert str(dm) == "<DecayMode: daughters=K+ p pi- p~, BF=1e-06>"


def test_DecayMode_number_of_final_states():
    dd = DaughtersDict('p p~ K+ pi-')
    dm = DecayMode(1.e-6, dd, model='PHSP')
    assert len(dm) == 4


dm1 = DecayMode(0.0124, 'K_S0 pi0', model='PHSP')
dm2 = DecayMode(0.692, 'pi+ pi-')
dm3 = DecayMode(0.98823, 'gamma gamma')
dc = DecayChain('D0', {'D0': dm1, 'K_S0': dm2, 'pi0': dm3})

dm1 = DecayMode(0.6770, 'D0 pi+')
dm2 = DecayMode(0.0124, 'K_S0 pi0')
dm3 = DecayMode(0.692, 'pi+ pi-')
dm4 = DecayMode(0.98823, 'gamma gamma')
dc2 = DecayChain('D*+', {'D*+': dm1, 'D0': dm2, 'K_S0': dm3, 'pi0': dm4})


def test_DecayChain_constructor_subdecays():
    assert len(dc.decays) == 3
    assert dc.mother == 'D0'
Пример #24
0
def dc():
    dm1 = DecayMode(0.0124, "K_S0 pi0", model="PHSP")
    dm2 = DecayMode(0.692, "pi+ pi-")
    dm3 = DecayMode(0.98823, "gamma gamma")
    return DecayChain("D0", {"D0": dm1, "K_S0": dm2, "pi0": dm3})
Пример #25
0
def dc2():
    dm1 = DecayMode(0.6770, "D0 pi+")
    dm2 = DecayMode(0.0124, "K_S0 pi0")
    dm3 = DecayMode(0.692, "pi+ pi-")
    dm4 = DecayMode(0.98823, "gamma gamma")
    return DecayChain("D*+", {"D*+": dm1, "D0": dm2, "K_S0": dm3, "pi0": dm4})
Пример #26
0
def test_DecayMode_constructor_simplest():
    dm = DecayMode(0.1234, "K+ K-")
    assert dm.bf == 0.1234
    assert dm.daughters == DaughtersDict("K+ K-")
    assert dm.metadata == dict(model="", model_params="")