snorer.BoostedDarkMatter

class snorer.BoostedDarkMatter(Rs,Rg,beta,amp2_xv,amp2_xe,
mt=None,is_spike=False,**kwargs)

Superclass: Constants

Class with medoths that evaluate supernova-neutrino-boosted dark matter (SN\(\nu\) BDM) coming from SN in arbitrary distant galaxy with DM-\(\nu\) and DM-\(e\) interaction cross sections descrbied by a specific particle model. This class integrates functions like snorer.flux and snorer.event as methods for user to calculate the SN\(\nu\) BDM flux and event associated to any models.

To construct the scattering amplitude \(\mathcal{M}\) from a specific model, we take the one discussed in Ref. [1] for instance. Both DM-\(\nu\) and DM-\(e\) have the same amplitude square \(|\mathcal{M}|^2\) shown by Eq. (3) of Ref. [1] in terms of Mandelstam variables \(s\), \(t\), and \(u\),

\[ |\mathcal{M}|^2 = 2 \left(\frac{\mathcal{Q}}{t} - m_V^2\right)^2 (s^2 + u^2 + 4t (m_1^2 + m_2^2) - 2 (m_1^2 + m_2^2)^2) \]

where \(\mathcal{Q}\) is the multiplication of coupling constants, \(m_1\) and \(m_2\) are the masses of incident and target particles respectively and \(m_V\) the mediator mass.

Thus we can construct DM-\(\nu\) amplitude square by letting, \(m_1 = 0\) and assume \(m_V = m_\chi/3\), \(g_V = 10^{-6}\) and \(g_\chi = 10^{-2}\),

def amp2_xv(s,t,u,mx) -> float:
    mV = mx/3
    gV,gx = 1e-06,1e-02
    Q = gV*gx
    return (s**2 + u**2 + 4*t*(mx**2) - 2*(mx**2)**2)*(Q/(t - mV**2))**2

Similarily, for DM-\(e\) scattering, \(m_1 = m_\chi\), \(m_2 = m_e\) and kinetic mixing \(\varepsilon = 10^{-6}\),

def amp2_xe(s,t,u,mx) -> float:
    mV = mx/3
    me = snorer.constant.me
    gx,eps = 1e-02,1e-06
    Q = gx*eps
    return 2*(s**2 + u**2 + 4*t*(me**2 + mx**2) - 2*(me**2 + mx**2)**2)*(Q/(t - mV**2))**2

These are the desired amplitudes and serve as the inputs in the class.

Parameters:

Rs : float
    Distance from Earth to SN, kpc.

Rg : float
    Distance from Earth to the center of a distant galaxy, kpc.

beta : float
    Off-center angle, rad.

amp2_xv : func
    Amplitude squared for DM-\(\nu\) interaction with 4 positioning arguments. amp2_xv = func(s,t,u,mx): the first 3 are Mandelstam variables and the last one is the DM mass.

amp2_xe : func
    Arguments are identical to amp2_xv, but is for DM-\(e\) interaction. Generally, amp2_xe is not exclusively for electron, user can assume any particle in the detector to be scattered off by BDM. If the target is not electron, user has to input its mass mt. See the description for parameter mt next.

mt : None/float
    Mass of the target in the detector. Default is None and implies the target is electron. If amp2_xe is for particle other than electron, user has to assign its mass here. The unit is MeV.

is_spike : bool
    Whether spike feature is included in \(n_\chi\). Default is False.

**kwargs
     Keyword arguments for characteristic parameters of NFW profile and spike halo, . If is_spike = False, the parameters for configuring spiky halo will be deactivated. Default values assume Milky Way. See default arguments in snorer.params.halo and snorer.params.spike.

nx(r,mx)

Method.

Yields DM number density at place distant \(r\) to GC. Whether spike feature is on depending the initial setting of is_spike when the class instance is initialized.

Parameters:

r : float
    Distance from Earth to GC, kpc.

mx : float
    Dark matter mass, MeV.

Returns:

out : float
    Dark matter number density at \(r\), cm−3.

dsigma_xv(Tx,mx,psi)

Method.

Yields differential DM-\(\nu\) cross section for a given \((T_\chi,m_\chi,\psi)\) associated with amp2_xv.

Parameters:

Tx : float
    BDM kinetic energy, MeV.

mx : float
    Dark matter mass, MeV.

psi : float
    Scattering angle in lab frame, rad.

Returns:

out : float
    Differential DM-\(\nu\) cross section, cm2 sr−1.

sigma_xe(Tx,mx)

Method.

Yields total DM-\(e\) cross section for a given \((T_\chi,m_\chi)\) associated with amp2_xe.

Parameters:

Tx : float
    BDM kinetic energy, MeV.

mx : float
    Dark matter mass, MeV.

Returns:

out : float
    Total DM-\(e\) cross section, cm2.

flux(t,Tx,mx,**kwargs)

Method.

The SN\(\nu\) BDM flux at time \(t\) on Earth after integrated over a field-of-view \(d\Omega_{\rm lab}\). Note that zenith angle \(\theta\) is integrated up to \(\theta_{\rm M}^*\) and azimuthal angle \(\varphi\) from \(0\) to \(2\pi\).

Parameters:

t : float
    The BDM ToF, relative to the first SN neutrino's arrival.

Tx : float
    BDM kinetic energy, MeV.

mx : float
    Dark matter mass, MeV.

**kwargs
    Keyword arguments for min distances and vegas. See default arguments in snorer.params.min_distance and snorer.params.vegas.

Returns:

out : float
    The time-depenent boosted dark matter flux at Earth, MeV−1 cm2 s−1.

event(mx,Tx_range=[5,30],t_range=[10,1.1045e+09],**kwargs)

Method.

The SN\(\nu\) BDM evnet per electron, \(N_{\chi,0}\). To retrieve the correct event number, one should mutiply the total electron number \(N_e\). For instance, if the BDM event rate obtained from this function is \(N_\chi\), then the total BDM event in a detector with electron number \(N_e\) is

\[ N_\chi^{\rm correct} = N_e\times N_{\chi,0}. \]

Parameters:

mx : float
    Dark matter mass, MeV.

Tx_range : list
    Integration range for BDM kinetic energy [Tx_min,Tx_max], MeV. Default is [5,30].

t_range : list
    Integration range for exposure time [t_min,t_max], seconds. Default is [10,1.1045e+09] and implies t_max is around 35 years.

**kwargs
    Keyword arguments for min distances and vegas. See default arguments in snorer.params.min_distance and snorer.params.vegas.

Returns:

out : float
    Event number of SN\(\nu\) BDM per electron.

References

  1. Y.-H. Lin et al., Phys. Rev. D 108, 083013 (2023)