コード例 #1
0
limits_O[10]+= [{"data": g10n_M3q**2 * p.mWeak**4, 
                 "mchi": M3_mchi, 
                 "label": r"$\overline{\chi}\chi\overline{q}\gamma_5 q$ (Tevatron)"}
               ,{"data": g10n_M9G**2 * p.mWeak**4, 
                 "mchi": M9_mchi,  
                 "label": r"$\overline{\chi}\chi G \tilde{G}$ (Tevatron)"}]

#=========================================

# Automated extraction of estimated Xenon100 limits in all EFT couplings
excluded = [0,2]
for i in range(Nops):
   if i not in excluded:
      print "=== Extracting estimated Xenon100 225 live day limit for operator {0} ===".format(i)
      Xenon100_est_EFT_lim   = tools.get_c_curve("c{0}p=c{0}n".format(i)) #equal proton/neutron couplings
      Xenon100_est_EFT_lim_n = tools.get_c_curve("c{0}n".format(i))       #neutron-only couplings
      limits_O[i] += [{"data" : np.array(Xenon100_est_EFT_lim)**2,  
                       "mchi" : tools.masses, 
                       "label": "Xenon100 N={0} EFT (c{1}p=c{1}n)".format(tools.Nevents,i)}
                     ,{"data" : np.array(Xenon100_est_EFT_lim_n)**2,
                       "mchi" : tools.masses, 
                       "label": "Xenon100 N={0} EFT (c{1}n)".format(tools.Nevents,i)}]

# Automated plotting of various limits in all EFT couplings
def add_curve(ax,datadict):   
   ax.plot( datadict["mchi"]
          , datadict["data"]
          , label=datadict["label"]
          , lw=2) 
コード例 #2
0
# 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

# Convert to/from sigma_SD (in cm^-2)

# WIMP-nucleon couplings squared
g1nsq_M1q    = g1n_M1q**2
g1nsq_M7G    = g1n_M7G**2
g1sq_limEFT  = np.array(c1_lim_XENON100)**2  * p.mWeak**-4
g1nsq_limEFT = np.array(c1n_lim_XENON100)**2 * p.mWeak**-4
g1psq_limEFT = np.array(c1p_lim_XENON100)**2 * p.mWeak**-4
g1sq_X225    = sigmaSI_X225 / t.gsq_to_sigma(mX225,1)

# cross sections
sigmaSI_M1q     = g1nsq_M1q    * t.gsq_to_sigma(M1_mchi,1)