snorer.Kinematics

class snorer.Kinematics(T2,m1,m2,psi)

This class constructs the required kinetic energy \(T_1\) of incoming particle with mass \(m_1\) to boost the target with mass \(m_2\) to kinetic energy \(T_2\) along the direction \(\psi\). See Fig. 1 in 2-2 elastic scattering.

Parameters:

T2 : array_like
    Kinetic energy \(T_2\) received by the particle 2, MeV

m1 : array_like
    Mass of particle 1 (incident) \(m_1\), MeV

m2 : array_like
    Mass of particle 2 (target) \(m_2\), MeV

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

Attributes:

T1 : scalar/ndarray
    The required kinetic energy \(T_1\) of particle 1, MeV

dT1 : scalar/ndarray
    The Jacobian \(dT_1/dT_2\), dimensionless

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

sanity : boolr/ndarray
    Are the parameters 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
>>> T2,m1,m2,psi = 15,0,1e-3,0.05 # kinetic energy, m1, m2, scattering angle
>>> snv = sn.Kinematics(T2,m1,m2,psi)
>>> snv.T1 # required kinetic energy T1 for particle 1
-0.8451953159962898
>>> snv.dT1 # Jacobian
0.0031707324661873464
>>> snv.sanity # is this physically possible?
False

It is clear that massless particle 1 is no way to upscatter particle 2 with \(m_2=10^{-3}\) MeV to \(T_2=15\) MeV at angular direction \(\psi\). Becasue the required \(T_1\) (snv.T1) is negative. The attribute snv.sanity is False, which implies this reaction is physically impossible.