def dRdEAr(m, E, eff, epsilon=1e-5, mu_x=1e-5, millicharge=False, m_dipole=False, **kwargs): s = np.zeros_like(E) if millicharge: s += eff(E)*DMU.dRdE_millicharge(E, m, epsilon, "Ar40", **kwargs) if m_dipole: s += eff(E)*DMU.dRdE_magnetic(E, m, mu_x, "Ar40", **kwargs) return s
def dRdE(ER_keV, m_x, **kwargs): #Load in the list of nuclear spins, atomic masses and mass fractions nuclei_Xe = ["Xe128", "Xe129", "Xe130", "Xe131", "Xe132", "Xe134", "Xe136"] nuclei_list = np.loadtxt("Nuclei.txt", usecols=(0,), dtype='string') frac_list = np.loadtxt("Nuclei.txt", usecols=(3,)) frac_vals = dict(zip(nuclei_list, frac_list)) dRdE = np.zeros_like(ER_keV) for nuc in nuclei_Xe: if millicharge: dRdE += frac_vals[nuc]*DMU.dRdE_millicharge(ER_keV, m_x, epsilon, nuc, **kwargs) if m_dipole: dRdE += frac_vals[nuc]*DMU.dRdE_magnetic(ER_keV, m_x, mu_x, nuc, **kwargs) return dRdE