<jupyter_start><jupyter_text>Radiation Interatctions with Matter Learning Objectives- Define uncollided flux- Define linear interaction coefficient- Apply linear interaction coefficients to a slab problem- Identify the units of intensity, flux density, fluence, reaction rate- Compare linear interaction coefficient and cross section- Calculate uncollided flux in a medium - Calculate mean free path of a particle in a medium- Define the half thickness in a medium- Apply the concept of buildup factor to attenuation in a slab- Define microscopic cross section- Calculate macroscopic cross sections, given a microscopic cross section- Calculate the mass interaction coefficients of mixtures- Calculate flux density- Calculate Reaction Rate Density- Recognize the dependence of flux on energy, position, and time- Define radiation fluence- Calculate uncollided flux density from isotropic point sources- Apply the Kelin-Nishina formula to Compton Scattering- Compare energy dependence of photon interaction cross sections- Describe energy dependence of neutron interaction cross sections- Recognize the comparative range of heavy vs. light particles - Recognize the comparative range of charged particles  Linear Interaction Coefficient- The interaction of radiation with matter is always statistical in nature, and, therefore, must be described in probabilistic terms. Consider a particle travelling through a homogeneous material.\begin{align}P_i(\Delta x) &= \mbox{probability the particle, causes a reaction of type i in distance }\Delta x\\\end{align}Empirically, we find that this probability becomes constant as $\Delta x \longrightarrow 0$. Thus:\begin{align}\mu_i &= \lim_{\Delta x \rightarrow 0}\frac{P_i(\Delta x)}{\Delta x}\\\end{align}Facts about $\mu_𝑖$:- $\mu_i$ is an *intrinsic* property of the material for a given incident particle and interaction. - $\mu_i$ is independent of the path length traveled prior to the interaction. - $\mu_i$ may represent many types of interaction (scattering: $\mu_s$, absorption: $\mu_a$, ...)- $\mu_i$ typically depends on particle energyThe probability, per unit path length, that a neutral particle undergoes some sort of reaction, is the sum of the probabilities, per unit path length of travel, for each type :\begin{align}\mu_t(E) = \sum_i \mu_i(E)\end{align}  Think Pair Share:What are the units of the linear interaction coefficient?  Attenuation of Uncollided FluxImagine a plane of neutral particles strike a slab of some material, normal to the surface. We can describe this using $\mu_t$ or, equivalently, the macroscopic total cross section $\Sigma_t$. \begin{align}I(x) &= I_0e^{-\mu_t x}\\I(x) &= I_0e^{-\Sigma_t x}\\\end{align}where\begin{align}        I(x) &= \mbox{uncollided intensity at distance x}\\        I_0 &= \mbox{initial uncollided intensity}\\        \mu_t &= \mbox{total linear interaction coefficient} \\        \Sigma_t &= \mbox{macroscopic total cross section} \\        x &= \mbox{distance into material [m]}\\\end{align}<jupyter_code>import math
def attenuation(distance, initial=100, sig_t=1):
    """This function describes neutron attenuation into the slab"""
    return initial*math.exp(-sig_t*distance)<jupyter_output><empty_output><jupyter_text>Rather than intensity, one can find the probability density:We have a strong analogy between decay and attenuation, as above. In the case of decay the probability of decay in a time interval dt is:\begin{align}P(t)dt &= \lambda e^{-\lambda t}dt\\ &= \mbox{probability of decay in interval dt}\end{align}From this, one can find the mean lifetime of a neutron before decay:\begin{align}\bar{t} &= \int_0^\infty t'P(t')dt'\\        &= \int_0^\infty t'\lambda e^{-\lambda t'}dt'\\                &= \frac{1}{\lambda}\end{align}In the case of attenuation:\begin{align}P(x)dx &= \Sigma_te^{-\Sigma_tx}dx\end{align}Such that: \begin{align}P(x)dx &= \mu_t e^{-\mu_t x}dx\\ &= \Sigma_t e^{-\Sigma_t x}dx\\ &= \mbox{probability of interaction in interval dx}\end{align}So, the mean free path is:\begin{align}\bar{l} &= \int_0^\infty x'P(x')dx'\\        &= \int_0^\infty x'\Sigma_te^{-\Sigma_t x'}dx'\\                &= \frac{1}{\Sigma_t}\end{align}Or, equivalently in $\mu_t$ notation:\begin{align}\bar{x} &= \int_0^\infty x'P(x')dx'\\        &= \int_0^\infty x'\mu_te^{-\mu_t x'}dx'\\                &= \frac{1}{\mu_t}\end{align}<jupyter_code>def prob_dens(distance, initial=100, sig_t=1):
    return sig_t*attenuation(distance, initial=100, sig_t=1)

sig_t = 0.2
i_0 = 100

# This code plots attenuation
import numpy as np
z = np.arange(24)
y = np.arange(24)
x = np.arange(24)
for h in range(0,24):
    x[h] = h
    y[h] = attenuation(h, initial=i_0, sig_t=sig_t)
    z[h] = prob_dens(h, initial=i_0, sig_t=sig_t)

# creates a figure and axes with matplotlib
fig, ax = plt.subplots()
scatter = plt.scatter(x, y, color='blue', s=y*20, alpha=0.4)    
ax.plot(x, y, color='red')  
ax.plot(x, z, color='green')    


# adds labels to the plot
ax.set_ylabel('Percent of Neutrons')
ax.set_xlabel('Distance into slab')
ax.set_title('Attenuation')

# Add mpl widget for interactivity
labels = ['{0}% intensity'.format(i) for i in y]
mplcursors.cursor(ax).connect(
    "add", lambda sel: sel.annotation.set_text(labels[sel.index]))

plt.show()<jupyter_output><empty_output><jupyter_text>Half-thicknessIn another analog to decay, the **half-thickness** of a material is the distance required for half of the incident radiation to interact with a medium:\begin{align}\frac{I(x_{1/2})}{I(0)} &= e^{-\mu_t x_{1/2}}\\\implies x_{1/2} &= \frac{\ln{2}}{\mu_t}\end{align} Think pair share: What is the concept in the context of decay that is analogous to the half-thickness?  Microscopic and Macroscopic Cross Sections- The microscopic cross section $\sigma_i$ is  the likelihood of the event per unit area. - The macroscopic cross section $\Sigma_i$ is  the likelihood of the event per unit area of a certain density of target isotopes.- The macroscopic cross section $\Sigma_i$ is equivalent to the linear interaction coefficient $\mu_i$, but we tend to use $\Sigma_i$ in nuclear interactions, reserving $\mu_i$ for photon interactions.\begin{align}\mu_i &= \mbox{linear interaction coefficient}\\\Sigma_i &= \mbox{macroscopic cross section}\\\\ &= \sigma_i N\\ &= \sigma_i \frac{\rho N_a}{A}\\ \mbox{where }& \\ N &= \mbox{atom density of medium}\\ \rho &= \mbox{mass density of the medium}\\ N_a &= \mbox{Avogadro's number}\\ A &= \mbox{atomic weight of the medium}\end{align}<jupyter_code>def macroscopic_xs(micro, N):
    """Returns the macroscopic cross section [cm^2] or [barns]
        
    Parameters
    ----------
    micro: double
        microscopic cross section [cm^2] or [barns]
    N: double
        atom density in the medium [atoms/cm^3]
    """
    return micro*N
def NA():
    """Returns Avogadro's number 
    6.022x10^23 atoms per mole
    """
    return 6.022E23

def num_dens_from_rho(rho, na, a):
    """The atomic number density. 
    That is, the concentration of atoms or molecules per unit volume (V)
    
    Parameters
    -----------
    rho : double
        material density (in units like g/cm^3 or kg/m^3) of the sample
    na : double
        Avogadro's number
    a : double
        The atomic or molecular weight of the atom or molecule of interest 
    """
    return rho*na/a<jupyter_output><empty_output><jupyter_text>Example: Imagine a beam of neutrons striking a body of water, $H_2O$. Many will be absorbed by the hydrogen in the water, particularly $^1H$. Find the macroscopic absorption cross section<jupyter_code># Find the macroscpic absorption cross section 
# of the 1H in H2O
sig_1h = 0.333 # barns

# First, molecular density of water
rho_h2o = 1 # g/cm^3
a_h2o = 18.0153 # g/mol
n_h2o = num_dens_from_rho(rho_h2o, NA(), a_h2o) # molecules water / cm^3
n_h2o_barn = n_h2o/10**(24) # 10^24 molecules water / cm^3
print('n_h2o [1/cm^3] = ', n_h2o)
print('n_h2o [10^(24)/cm^3] = ', n_h2o_barn)

# Now, there are two Hydrogens in each molecule of water, so:
macroscopic_h1 = macroscopic_xs(sig_1h, 2*n_h2o_barn)
print('absorption in water from 1H = ', macroscopic_h1)<jupyter_output>n_h2o [1/cm^3] =  3.342714248444378e+22
n_h2o [10^(24)/cm^3] =  0.033427142484443784
absorption in water from 1H =  0.02226247689463956<jupyter_text>MixturesIn a medium that is a mixture of isotopes (e.g. $H_2O$), we can calculate the total macroscopic cross section based on individual microscopic cross sections and number densities for each component of the mixture. We may need to include information about relative isotopic abundances (f).For the same problem as above (neutrons striking a body of water) we can calculate the absorption by *all* isotopes in the $H_2O$.\begin{align}\mu^{H_2O} \equiv \Sigma^{H_2O} &= N^1\sigma_a^1 + N^2\sigma_a^2 + N^{16}\sigma_a^{16}+ N^{17}\sigma_a^{17}  + N^{18}\sigma_a^{18}\\&= f^1N^H\sigma_a^1 + f^2N^H\sigma_a^2 + f^{16}N^O\sigma_a^{16} + f^{17}N^O\sigma_a^{17} + f^{18}N^O\sigma_a^{18}\end{align}Superscripts 1, 2, 16, 17, and 18 indicate isotopes $^1H$, $^2H$, $^{16}O$,$^{17}O$, and $^{18}O$. \begin{align}N^H = 2N^{H_2O}\\N^{O} = N^{H_2O}\\N^{H_2O} = \frac{\rho^{H_2O}N_a}{A^{H_2O}}\end{align}Thus:\begin{align}\mu^{H_2O} \equiv \Sigma^{H_2O} &= N^{H_2O}\left[2f^1\sigma_a^1 + 2f^2\sigma_a^2 + f^{16}\sigma_a^{16} + f^{17}\sigma_a^{17} + f^{18}\sigma_a^{18}\right]\end{align}<jupyter_code># We need a lot of data

# Abundances
f_1 = 0.99985
f_2 = 0.00015
f_16 = 0.99756
f_17 = 0.00039
f_18 = 0.00205

# Then, microscopic absorption cross sections
sig_1 = 0.333
sig_2 = 0.000506
sig_16 = 0.000190
sig_17 = 0.239
sig_18 = 0.000160

macroscopic_h2o = n_h2o_barn*(2*f_1*sig_1 
                              + 2*f_2*sig_2
                              + f_16*sig_16
                              + f_17*sig_17 
                              + f_18*sig_18) 
print('absorption in water from all isos = ', macroscopic_h2o,"\n",
     'while absorption in water from 1H = ', macroscopic_h1,"\n",
     'Thus, absorption in water is mostly from 1H.')<jupyter_output>absorption in water from all isos =  0.02226860496564809 
 while absorption in water from 1H =  0.02226247689463956 
 Thus, absorption in water is mostly from 1H.<jupyter_text>Reaction Rates- The microscopic cross section is just the likelihood of the event per unit area. - The macroscopic cross section is just the likelihood of the event per unit area of a certain density of target isotopes.- The reaction rate is the macroscopic cross section times the flux of incident neutrons.\begin{align}R_{i,j}(\vec{r}) &= N_j(\vec{r})\int dE \phi(\vec{r},E)\sigma_{i,j}(E)\\R_{i,j}(\vec{r}) &= \mbox{reactions of type i involving isotope j } [reactions/cm^3s]\\N_j(\vec{r}) &= \mbox{number of nuclei participating in the reactions } [\/cm^3]\\E &= \mbox{energy} [MeV]\\\phi(\vec{r},E)&= \mbox{flux of neutrons with energy E at position i } [\/cm^2s]\\\sigma_{i,j}(E)&= \mbox{cross section } [cm^2]\\\end{align}This can be written more simply as $R_x = \Sigma_x \phi$. Using flux notation, the density of ith type of neutron interaction with isotope j, per unit time is:\begin{align}R_{i,j}(\vec{r}) = \Sigma_{i,j}\phi(\vec{r})\end{align}  Flux density from Point SourceFinding $\phi(\vec{r}0$ generally requires *particle transport calculations.*However, in some simple practical situations, the flux density can be approximated by the flux density of uncollided source particles. Point Source in VacuumConsider a source of particles:- it emits $S_p$ particles per unit time- all particles have energy E- and they are emitted radially outward into an infinite vacuum- isotropically (equally in all directions)- from a single point in space Think-pair share: - How many interactions occur? At a radius r: Because the source is isotropic, each unit area on an imaginary spherical shell of radius $r$ has the same number of particles crossing it. Thus:\begin{align}\phi^o(r) &= \mbox{uncollided flux at radius r in any direction}\\&= \frac{S_p}{4\pi r^2}\end{align}<jupyter_code>def phi_o_r(r, s):
    """Returns the uncolided flux at radius r
    due to an isotropic point source in a vacuum
        
    Parameters
    -----------
    r : double
        radius away from the point [length]
    s : double
        point source strength [particles/time]
    """
    return s/(4*math.pi*pow(r,2))
s=200
plt.clear()
plt.plot(range(1,10), [phi_o_r(r, s) for r in range(1,10)])
plt.show<jupyter_output><empty_output><jupyter_text>The plot above, this $1/r^2$ reduction in flux and reaction rate, is called **geometric attenuation** Think-pair-shareWhat other phrase do you think we use for attenuation in a medium?   Point Source in an Attenuating MediumSo, the unollided flux is \begin{align}\phi^o(r) &= \frac{S_p}{4\pi r^2}\end{align} A small volumeAt a distance r, we place a homogeneous mass with a volume $\Delta V_d$. The interaction rate $R_d$ in the mass is: \begin{align}&R^o(r)=\mu_d(E)\Delta V_d\frac{S_p}{4\pi r^2}\\\mbox{where}&\\&\mu_d(E)=\mbox{linear interaction coefficient in the volume}\end{align} An inifinite volumeFrom this, we can imagine the point source embedded in an infinite medium of this material. A detector is at distance r in the volume:\begin{align}&\phi^o(r) = \frac{S_p}{4\pi r^2}e^{-\mu r}\\\mbox{where}&\\&e^{-\mu r}=\mbox{material attenuation} \\&\frac{S_p}{4\pi r^2}=\mbox{geometric attenuation}\end{align} A slab shieldImagine a slab shield, thickness t, at a distance r, between the point source and a detector.\begin{align}&\phi^o(r) = \frac{S_p}{4\pi r^2}e^{-\mu t}\\\mbox{where}&\\&t=\mbox{thickness of the slab}\end{align}If it were made of a series of materials $i$, with coefficients $\mu_i$, and thicknesses $t_i$:\begin{align}&\phi^o(r) = \frac{S_p}{4\pi r^2}e^{\sum_i -\mu_i t_i}\\\mbox{where}&\\&\mu_i=\mbox{linear interaction coefficient of ith slab}\\&t_i=\mbox{thickness of ith slab}\end{align} Heterogeneous MediumAn arbitrary heterogeneous medium can be described as having an interaction coefficient $\mu(\vec{r})$ at any point $\vec{r}$ in the medium, a funciton of position in the medium.\begin{align}&\phi^o(r) = \frac{S_p}{4\pi r^2}e^{\left[-\int_0^r \mu(s) ds\right]}\\\end{align}  Announcements* If you had trouble tagging pages based on problems for HW06, this should be fixed by the end of class. If you already submitted, please edit your submission to tag problems appropriately. * There will be a HW assigned next Friday. It will be entirely review material based on things that were difficult on previous assignments and the exam. * The quiz and HW are posted. The quiz is still due on Monday.   Polyenergetic Point Source- Previous examples assume a **monoenergetic** point source (particles of a single energy, E). - But, a single source can emit particles at several discrete energies, or even a continuum of energies.Question: From last lecture, what do we expect of fission neutrons? Let's define some variables:\begin{align}f_i &= \mbox{fraction of the source emitted with energy }E_i\\E_i &= \mbox{discrete energy of }f_iS_p\mbox{ particles}\\S_p &= \mbox{still the number of particles emitted from the point source}\end{align}The total interaction rate caused by uncollided particles streaming through a small volume mass at distance r from the source is the following, **for some set of i discrete energies**.\begin{align}R^o(r)=\sum_i\frac{S_p f_i\mu_d(E_i) \Delta V_d}{4\pi r^2}e^{\left[-\int_0^r \mu(s,E_i) ds\right]}\\\end{align}If the source emits a continuum of energies, it's best to define the fraction $f_i$ as a differential probability:\begin{align}N(E)dE\mbox{ the probability that a source particle is emitted with energy in dE about E}\end{align}With this definition, the sum over discrete energies becomes an integral.\begin{align}R^o(r)=\int_o^\infty \left[\frac{S_p N(E)\mu_d(E) \Delta V_d}{4\pi r^2}e^{\left[-\int_0^r \mu(s,E) ds\right]}\right]dE\\\end{align}Please note, you may see many nuclear texts list the dE first in the integral... don't be bamboozled. This is equivalent to the above:\begin{align}R^o(r)=\int_o^\infty dE\frac{S_p N(E)\mu_d(E) \Delta V_d}{4\pi r^2}e^{\left[-\int_0^r \mu(s,E) ds\right]}\end{align}  Example 7.4 from your book (Shultis & Faw)A point source with an activity of 500 Ci emits 2-MeV photons with a frequency of 70% per decay. \begin{align}S_p = 500 Ci\\f_2 = 0.7\\\end{align}What is the flux density of 2-MeV photons 1 meter from the source?<jupyter_code>s_p = 500 # Ci
f_2 = 0.7 # fraction emitted at 2MeV
mu = 1.0/187.0 # mean free path of 2MeV photon in air is 187m

# first, convert S_p is in number of particles per decay (Bq)
bq_to_ci = 3.7e10 # Bq/Ci
s_p = s_p*bq_to_ci 

# Now, find uncollided flux of 2MeV photons at 1 m
r = 1.0 #m
s = s_p*f_2 # just want 2MeV photons
phi = phi_o_r(r, s)
print("Uncollided flux is : ", phi)

# Uh oh, we forgot the material attenuation!
phi = phi_o_r(r, s)*math.exp(-mu*r)
print("Flux after material attenuation is : ", phi)<jupyter_output>Uncollided flux is :  1030528256520.0223
Flux after material attenuation is :  1025032118881.2917
{'fraction_non_alphanumeric': 0.12685472992786348, 'fraction_numerical': 0.031083220925458916, 'mean_word_length': 4.182978723404255, 'pattern_counts': {'":': 0, '<': 26, '<?xml version=': 0, '>': 26, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '7', 'dir': 'jupyter-structured-clean-dedup', 'id': '558852', 'license': 'CC-BY-4.0', 'n_tokens_mistral': 5963, 'n_tokens_neox': 5426, 'n_words': 1955, 'path': '10.06.2-rad_interactions/00-rad-int-matter.ipynb', 'repo_name': 'munkm/npre247', 'size': '17051'}