Skip to content

anapole

get_model()

TODO: Add docstring.

Source code in darkmagic/benchmark_models/anapole.py
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
def get_model() -> Model:
    """
    TODO: Add docstring.
    """
    coeff_prefactor = {
        "8a": {
            "e": 1 / 2,  # factor of 1/2 in paper
            "p": -1 / 2,  # Factor of 1/2 in paper * (-1)
        },
        "8b": {
            "e": 1 / 2,  # factor of 1/2 in paper
            "p": -1 / 2,  # Factor of 1/2 in paper * (-1)
        },
        "9": {
            "e": -const.mu_tilde_e / 2,  # -mu_tilde_e/2
            "p": const.mu_tilde_p / 2,  # -mu_tilde_p/2 * (-1)
        },
    }

    coeff_func = {
        "8a": {"e": q_sq_on_mchi_sq, "p": q_sq_on_mchi_sq},
        "8b": {"e": q_sq_on_mchi_sq, "p": q_sq_on_mchi_sq},
        "9": {"e": q_sq_on_mchi_sq, "p": q_sq_on_mchi_sq},
    }

    def reference_cross_section(m_chi: float) -> float:
        return (
            np.pi
            / 6
            * 1
            / (const.alphaEM**2 * const.m_e**2 * reduced_mass(m_chi, const.m_e) ** 2)
        )

    return Model("Anapole", coeff_prefactor, coeff_func)