# i.e. pseudoscalar coupling to quarks and gluons # ---> pseudoscalar coupling to nucleons # (with coupling to pseudoscalar WIMP current) g4u_limit = g4q(p.mu,M4_limit) g4d_limit = g4q(p.md,M4_limit) g4s_limit = g4q(p.ms,M4_limit) g4c_limit = g4q(p.mc,M4_limit) g4b_limit = g4q(p.mb,M4_limit) g4t_limit = g4q(p.mt,M4_limit) g10G_limit = g10G(M10_limit) # limits on nucleon couplings from quark couplings (M1): # (extra factor is from mapping of O_4^R --> O_6^NR g6p_M4q = (-p.mN/M4_mchi) * t.calc_cN_pseudoscalar(g4u_limit,g4d_limit,g4s_limit,g4c_limit,g4b_limit,g4t_limit,0.,p.data_p) g6n_M4q = (-p.mN/M4_mchi) * t.calc_cN_pseudoscalar(g4u_limit,g4d_limit,g4s_limit,g4c_limit,g4b_limit,g4t_limit,0.,p.data_n) # limits on nucleon couplings from gluon couplings (M7): g6p_M10G = (-p.mN/M10_mchi) * t.calc_cN_pseudoscalar(0.,0.,0.,0.,0.,0.,g10G_limit,p.data_p) g6n_M10G = (-p.mN/M10_mchi) * t.calc_cN_pseudoscalar(0.,0.,0.,0.,0.,0.,g10G_limit,p.data_n) limits_O[6]+= [{"data" : g6n_M4q**2 * p.mWeak**4, "mchi" : M4_mchi, "label": r"$\overline{\chi}\gamma_5\chi\overline{q}\gamma_5q$ (Tevatron)"} ,{"data" : g6n_M10G**2 * p.mWeak**4, "mchi" : M10_mchi, "label": r"$\overline{\chi}\gamma_5\chi G \tilde{G}$ (Tevatron)"}] #================================================== # Limits on O10 from M3 and M9 (tevatron)
g3d_limit = g3q(p.md,M3_limit) g3s_limit = g3q(p.ms,M3_limit) g3c_limit = g3q(p.mc,M3_limit) g3b_limit = g3q(p.mb,M3_limit) g3t_limit = g3q(p.mt,M3_limit) g9G_limit = g9G(M9_limit) # Translate to limits on nucleon couplings #------- # Not sure this really makes sense, should probably set all couplings # equal to largest(smallest?) of limits. Though actually I think this is assuming # the same M*, i.e. mediator mass / coupling, for each effecting operator, so # maybe ok. g10p_M3q = t.calc_cN_pseudoscalar(g3u_limit,g3d_limit,g3s_limit,g3c_limit,g3b_limit,g3t_limit,0,p.data_p) g10n_M3q = t.calc_cN_pseudoscalar(g3u_limit,g3d_limit,g3s_limit,g3c_limit,g3b_limit,g3t_limit,0,p.data_n) g10p_M9G = t.calc_cN_pseudoscalar(0,0,0,0,0,0,g9G_limit,p.data_p) g10n_M9G = t.calc_cN_pseudoscalar(0,0,0,0,0,0,g9G_limit,p.data_n) #========================================= # Get SI XENON100 225 live day limits (1207.5988) mX225, sigmaSI_X225 = np.loadtxt("goodman_limits_data/xenon225livedays.csv",delimiter=",").T sigmaSI_X225 = 10**sigmaSI_X225 # data in file is in log10 units # Compare to SI XENON100 estimated limits via EFT: c1_lim_XENON100 = tools.get_c_curve("c1p=c1n") # SI operator, equal proton/neutron couplings c1n_lim_XENON100 = tools.get_c_curve("c1n") # SI operator, neutron only couplings c1p_lim_XENON100 = tools.get_c_curve("c1p") # SI operator, neutron only couplings