wimpydd is hosted by Hepforge, IPPP Durham






Hamiltonian for spin-independent interaction

>>> print(WD.SI)
    Hamiltonian name:Spin-independent
    Hamiltonian:c_tau_SI(sigma_p, mchi, cn_over_cp=1)* O_1
    Squared amplitude contributions: O_1*O_1

In the printout above O_1 stands for the effective operator \( {\cal O}_1 \) in the convention of Anand et al. In the pre-defined WD.SI Hamiltonian, the Wilson coefficients (in GeV\(^{-2}\)) are parameterized in terms of the WIMP-proton cross section \(\sigma_p= \frac{(c_1^p\mu_{\chi,N})^2}{\pi}\) in cm\(^2\) (with \(\mu_{\chi,N}\) the WIMP-nucleon reduced mass), of the WIMP mass \(m_\chi\) in GeV and of the ratio \(r=\frac{c_1^n}{c_1^p}\): \[{\cal H}=\sum_{\tau=0,1} c_1^{\tau}(\sigma_p,r) {\cal O}_{1}^{\tau} \]
The Hamiltonian contains only the \({\cal O}_1\) coupling, so is implemented by passing to the eft_hamiltonian class a dictionary {key:value} with a single entry: key=1 and value a valid python function returning the corresponding coefficients \(c_1^0\), \(c_1^1\) as a function of the input parameters.

def c_tau_SI(sigma_p,mchi,cn_over_cp=1):
     hbarc2=0.389e-27 #(hbar*c)^2 in GeV^2 * cm^2
     mn=0.931
     mu=mchi*mn/(mchi+mn)
     return np.sqrt(np.pi*sigma_p/hbarc2)/mu*np.array([1+cn_over_cp,1-cn_over_cp])

So:

 >>> wc_SI={1: c_tau_SI}
 >>> SI=WD.eft_hamiltonian('Spin-independent',wc_SI)

Main attributes

 >>> print(WD.SI.name)
     Spin-independent
 >>> print(WD.SI.couplings)
     [1]
 >>> print(WD.SI.coeff_squared_list)
     [(1, 1)]
 >>> print(WD.SI.hamiltonian)
     c_1*O_1
 >>> print(WD.SI.wilson_coefficients[1](sigma_p=1e-40,mchi=100,cn_over_cp=1))
     [1.94852071e-06 0.00000000e+00]
 >>> print(WD.SI.wilson_coefficients[1](sigma_p=1e-40,mchi=100,cn_over_cp=0))
     [9.74260356e-07 9.74260356e-07]
 >>> print(WD.SI.coeff_squared(1,1,sigma_p=1e-40,mchi=100,cn_over_cp=1))
     [[3.79673297e-12 0.00000000e+00] [0.00000000e+00 0.00000000e+00]]
 >>> print(WD.SI.arguments) 
     {1: ['sigma_p', 'mchi', 'cn_over_cp']}
 >>> print([(key,value.__name__) for key,value in WD.SI.wilson_coefficients.items()])
     [(1, 'c_tau_SI')]

Hamiltonian for spin-dependent interaction

 >>> print(WD.SD)
     Hamiltonian name:Spin-dependent
     Hamiltonian:c_tau_SD(sigma_p, mchi, cn_over_cp=1)* O_4
     Squared amplitude contributions:O_4*O_4

In the printout above O_4 stands for the effective operator \( {\cal O}_4 \) in the convention of Anand et al. In the pre-defined WD.SD Hamiltonian, the Wilson coefficients (in GeV\(^{-2}\)) are parameterized in terms of the WIMP-proton cross section \(\sigma_p= \frac{3}{16}\frac{(c_4^p\mu_{\chi,N})^2}{\pi}\) in cm\(^2\) (with \(\mu_{\chi,N}\) the WIMP-nucleon reduced mass), of the WIMP mass \(m_\chi\) in GeV and of the ratio \(r=\frac{c_1^n}{c_1^p}\): \[{\cal H}=\sum_{\tau=0,1} c_4^{\tau}(\sigma_p,r) {\cal O}_{4}^{\tau} \] The Hamiltonian contains only the \({\cal O}_4\) coupling, so is implemented by passing to the eft_hamiltonian class a dictionary {key:value} with a single entry: key=4 and value a valid python function returning the corresponding coefficients \(c_4^0\), \(c_4^1\) as a function of the input parameters.

def c_tau_SD(sigma_p,mchi,cn_over_cp=1):
     hbarc2=0.389e-27 #(hbar*c)^2 in GeV^2 * cm^2
     mn=0.931
     mu=mchi*mn/(mchi+mn)
     return np.sqrt(16/3*np.pi*sigma_p/hbarc2)/mu*np.array([1+cn_over_cp,1-cn_over_cp])

So:

 >>> wc_SD={4: c_tau_SD}
 >>> SD=WD.eft_hamiltonian('Spin-dependent',wc_SD)

Main attributes

 >>> print(WD.SD.name)
     Spin-dependent
 >>> print(WD.SD.couplings)
     [4]
 >>> print(WD.SD.coeff_squared_list)
     [(4, 4)]
 >>> print(WD.SD.hamiltonian)
     c_4*O_4
 >>> print(WD.SD.wilson_coefficients[4](sigma_p=1e-40,mchi=100,cn_over_cp=1))
     [4.49991583e-06 0.00000000e+00]
 >>> print(WD.SD.wilson_coefficients[4](sigma_p=1e-40,mchi=100,cn_over_cp=0))
     [2.24995792e-06 2.24995792e-06]
 >>> print(WD.SD.coeff_squared(4,4,sigma_p=1e-40,mchi=100,cn_over_cp=1))
     [[3.79673297e-12 0.00000000e+00]
     [0.00000000e+00 0.00000000e+00]]
 >>> print(WD.SD.arguments)
     {4: ['sigma_p', 'mchi', 'cn_over_cp']}
 >>> print([(key,value.__name__) for key,value in WD.SD.wilson_coefficients.items()])
     [(4, 'c_tau_SD')]