Paremeters to be used
Survival probability is given by
\begin{equation} P_{\nu_e\to\nu_e} = \frac{1}{2} + \left( \frac{1}{2} - P_f \right) \cos 2\theta \cos 2\theta_m, \end{equation}where
\begin{equation} P_f = e^{-\frac{\pi}{2}\gamma}, \end{equation}and
\begin{equation} \gamma = \frac{\Delta m^2 \sin^2 2\theta}{2E \cos 2\theta \left\lvert \frac{1}{n_e} \frac{dn_e}{dr} \right\rvert } = \frac{\omega \sin^2 2\theta}{\cos 2\theta \left\lvert \frac{1}{n_e} \frac{dn_e}{dr} \right\rvert } = \frac{\omega \sin^2 2\theta}{\cos 2\theta \left\lvert \frac{1}{\hat\lambda} \frac{d\hat\lambda}{dr} \right\rvert } \end{equation}in which
\begin{equation} \cos 2\theta_m = \frac{\cos 2\theta - \hat\lambda}{\sqrt{\hat\lambda^2 + 1 - 2\hat\lambda \cos 2\theta}}, \end{equation}What we would like to produce is the survival probability of electron neutrinos as a heat map with two parameters mass difference $\Delta m^2$ and $\sin^22\theta$ at each distance $x$.
The formula we have above is only valid far away from the resonance where the Landau-Zener transition happens.
The gamma for our sun is
\begin{equation} \gamma_S = 3.36\times 10^{14} \omega \frac{\sin^22\theta}{\cos2\theta} = 2.554\times 10^3 \frac{\sin^22\theta}{\cos2\theta} \frac{1}{\hat\lambda} \end{equation}
In [45]:
%matplotlib inline
In [46]:
import numpy as np
import sys
sys.path.insert(0,'../../module')
import neuosc as ns
import sympy as sp
import matplotlib.pyplot as plt
In [47]:
figureSize = (13,9)
In [48]:
reload(ns)
Out[48]:
In [49]:
neu_e = 1000000 #eV
msw_eff = ns.MSW(neu_e)
In [50]:
msw_eff.adiabatic_p(0.1,0)
Out[50]:
In [51]:
size = [200,100]
sinma = np.logspace(-4, 0, num=size[0])
lam = np.logspace(6, -1, size[1])
In [52]:
su_prob = [[0 for x in range(size[0])] for x in range(size[1])]
md = 0
for matter in lam:
agl = 0
for sin22theta in sinma:
angle = np.arcsin( np.sqrt(sin22theta) )/2
su_prob[md][agl] = msw_eff.solar_landau_zener_p(angle, matter)#adiabatic_p(angle, matter)
agl = agl + 1
md = md + 1
In [53]:
sinma, lam = np.meshgrid(np.log10(sinma), np.log10(lam) )
plt.figure(figsize=figureSize)
plt.pcolormesh(sinma, lam, np.array(su_prob) )
plt.colorbar() #need a colorbar to show the intensity scale
plt.show() #boom
In [ ]: