{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'%.4g'"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy\n",
    "import sys\n",
    "sys.path.append(\"..\")\n",
    "import physics\n",
    "from astropy.io import fits\n",
    "from scipy.interpolate import interp1d\n",
    "import math\n",
    "import scipy.constants as p\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import timeit\n",
    "%precision %.4g"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1>Thermalization</h1>\n",
    "\n",
    "\n",
    "\n",
    "<p>\n",
    "This is perhaps the easiest process to model, and is where all electrons eventually end up once beneath the first inductive step corresponding to the lowest excitation energy of hydrogen. \n",
    "\n",
    "The preliminary source for cross sections is this paper: [https://arxiv.org/pdf/0910.4410.pdf]\n",
    "</p>\n",
    "\n",
    "<p> $ \\sigma_{ee}=\\frac{40\\pi e^2}{E^2}ln(\\Lambda)(\\frac{0.05}{f})$\n",
    "As long as $f<0.05$, the results are the same within the error; $ln(\\Lambda) \\sim 10$. </p>\n",
    "\n",
    "\n",
    "<p> There is no output spectra; all output is stored as heat.</p>\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def thermalize_cs(T, f=0.05, lnV=10):\n",
    "    '''\n",
    "    Calculates the heating cross section (xsec) at a particular kinetic energy.\n",
    "    \n",
    "    Parameters\n",
    "    ----------\n",
    "    T : float, ndarray\n",
    "        The electron's initial kinetic energy.\n",
    "    f : float\n",
    "        The fraction of energy lost in each interaction.\n",
    "    lnV : float\n",
    "        The Coulomb logarithm [ln(Lambda)]\n",
    "\n",
    "    Returns\n",
    "    ----------\n",
    "    float, ndarray (same as T)\n",
    "        The cross section for heating at energy T \n",
    "        (given in cm^2). \n",
    "    \n",
    "    See Also\n",
    "    --------\n",
    "    heating_dE : Preferred; finds dE/dt\n",
    "    '''\n",
    "   \n",
    "    \n",
    "    sigma_ee=(7.82*10**(-11))*(0.05/f)*lnV*(T)**(-2)\n",
    "    return sigma_ee\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def heating_dE(T, x_e, rs, nH=physics.nH):\n",
    "    '''\n",
    "    Calculates the heating loss rate for electrons at a particular \n",
    "    kinetic energy given some ionization fraction and redshift.\n",
    "    \n",
    "    Parameters\n",
    "    ----------\n",
    "    T : float, ndarray\n",
    "        The electron's initial kinetic energy\n",
    "    x_e : float\n",
    "        The ionization fraction for Hydrogen.\n",
    "    rs : float\n",
    "        The redshift (1+z) during heating; used for n_e.\n",
    "    nH : float\n",
    "        Hydrogen density from physics.py\n",
    "        \n",
    "    Returns\n",
    "    ----------\n",
    "    float, ndarray (same as T)\n",
    "        The energy loss rate from heating (negative).\n",
    "    \n",
    "    '''\n",
    "    \n",
    "    lnV=10\n",
    "    n_e = x_e*nH*rs**3  #cm^-3\n",
    "    # from x_e=n_e/n_h/rs^3 \n",
    "    \n",
    "    e_charge=4.80326*10**-10 #esu units\n",
    "    mv=((T**2+2*T*physics.me)**0.5*physics.me/(T+physics.me)) \n",
    "    numfac=(10**-14*physics.ele**-2*physics.c)\n",
    "    \n",
    "    dE_dt = numfac*(-4*math.pi*(e_charge)**4*n_e*lnV)/mv\n",
    "    \n",
    "    \n",
    "    return dE_dt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Heating test 1 return:\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "-0.001304"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Examples and testing for heating_dE and thermalize\n",
    "print('Heating test 1 return:')\n",
    "heating_dE(100, 0.9, 1000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeEAAAERCAYAAABM2B8XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xm4HVWZ7/Hvb+99hswJ5DBlMEjCFGZikAAtrUYRafGq\naGgVRW0eaPFiq/hI69VH+nod6Is20hIjU0cUHHDgMgktdINKgCRASCBgGAMk5BDIPJ3hvX9UnWRz\nOCfZ+wxVOWf/Ps+zn121alXVWwfNu9eqVbUUEZiZmVn2CnkHYGZmVquchM3MzHLiJGxmZpYTJ2Ez\nM7OcOAmbmZnlxEnYzMwsJ4MmCUu6WtIqSYv76Hi3S1oj6eZO5VdJekTSIkm/ljS8L85nZma1Z9Ak\nYeBa4JQ+PN4lwMe7KP+niDgyIo4AngfO78NzmplZDRk0STgi7gFeLS+TdEDaol0g6V5JB1dxvD8C\n67soX5ceW8AQwG87MTOzHhk0Sbgbc4DPRcSxwJeAH/XFQSVdA6wEDgZ+2BfHNDOz2lPKO4D+kt6r\nnQH8Kmm0AtCQbvsAcHEXu70YEe/e1bEj4mxJRZIE/BHgmj4J2szMasqgTcIkrfw1EXFU5w0R8Rvg\nN705eES0SboB+DJOwmZm1gODtjs6vXf7jKQzILmHK+nI3hwzPcbkjmXgfcDSXgdrZmY1SYNlFiVJ\n1wMnA2OBl4FvAHcBVwD7AnXADRHRVTd0V8e7l+Se73BgNfBp4E7gXmAkIOAR4LyOwVpmZmbVGDRJ\n2MzMbKAZtN3RZmZmu7tBMTBr7NixMWnSpLzDMDMbUBYsWPBKRDT18hh7lUqlK4HDcMOuK+3A4tbW\n1s8ce+yxqzpvHBRJeNKkScyfPz/vMMzMBhRJz/X2GKVS6cp99tnnkKamptcKhYLvb3bS3t6u5ubm\nQ1euXHklyWDe1/GvFjMz643Dmpqa1jkBd61QKERTU9Nakp6CN27POB4kFSU91HlihHSbJF0maVk6\nQcIxWcdnZmZVKTgB71z69+ky3+bREr4AeLybbe8BpqSfc0geLzIzMxuUMk3CksYD7wWu7KbK6cDc\nSMwDRkvaN7MAzcxsQHniiSfqp0yZMrW3x7n55ptH3HnnncM61r/3ve81XX755Xv29ri7kvXArB+Q\nvOZxRDfbxwHLy9ZfSMtWdK4o6RyS1jITJ07s2yjNzKym3HXXXSOGDx/eNnPmzI0AX/7yl5uzOG9m\nLWFJpwGrImJBXxwvIuZExLSImNbU1KsR9mZmNoC1tbUxa9asN02ePHnqCSecMGXDhg1asmRJw0kn\nnTRl6tSphxx77LEHPfTQQ40AP//5z0cdccQRBx9yyCGHzpgx48Dly5eXnnjiifq5c+c2zZ49e++D\nDz740Ntvv334F77whf2+/vWv7w0wffr0g84777xxhx9++CGTJk067Pbbbx8OsH79+sKpp5765gMO\nOGDqzJkzDzjiiCMOvueee4ZWE3uWLeETgPdJOhVoBEZKui4iPlZW50VgQtn6+LTMzMx2cxf++pEJ\nT65cX1US2pUD9xmx6ZIPHbl8Z3Wef/75xuuuu+7pGTNmPHfqqae+ee7cuWN++tOfjp0zZ85zhx9+\n+Na77rpr2HnnnTdx3rx5T86cOXPDrFmzlhYKBS699NKxF1988T4/+clPXjjrrLOahw8f3nbxxRe/\nDHDHHXeMLD9Ha2urHn300cd/8YtfjLr44ov3O+WUU5685JJLmkaPHt321FNPLXnwwQcbjz/++Kq7\nxTNLwhFxEXARgKSTgS91SsAANwHnp7MTHQesjYg3dEX3lXuebOah59dwwTun9NcpzMysn40bN27r\njBkzNgMcffTRm5599tmGhx56aPgZZ5xxQEedbdu2CeCZZ56pf//73z++ubm5btu2bYUJEyZsreQc\nZ5xxxmsAM2bM2HjhhRfWA/zlL38ZfsEFF6wCeMtb3rLlwAMP3FRt7Lm/rEPSuQARMRu4FTgVWAZs\nAs7uz3P/5anVXP3nZ5yEzcz6wK5arP2lvr5++yNSxWIxXn755dKIESNaly5d+ljnuueff/7ECy64\nYOVHP/rRtTfffPOIiy++eL9KztHY2BgApVKJtrY27ap+pXJ5WUdE/FdEnJYuz04TMOmo6M9GxAER\ncXhE9OtrsAoCT2BhZja4jBw5sn38+PHbrr766jEA7e3t3HfffUMA1q9fX5w4cWILwLXXXrt99POI\nESPa1q9fX6zmPMcff/yGG264YQzAggULGp988skh1cZa02/MKki0tTsJm5kNNtdff/3T11xzzdiD\nDjro0ClTpky98cYbRwN89atffenMM888YOrUqYfsueeerR31P/jBD6655ZZbRncMzKrkHBdeeGHz\n6tWrSwcccMDUiy66aNzkyZO3jBkzpq2aOAfFVIbTpk2Lnrw7+tI7nuCyu5bx7Hfe2w9RmZnt3iQt\n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\nnITNzMxy8v8B1CtCuJTBfCsAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113300fd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Log plot of ionization cross section from thermalize_cs\n",
    "x=numpy.logspace(1,3)\n",
    "plt.plot(x,thermalize_cs(x,1), label=\"heating\")\n",
    "\n",
    "plt.xlabel('Energy (eV)')\n",
    "plt.ylabel('Cross Section ($cm^2$)')\n",
    "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1>Ionization</h1>\n",
    "\n",
    "<p>\n",
    "Ionization produces an electron spectrum, with one primary losing energy and generating a free secondary. The energy of the primary decreases by the ionization energy and the energy spectra of the secondary. The percent of hydrogen ionized is a stored parameter and main focus of the code. \n",
    "\n",
    "The preliminary source for cross sections is this paper: \n",
    "\n",
    "[https://journals.aps.org/pra/pdf/10.1103/PhysRevA.50.3954]\n",
    "</p>\n",
    "\n",
    "<p>\n",
    "$ \\sigma_i(t)=\\frac{S}{t+u+1}[D(t)ln(t)+(2-\\frac{N_i}{N})(\\frac{t-1}{t}-\\frac{ln(t)}{t+1})] $\n",
    "</p>\n",
    "<p>\n",
    "with $D(t)$ given as \n",
    "$ D(t)\\equiv \\int_{0}^{(t-1)/2} \\frac{1}{w+1}\\frac{df(w)}{dw} dw$\n",
    "\n",
    "and $t=T/B$, $w=W/B$, $u=U/B$, $Q=\\frac{2BM_i^2}{NR}$, and $S=4\\pi a_0^2 N(R/B)^2$.\n",
    "\n",
    "The parameters needed for each ionization are then \n",
    "$ f(w), N_i, N, B, S, U,... $ </p>\n",
    "\n",
    "<p>Secondary Spectra:\n",
    "These spectra are found from the singly differential cross section as above (see [http://physics.nist.gov/PhysRefData/Ionization/intro.html])\n",
    "</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def ionize_cs(Energy, atoms):\n",
    "    \n",
    "    '''\n",
    "    Calculates the ionization cross section (xsec) for electrons \n",
    "    impacting one of (H, He, He+) at a particular kinetic energy.\n",
    "    \n",
    "    Parameters\n",
    "    ----------\n",
    "    Energy : ndarray\n",
    "        Each electron's initial kinetic energy.\n",
    "    atoms : ndarray (same size as Energy)\n",
    "        Indicates a xsec corresponding to each\n",
    "        element of Energy (1=H, 2=He, 3=He+)\n",
    "\n",
    "    Returns\n",
    "    ----------\n",
    "    ndarray\n",
    "        The cross section for ionization for \n",
    "        each pair (Energy[n],atoms[n])\n",
    "        (given in cm^2). \n",
    "    \n",
    "    See Also\n",
    "    --------\n",
    "    ionize_s_cs : Often preferred; gives singly differential xsec\n",
    "    '''\n",
    "    #initialize return variable\n",
    "    sigma = numpy.zeros(len(atoms))\n",
    "    \n",
    "    for n in range(len(Energy)):\n",
    "        T=Energy[n]\n",
    "        atom=atoms[n]\n",
    "        \n",
    "        if atom==1: #H\n",
    "            B=13.6057 #eV: binding energy\n",
    "            U=13.6057 #eV: \n",
    "            t=T/B\n",
    "            D= (2834163/10+2*(-4536259-10736505*t - 7512905*t**(2) + 112365*t**(3))/(5*(1+t)**(5)))/1000000\n",
    "            N=1 # number of bound electrons in subshell\n",
    "            N_i= 0.4343 #integral of df/dw from 0 to infinity\n",
    "        elif atom==2: #He\n",
    "            B=24.59 #eV\n",
    "            U=39.51 #eV\n",
    "            t=T/B\n",
    "            D= 1/2*(53047/60-(4*(-58971+227814*t-78435*t**2+121780*t**3))/(15*(1+t)**6))/1000\n",
    "            N=2\n",
    "            N_i=1.605\n",
    "        elif atom==3: #He+\n",
    "            B=13.6057*4 #eV: scaled by Z^2\n",
    "            U=13.6057*4 #eV: scaled by Z^2\n",
    "            t=T/B\n",
    "            D= (2834163/10+2*(-4536259-10736505*t - 7512905*t**(2) + 112365*t**(3))/(5*(1+t)**(5)))/1000000 #same as H\n",
    "            N=1\n",
    "            N_i=0.4343 #seems same as H in approx\n",
    "        else:\n",
    "            print('error: some atom incorrectly specified')\n",
    "            return\n",
    "        u=U/B \n",
    "        S=4*math.pi*p.value('Bohr radius')**2*N*(13.6057/B)**2 #m^2\n",
    "\n",
    "        sigma_i=S/(t+u+1)*(D*numpy.log(t)+(2-N_i/N)*((t-1)/t-numpy.log(t)/(t+1)))*(10**4) #cm^2\n",
    "        #replace negatives with zero\n",
    "        if sigma_i<0:\n",
    "            sigma_i=0\n",
    "\n",
    "        sigma[n]=sigma_i\n",
    "\n",
    "    return sigma"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  5.77804715e-17,   2.82374489e-17,   0.00000000e+00])"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ionize_cs(numpy.array([100, 60, 3]), numpy.array([1,2,3]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def ionize_s_cs(E_in, E_sec, atoms):\n",
    "    \n",
    "    '''\n",
    "    Calculates the singly-differential ionization cross section (xsec) \n",
    "    for electrons impacting one of (H, He, He+) at a particular \n",
    "    kinetic energy of the incident and one secondary electron. \n",
    "    \n",
    "    Parameters\n",
    "    ----------\n",
    "    E_in : ndarray\n",
    "        Each electron's initial kinetic energy (eV).\n",
    "    E_out : ndarray\n",
    "        The energy of one secondary electron for each initial electron (eV).\n",
    "    atoms : ndarray\n",
    "        Atomic xsec relevant to each ionization; (1=H, 2=He, 3=He+)\n",
    "\n",
    "    Returns\n",
    "    ----------\n",
    "    ndarray\n",
    "        The cross section for ionization at each incident energy (E_in[n]), \n",
    "        secondary energy (E_out[n]), and atomic xsec (atoms[n]); (given in cm^2). \n",
    "    \n",
    "    See Also\n",
    "    --------\n",
    "    ionize_cs : Gives total ionization xsec\n",
    "    '''\n",
    "    \n",
    "    #initialize return variable\n",
    "    sigma=numpy.zeros(len(atoms))\n",
    "    \n",
    "    for n in range(len(atoms)):\n",
    "        T=E_in[n]\n",
    "        W=E_sec[n]\n",
    "        atom=atoms[n]\n",
    "        \n",
    "        if atom==1: #H\n",
    "            B=13.6057 #eV: binding energy\n",
    "            U=13.6057 #eV: \n",
    "            t=T/B\n",
    "            w=W/B\n",
    "            y=1/(w+1)\n",
    "            df_dw=-0.022473*y**2+1.1775*y**3-0.46264*y**4+0.089064*y**5\n",
    "            N=1 # number of bound electrons in subshell\n",
    "            N_i= 0.4343 #integral of df/dw from 0 to infinity\n",
    "        elif atom==2: #He\n",
    "            B=24.59 #eV\n",
    "            U=39.51 #eV\n",
    "            t=T/B\n",
    "            w=W/B\n",
    "            y=1/(w+1)\n",
    "            df_dw=12.178*y**3-29.585*y**4+31.251*y**5-12.175*y**6\n",
    "            N=2\n",
    "            N_i=1.605\n",
    "        elif atom==3: #He+\n",
    "            B=13.6057*4 #eV: scaled by Z^2\n",
    "            U=13.6057*4 #eV: scaled by Z^2\n",
    "            t=T/B\n",
    "            w=W/B\n",
    "            y=1/(w+1)\n",
    "            df_dw=-0.022473*y**2+1.1775*y**3-0.46264*y**4+0.089064*y**5\n",
    "            N=1\n",
    "            N_i=0.4343 #seems same as H in approx\n",
    "        else:\n",
    "            print('error: atom incorrectly specified')\n",
    "            return\n",
    "\n",
    "        u=U/B \n",
    "        S=4*math.pi*p.value('Bohr radius')**2*N*(13.6057/B)**2 #m^2\n",
    "\n",
    "        sigma_i=S/(B*t+(u+1))*((N_i/N-2)/(t+2)*(1/(w+1)+1/(t-w))+(2-N_i/N)*(1/(W+1)**2+1/(t-w)**2)+ numpy.log(t)/(N*(w+1))*df_dw) #cm^2\n",
    "        #replace negatives with zero\n",
    "        if sigma_i < 0:\n",
    "            sigma_i=0\n",
    "            \n",
    "        sigma[n]=sigma_i\n",
    "\n",
    "    return sigma"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  1.33042044e-24,   3.36387592e-23,   5.99013818e-24])"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ionize_s_cs(numpy.array([102,102,102]), numpy.array([20,20,20]), numpy.array([1,2,3]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x116c28748>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Log plot of ionization cross sections\n",
    "x=numpy.logspace(1,4)\n",
    "y=numpy.ones(len(x))\n",
    "#x=numpy.linspace(1,300)\n",
    "plt.plot(x,ionize_cs(x,y), label=\"H\")\n",
    "plt.plot(x,ionize_cs(x,2*y), label=\"He\")\n",
    "plt.plot(x,ionize_cs(x,3*y), label=\"He+\")\n",
    "#Data points\n",
    "\n",
    "#H\n",
    "H_i=pd.read_csv('Shah_H_ionization.csv', sep=',',header=None)\n",
    "a=H_i.values[:,0]\n",
    "b=H_i.values[:,1]*10**(-17) #cm^2\n",
    "plt.scatter(a,b, label=\"H_data\")\n",
    "#He\n",
    "Hep_i=pd.read_csv('Shah_He_ionization.csv', sep=',',header=None)\n",
    "e=Hep_i.values[:,0]\n",
    "f=Hep_i.values[:,1]*10**(-17) #cm^2\n",
    "plt.scatter(e,f, label=\"He_data\")\n",
    "#He+\n",
    "Hep_i=pd.read_csv('Peart_Hep_ionization.csv', sep=',',header=None)\n",
    "c=Hep_i.values[:,0]\n",
    "d=Hep_i.values[:,1]*10**(-18) #cm^2\n",
    "plt.scatter(c,d, label=\"He+_data\")\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "###############\n",
    "plt.xlabel('Energy (eV)')\n",
    "axes = plt.gca()\n",
    "axes.set_xlim([0,500])\n",
    "plt.ylabel('Cross Section ($cm^2$)')\n",
    "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#def ionize_sec(T, atom):\n",
    "    #Returns the seconday spectra following ionization\n",
    "    #atom: 1=H, 2=He, 3=He+\n",
    "    \n",
    "    \n",
    "    \n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1>Excitation</h1>\n",
    "<p>\n",
    "Keep in mind that this will produce a singe output electron (use conservation of energy, perhaps looking at probability based on the transition distribution) and a output photon which is given by some transition distribution. We will need this distribution for $2s \\rightarrow 1s$ and $2p \\rightarrow 1s$ in H, He, and He+. The percent excited is also stored between steps, questionably; the time scale of going back to the ground state confuses this effect for me. \n",
    "The preliminary source for cross sections: \n",
    "\n",
    "[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4859265/pdf/j74sto.pdf]\n",
    "</p>\n",
    "\n",
    "<h2>H, He</h2>\n",
    "<p>The total excitation cross section for H and He is of the form:\n",
    "$\\sigma_{BEf}=(f_{accu}/f_{sc})*[T/(T+B+E)]*\\sigma_{PWB}$\n",
    "where $\\sigma_{PWB}$ is given as \n",
    "$\\sigma_{PWB}=\\frac{4\\pi a_0^2R}{T}*F_{PWB}(T)$\n",
    "This is the valid form for sub 3keV.\n",
    "\n",
    "The values for f, B, and E are in the linked paper. \n",
    "</p>\n",
    "<h2>He+</h2>\n",
    "<p>The best total excitation cross section seems to be from:\n",
    "\n",
    "[http://iopscience.iop.org/article/10.1088/0022-3700/9/9/016/pdf]\n",
    "\n",
    "However, He+ presents unique challenges at low energies for ionization given its small Z. \n",
    "</p>\n",
    "<h2>Secondary Spectra</h2>\n",
    "<p>Good source for $2s\\rightarrow 1s$ seems to be:\n",
    "\n",
    "[https://arxiv.org/pdf/0803.0808.pdf]\n",
    "\n",
    "For other transitions, Voigt profiles can be placed around the central spectral line with parameters as in:\n",
    "\n",
    "[http://www.sciencedirect.com/science/article/pii/S0022407304004030]\n",
    "</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def excite_cs(T, atom, transition=2):\n",
    "    #Calculates cross section for excitation in (cm^2) for a given electron energy T (eV) and parameters of the atom\n",
    "    #atom: 1=H, 2=He, 3=He+\n",
    "    #transition 1=1s->2s, 2=1s->2p   // assumes transition=2\n",
    "    E=T\n",
    "    sigma=numpy.zeros(len(E))\n",
    "    for n in range(0,len(E)):\n",
    "        T=E[n]\n",
    "        if atom==1: #H\n",
    "            if T<10.2: #eV\n",
    "                sigma_e=0\n",
    "\n",
    "            elif transition==1: #2s\n",
    "                if T<=11.56: #eV\n",
    "                    sigma_e=10**(-16)*(0.114+0.0575*(T-10.2)) #cm^2\n",
    "                elif T<=12.23: #eV\n",
    "                    sigma_e=1.795*10**(-17) #cm^2\n",
    "                else:\n",
    "                    X=T/10.2\n",
    "                    sigma_e=5.984*10**(-16)/(T)*(0.88606-2.7990/X+5.9451/X**(2)-7.6948/X**(3)+4.4152/X**(4)) #cm^2\n",
    "            else: #2p\n",
    "                H2p=pd.read_csv('H_1s-2p_excite_table.csv', sep=',',header=None)\n",
    "                x=H2p.values[:,0]\n",
    "                y=H2p.values[:,1]\n",
    "                f = interp1d(x, y)\n",
    "                sigma_e=f(T)*10**(-16) #cm^2\n",
    "\n",
    "        elif atom==2: #He\n",
    "            if T<21.2:#eV\n",
    "                sigma_e=0\n",
    "            elif transition==1: #2s\n",
    "                sigma_e=0 #Need to find cross section\n",
    "            else: #2p\n",
    "                He2p=pd.read_csv('He_1s-2p_excite_table.csv', sep=',',header=None)\n",
    "                x=He2p.values[:,0]\n",
    "                y=He2p.values[:,1]\n",
    "                f = interp1d(x, y)\n",
    "                sigma_e=f(T)*10**(-16) #cm^2\n",
    "\n",
    "        else: #He+\n",
    "            pia2=math.pi*p.value('Bohr radius')**2\n",
    "            if T<40.8: #eV\n",
    "                sigma_e=0\n",
    "\n",
    "            elif transition==1: #2s\n",
    "                #extra interpolation values of 0 added at 40.8 and max(3keV)\n",
    "                HeP2s=pd.DataFrame({'CS' : [0, pia2*0.0065, pia2*0.0049, pia2*0.0031, pia2*0.0019, pia2*0.0013, 0], 'Energy' : [40.8, 100., 200., 400., 700., 1000., 3000.]})\n",
    "                x=HeP2s.values[:,1]\n",
    "                y=HeP2s.values[:,0]\n",
    "                f = interp1d(x, y)\n",
    "                sigma_e=f(T)*10**(4) #cm^2\n",
    "            else: #2p \n",
    "                #extra interpolation values of 0 added at 40.8 and max(3keV)\n",
    "                HeP2p=pd.DataFrame({'CS' : [0, pia2*0.082, pia2*0.067, pia2*0.048, pia2*0.033, pia2*0.026, 0], 'Energy' : [40.8, 100., 200., 400., 700., 1000., 3000.]})\n",
    "                x=HeP2p.values[:,1]\n",
    "                y=HeP2p.values[:,0]\n",
    "                f = interp1d(x, y)\n",
    "                sigma_e=f(T)*10**(4) #cm^2\n",
    "\n",
    "        if sigma_e < 0:\n",
    "            sigma_e=0\n",
    "        sigma[n]=sigma_e\n",
    "        \n",
    "    \n",
    "    return sigma"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nYEVERIrg/wNfQDVb8eQjcgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x116a2d4a8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#log plot showing 1s-2s excitation cross sections\n",
    "x=numpy.logspace(1,3)\n",
    "#x=numpy.linspace(10,20)\n",
    "plt.plot(x,excite_cs(x,1,1), label=\"H\")\n",
    "plt.plot(x,excite_cs(x,2,1), label=\"He\") \n",
    "plt.plot(x,excite_cs(x,3,1), label=\"He+\") \n",
    "\n",
    "\n",
    "plt.xlabel('Energy (eV)')\n",
    "plt.ylabel('Cross Section ($cm^2$)')\n",
    "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#log plot showing 1s-2p excitation cross sections\n",
    "x=numpy.logspace(1,3)\n",
    "plt.plot(x,excite_cs(x,1,2), label=\"H\")\n",
    "plt.plot(x,excite_cs(x,2,2), label=\"He\") \n",
    "plt.plot(x,excite_cs(x,3,2), label=\"He+\") \n",
    "\n",
    "\n",
    "plt.xlabel('Energy (eV)')\n",
    "plt.ylabel('Cross Section ($cm^2$)')\n",
    "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def excite_sec(T, atom, transition=2):\n",
    "    #Returns the seconday spectra following ionization\n",
    "    #atom: 1=H, 2=He, 3=He+\n",
    "    #transition 1=1s->2s, 2=1s->2p\n",
    "    #transitions seem unnecessary given similarities in energy\n",
    "    #output contains electron energy, photon energy\n",
    "    output=numpy.zeros(2)\n",
    "    if transition==2:\n",
    "    \n",
    "        if atom==1:\n",
    "            Ep=10.2 #eV\n",
    "            output[0]=T-Ep\n",
    "            output[1]=Ep\n",
    "        elif atom==2:\n",
    "            Ep=21.2 #eV\n",
    "            output[0]=T-Ep\n",
    "            output[1]=Ep\n",
    "        else:\n",
    "            Ep=40.8 #eV\n",
    "            output[0]=T-Ep\n",
    "            output[1]=Ep\n",
    "    return output\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#Plot all cross sections\n",
    "#Log plot of ionization cross sections\n",
    "x=numpy.logspace(0,3)\n",
    "#x=numpy.linspace(200,1000)\n",
    "#plt.plot(x,thermalize_cs(x,1), label=\"heating\")\n",
    "plt.plot(x,ionize_cs(x,1), label=\"H_i\")\n",
    "plt.plot(x,ionize_cs(x,2), label=\"He_i\") \n",
    "plt.plot(x,ionize_cs(x,3), label=\"He+_i\") \n",
    "plt.plot(x,excite_cs(x,1,1), label=\"H_es\")\n",
    "plt.plot(x,excite_cs(x,2,1), label=\"He_es\") \n",
    "plt.plot(x,excite_cs(x,3,1), label=\"He+_es\")\n",
    "plt.plot(x,excite_cs(x,1,2), label=\"H_ep\")\n",
    "plt.plot(x,excite_cs(x,2,2), label=\"He_ep\") \n",
    "plt.plot(x,excite_cs(x,3,2), label=\"He+_ep\")\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "plt.xlabel('Energy (eV)')\n",
    "plt.ylabel('Cross Section ($cm^2$)')\n",
    "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nTHd8JnUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x116b5c4a8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x=numpy.logspace(1,2)\n",
    "y=x-numpy.array([20])\n",
    "z=numpy.ones(len(x))\n",
    "plt.plot(x,ionize_s_cs(x, y, z), label=\"H_i_sec\")\n",
    "\n",
    "plt.xlabel('Energy (eV)')\n",
    "plt.ylabel('Cross Section ($cm^2$)')\n",
    "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
