snorer.Neutrino

class snorer.Neutrino(Tx,mx,psi)

Superclass: snorer.Kinematics

This class constructs the required neturino energy to have BDM with \((T_\chi,m_\chi,\psi)\). See Fig. 2 in BDM Physics. We have assumed neutrino mass \(m_\nu=0\).

Parameters:

Tx : array_like
    BDM kinetic energy \(T_\chi\), MeV

mx : array_like
    DM mass \(m_\chi\), MeV

psi : array_like
    Lab frame scattering angle \(\psi\), rad

Attributes:

Ev : scalar/ndarray
    The required neutrino energy \(E_\nu\) to boost DM with \(m_\chi\) to \(T_\chi\), MeV

dEv : scalar/ndarray
    The Jacobian \(dE_\nu/dT_\chi\), dimensionless

x : scalar/ndarray
    \(x:=\cos\psi \in [1,-1]\)

sanity : bool/ndarray
    Is the reaction physically plausible? True for plausible and False for physically impossible.

dLips : scalar/ndarray
    Value for differential Lorentz invariant phase space

Examples

Import snorer and do

>>> import snorer as sn
>>> Tx,mx,psi = 15,1e-3,0.05 # BDM kinetic energy, mx, scattering angle
>>> snv = sn.Neutrino(Tx,mx,psi)
>>> snv.Ev # required Ev
-0.8451953159962898
>>> snv.dEv # Jacobian
0.0031707324661873464
>>> snv.sanity # is this physically possible?
False

This example is identical to the example conducted in snorer.Kinematics as snorer.Kinematics is the superclass of snorer.Neutrino. One understands that \(T_1=E_\nu\), \(T_2=T_\chi\), \(m_1=m_\nu=0\) and \(m_2=m_\chi\).