예제 #1
0
파일: migdal.py 프로젝트: kdund/wimprates
def vmin_migdal(w, erec, mw):
    """Return minimum WIMP velocity to make a Migdal signal with energy w,
    given elastic recoil energy erec and WIMP mass mw.
    """
    y = (wr.mn() * erec / (2 * wr.mu_nucleus(mw)**2))**0.5
    y += w / (2 * wr.mn() * erec)**0.5
    return np.maximum(0, y)
예제 #2
0
def vmin_w(w, mw):
    """Minimum wimp velocity to emit a Bremsstrahlung photon w

    :param w: Bremsstrahlung photon energy
    :param mw: WIMP mass

    From Kouvaris/Pradler [arxiv:1607.01789v2], equation in text below eq. 10
    """
    return (2 * w / wr.mu_nucleus(mw))**0.5
예제 #3
0
def erec_bound(sign, w, v, mw):
    """Bremsstrahlung scattering recoil energy kinematic limits
    From Kouvaris/Pradler [arxiv:1607.01789v2], eq. between 8 and 9,
    simplified by vmin (see above)

    :param sign: +1 to get upper limit, -1 to get lower limit
    :param w: Bremsstrahlung photon energy
    :param mw: WIMP mass
    :param v: WIMP speed (earth/detector frame)
    """
    return (wr.mu_nucleus(mw)**2 * v**2 / wr.mn() *
            (1 - vmin_w(w, mw)**2 / (2 * v**2) + sign *
             (1 - vmin_w(w, mw)**2 / v**2)**0.5))