MATLAB Monte Carlo User’s Manual Medical Physics 501 December 15, 2008 Purpose/Introduction The goal of this project was to create a functional Monte Carlo program using the Matrix Laboratory, MATLAB. Using our understanding of the underlying physics from the Medical Physics 501 course, an Introduction to Radiological Physics and Dosimetry, we set forth to complete this task within the semester as a whole class, each of us taking a portion, leaving our individual fingerprints. The project was broken into three subgroups, two to handle the photon interaction physics, one for beta particle interactions. What resulted appears to be a functional program which returns the dose distribution of a volume as defined by an input DICOM file. We hope that future students can use our program as a base to create an even more powerful Monte Carlo tool, taking into account more advanced physics and concepts that one semester of work would not allow. That being said, we present to you the guide for MATLAB Monte Carlo, version 1.0. Table of Contents Background Physics.......................................................................................................................................2 User Interface Description.............................................................................................................................6 Program Flowcharts.......................................................................................................................................8 Function Descriptions..................................................................................................................................12 List of References........................................................................................................................................20 1 Background Physics Photon Interactions with Matter There are three dominant types of photon interactions with matter in the energy range of interest: the Compton effect, the photoelectric effect, and pair production. In all of these interactions, a portion of the photon’s energy is transferred to electrons, which can then deposit their energy in matter. The type of interaction depends on the initial energy of the photon and the atomic number of the interacting medium. To determine the type of interaction for our simulation we used the contribution of each interaction type to the total interaction cross section. These cross-sections are defined per unit mass of material giving an expression for the total mass attenuation coefficient for a specific material at specific photon energy. It can be written in units of cm2/g or m2/kg as u in which τ/ρ is the contribution of the photoelectric effect, σ/ρ that of the Compton effect, and к/ρ that of pair production. The mass attenuation coefficient tables come from the NIST webpage (http://physics.nist.gov/PhysRefData/Xcom/html/xcom1.html). Several materials can be used for the homogenous material in the program, including air, muscle, fat, bone, tungsten, lead, water, and titanium. For each material, tables are used to find the total mass attenuation coefficient ( / ), photoelectric mass attenuation coefficient ( / ), Compton mass attenuation coefficient ( / ), and pair production mass attenuation coefficient ( / ). All of the mass attenuation coefficients are in the unit of cm2/g. Compton Interaction A Compton interaction describes the process of a photon scattering off of an atomic electron. Although the electron is theoretically bound, it is assumed to be unbound, and the collision elastic. This allows the use of basic mechanics to describe the final particles. 2 The Klein-Nishina cross section is used to define the polar scattering angle of the photon. This is done using a rejection technique, and can be found in the function GetCosTheta. The rejection technique favors forward scattered photons at high energies and isotropic scattered photons at low energies. The rejection technique uses a random polar angle to compute the angular differential scattering cross section for Compton scattering, and if the result obeys the known statistics, the angle is kept. If it does not, the process is repeated with a new random angle. Once a polar scattering angle is found, the energies and scattering angles of both the photon and electron can be determined in main Compton routine, ComptonInteraction. These are calculated using conservation laws. The azimuthal direction is isotropic, and randomly generated. With the new photon and electron angles, the new direction vectors for both particles are calculated. If the energy of the scattered electron is less than a user defined cut-off energy, Δ, the electron energy is deposited. If the electron is not deposited, it is pushed to the electron stack to be transported. The routine is complete when final electron and photon energies and directions have been found. Photoelectric Interaction A photoelectric interaction occurs when an atomic electron absorbs a photon and is emitted from the atom. The energy of the electron is equal to hν – Eb, where Eb is the electron shell binding energy. Secondary radiation occurs as a result of the vacancy in the electron cloud in the form of fluorescence photons and Auger electrons. In order to determine which shell the photon interacts with, tables containing participation function values were used (medium.tables.photoelectric_). If a random number is less than Pk, the interaction will occur in the k-shell. Otherwise, it will occur in the l-shell. In order to determine the energy of the emitted electron, k-edge and l-edge tables are used (medium._edge). If the photon interacted in the k-shell, an electron is created with the energy hν-(k-edge). Otherwise, the photon interacted in the l-shell, and an electron with energy hν-(l-edge) is created. Photoelectric emission is isotropic, and both polar and azimuthal angles are generated randomly. From these angles, direction vectors are given to the newly created electron. The electron is now completely defined, with an energy, direction, and position. At this point, there is still a small amount of unaccounted energy. The effects of the secondary radiation as a result of the electron shell vacancy have been neglected. This was decided because the shell edge energies are small, and any Auger electrons emitted would likely not leave the voxel. The fluorescence photons that are not accounted for should even out over the entire volume. This remaining energy is deposited in the voxel in which the interaction occurred. Pair Production In a pair production interaction, an electron-positron pair is created as a result of the highly energetic photon interacting with the nucleus. The photon must exceed a threshold energy of 2moc2. Triplet production can also occur when a photon interacts with the field of an electron. This process is much less common and occurs only at high energies. Although the electron and positron are not necessarily given the same energy, the PairProductionInteraction routine assumes both particles leave the interaction site with equal energies. These energies can be computed using (hν-2moc2)/2. The momentum of the nucleus as a result of the interaction is neglected. 3 The polar angles (alpha-positron, beta-electron) associated with the created particles are computed using non-relativistic expressions of kinetic energy and momentum. While the azimuthal angles of the particles are isotropic, they must be 180o apart in order to conserve momentum. Once one random angle was computed, 180o was added to get the other angle. With the angles now determined, direction vectors were calculated, and the electron and positron were both completely defined. The electron and positron were pushed to their respective stacks. Beta Particle Interactions with Matter Mass Collision Stopping Power for Electrons and Positrons The mass collision stopping power is a differential that gives the energy lost per density-distance for a particles traveling through a medium. The mass collision stopping power for an electron or a positron is given by: dT Zz 2 0.1535 A 2 dx c 2 2 ln 2 2 I / m0 c 2 F 2C where T / m c 2 0 Z The dependence on medium manifests itself in the Z/A and I (mean excitation potential) dependence. δ is the polarization effect correction. The polarization effect correction is zero for gases and increases with increasing particle speed. In liquids and solids, the density is roughly 104 higher than in a gas at atmospheric pressure. As an electron travels through a liquid or solid media, the polarization of the medium near the track of the electron weakens the effective electric field strength felt by the particle. Therefore, the mass collision stopping power is reduced, and is accounted for with the δ in the equation above. The dependence on Z/A has the greatest effect on the magnitude of the mass collision stopping power. For example, 1H has a Z/A value of 1 which makes it well suited for attenuating charged particles. Restricted Mass Collision Stopping Power The restricted mass collision stopping power takes into account the delta rays that are produced that leave a certain voxel of the medium. Whether or not the delta rays leave the voxel depends on the energy of the delta-ray. Taking this into account is important because delta-rays with high enough energy will leave the voxel and will not deposit their energy in that voxel. This is important for dosimetry measurement considerations. The calculation for the restricted mass collisional stopping power is calculated in a similar to the equation above; however, F is replaced by G , , where T . Mass Radiative Stopping Power The rate of bremsstrahalung production by electrons and positrons is given by the mass radiative stopping 2 power, in units of MeV cm2/g. dT Z dx r 1 A mo c , where Z2/A refers to the atomic number and mass 2 2 2 2 number of the medium and (moc ) refers to the square of the rest energy of the charged particle. Since the mass of the proton is ~2000 times larger than the mass of an electron, no appreciable bremsstrahalung 4 will be produced. The Z2 dependence indicates that bremsstrahalung is much more likely to occur in high Z materials, as compared to low Z materials. Continuous Slowing Down Approximation (CSDA) Range The CSDA can be used to approximate the range of a particle. The RCSDA is defined as: 1 T0 CSDA 0 dT dT dx which is an integral over the inverse of the total mass stopping power from zero to the energy of the particles. Therefore, a medium with a high mass stopping power will result in a smaller range than a medium with a low mass stopping power. Delta Ray Production Delta rays are produced when an incoming electron undergoes a hard collision with an unbound or valence shell electron. Since electrons are indistinguishable from one another, the outgoing electron with the highest energy is defined to be the primary electron. The lower energy electron is therefore defined as a delta-ray or knock-on electron. Delta rays can be produced by both electrons and positrons, though the differential cross sections are slightly different. By definition, the maximum kinetic energy a delta ray can have is T/2. For a positron, the maximum kinetic energy imparted to a delta-ray can be T, because the delta ray is distinguishable from the positron. The differential cross section for electrons (Møller cross section) and the differential cross section for positrons (Bhabha cross section) can be seen below: Where σ- refers to the inelastic cross section for an electron and σ+ refers to the inelastic cross section for the positron. The differential cross sections will be discussed in more detail below. 5 Graphical User Interface The Graphical User Interface (GUI) provides a user friendly portal through which to run the Monte Carlo simulation. The GUI and its features are shown below. A B C D E F G H I J K Monte Carlo Graphical User Interface 6 A) DICOM path window This window displays the path of the first slice of the inputted DICOM file after selection. For DICOM selection, see PET/SPECT toggle buttons. B) PET toggle button Click this button if you wish to input a PET DICOM file. After selection of this button, a window will pop up which will allow you to select one or more DICOM files. The path of the first DICOM file will be shown in the DICOM path window. C) SPECT toggle button Select this button if you wish to input a SPECT DICOM file. After selection of this button, a window will pop up which will allow you to select one or more DICOM files. The path of the first DICOM file will be shown in the DICOM path. D) PET tracer menu If the PET toggle button is selected, the PET tracer menu will allow you to select from a predetermined set of PET tracers; 15O, 14N, 11C or 18F. The selected PET tracer will affect the outcome of the simulation; each PET tracer option emits positrons with a different initial energy. This initial energy will determine how far the positron travels before annihilation. E) SPECT tracer menu If the SPECT toggle button is selected, the SPECT tracer menu will allow you to select from a pre-determined set of SPECT tracers. These tracers include: 99mTc, 123I and 111In. The selected SPECT tracer will affect the outcome the simulation by determining the energy of the initial photon emitted from the tracer. F) Material Type This menu allows you to select the material in which you would like to run the simulation. The material type selection will affect the mean free path of the photons created in the simulation as well as the mass stopping power of the charged particles. Charged particles are also affected by the material type as dictated by the radiation yield and angular scattering dependence. G) T. Cutoff The T. Cutoff menu allows you to select from a predetermined set of options, the energy below which, individual delta rays are not tracked. See Beta section of user manual for more information on how T. Cutoff is used. H) ELF The Energy Loss Fraction (ELF) menu allows you to choose from a predetermined list of the fraction of energy lost by the charged particle before checking again for interactions. I) Plot Particles The Plot Particles checkbox allows for a certain number of particles in the simulation to be plotted in a 3D plot after the simulation has run. Checking of this box also requires the number of particles you wish to plot. J) Number of Particles to Simulate The number of particles you wish to simulate should be entered here. K) Run The run button is enabled all necessary fields have been entered. Run creates a structure in MatLab of all the user defined variables, passes it to the main function of the Monte Carlo code, and begins the simulation. Default Settings Material Type: Air Number of Particles to Simulate: 1000 Number of Particles to Plot: 10 Plot Particles: Off Cutoff Energy for delta rays: .01 keV Energy Loss Fraction: 5% 7 Main Program Flowchart 8 Photon Interactions Incoming photon Type of interaction Photoelectric Compton Photoelectron angle energy Scattered photon energy angle Pair production Positron Recoil electron energy angle 9 energy angle Electron energy angle Electrons Process Step no Within Volume? Leave yes no T > Δ? yes How Many Events? zero no one or more yes Another Event? Event Type? Brems yes δ – ray no T > Δ? 10 End Positrons Process Step no Within Volume? Leave yes no T > Δ? yes zero How Many Events? no one or more Another Event? yes Event Type? Brems yes δ – ray no T > Δ? 11 Annihilate General Description of Functions Photon Interactions Main Functions: photonTransport This function uses the getCoeff(E) function described below to get the total, photoelectric, Compton, and pair mass attenuation coefficient at the input photon energy (E). To transport the photon, we calculate the mean free path by inversing in the product of the total mass attenuation coefficient and the density of the material selected 1/( ( ) to get the mean free path in cm. Then the new location equals to the old location+mfp*direction., where the direction is the unit vector carried by each photon in the photon stack. This function also decides which interaction will occur at the new location. First, a random number which is uniformly distributed between 0 and 1 is generated. Next, if the random number is between 0 and , photoelectric event will occur. If the random number is between and ( , Compton event will occur. If the random number is between ( and 1, pair production event will occur. Note: since we ignore the coherent scatter and the triplet production, the total mass coefficient is greater than the sum of photoelectric, Compton and pair, so we didn’t normalize by the total mass attenuation coefficient. getCoeff(E) Linear interpolation is performed to get all the mass attenuation coefficients corresponding to the input energy E. The energy supported by the table ranges from 10 keV to 1GeV. If the input energy is smaller than the minimum energy supported by the table, then coefficients of the minimum energy are returned. If the input energy is bigger than the maximum energy supported by the table, then an error message will be given, telling the user that the input energy is too high. GetCosTheta The Klein-Nishina cross section is used to define the polar scattering angle of the photon. This is done using a rejection technique, and can be found in the function GetCosTheta. The rejection technique favors forward scattered photons at high energies and isotropic scattered photons at low energies. The rejection technique uses a random polar angle to compute the angular differential scattering cross section for Compton scattering, and if the result obeys the known statistics, the angle is kept. If it does not, the process is repeated with a new random angle. ComptonInteraction Once a polar scattering angle is found, the energies and scattering angles of both the photon and electron can be determined in main Compton routine, ComptonInteraction. These are calculated using conservation laws. The azimuthal direction is isotropic, and randomly generated. With the new photon and electron angles, the new direction vectors for both particles are calculated. If the energy of the scattered electron is less than a user defined cut-off energy, Δ, the electron energy is deposited. If the 12 electron is not deposited, it is pushed to the electron stack to be transported. The routine is complete when final electron and photon energies and directions have been found. medium.tables.photoelectric In order to determine which shell the photon interacts with, tables containing participation function values were used (medium.tables.photoelectric_). If a random number is less than Pk, the interaction will occur in the k-shell. Otherwise, it will occur in the l-shell. medium._edge In order to determine the energy of the emitted electron, k-edge and l-edge tables are used (medium._edge). If the photon interacted in the k-shell, an electron is created with the energy hν-(k-edge). Otherwise, the photon interacted in the l-shell, and an electron with energy hν-(l-edge) is created. Photoelectric emission is isotropic, and both polar and azimuthal angles are generated randomly. From these angles, direction vectors are given to the newly created electron. The electron is now completely defined, with an energy, direction, and position. PairProductionInteraction Although the electron and positron are not necessarily given the same energy, the PairProductionInteraction routine assumes both particles leave the interaction site with equal energies. These energies can be computed using (hν-2moc2)/2. The momentum of the nucleus as a result of the interaction is neglected. The polar angles (alpha-positron, beta-electron) associated with the created particles are computed using non-relativistic expressions of kinetic energy and momentum. While the azimuthal angles of the particles are isotropic, they must be 180o apart in order to conserve momentum. Once one random angle was computed, 180o was added to get the other angle. With the angles now determined, direction vectors were calculated, and the electron and positron were both completely defined. The electron and positron were pushed to their respective stacks. Beta Interactions Main Functions: el_sim(electron) The main function for transporting electrons. It will follow the electron in discrete steps of energy loss. At each step it will simulate whether a catastrophic event (bremsstrahlung or delta-ray) has occurred during the previous path and branch to the corresponding routines. If these events generate additional particles, they will be passed to their respective stacks. Once the electron dips below the cutoff energy its remaining energy will be deposited in the medium and the function will return. The only input is an electron structure containing all the relevant information for the electron to be transported. pos_sim(positron) The main function for transporting positrons. It operates similarly to el_sim, except that at the end of a positron’s path it also generates two annihilation photons and passes them to the photon stack. 13 We assume that positron bremsstrahlung probabilities are the same as for the electron. Helper functions: el_delta_prob(T, L) Estimates the total probability of a delta-ray event for an electron with a current kinetic energy T and whose pathlength since the last time the probability was evaluated is L, in cm. To do so it calculates the total Moller cross-section for delta-ray production over energies from the cutoff energy to T/2, the Moller threshold. pos_delta_prob(T, L) Estimates the total probability of a delta-ray event for a positron with a current kinetic energy T and whose pathlength since the last time the probability was evaluated is L, in cm. To do so it calculates the total Bhabha cross-section for delta-ray production over energies from the cutoff energy to T, the Bhabha threshold. Møller Scattering (el_delta_ray) The Møller scattering cross section was used to find the energy of the primary electron, delta ray created, and their resulting scattering angles. The differential cross section can be integrated to determine the actual cross section of interaction. The differential cross section and total cross section are: T is the energy of the incoming electron, T’ is of the scattered electron, T m where m is the rest mass of the electron, v c , and Tc or the cutoff energy which corresponds to the cutoff energy required for a Møller scattering event to occur. After a change of variables the differential scattering cross section can written as: 14 Where C is a constant that is irrelevant for the sampling, between 0 T' and can take values in the integral T Tc and ½. The normalized probability distribution function for ε is: T and the resulting rejection function is: To sample ε, first, two random numbers are generated. Then, ε is sampled from the expression: which was derived from the normalized probability distribution function for ε, given earlier. Next, the rejection function was calculated and if r2 is greater than the rejection function then the whole process is repeated. If r2 is less than the rejection function then the sample is accepted and ε is outputted. The kinetic energy of the resulting delta ray can be calculated from ε which was defined as the kinetic energy of the delta ray normalized to the incoming electron energy. The kinetic energy of the primary electron can be found through the use of conservation of momentum laws for inelastic scattering. Finally, the resulting polar scattering angles can be found using kinematics and are direct functions of T and T’ and are: Where cos θ is the polar scattering angle for the primary electron and cos θ’ is the polar scattering angle of the resulting delta ray. Bhabha Scattering (pos_delta_ray) The delta-ray production from positron scattering can be found in a similar manner as above. The differential cross section which describes positron scattering is: 15 Where the constants are defined as: Similar to above for Møller scattering, the differential cross section is integrated to result in the total scattering cross section. The total scattering cross section can once again be used to find a normalized distribution function and can be used to find a sampling function for ε. In the case of Bhabha scattering, the rejection function is defined as: Just like above, to sample ε, two random numbers were generated. The first random number was used in the sampling function for ε and the second random number is used to compare with the rejection function to determine whether or not the sample is accepted. The scattering angles were found using the same equations as above. However, for Bhabha scattering θ refers to the scattering angle of the more energetic particle (either positron or delta-ray) and θ’ refers to the scattering angle of the less energetic particle (either positron or delta-ray). Annihilation after Flight (annihilate_after_flight) We assume that positrons cannot annihilate while in flight. Therefore, two 511 keV gamma rays are always emitted with an angle of separation between them of 180°. The angle of the first photon is determined via a random number generator, and the second photon is then emitted at an angle of θ+180°. Bremsstrahlung Production (el_brem) In the Bremsstrahlung interaction, a charged particle enters the high electric field in the vicinity of an atomic nucleus; this causes massive deceleration, which results in a change in the particle’s direction and the emission of a photon. The distributions of photon energies and emission angles are both (somewhat complicated) functions of the initial charged particle energy. Therefore, simplifying assumptions have been made—regarding both the energy of the emitted photon and the scattering angle of the charged particle—in modeling this process. On average, the energy of the emitted photon is approximately 1/3 the initial kinetic energy of the charged particle which produced it. This relationship was fixed in the code, on the assumption that for a large number of Bremsstrahlung interactions, the net result would balance out. The polar angle through which the charged particle is scattered may also be approximated as ,where moc2 is the rest energy of the charged particle and hν is the energy of the emitted photon. There are other, more accurate algorithms for calculating photon energy and scattering angle, but these are fairly complex and computationally intensive (and therefore somewhat inefficient to implement). Still, it may be worthwhile to attempt to improve on these assumptions at a later date. 16 The “brem” function takes in an electron object with associated energy (MeV), direction, and position. The energy of the electron is reduced by 1/3, and its new momentum is calculated using the relativistic relationship between total energy, rest mass, and momentum. A photon object is then created, and its energy is initialized to 1/3 of the electron’s initial kinetic energy. The azimuthal deflection of the electron is calculated from this photon energy according to the second assumption given above. Its change in zenith angle is chosen from the following random distribution: electron’s zenith angle = cos -1[ 1- 2 r], where r is a random number between 0 and 1. The energy of the photon is then checked to make sure it is above the cut off energy which determines whether it ought to be tracked. If it is above the cut off energy, then its momentum is calculated according to conservation of momentum in a 2d plane. Assuming that the x-components are identical, the ycomponents of the momentum must be equal in magnitude and opposite in direction. The equation goes as follows: pe sin Ep c sin , where pe is the momentum of the electron, is the change in the electron’s azimuthal angle, Ep is the energy of the photon, is the change in the photon’s azimuthal angle. Since all other variables are known at this point, the above equation is then solved for . The photon is then initialized to have the same position and direction as the electron. Its new direction is calculated as follows. Conservation of momentum in the z-direction requires that the photon’s zenith angle is opposite the electron’s; it is therefore initialized to π – electron’s zenith angle. Next a transformation is implemented to determine the new zenith and azimuthal angles with respect to the phantom’s coordinate system. Given the change in azimuthal and zenith angles in the reference frame of the particles ( and ), the following transformation was employed: where α is the initial zenith angle in the phantom reference frame. The new azimuthal angle: , where β is the original azimuthal angle in the phantom’s coordinate system. Once these transformations are completed, the photon’s direction is converted to Cartesian coordinates. This is then normalized to a unit vector, and the fully initialized photon is pushed onto the stack. Finally, the new direction of the electron is determined in an exactly analogous manner: transformation of the scatter angles into the reference frame of the phantom, conversion to Cartesian coordinates, and normalization of the direction vector. The electron leaves the function with a new direction and energy. A photon is created and initialized with an energy, direction, and position; it is then added to the stack of photons. The step size will determine the next positions of both objects. Bremsstrahlung Probability (el_brem_prob) This function estimates the total probability of a bremsstrahlung interaction for an electron which has lost energy from Tf to Ti. It finds average energy lost to radiation, based on radiation yield. Then, the probability is that energy lost divided by the average energy of the bremsstrahlung photon for that 17 electron energy. 10 keV is the lowest energy in the tables, so going below that will throw an error. 1 GeV is the highest energy. Electron Step (el_step) and Positron step (pos_step) This function moves the electron the given step length and determines the energy loss, based on the restricted mass stopping power. A new mean free path length is then generated; if the MFP of the particle is less than the voxel size, the particle’s energy will be deposited in that voxel. The function also calculates the new direction and new position of the particle after the step. Electron Setup (el_setup) This function initializes the parameters for the simulation. Global constants, the medium through which the particle travels, ΔT, and the step size (energy loss fraction) are all setup in this function. Data Tables: Important data for the electron routine is contained in a set of electron data tables for 9 different materials. The MAT file el_tables.mat contains three important data structures. The first, el_tables is a 3-D matrix. The first dimension specifies the material: Index Value 1 2 3 4 5 6 7 8 9 Material Air Water Soft Tissue Striated Muscle Compact Bone Fat Tissue Titanium Tungsten Lead The second and third dimensions comprise a spreadsheet for each material of various properties according to particle kinetic energy. The columns of the spreadsheet, corresponding to the third matrix dimension, are: Column 1 2 3 4 5 6 7 8 Quantity Kinetic Energy (MeV) Mass Collisional Stopping Power (MeV cm2/g) Mass Radiative Stopping Power (MeV cm2/g) Total Mass Stopping Power (MeV cm2/g) CSDA Range (g/cm2) Radiation Yield Density Effect Parameter Mass Angular Scattering Power <radian^2> cm2/g) 18 Kinetic energy ranges from 10 keV to 1000 MeV, so the cutoff energy must be 10 keV or greater, and no particle can be over 1 GeV. Currently only columns 1, 2, 6, and 8 are used in the program. Columns 2-7 are from the NIST website. Column 8’s source did not include data for soft tissue, fat, tungsten, or titanium. Therefore soft tissue and fat are approximated as water, and, much less accurately, tungsten as lead and titanium as bone. Column 8 also had to be extrapolated beyond 100 MeV, using a 2nd-power fit. The value is very low at these energies, so this extrapolation should not introduce significant error. The second data structure is mat_props, which contains the name, density, and Z/A of each material. The final data structure is pathcorr, which contains a table of pathlength correction factors to account for the fact that electrons scatter and do not travel in straight lines as they move through matter. They are applied in the el_step function. Similar tables exist for the photon interactions portion of the program. These tables consist of the same list of materials and the photon interaction cross sections for the photoelectric effect, Compton effect, pair production, Rayleigh scattering, photonuclear effect, and the total interaction cross section. 19 References Attix, Frank Herbert. Introduction to Radiological Physics and Radiation Dosimetry. New York: Wiley-Interscience, 1986. Kawrakow, Iwan. "Http://www.irs.inms.nrc.ca/EGSnrc/pirs701/node43.html." Moller Scattering. <http://www.irs.inms.nrc.ca/egsnrc/pirs701/node43.html>. Kawrakow, Iwan. "Http://www.irs.inms.nrc.ca/EGSnrc/pirs701/node44.html." Bhabha Scattering. <http://www.irs.inms.nrc.ca/egsnrc/pirs701/node44.html>. Mackie, T.R. Medical Physics 501 Lecture Notes. Fall Semester 2008. Christian, B. Medical Physics 463 Lecture Notes. Fall Semester 2008. 20