예제 #1
0
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
예제 #2
0
 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
예제 #3
0
def calcSpectrum(E_R, m_x, sigma_p):
    dRdE = np.zeros_like(E_R)

    for nuc in nuclei_Xe:
        N_p = 54.
        N_n = get_A(nuc) - N_p
        dRdE += get_frac(nuc) * DMU.dRdE_standard(E_R, N_p, N_n, m_x, sigma_p)

    return dRdE
def dRdEAr(m, E, c, eff, Nevents=True, **kwargs):
    s = eff(E) * DMU.dRdE_NREFT(E, m, c, c, "Ar40", **kwargs) + 1.e-30
    if Nevents:
        s, sum(s * ER_width)
    else:
        return s
예제 #5
0
def dRdE(m, E, c, eff):
    s = eff(E) * DMU.dRdE_NREFT(E, m, c, c, "Ar40") + 1.e-30
    return s
예제 #6
0
ER_grid, EEM_grid = np.meshgrid(ER_list, EEM_list, indexing='ij')

#--------------------------------------------------
#--------- Standard Elastic Nuclear Recoils -------
#--------------------------------------------------

eta_list = np.trapz(f_clip / (v_list + 1e-30), v_list) - cumtrapz(
    f_clip / (v_list + 1e-30), v_list, initial=0)
eta_func = interp1d(v_list, eta_list, bounds_error=False, fill_value=0.0)

#plt.figure()
#
#plt.plot(v_list, eta_list)

R_NR_list = DMU_standard.dRdE_generic(ER_list, A_Ge, 0, m_x, sigma_p, eta_func)
R_NR_list_noscatter = DMU_standard.dRdE_standard(ER_list, A_Ge, 0, m_x,
                                                 sigma_p)

outfile = "results/spectra/Elastic/Elastic_" + interaction + "_MOD_mx" + '{0:.3f}'.format(
    m_x) + "_lsig" + '{0:.2f}'.format(np.log10(sigma_p)) + ".txt"
headertxt = "Elastic nuclear recoil spectrum for " + interaction + " interactions. Ge detector at Modane (d=1700m, latitude=45.2deg)"
headertxt += "\nColumns: Nuclear recoil energy [keV], dR/dE (w/ Earth-shielding) [events/keV/kg/day]"
#Output format - short
#np.savetxt(outfile, list(zip(ER_list, R_NR_list, R_NR_list_noscatter)), header=headertxt, fmt='%.4e')
np.savetxt(outfile,
           list(zip(ER_list, R_NR_list)),
           header=headertxt,
           fmt='%.3e')

#plt.figure()