PENELOPE, and algorithm and computer code for Monte Carlo ...

155
Centro de. Investigaciones Energeticas, Medioambientales y Tecnologicas Miner PENELOPE, an algorithm and computer code for Monte Carlo simulation of electron-photon showers F. Salvat J.M. Fernandez-Varea J. Bare J. Sempau MormesTecnicosCiemat 799 Junio 1996 mmiBunoN of this bocuMBtr is wlimitecu „'

Transcript of PENELOPE, and algorithm and computer code for Monte Carlo ...

Page 1: PENELOPE, and algorithm and computer code for Monte Carlo ...

Centro de.Investigaciones Energeticas, Medioambientales y Tecnologicas

Miner

PENELOPE, an algorithm and computer code for Monte Carlo simulation of electron-photon showers

F. SalvatJ.M. Fernandez-Varea J. Bare J. Sempau

MormesTecnicosCiemat 799Junio 1996

mmiBunoN of this bocuMBtr is wlimitecu „'

Page 2: PENELOPE, and algorithm and computer code for Monte Carlo ...

Morales Tecnicos Ciemat

PENELOPE, an algorithm and computer code for Monte Carlo simulation of electron-photon showers

F. SalvatJ.M. Femandez-Varea J. Baro J. Sempau

Direction de Tecnologia

Page 3: PENELOPE, and algorithm and computer code for Monte Carlo ...

Toda correspondence en relation con este trabajo debe dirigirse al Servicio de Information y Documentacidn, Centro de Investigaciones Energeticas, Medioambientales y Tecnoldgicas, Ciudad Universitaria, 28040-MADRID, ESPANA.

Las solicitudes de ejemplares deben dirigirse a este mismo Servicio.

Los descriptors se ban seleccionado del Thesauro del DOE para describir las materias que contiene este informe con vistas a su recuperation. La catalogacion se ha hecho utilizando el documento DOE/TIC-4602 (Rev. 1) Descriptive Cataloguing On-Line, y la clasificacidn de acuerdo con el documento DOE/TIC.4584-R7 Subject Categories and Scope publicados por el Office of Scientific and Technical Information del Departamento de Energia de los Estados Unidos.

Se autoriza la reproduction de los resumenes analiticos que aparecen en esta publication.

Deposito Legal: M-14226-1995 NIPO: 238-96-001-0 ISSN: 1135-9420

Editorial CIEMAT

Page 4: PENELOPE, and algorithm and computer code for Monte Carlo ...

CLASIFICACION DOE Y DESCRIPTORES

990200COMPUTER CODES, P CODES, COMPUTERIZED SIMULATION, PROGRAMMING LANGUAGES, FORTRAN, MONTE CARLO METHOD, ELECTRON DIFFRACTION, PHOTON EMISSION

Page 5: PENELOPE, and algorithm and computer code for Monte Carlo ...

DISCLAIMER

Portions of this document may be illegible in electronic image products. Images are produced from the best available original document.

Page 6: PENELOPE, and algorithm and computer code for Monte Carlo ...

"PENELOPE, an algorithm and computer code for Monte Carlo simulation of electron-photon showers"

Salvat, F.; Femandez-Varea, J.M.; Bard, J.; Sempau, J.157 pp. 27 figs. 108 refs.

Abstract

The FORTRAN 77 subroutine package PENELOPE performs Monte Carlo simulation of electron-photon showers in arbitrary for a wide energy range, from ~ 1 keV to several hundred MeV. Photon transport is simulated by means of the standard, detailed simulation scheme. Electron and positron histories are generated on the basis of a mixed procedure, which combiens detailed simulation of hard events with condensed simulation of soft interactions. A simple geometry package permits the generation of random electron-photon showers in material systems consisting of homogeneous bodies limited by quadric surfaces, i.e. planes, spheres, cylinders, etc. This report is intended not only to serve as a manual of the simulation package, but also to provide the user with the necessary information to understand the details of the Monte Carlo algorithm.

"PENELOPE, un algoritmo y programa de ordenador para la simulacion Monte Carlo de avalanchas electron-foton"

Salvat, F.; Femandez-Varea, J.M.; Bard, J.; Sempau, J.157 pp. 27 figs. 108 refs.

Resumen

El paquete de subrutinas PENELOPE (escrito en FORTRAN 77) realiza simulaciones por el metodo de Monte Carlo de avalanchas electron-foton en medios arbitrarios y en un amplio rango de energies, desde 1 keV hasta varies cientos de MeV, aproximadamente. El transpose de fotones se Simula mediante el esquema detallado estandar. Las histories de electrones y positrones se generan utilizando un procedimiento mixto, que combine la simulacion detallada de eventos “duros” con la simulacion condensada de interacciones “blandas”. Un sencillo paquete geometrico permite la generacidn de avalanchas en sistemas materiales consistentes en cuerpos homogeneos limitados por superficies cuadricas, es decir, pianos, esferas, cilindros, etc. Este informe pretende no solo servir de manual del paquete de simulacion, sino tambien proveer al usuario con la information necesaria para comprender los detalles del algoritmo Monte Carlo.

Page 7: PENELOPE, and algorithm and computer code for Monte Carlo ...

PENELOPE, an algorithm and computer code for Monte Carlo simulation of electron-photon showers

Francesc Salvat, Jose M. Fernandez-VareaFacultat de Ffsica (ECM), Universitat de Barcelona. Diagonal 647. 08028 Barcelona. Spain.

Josep Bar6Serveis Cientffico-Tecnics, Universitat de Barcelona.Marti i Franques s/n. 08028 Barcelona. Spain.

Josep SempauInstitut de Tecniques Energetiques, Universitat Politecnica de Catalunya. Diagonal 647. 08028 Barcelona. Spain.

AbstractThe FORTRAN 77 subroutine package PENELOPE performs Monte Carlo simulation of electron-photon showers in arbitrary materials for a wide energy range, from ~ 1 keV to several hundred MeV. Photon transport is simulated by means of the standard, detailed simulation scheme. Electron and positron histories are generated on the basis of a mixed procedure, which combines detailed simulation of hard events with condensed simulation of soft interactions. A simple geometry package permits the generation of random electron-photon showers in material systems consisting of homogeneous bodies limited by quadric surfaces, i.e. planes, spheres, cylinders, etc. This report is intended not only to serve as a manual of the simulation package, but also to provide the user with the necessary information to understand the details of the Monte Carlo algorithm.

KEYWORDS: Radiation transport. Electron-photon showers. Monte Carlo simulation. Sampling algorithms. Quadric geometry.

Page 8: PENELOPE, and algorithm and computer code for Monte Carlo ...

Symbols and numerical values of constants frequently used in the text.1

Quantity Symbol Value

Avogadro’s number na 6.022137 xlO23 mol"1Velocity of light in vacuum c 2.997924x10s ms"1Reduced Planck’s constant h = h/(2ir) 6.582122xl0~22 MeV sElectron charge e 1.602177x10-^ CElectron mass m 9.109390 xl0~31 kgElectron rest energy me2 0.5109991 MeVClassical electron radius re = e2/(mc2) 2.817941 xl0~15 mFine-structure constant a = e2/(he) 1/137.0360Bohr radius o0 = h2/(me2) 0.5291772xlO"10 m

1E.R. Cohen and B.N. Taylor, Rev. Mod. Phys. 59 (1987) 1121.

Page 9: PENELOPE, and algorithm and computer code for Monte Carlo ...

Contents

Preface v

1 Monte Carlo simulation and radiation transport 1

1.1 Random sampling methods.............................................................................. 2

1.1.1 Random number generator................................................................. 2

1.1.2 Inverse transform method................................................................. 3

1.1.3 Discrete distributions ................................................................. 5

1.1.4 Rejection methods.............................................................................. 6

1.1.5 Composition methods ........................................................................ 8

1.2 Monte Carlo integration................................................................................. 9

1.3 Simulation of radiation transport................................................................. 11

1.3.1 Scattering model and probability distribution functions................ 11

1.3.2 Generation of random tracks ............................................................... 13

1.3.3 Statistical averages and uncertainties............................................... 15

1.3.4 Variance reduction.............................................................................. 16 2

2 Photon interactions 21

2.1 Coherent (Rayleigh) scattering........................................................................ 22

2.1.1 Simulation of coherent scattering events......................................... 24

2.2 Incoherent (Compton) scattering................................................................. 26

2.2.1 Analytical Compton profiles.............................................................. 30

2.2.2 Simulation of incoherent scattering events...................................... 31

2.3 Photoelectric effect.......................................................................................... 34

Page 10: PENELOPE, and algorithm and computer code for Monte Carlo ...

ii Contents

2.3.1 Initial direction of photoelectrons..................................................... 36

2.4 Electron-positron pair production.............................................. 38

2.4.1 Simulation of pair production events............................................... 40

2.5 Atomic relaxation.............................................................................................. 43

2.6 Attenuation coefficients.................................................................................... 46

3 Electron and positron interactions 49

3.1 Elastic collisions................................................................................................. 50

3.1.1 The W2D model................................................................................. 51

3.1.2 Simulation of single elastic events..................................................... 54

3.2 Inelastic collisions.............................................................................................. 54

3.2.1 Differential and integrated cross sections......................................... 59

3.2.2 Simulation of hard inelastic collisions............................................... 61

3.3 Bremsstrahlung emission................................................................................. 65

3.3.1 The Bethe-Heitler DCS........................................................................ 65

3.3.2 Simulation of hard radiative events.................................................. 69

3.4 Positron annihilation....................................................................................... 73

3.4.1 Generation of emitted photons............................................................ 74

4 Mixed simulation algorithms for electrons and positrons 77

4.1 Elastic scattering.............................................................................................. 78

4.1.1 Multiple scattering theory.................................................................. 78

4.1.2 Mixed simulation algorithms.............................................................. 79

4.1.3 Simulating with the W2D model ..................................................... 84

4.2 Energy losses.................................................................................................... 87

4.2.1 Scattering by atomic electrons........................................................... 90

4.3 Generation of random tracks........................................................................... 92

5 The simulation package PENELOPE 97

5.1 Simulating with PENELOPE........................................................................ 97

5.1.1 Input material data file........................................................................ 99

Page 11: PENELOPE, and algorithm and computer code for Monte Carlo ...

Contents w

5.1.2 The program MATERIAL and the database........................................... 101

5.1.3 MAIN program..........................................................................................103

5.2 Planar geometries................................................................................................107

5.3 Quadric geometry package................................................................................ 108

5.4 Installation.........................................................................................................115

A Numerical tools 119

A.l Cubic spline interpolation........................................................ ,................... 119

A. 2 Numerical quadrature ..................................................................................... 122

A.2.1 Gauss integration................................................................................... 123

A.2.2 Adaptive bipartition............................................................................. 124

B Kinematics 125

B. l Basic definitions..................................................................................................125

B.2 Two-body reactions........................................................................................... 126

B. 3 Inelastic collisions of electrons and positrons..................................................128

C Calculation of electron and positron elastic cross sections 129

C. l Partial wave calculations.................................................................................. 130

C.2 Screened Mott formula..................................................................................... 130

C.2.1 Integrated cross sections.......................................................................133

Bibliography 135

Page 12: PENELOPE, and algorithm and computer code for Monte Carlo ...

IV Contents

Page 13: PENELOPE, and algorithm and computer code for Monte Carlo ...

Preface

Radiation transport in matter has been a subject of intense work since the beginning of the century. High-energy photons, electrons and positrons penetrating matter suffer multiple interactions by which energy is transferred to the atoms and molecules of the material and secondary particles are produced. In this report, the term particle will be used to designate either photons, electrons or positrons. By repeated interaction with the medium, a high-energy particle originates a cascade of secondary particles which is usually referred to as a shower. After each interaction of a primary or secondary particle, its energy is reduced and further secondary particles may be generated so that the evolution of the shower represents an effective degradation in energy. As time goes on, the initial energy is progressively deposited into the medium, while that remaining is shared by an increasingly larger number of particles.

A reliable description of shower evolution is required in a number of fields. Thus, knowledge of radiation transport properties is needed for quantitative analysis in surface electron spectroscopies (Jablonski, 1987; Tofterup, 1986), positron surface spectroscopy (Schultz and Lynn, 1988), electron microscopy (Reimer, 1985), electron energy loss spectroscopy (Reimer et al., 1992), electron probe microanalysis (Heinrich and Newbury, 1991), etc. Detailed information on shower evolution is also required for the design and quantitative use of radiation detectors (Titus, 1970; Berger and Seltzer, 1972). A field where radiation transport studies play an important sociological role is that of radiation dosimetry and radiotherapy (Andreo, 1991).

The study of radiation transport problems was initially attempted on the basis of the Boltzmann transport equation. However, this procedure comes up against considerable difficulties when applied to limited geometries, with the result that numerical methods based on the transport equation have only had a certain success in simple geometries, mainly for unlimited and semi-infinite media (Zheng-Ming and Brahme, 1993). At the end of the fifties, with the availability of computers, Monte Carlo simulation methods were developed as a powerful alternative to deal with transport problems. Basically, the evolution of an electron-photon shower is of a random nature, so that this is a process particularly amenable to Monte Carlo simulation. Detailed simulation, where all the interactions experienced by a particle are simulated in chronological succession, is exact, i.e. it yields the same results as the rigorous solution of the transport equation (apart from the inherent statistical uncertainties).

To our knowledge, the first numerical Monte Carlo simulation of photon transport is that of Hayward and Hubbell (1954) who generated 67 photon histories using a desk

Page 14: PENELOPE, and algorithm and computer code for Monte Carlo ...

VI Preface

calculator. The simulation of photon transport is straightforward, since the mean number of events in each history is fairly small. Indeed, the photon is effectively absorbed after a single photoelectric or pair-production interaction or after a few Compton interactions (say, of the order of 10). With present-day computational facilities, detailed simulation of photon transport is a simple routine task.

The simulation of electron and positron transport is much more difficult than that of photons. The main reason is that the average energy loss of an electron in a single interaction is very small (of the order of a few tens of eV). As a consequence, high-energy electrons suffer a large number of interactions before being effectively absorbed in the medium. In practice, detailed simulation is feasible only when the average number of collisions per track is not too large (say, up to a few hundred). Experimental situations amenable to detailed simulation are those involving either electron sources with low initial kinetic energies (up to about 100 keV) or special geometries such as electron beams impinging on thin foils. For larger initial energies, and thick geometries, the average number of collisions experienced by an electron until it is effectively stopped becomes very large, and detailed simulation is very inefficient.

For high-energy electrons and positrons, most of the Monte Carlo codes currently available [e.g. ETRAN (Berger and Seltzer, 1988), ITS3 (Halbleib et al., 1992), EGS4 (Nelson et al., 1985), GEANT (Brun et al., 1986), ... ] have recourse to multiple scatter­ing theories which allow the simulation of the global effect of a large number of events in a track segment of a given length (step). Following Berger (1963), these simulation procedures will be referred to as “condensed” Monte Carlo methods. The multiple scat­tering theories implemented in condensed simulation algorithms are only approximate and may lead to systematic errors, which can be made evident by the dependence of the simulation results on the adopted step length (Bielajew and Rogers, 1987). To analyze their magnitude, one can perform simulations of the same experimental arrangement with different step lengths. The results are usually found to stabilize when the step length is reduced, while computation time increases rapidly, roughly in proportion to the inverse of the step length. Thus, for each particular problem, one must reach a certain compromise between available computer time and attainable accuracy. It is also worth noting that, owing to the nature of certain multiple scattering theories and/or to the particular way they are implemented in the simulation code, the use of very short step lengths may introduce spurious effects in the simulation results. For instance, the multiple elastic scattering theory of Moliere (1948), which is the one used in EGS4-based codes, is not applicable to step lengths shorter than a few times the elastic mean free path (see e.g. Fernandez-Varea et al., 1993b) and multiple elastic scattering has to be switched off when the step length becomes smaller than this value. As a consequence, stabilization for short step lengths does not necessarily imply that simulation results are correct. Condensed schemes also have difficulties in generating particle tracks in the vicinity of an interface, i.e. a surface separating two media of different compositions. When the particle moves near an interface, the step length must be kept smaller than the minimum distance to the interface, so as to make sure that the step is completely contained in the initial medium (Bielajew and Rogers, 1987). This may complicate the code considerably, even for relatively simple geometries.

In this report, we present a new Monte Carlo algorithm, and computer code, for the

Page 15: PENELOPE, and algorithm and computer code for Monte Carlo ...

Preface Vll

simulation of electron-photon showers, which is applicable to energies (kinetic energies in the case of electrons and positrons) from ~ 1 keV to ~ 1 GeV. This algorithm incorpo­rates a scattering model that combines numerical total cross sections (or stopping cross sections) with simple analytical differential cross sections for the different interaction mechanisms. Individual interaction events are simulated by means of purely analytical, exact sampling methods, so that the structure of the simulation code is very simple.

Photon transport is simulated by means of the conventional detailed method. The simulation of electron and positron transport is based on a mixed procedure. Hard interactions, with scattering angle 9 and/or energy loss W greater than preselected cutoff values 9s and Wc, are simulated in detail. Soft interactions, with scattering angle or energy loss less than the corresponding cutoffs, are described by means of multiple scattering approaches. This simulation scheme handles lateral displacements and interface crossing appropriately and provides a consistent description of energy straggling. The simulation is stable under variations of the cutoffs 6s, Wc and these can be made quite large, thus speeding up the calculation considerably, without altering the results.

This Monte Carlo algorithm has been implemented in a FORTRAN 77 simulation package called PENELOPE, an acronym that stands for PENetration and Energy LOss of Positrons and Electrons (photon simulation was introduced later). The main feature of PENELOPE is that the most delicate parts of the simulation are handled internally; electrons, positrons and photons are simulated by calling the same subroutines. Thus, from the user’s point of view, PENELOPE makes the practical simulation of electrons and positrons as simple as that of photons (although simulating a charged particle may take a longer time).

This report is intended not only to serve as a manual of the simulation package but also to provide the user with the necessary information to understand the details of the Monte Carlo algorithm. In chapter 1 we give a brief survey of random sampling methods and an elementary introduction to Monte Carlo simulation of radiation transport. The analytical cross sections adopted in PENELOPE to describe particle interactions, and the associated sampling techniques, are presented in chapters 2 and 3. Chapter 4 is devoted to mixed simulation methods for electron and positron transport. The FORTRAN 77 simulation package PENELOPE, and other complementary programs, are described in chapter 5. Information on numerical methods and relativistic kinematics is given in appendices A and B. The theoretical models used to prepare the database for electron and positron elastic scattering are sketched in appendix C. The source files of PENE­LOPE, the auxiliary programs and the particle interaction database are supplied on a single floppy disk, in MS-DOS format, which is available from the authors.

The idea of developing a general-purpose Monte Carlo code, based on simple analyt­ical differential cross sections to ensure the exactness of sampling, arose during a short course on radiation transport simulation given by F. Salvat at the Radiation Metrology Unit, CIEMAT (Madrid), in 1988. It took about six years to complete the project. During this time we have benefited from many discussions with D. Liljequist, which gave shape to the simulation algorithm for electrons and positrons. We are deeply in­debted to J.H. Hubbell for kindly providing us with updated information on photon

Page 16: PENELOPE, and algorithm and computer code for Monte Carlo ...

viu Preface

transport data. The collaboration of R. Mayol and M. Roteta in the development of various parts of the theory and the code is gratefully acknowledged. A. Sanchez-Reyes and E. Garcfa-Torano were the first external users of the computer code. They criti­cally read earlier versions of this report, suggested numerous improvements in the code organization and, above all, suffered the inconveniences of using continuously changing preliminary versions of the code.

We are thankful to the CIEMAT for kindly publishing and distributing the present re­port, and to the members of its Radiation Metrology Unit for their continuous assistance and friendly collaboration. This work has been partially supported by the Direction General de Investigation Cientffica y Tecnica (Spain) under contract no. PB92-0801 and by the Fondo de Investigation Sanitaria de la Seguridad Social (Spain), project no. 94/0029-01.

Barcelona, March 1996.

Page 17: PENELOPE, and algorithm and computer code for Monte Carlo ...

Chapter 1

Monte Carlo simulation and radiation transport

The name “Monte Carlo” was coined in the forties by scientists working on the nuclear weapon project in Los Alamos to designate a class of numerical methods based on the use of random numbers. Nowadays, Monte Carlo methods are being efficiently used to solve many physical and mathematical problems (James, 1980; Rubinstein, 1981; Kalos and Whitlock, 1986), particularly those involving multiple independent variables where more conventional numerical methods would demand formidable amounts of memory and computer time. The book by Kalos and Whitlock (1986) gives a readable survey of Monte Carlo techniques, including simple applications in radiation transport, statistical physics, and many-body quantum theory.

In Monte Carlo simulation of radiation transport, the history (track) of a particle is viewed as a random sequence of free flights that end with a scattering event where the particle changes its direction of movement and loses energy. The Monte Carlo sim­ulation of a given experimental arrangement (e.g. an electron beam, coming from an accelerator and impinging on a water phantom) consists in the numerical generation of random histories. To simulate these histories we need a “scattering model”, i.e. a set of differential cross sections (DCS) for the relevant scattering mechanisms. These DCSs determine the probability distribution functions (PDF) of the random variables which characterize a track; 1) free path between successive scattering events, 2) kind of inter­action taking place and 3) energy loss and angular deflection in a particular event. Once these PDFs are known, random histories can be generated by using suitable sampling methods. If the number of generated histories is large enough, detailed information on the transport process may be obtained by simply averaging over the simulated histories.

The Monte Carlo method yields the same information as the solution of the transport equation, with the same scattering model, but is easier to implement (Berger, 1963). In particular, the simulation of radiation transport in finite samples is straightforward, while even the simplest finite geometries (e.g. thin foils) are very difficult to be dealt with by the transport equation. The main drawback of the Monte Carlo method lies in its random nature, all the results are affected by statistical uncertainties, which can be reduced at the expense of increasing the sampled population and, hence, the

Page 18: PENELOPE, and algorithm and computer code for Monte Carlo ...

2 Chapter 1. Monte Carlo simulation and radiation transport

computation time. Under special circumstances, the statistical uncertainties may be lowered by using variance reduction techniques (Rubinstein, 1981; Bielajew and Rogers, 1988).

1.1 Random sampling methods

The essential ingredient of a Monte Carlo calculation is the numerical sampling of ran­dom variables with specified PDFs. In this section we describe different techniques to generate random values of a variable x distributed in the interval (a, 6) according to a given PDF p(x). We concentrate on the simple case of single-variate distributions, since random sampling from multivariate distributions can always be reduced to single-variate sampling (see below). A more detailed description of sampling methods can be found in the textbooks of Rubinstein (1981) and Kalos and Whitlock (1986).

We recall that a distribution p{x) is a definite positive “function” normalized to unity, i.e.

p{x) > 0 and f p(x) da; = 1. (1.1)Ja

This definition includes singular distributions such as the Dirac ^-distribution, which is useful to describe discrete random variables.

1.1.1 Random number generator

In general, random sampling algorithms are based on the use of random numbers £ uniformly distributed in the interval (0,1). These random numbers can be easily generated on the computer (see e.g. Kalos and Whitlock, 1986; James, 1990). Among the “good” random number generators currently available, the simplest ones are the so-called multiplicative congruential generators. For more than ten years, we have been using the following

Rn = 7X-1 (mod 231 - 1), & = Rn/{ 231 - 1), (1.2)

which produces a sequence of random numbers £„ uniformly distributed in (0,1) from a given “seed” Rq (< 231 — 1). Actually, the generated sequence is not truly random, since it is obtained from a deterministic algorithm (the term “pseudo-random” would be more adequate), but it is very unlikely that the subtle correlations between the values in the sequence have an appreciable effect on the simulation results. The generator (1.2) is known to have good random properties (Press and Teukolsky, 1992). However, the sequence is periodic, with a period of the order of 109. With present-day computational facilities, this value is not large enough to prevent reinitiation in a single simulation run. An excellent critical review of random number generators has been published by James (1990), where he recommends using algorithms that are more sophisticated than the simple congruential ones. The generator implemented in the FORTRAN 77 function RAND (table 1.1) is due to l’Ecuyer (1988); it produces 32-bit floating point numbers uniformly distributed between zero and one. Its period is of the order of 1018, which is virtually infinite for practical simulations.

Page 19: PENELOPE, and algorithm and computer code for Monte Carlo ...

1.1. Random sampling methods 3

Table 1.1: FORTRAN 77 random number generator. .

C ************************************************************** C FUNCTION RANDC **************************************************************

FUNCTION RAND(DUMMY)CC THIS IS AN ADAPTED VERSION OF SUBROUTINE RANECU WRITTEN BY C F. JAMES (COMPUT. PHYS. COMMUN. 60 (1990) 329-344), WHICH HAS C BEEN MODIFIED TO GIVE A SINGLE RANDOM NUMBER AT EACH CALL.C THE 'SEEDS' ISEED1 AND ISEED2 MUST BE INITIALIZED IN THE C MAIN PROGRAM AND TRANSFERRED THROUGH THE NAMED COMMON BLOCK C /RSEED/.C

IMPLICIT DOUBLE PRECISION (A-H,0-Z), INTEGER*4 (I)PARAMETER (USCALE=1.0D0/2.0D0**31)C0MM0N/RSEED/ISEED1,ISEED2

CIl=ISEEDl/53668ISEED1=40014*(ISEED1-I1*53668)-11*12211 IF(ISEEDl.LT.O) ISEED1=ISEED1+2147483563

CI2=ISEED2/52774ISEED2=40692*(ISEED2-I2*52774)-12*3791 IF(ISEED2.LT.0) ISEED2=ISEED2+2147483399

CIZ=ISEED1-ISEED2 IF(IZ.LT.I) IZ=IZ+2147483562 RAND=IZ*USCALE

CRETURNEND

1.1.2 Inverse transform method

The cumulative distribution function of x is defined by

V(x) = r p{x') dx'. (1.3)Jo.

This function increases monotonically from V(a) = 0 to V(b) = 1 and, therefore, it has an (univaluate) inverse function. The transformation £ = V(x) defines a new random variable that takes values in the interval (0,1). The PDF tt(£) of this variable and the PDF p(x) are related by ir(£) d£ = p(x) dx, so that

tt(£) = p(x) = 1 (1.4)

and, therefore, £ is distributed uniformly in the interval (0,1).

Now it is clear that if £ is a random number, the variable x defined by x = ‘P-1(£) is randomly distributed in the interval (a, 6) with PDF p(x) (see figure 1.1). The ran­

Page 20: PENELOPE, and algorithm and computer code for Monte Carlo ...

4 Chapter 1. Monte Carlo simulation and radiation transport

domness of x is guaranteed by that of Notice that x is the (unique) root of the equation

£=/ p{x')dx', (1.5)va

which will be referred to as the sampling equation of the variable x. This procedure for random sampling is known as the inverse transform method; it is particularly adequate for PDFs p(x) given by simple analytical expressions such that the sampling equation (1.5) can be solved analytically.

Figure 1.1: Random sampling from a distribution p(x) using the inverse transform method.

Consider, for instance, the uniform distribution in the interval (a, 6)

p(x) = 1b-a'

The sampling equation (1.5) then reads

x — a b-a

which leads to the well-known sampling formula

x = a + £(& — a).

(1.6)

(1.7)

(1.8)

As another familiar example, consider the exponential distribution

p{s) = -^-exp(—s/At) (1.9)

of the free path s between scattering events. Here At stands for the mean free path. In this case, the sampling equation (1.5) is easily solved to give the sampling formula

s = —At ln(l — £) = —At In £. (1.10)

Page 21: PENELOPE, and algorithm and computer code for Monte Carlo ...

1.1. Random sampling methods 5

The last equality follows from the fact that 1 — £ is also a random number distributed in (0,1).

The inverse transform method is adequate for random sampling from continuous distributions given in numerical form. In this case, however, one must make sure that the numerical integration and inverse interpolation required to solve eq. (1.5) do not introduce significant errors.

1.1.3 Discrete distributions

The inverse transform method can also be applied to discrete distributions. Consider that the random variable x can take the discrete values x = 1,... ,N with point proba­bilities pi,... ,pjv, respectively. The corresponding PDF can be expressed as

P(x) = J2PiS(x ~ *)» (TH)»=i

where S(x) is the Dirac distribution. Here p(x) is assumed to be defined in an interval (a, b) with a < 1 and b> N. The corresponding cumulative probability function is

MV(x) = (1.12)

t = l

where [#] denotes the integer part of x, i.e. the largest integer that is less than x. Notice that V(x) = 0 when x < 1. Then, eq. (1.5) leads to the sampling formula

x =1 if £ < pi= 2 if Pi < £ < Pi + P2

i (1.13)= i if£Ci!?.•<{ <£!=!«

We can define the quantitiesN

Pi = 0, P2=pi, Ps = Pi + P2, Pn+1 = = 1- (1-14)t=i

To sample x we generate a random number £ and set x equal to the index i such that

Pi < £ < Pi+v (1.15)

If the number N of rc-values is large, this sampling algorithm may be quite slow because of the large number of comparisons required. An optimal searching method which yields the sampled value with only one comparison has been described by Walker (1977) (see also Salvat, 1987). However, this method needs a fairly complicated previous elaboration that makes it useless when the PDF varies during the simulation. A much simpler way of reducing the number of comparisons needed to determine the sampled value is to use binary search instead of sequential search. The algorithm for binary search, for a given value of £, proceeds as follows:

Page 22: PENELOPE, and algorithm and computer code for Monte Carlo ...

6 Chapter 1. Monte Carlo simulation and radiation transport

(i) Set i = 1 and j = N + 1.(ii) Set k — [(i + j)/2].

(iii) If Pk < £, set i = k] otherwise set j = k.(iv) If j — i > 1, go to step (ii).(v) Deliver i.

When 2" < N < 2n+1, i is obtained after n+1 comparisons. This number of comparisons is evidently much less than the number required when using purely sequential search.

1.1.4 Rejection methods

The inverse transform method for random sampling is based on a one-to-one correspon­dence between x and £ values, which is expressed in terms of a single-valued function. There is another kind of sampling method, due to von Neumann, that consists of sam­pling a random variate from a certain distribution (different from p{x)) and subjecting it to a random test to determine whether it will be accepted for use or rejected. These rejection methods lead to very general techniques for sampling from any PDF.

Figure 1.2: Random sampling from a distribution p(x) using a rejection method.

The rejection algorithms can be understood in terms of simple geometrical arguments (figure 1.2). Consider that, by means of the inverse transform method or any other available sampling method, random values of x are generated from a PDF tt(z). For each sampled value of x we sample a random value y uniformly distributed in the interval (0, Cn(x)) where C is a positive constant. Evidently, the points (x,y), generated in this way, are uniformly distributed in the region A of the plane limited by the ar-axis (y = 0) and the curve y — Cir(x). Conversely, if (by some means) we generate random points (x,y) uniformly distributed in A, their ^-coordinate is a random variable distributed according to tt(x) (irrespective of the value of C). Now, consider that the distribution 7r(x) is such that Ctt(x) > p(x) for some C > 0 and that we generate random points (x,y) uniformly distributed in the region A as described above. If we reject the points

Page 23: PENELOPE, and algorithm and computer code for Monte Carlo ...

1.1. Random sampling methods 7

with y > p(x), the accepted ones (with y < p(x)) are uniformly distributed in the region between the x-axis and the curve y = p{x) and hence, their ^-coordinate is distributed according to p(x).

A rejection method is thus completely specified by representing the PDF p{x) as

p(x) = C7r(x)r(x), (1.16)

where 7r(x) is a PDF that can be easily sampled e.g. by the inverse transform method, C is a positive constant and the function r(x) satisfies the conditions 0 < r(x) < 1. The rejection algorithm for sampling from p(x) proceeds as follows:

(i) Generate a random value x from tt(x).

(ii) Generate a random number £.

(iii) If £ > r(x), go to step (i).

(iv) Deliver x.

From the geometrical arguments given above, it is clear that the algorithm does yield x values distributed according to p(x). The following is a more formal proof: Step (i) produces x-values in the interval (x, x + dx) with probability tt(x) dx, these values are accepted with probability r(x) = p(x)/[C,7r(x)] and, therefore, (apart from a normalization constant) the probability of delivering a value in (x, x + dx) is equal to p(x) dx as required. It is important to realize that, as regards Monte Carlo, the normalization of the simulated PDF is guaranteed by the mere fact that the algorithm delivers some value of x.

The efficiency of the algorithm, i.e. the probability of accepting a generated x-value, is

e = / r(x)7r(x) dx = —. (1.17)Ja 0

Graphically, the efficiency equals the ratio of the areas under the curves y = p(x) and y = Gtt(x), which are 1 and C, respectively. For a given tt(x), since r(x) < 1, the constant C must satisfy the condition C7r(x) > p{x) for all x. The minimum value of <7, with the requirement that Ctt(x) = p(x) for some x, gives the optimum efficiency.

The PDF 7r(x) in eq. (1.16) should be selected in such a way that the resulting sampling algorithm is as fast as possible. In particular, random sampling from tt(x) must be performed rapidly, by the inverse transform method or by the composition method (see below). A high efficiency is also desirable, but not decisive. One hundred percent efficiency is obtained only with 1r(x) = p(x) (but random sampling from this PDF is just the problem we want to solve); any other PDF gives a lower efficiency. The usefulness of the rejection method lies in the fact that a certain loss of efficiency can be largely compensated with the ease of sampling x from 7r(x) instead of p(x). A disadvantage of this method is that it requires the generation of several random numbers £ to sample each x-value.

Page 24: PENELOPE, and algorithm and computer code for Monte Carlo ...

8 Chapter 1. Monte Carlo simulation and radiation transport

1.1.5 Composition methods

The composition method applies when p(x), the distribution to be simulated, is ex­pressed as a probability mixture of several PDFs. Consider a continuous distribution f(y) and a family gy(x) of one-parameter PDFs, where y is the parameter identifying a unique distribution, and define

P(x) = J f{y)9y(x) dy. (1-18)

If the parameter y takes only integer values y = i with point probabilities /,-, then

?(*) = 2/#*■(*)• (L19)t

The composition method for random sampling from the PDF p(x) is as follows. First, a value of y is drawn from the PDF f(y) and then x is sampled from the PDF gy(x) for that chosen y.

This technique may be applied for generating random values from complex distribu­tions obtained by combining simpler distributions that are themselves easily generated, by the inverse transform method or by rejection methods.

We note in passing that the point (x,y), with ordinate y and abscissa x sampled from the PDFs f(y) and gy(x), is distributed according to the bivariate PDF

p(*,y) = f(y)gy(x)- (1-20)Multivariate distributions can always be expressed as a sum (or integral) of products of single-variate PDFs. Thus, for instance, any distribution p(x,y) in R2 can be written in the form (1.20) with

f(y) = Jp(x,y) dz and gy(x) = • (1-21)

It is evident that to generate random points (x, y) from p{x, y) we can simply sample y from f(y) and x from gy(x). Hence, multivariate distributions can always be generated by using single-variate sampling methods.

It is an interesting technical challenge to devise fast methods for random sampling from a given PDF. The decisive criterion for the quality of a sampling algorithm is its speed in actual simulations: the best algorithm is the fastest. However, programming simplicity and elegance may justify the use of slower algorithms. For simple analytical distributions that have an analytical inverse cumulative distribution function, the in­verse transform method is usually satisfactory. This is the case for a few elementary distributions (e.g. the uniform and exponential distributions considered above). The inverse transform method is also adequate for discrete distributions and for continu­ous PDFs given in numerical form. By combining the inverse transform, rejection and composition methods we can devise sampling algorithms for virtually any (single- or multivariate) PDF.

Page 25: PENELOPE, and algorithm and computer code for Monte Carlo ...

1.2. Monte Carlo integration 9

1.2 Monte Carlo integration

As pointed out by James (1980), at least in a formal sense, all Monte Carlo calculations are equivalent to integrations. This equivalence permits a formal theoretical founda­tion for Monte Carlo techniques. An important aspect of simulation is the evaluation of the statistical uncertainties of the calculated quantities. We shall derive the basic formulae by considering the simplest Monte Carlo calculation, namely, the evaluation of a unidimensional integral. Evidently, the results are also valid for multidimensional integrals.

Consider the integral/ = f F{x) dx, (1.22)

Ja

which we recast in the formI = J p(x)f(x)dx (1.23)

by introducing an arbitrary PDF p(x) and setting /(x) = F(x)/p(x) (it is assumed that p{x) ^ 0 in (a, 6)). The Monte Carlo evaluation of the integral I is very simple: generate a large number N of random points x,- from the PDF p(x) and accumulate the values f(x{) in a counter. The law of large numbers says that, as N becomes very large,

74E/W^i- (1.24)1=1

In statistical terminology, this means that /, the Monte Carlo result, is a consistent estimator of the integral (1.22). This is valid for any function /(x) that is finite and piecewise continuous, i.e. with a finite number of discontinuities.

We recall that the expectation and variance of a function f(x) are defined by

</> = J?(*)/(*) d*> (1.25)

andvar(/) = Jp{x) (/(*) - (/))2 dx = Jp(x)f2(x) dx - (f)2.

Hence, the law of large numbers (1.24) can be restated as

(1.26)

(1.27)

Moreover, applying the law of large numbers to the integral (1.26), the variance of /(x) can be estimated from the N sampled function values as

var(/) = limV ' JV—too1N 1=1

1N

Y^f(x<) (1.28)

It is evident that different Monte Carlo runs (with different, independent sequences of N random numbers x,- from p(x)) will yield different estimates /. Therefore, / is a

Page 26: PENELOPE, and algorithm and computer code for Monte Carlo ...

10 Chapter 1. Monte Carlo simulation and radiation transport

random variable, with expectation

(/> = = (/>

and variance

var (/) = varN

N 23 /(*«■)t=i

N— ^var(/) = — var(/),

i=i N

(1.29)

(1.30)

where use has been made of properties of the expectation and variance operators. From the central limit theorem (see e.g. James, 1980), it follows that, in the limit N —» oo, the PDF of / is a normal (Gaussian) distribution with mean (/) and standard deviation

(xf = \/var (/) = (1-31)

Thus, the standard deviation gives a measure of the statistical uncertainty of the Monte Carlo estimate /: for sufficiently large values of N, the interval / ± 3(7/ contains the exact value (/) with a probability of 99.7% (3<r rule).

Each possible p(x) defines a Monte Carlo algorithm to calculate the integral /, eq. (1.22). The simplest algorithm (crude Monte Carlo) is obtained by using the uniform distribution p(x) = 1/(6—a). Evidently, p(x) determines not only the density of sampled points z,-, but also the magnitude of the variance var(/), eq. (1.26),

var £!Mp(x)

dz — I2 F(*)p{x)

dz. (1.32)

As a measure of the effectiveness of a Monte Carlo algorithm, it is common to use the efficiency e, which is defined by

C = ^r’ (1,33)

where T is the computing time (or any other measure of the calculation effort) needed to get the simulation result. Since cr2 and T are roughly proportional to TV-1 and N, respectively, e is a constant (i.e. it is independent of iV), on average.

The so-called variance reduction methods are techniques that aim at optimizing the efficiency of the simulation through an adequate election of the PDF p(x). Improving the efficiency of the algorithms is an important, and delicate, part of the art of Monte Carlo simulation. The interested reader is addressed to the specialized bibliography (e.g. Rubinstein, 1981). Although of common use, the term “variance reduction” is somewhat misleading, since a reduction in variance does not necessarily lead to improved efficiency. To make this clear, consider that a Monte Carlo algorithm, based on a certain PDF p(z), has a variance that is less than that of crude Monte Carlo (i.e. with the uniform distribution); if the generation of x-values from p(x) takes a longer time than for the uniform distribution, the “variance-reduced” algorithm may be less efficient than crude Monte Carlo. Hence, one should avoid using PDFs that are too difficult to sample.

Page 27: PENELOPE, and algorithm and computer code for Monte Carlo ...

1.3. Simulation of radiation transport 11

1.3 Simulation of radiation transport

In this section, we describe the essentials of Monte Carlo simulation of radiation trans­port. For the sake of simplicity, we limit our considerations to the detailed simula­tion method, where all the scattering events experienced by a particle are simulated in chronological succession, and we disregard the production of secondary particles, so that only one kind of particle is transported.

1.3.1 Scattering model and probability distribution functions

Consider a particle with energy E (kinetic energy, in the case of electrons and positrons) moving in a given medium. We limit our considerations to homogeneous “random scattering” media, such as gases, liquids and amorphous solids, where the “molecules” are distributed at random with uniform density. The composition of the medium is specified by its stoichiometric formula, i.e. atomic number Z{ and number of atoms per molecule n,- of all the elements present. The stoichiometric indices n,- need not have integer values. In the case of alloys, for instance, they may be set equal to the percentage in number of each element and then a “molecule” is a group of 100 atoms with the appropriate proportion of each element. The “molecular weight” is Am = Sra,-A,-, where A; is the atomic weight of the i-th element. The number of molecules per unit volume is given by

where Nx is Avogadro’s number and p is the mass density of the material.

(1.34)

In each interaction, the particle loses energy W and changes its direction of move­ment. The angular deflection is determined by the polar scattering angle 9, i.e. the angle between the directions of the particle before and after the interaction, and the az­imuthal angle <f>. Let us assume that the particle can interact with the medium through two independent mechanisms, denoted as “A” and “B” (for instance, elastic and inelas­tic collisions, in the case of low-energy electrons). The scattering model is completely specified by the molecular DCSs

dVa-(E\ W, 6) and

dViB (2;T%9), (1.35)dwdfr ’ ’ ' dwdirwhere dO is a solid angle element in the direction (9, <f>). We have made explicit the parametric dependence of the DCSs on the particle energy E. Considering that the molecules in the medium are oriented at random, the DCS is independent of the az­imuthal scattering angle, i.e. the angular distribution of scattered particles is axially symmetrical around the direction of incidence. The total cross sections (per molecule) are

d2o-A,B°"a.b(S) = Jq dW [ 2tt sin 9 d9 Jo

-(E; W,9). (1.36)dWdfr

The PDFs of the energy loss and the polar scattering angle in individual scattering events are

1 d2crAiBPa.b {E\W,9) =

o’a.b(-S) dWdfl(2;Mr,0). (1.37)

Page 28: PENELOPE, and algorithm and computer code for Monte Carlo ...

12 Chapter 1. Monte Carlo simulation and radiation transport

Notice that Pa(E] W, 0)dWdf2 gives the (normalized) probability that, in a scattering event of type A, the particle loses energy in the interval (W, W + dW) and is deflected into a direction within the solid angle element dfL The azimuthal scattering angle in each collision is uniformly distributed in the interval (0,2tt), i.e.

P(<£) = (L38)

It is worth recalling that this kind of single scattering model is only valid when diffrac­tion effects resulting from coherent scattering from several centres (e.g. Bragg diffrac­tion, channelling of charged particles) are negligible. This means that the simulation is applicable only to amorphous media and, with some care, to polycrystalline solids.

To get an intuitive picture of the scattering process, we can imagine each molecule as a sphere of radius rs such that the cross-sectional area irr* equals the total cross section

<7"T = 0"A + crB. (1.39)

Now, consider that a particle impinges normally on a very thin foil of thickness ds. What the particle sees in front of it is a uniform distribution of A/* ds spheres per unit surface. An interaction takes place when the particle strikes one of these spheres. Therefore, the probability of interaction within the foil equals the fractional area covered by the spheres, A/"crT ds. In other words, is the interaction probability per unit pathlength. Its inverse

At = (A/Vt)-1 (1.40)is the mean free path between interactions.

The PDF p(s) of the path length s between consecutive interactions of the particle in an unbounded medium may be obtained as follows. The probability that the particle travels a path length s without interacting is

tooJ-(s) = J p(s7) ds7. (1.41)

The probability p(s) ds of having the next interaction when the travelled length is in the interval (s, s + ds) equals the product of jF(s) (the probability of arrival at s without interacting) and A^1 ds (the probability of interacting within ds). It then follows that

p(s) = Ai^1 J p(s') ds7. (1.42)

The solution of this integral equation, with the boundary condition p(oo) = 0, is the familiar exponential distribution

p(s) = A^1 exp(—s/At) . (1.43)

Notice that the mean free path At coincides with the average path length between collisions:

(s) = j sp(s) ds = At. (1.44)Jo

The kind of interaction that occurs in the next event is a discrete random variable, that takes the values “A” and “B” with probabilities

Pa = cta/ctt and Pb = <tb/<tt. (1.45)

Page 29: PENELOPE, and algorithm and computer code for Monte Carlo ...

1.3. Simulation of radiation transport 13

1.3.2 Generation of random tracks

Each particle track starts off at a given position, with initial direction and energy in accordance with the characteristics of the source. The “state” of a particle immediately after a collision (or after entering the sample or starting its trajectory) is defined by its position coordinates r = (x, y, z), energy E and direction cosines of the direction of flight, i.e. the components of the unit vector d = (u,v,w), as seen from the laboratory reference frame. Each simulated track is thus characterized by a series of states rn, En, dn, where rn is the position of the n-th scattering event and En and dn are the energy and direction cosines of the direction of movement just after that event.

The generation of random tracks proceeds as follows. Let us assume that a track has already been simulated up to a state rn,£n,dn. The length s of the free path to the next collision, the involved scattering mechanism, the change of direction and the energy loss in this collision are random variables to be sampled from the corresponding PDFs, using the methods described in section 1.1. Hereafter, £ stands for a random number uniformly distributed in the interval (0,1).

The length of the free flight is distributed according to the PDF given by eq. (1.43). Random values of s are generated by using the sampling formula (see eq. (1.10))

s = —At ln£. (1.46)

The following interaction occurs at the position

Fji+1 — Fn sdn. (1.47)

The type of this interaction (“A” or “B”) is selected from the point probabilities given by eq. (1.45) using the inverse transform method (section 1.1.2). The energy loss W and the polar scattering angle # are sampled from the distribution Pa,b(S; W, 9), eq. (1.37), by using a suitable sampling algorithm. The azimuthal scattering angle is generated, according to the uniform distribution in (0,2tt), as <j> = 2tt£.

After sampling the values of W, 9 and <f>, the energy of the particle is reduced, En+i = En — W, and the direction of movement after the interaction dn+1 = (%/, v', w') is obtained by performing a rotation of d„ = (u,v,w) (see figure 1.3). The rotation matrix R(9, <j>) is determined by the polar and azimuthal scattering angles. To obtain explicitly the direction vector dn+i = R{9, f)dn after the interaction, we first note that, if the initial direction is along the 2-axis, the direction after the collision is

f sin 9 cos <f> \sin 9 sin <j> = Rz(<f>)Ry(9)z, (1.48)

; cos 9 )

where z=(0,0,l) and

f cos# 0 sin# ^ f COS (j) — sin^ °\Ry{9) = 0 1 0 and a,(# = sin^ cos <f> o (1.49)

^ —sin# 0 COS# J V 0 0 U

Page 30: PENELOPE, and algorithm and computer code for Monte Carlo ...

14 Chapter 1. Monte Carlo simulation and radiation transport

Figure 1.3: Angular deflections in single-scattering events.

are rotation matrices corresponding to rotations of angles 9 and <j> about the y- and 2-axes respectively. On the other hand, if and are the polar and azimuthal angles of the initial direction

d„ = (sin# cosy>, sin#siny>, cos#), (1.50)

the rotation Ry(—9)RZ(—(p) transforms the vector d„ into z. It is then clear that the final direction vector dn+i can be obtained by performing the following sequence of rotations of the initial direction vector: 1) Ry(—9)Rz(—ip), which transforms dn into z; 2) Rz(<f>)Ry(9), which rotates z according to the sampled polar and azimuthal scattering angles; and 3) Rz(ip)Ry(#), which inverts the rotation of the first step. Hence

(1.51)

(1.52)

(1.53)

w = w cos (/ — VI — tti siny cos </>.

These equations are not very stable numerically and the normalization of dn+i tends to drift from 1 after repeated usage. This must be remedied by periodically renormalizing

R{0,(f>) = Rz{ip)Ry{'9)Rz(^)Ry(9)Ry(-'d)Rz(-(p).

The final direction vector is

fsin 9 cos ^ ^ sin 9 sin <}>

and its direction cosines are

u' — u cos 9 +

v' = v cos 9 +

sin#VI — to-1

\ cos 9 )

[uw cos <f> — v sin <f>\,

sin#VT toz

[vw cos <j> + u sin <j>],

Page 31: PENELOPE, and algorithm and computer code for Monte Carlo ...

1.3. Simulation of radiation transport 15

dn+i. Moreover, eqs. (1.53) become indeterminate when to ~ 1, i.e. when the initial direction is nearly parallel to the 2-axis; this may be overcome by cyclic permutation of the x-, y- and z-axis. The change of direction expressed by eqs. (1.53) is performed by the subroutine DIRECT (see the PENELOPE source listing).

The simulation of the track then proceeds by repeating these steps. A track is finished either when it crosses a boundary of the sample or when the energy becomes smaller than a given value Eabs- This value corresponds to the energy where particles are assumed to be effectively stopped and absorbed in the medium.

1.3.3 Statistical averages and uncertainties

Let us now consider the determination of any quantity of interest Q from the detailed Monte Carlo simulation of N random tracks. Formally, Q can always be expressed as an integral

(2 = J,(X)q(X)dX (1.54)

over a certain interval of a variable X, whose PDF p(X) is usually unknown. The simulation of the tracks provides a practical method to sample X from p(X). From each generated track we get a random value Xi distributed according to p(X), which contributes qi = q(X,•) to the score. Thus, for instance, the average energy Eav deposited within the volume of a detector by photons with initial energy Eq is given by

Eav = [ p(E)EdE, (1.55)Jo

where E (= X) is the energy deposited by a photon, as obtained from the simulated track. The Monte Carlo estimate of Q is

The standard deviation of the sampled population (eq. (1.31))

crQ = hax{q)N

N

N" L^S4?_q2

(1.56)

(1.57)

measures the statistical uncertainty. As mentioned above, for sufficiently large values of N, the error interval Q ± 3ctq contains the true value Q with 99.7% probability. Notice that to evaluate the standard deviation (1.57) we must score the squared contributions qf. In certain cases, the contributions qi can only take the values 0 and 1, and the standard deviation error can be determined without scoring the squares

aQ 1 - Q)- (1.58)

Continuous distributions are treated as histograms and the quantities to be deter­mined are the heights of the different bars. For instance, imagine a simple experiment

Page 32: PENELOPE, and algorithm and computer code for Monte Carlo ...

16 Chapter 1. Monte Carlo simulation and radiation transport

where a parallel beam of particles with energy E-mc impinges normally on a thin foil of material, and consider that we want to determine the energy distribution of particles that are transmitted through the foil. We shall compute the function pt(E) defined in such a way that Pt(E) dE gives the probability for an incident particle to be transmitted with an energy between E and E+dE. Notice that the integral of Pt{E) over the range (Sabs, Sinc) coincides with the fraction of particles which are transmitted. First of all, we have to select a partition of the interval (Ea\,s, S;nc) into M different channels, say Sabs—So < Si < ... < Em = Sine- Each transmitted particle produces a ‘count’ in the corresponding channel. After simulating N tracks, the j-th channel contains a certain number of counts, say mj. The quantity Pj = m,j/N is the Monte Carlo estimate of the integral of pt(E) over the j-th channel. The simulated distribution pt(E) is a stepwise function which takes the value Pj/(Ej — S,_i) in the interval (S_,_i, Ej). In principle, we could get a closer approximation by using narrower channels. However, care has to be taken in selecting the channel widths since statistical uncertainties may completely hide the information in narrow channels. To clarify this, consider the relative statistical uncertainty of Pj, given by

°~Pj/Pj =1/2 1 N — mj

N Pi Nrrij (1.59)

It is evident that to reduce this error we must increase m3 either by simulating for a longer time or by using wider channels.

In some cases, (e.g. the mean number of scattering events per track, the depth- dose function, ...) almost all the simulated tracks contribute to the score and the inherent statistical uncertainties in the simulation results are comparatively small. Other quantities (e.g. angle and energy distributions of the particles transmitted through a thick foil) have considerable statistical uncertainties (i.e. large variances) because only a small fraction of the simulated tracks contribute to the partial scores.

1.3.4 Variance reduction

In principle, the statistical error of a quantity may be somewhat reduced (without in­creasing the computer simulation time) by using variance reduction techniques. Unfor­tunately, these optimization techniques are extremely problem-dependent, and general recipes to minimize the variance cannot be given. On the other hand, the importance of variance reduction should not be overvalued. In many cases, analogue1 simulation does the work in a reasonable time. Spending manhours by complicating the program, to get a modest reduction in computing time may not be a good investment. It is also important to realize that an efficient variance reduction method usually lowers the statistical error of a given quantity Q at the expense of increasing the uncertainties of other quantities. Thus, variance reduction techniques are not recommended when a global description of the transport process is sought. Here we give a brief description of those techniques which, with a modest programming effort, can be useful in improving

xWe use the term “analogue” to refer to detailed, condensed or mixed simulations that do not incorporate variance reduction procedures.

Page 33: PENELOPE, and algorithm and computer code for Monte Carlo ...

1.3. Simulation of radiation transport 17

the solution of some ill-conditioned problems. A nice, and practically oriented, review of variance reduction methods in radiation transport has been given by Bielajew and Rogers (1988).

Interaction forcing

In some cases of practical interest, a high variance results from an extremely low inter­action probability. Consider, for instance, the problem of determining the efficiency of a plane ionization chamber for high-energy photons. The gas occupies a small volume, where photon interactions occur with a much smaller probability than in the metallic walls of the chamber. Thus, in an analogue simulation, most of the time is wasted simulating interactions with the walls, which practically do not transfer energy to the sensitive volume. A second example is the determination of the energy spectrum of bremsstrahlung photons emitted by medium energy (~ 100 keV) electrons in a thin foil of a certain material. As radiative events are much less probable than elastic and inelas­tic scattering, the uncertainty of the simulated photon spectrum will be comparatively large. In these cases, the simplest variance reduction method consists in artificially in­creasing the interaction probability of the processes of interest, i.e. the corresponding inverse mean free path is multiplied by a factor P > 1. For the sake of generality, we con­sider that secondary particles can be generated in the interactions with the medium. To keep the simulation unbiased, we must correct for the introduced distortion as follows:

(i) A weight ujW = 1 is associated to each primary particle. Secondary particles pro­duced in forced interactions have an associated weight /P; the weightsof successive generations of forced secondaries are wjf) = /P. Secondaryparticles generated in non-forced interactions are given a weight equal to that of the primary.

(ii) A weight w$ = w^/V is given to the deposited energy (and to any other al­teration of the medium such as e.g. charge deposition) that results from forced interactions of a particle with weight w^. For non-forced interactions w$ — tyM.

(iii) Forced interactions are simulated to determine the energy loss and possible emis­sion of secondary radiation, but the state variables of the interacting particle are altered only with probability 1/P. That is, the energy E and direction of move­ment d of the projectile are varied only when the value £ of a random number falls below 1/P, otherwise E and d are kept unchanged.

Let wn and qn denote the weight and the contribution to the score of the i-th primary, and let Wij and % (j > 1) represent the weights and contributions of the secondary particles generated by the i-th primary. The Monte Carlo estimate of Q obtained from the N simulated histories is

Q = TjF X) wim- (1-60)V i,j

Evidently, the estimates Q obtained with interaction forcing and from an analogue simulation are equal (in the statistical sense, i.e. in the limit N —> oo, the variance of

Page 34: PENELOPE, and algorithm and computer code for Monte Carlo ...

18 Chapter 1. Monte Carlo simulation and radiation transport

the difference tends to zero). The standard deviation is given by

V (1.61)CTQ =1N N

Quantities directly related to the forced interactions will have a reduced statistical error, due to the increase in number of these interactions. However, other quantities will exhibit standard deviations larger than those of the analogue simulation, because of the time spent in simulating the forced interactions.

Splitting and Russian roulette

These two techniques, which are normally used in conjunction, are effective in problems where interest is focused on a localized spatial region. Typical examples are the calcula­tion of dose functions in deep regions of irradiated objects and, in the case of collimated radiation beams, the evaluation of radial doses far from the beam axis. The basic idea of splitting and Russian roulette methods is to favour the flux of radiation towards the region of interest and inhibit the radiation that leaves that region. These techniques are also useful in other problems where only a partial description of the transport process is required. The “region of interest” may then be a limited volume in the space of state variables (r, E, d). Thus, in studies of radiation backscattering, the region of interest may be selected as the spatial region of the sample close to the irradiated surface and the set of particle directions that point towards this surface.

As in the case of interaction forcing, the variance reduction is accomplished by modifying the weights of the particles. It is assumed that primary particles start moving with unit weight and each secondary particle produced by a primary one is assigned an initial weight equal to that of the primary. Splitting consists in transforming a particle, with weight wq and in a certain state, into a number S >1 of identical particles with weights w = w0/S in the same initial state. Splitting should be applied when the particle “approaches” the region of interest. The Russian roulette technique is, in some way, the reverse process: when a particle tends to move away from the region of interest it is “killed” with a certain probability, fC < 1, and, if it survives, its weight is increased by a factor 1/(1 — fC). Here, killing means that the particle is just discarded (and does not contribute to the scores anymore) and, evidently, splitting and killing leave the simulation unbiased. The mean and standard deviation of the calculated quantities are given by eqs. (1.60) and (1.61). The effectiveness of these methods relies on the adopted values of the parameters S and JC, and on the strategy used to decide when splitting and killing are to be applied. These details can only be dictated by the user’s experience.

Other methods

Very frequently, an effective “reduction of variance” may be obtained by simply avoiding unnecessary calculations. This is usually true for simulation codes that incorporate “general-purpose” geometry packages. In the case of simple (e.g. planar, spherical,

Page 35: PENELOPE, and algorithm and computer code for Monte Carlo ...

1.3. Simulation of radiation transport 19

cylindrical) geometries the program may be substantially simplified and this may speed up the simulation appreciably. In general, the clever use of possible symmetries of the problem under consideration may lead to spectacular variance reductions. As a last example, we can quote the so-called “range rejection” method, which simply consists in absorbing a particle when it (and its possible secondaries) cannot leave (or reach) the regions of interest. Range rejection is useful e.g. when computing the total energy deposition of electrons or positrons in a given spatial region. When the residual range of a particle is less than the distance to the nearest limiting surface of the region of interest, the particle will deposit all its energy inside or outside the considered region (depending of its current position) and the simulation of the track can be stopped. Range rejection is not adequate for photon transport simulation, since the concept of photon range is not well defined (or, to be more precise, photon path length fluctuations are very large).

Page 36: PENELOPE, and algorithm and computer code for Monte Carlo ...

20 Chapter 1. Monte Carlo simulation and radiation transport

Page 37: PENELOPE, and algorithm and computer code for Monte Carlo ...

Chapter 2

Photon interactions

In this chapter, we consider the interaction of unpolarized photons of energy E with atoms of atomic number Z. We limit our considerations to the energy range from 1 keV up to 1 GeV, where the dominant interaction processes are coherent (Rayleigh) scatter­ing, incoherent (Compton) scattering, the photoelectric effect and electron-positron pair production. Other interactions, such as nuclear absorption, occur with much smaller probability and can be disregarded for most practical purposes (see e.g. Hubbell et al., 1980).

As long as the response of an atom is not appreciably distorted by molecular binding, the single atom theory can be extended to molecules by using the additivity rule, i.e. the “molecular” cross section for a process is approximately equal to the sum of the atomic cross sections of all the atoms in the molecule. The additivity rule can also be applied to dense media whenever interference effects between waves scattered by different centres (which, for instance, give rise to Bragg diffraction in crystals) are small. We assume that these conditions are satisfied.

The ability of Monte Carlo simulation methods to describe photon transport in complex geometries has been established from research during the last four decades (Hayward and Hubbell, 1954; Zerby, 1963; Berger and Seltzer, 1972; Chan and Doi, 1983; Ljungberg and Strand, 1989). The most reliable Monte Carlo codes currently in use (see e.g. Jenkins et al., 1988, and references therein) incorporate accurate DCSs in the form of numerical tables; this requires the use of extensive databases. Here we follow an alternative approach and use DCSs given by closed analytical expressions. Total cross sections, and attenuation coefficients, can then be obtained by a single numerical quadrature that is performed very quickly, even on a personal computer, using the GABCj subroutine described in appendix A. Moreover, random sampling from these DCSs can be performed analytically and, hence, exactly. Only coherent scattering requires a simple preparatory numerical step.

It may be argued that using analytical approximate DCSs, instead of more accurate tabulated DCSs implies a certain loss of accuracy. To minimize this loss, we have adopted analytical forms that are physically plausible and, moreover, PENELOPE renormalizes the analytical DCSs so as to reproduce partial attenuation coefficients that are read

Page 38: PENELOPE, and algorithm and computer code for Monte Carlo ...

22 Chapter 2. Photon interactions

from the input material data file. As a consequence, the free path between events and the kind of interaction are sampled using total cross sections that are nominally exact; approximations are introduced only in the description of individual interaction events.

In the following, k stands for the photon energy in units of the electron rest energy,i.e.

Eme2

(2.1)

2.1 Coherent (Rayleigh) scattering

Coherent or Rayleigh scattering is the process by which photons are scattered by bound atomic electrons without excitation of the target atom, i.e. the energies of the incident and scattered photons are the same. The scattering is qualified as “coherent” as there are interference effects between the waves diffracted by different parts of the atomic charge distribution.

Figure 2.1: Rayleigh scattering.

The atomic DCS per unit solid angle for coherent scattering is given approximately by (see e.g. Born, 1969)

dtr“ &aT{F(q>Z)f, (2.2)

wheredf2 dfi

d<7-r(0) 21 + c°s2 0dfi 2 (2'3)

is the classical Thompson DCS for scattering by a free electron at rest, 9 is the polar scattering angle (see figure 2.1) and F(q, Z) is the atomic form factor. The quantity re is the classical electron radius and q is the magnitude of the momentum transfer givenby

q = 2(E/c) sin(0/2) = (E/c) [2(1 - cos 0)]1/2. (2.4)

In the literature on X-ray crystallography, the dimensionless variable

= 20.6074 -i-47rft me

x = (2.5)

Page 39: PENELOPE, and algorithm and computer code for Monte Carlo ...

2.1. Coherent (Rayleigh) scattering 23

is normally used instead of q.

The atomic form factor can be expressed as the Fourier transform of the atomic electron density p(r) which, for a spherically symmetrical atom, simplifies to

dr. (2.6)

F(q, Z) is a monotonically decreasing function of q that varies from F(0, Z) = Z to F(oo, Z) = 0. The most accurate form factors are those obtained from Hartree- Fock or configuration-interaction atomic structure calculations; here we adopt the non- relativistic atomic form factors tabulated by Hubbell et al. (1975). Although relativistic form factors are currently available (Doyle and Turner, 1968), Hubbell has pointed out that the non-relativistic form factors yield results in closer agreement with experiment (Cullen et al., 1990).

In the calculations, we use the following analytical approximation

%Z)XY_ ry\ - ry1+ ^ + a3X4/(*’Z) = Z (1 + a4x2 + asx4)2 ’

. max {f(x, Z), Fi<(g, Z)} if Z > 10 and f(x, Z) < 2,(2.7)

where^)

sin(26arctan Q)i<3(i + 02)‘ ’

(2.8)

withQ = 7T—, b=Vl- a2, a = a(Z — 5/16), (2.9)2 mca

where a is the fine-structure constant. The function Fk(g, Z) is the contribution to the atomic form factor due to the two K-shell electrons (see e.g. Bar6 et al., 1994a). The parameters of expression f(x, Z) for Z = 1 to 92, which have been determined by Bar6 et al. (1994a) by numerically fitting the atomic form factors tabulated by Hubbell et al. (1975), are included in the block data subprogram PENDAT. The average relative difference between the analytical and tabulated form factors is less than 0.5% (see figure 2.2).

The total coherent scattering cross section per atom is

7rr, J (l + cos2 [F(g, Z)]2 d(cos 6). (2.10)

Introducing Z, eq. (2.5), as a new integration variable, the asymptotic behaviour of the total cross section for small and large photon energies is made clear. For low photon energies, the form factor in the integrand does not depart appreciably from the value F(0, Z) = Z, i.e. coherent scattering reduces to pure Thompson scattering. Conse­quently, we have

crco ~ ^?rr2 Z2. (2.11)

In the high-energy limit, we get<xco oc E~2. (2.12) ■

Page 40: PENELOPE, and algorithm and computer code for Monte Carlo ...

24 Chapter 2. Photon interactions

& IE-2

x

Figure 2.2: Atomic form factors for carbon and lead. Crosses are values from the tables of Hubbell et al. (1975), continuous curves represent the analytical approximation given by eq.(2.7).

In practice, this limiting behaviour is attained for energies of the order of Z/2 MeV.

Strictly speaking, expression (2.2) is adequate only for photons with energy well above the K absorption edge. The low-energy behaviour given by eq. (2.11) is sub­stantially altered when anomalous scattering factors are introduced (see e.g. Cullen et al., 1989; Kane et al., 1986). These factors lead to a general decrease of the coherent scattering cross section near the absorption edges and at low energies. Nevertheless, at the energies where anomalous scattering effects become significant, coherent scattering is much less probable than photoelectric absorption, and the approximation given by eq. (2.2) is usually sufficient for simulation purposes.

2.1.1 Simulation of coherent scattering events

The PDF of the angular deflection, cos 0, can be written as (see eqs. (2.2) and (2.3); normalization is irrelevant here)

P«.(cos#) = [F(*, Z)f, (2.13)

where x, which is defined by eqs. (2.4) and (2.5), can take values in the interval from 0 to

imax = 20.6074 x 2k. (2.14)

This PDF can be factorized in the form

pco(cos 9) = g( cos 6)tt(x2) (2.15)

withg(cos 9)

1 + cos2 92

and tt(x2) = [F(x, Z)f . (2.16)

Page 41: PENELOPE, and algorithm and computer code for Monte Carlo ...

2.1. Coherent (Rayleigh) scattering 25

Notice that, for a compound, [F(x, Z)]2 has to be replaced by the sum-of squared form factors of the atoms in the molecule.

The function tt(z2) can be considered as the (unnormalized) PDF of the variable x2. Random values of x2 distributed according to this PDF can be generated by the inverse transform method (section 1.1.2), i.e. from the sampling equation

[ tt(x'2) dx12 = £ [ tt(z'2) dz'2. (2.17)Jo Jo

It is convenient to introduce the function

H(z2) = f 7r(z,2)dz'2, (2.18)Jo

which increases monotonically with z2 and saturates for high z2-values to a constant finite value. Then, the sampling equation (2.17) can be written in the form

n(z2) = fn(zLj, (2.i9)

which is easy to solve numerically. To this end, we only need to have a table of val­ues of the function H(z2) stored in the computer memory. For a given photon energy, n(^max) can be evaluated by interpolation in this table. Linear log-log interpolation (ex­trapolation) in a table with about 240 points logarithmically distributed in the interval (10-4,106) yields results which are accurate to within 0.01% (notice that in the interval from 0 to 10-4, F(x, Z) ~ Z and, hence, II(z2) is proportional to z2, i.e. extrapolation for z2 < 10-4 is exact). The value

*2 = IT1 (fnoo) (2.20)

can then be obtained by inverse linear interpolation (or extrapolation) with a binary search.

The angular deflection cos 9 can now be sampled by the rejection method (section 1.1.4), since the function g{cos 9) is a valid rejection function (i.e. it is positive and less than unity). The algorithm for sampling cos 9 proceeds as follows:

(i) Compute n(z^ax).(ii) Generate a random number £ and determine z2 using eq. (2.20). Set

cos 9 = 11 z22 (20.6074k)2 ’ (2.21)

(iii) Generate a new random number £.(iv) If £ > <jr(cos 9), go to step (ii).(v) Deliver cos 9.

Although numerical interpolation is necessary, it is performed on a single function that is independent of the photon energy and the errors introduced are negligible. It is worth noting that the sampling algorithm is essentially independent of the adopted

Page 42: PENELOPE, and algorithm and computer code for Monte Carlo ...

26 Chapter 2. Photon interactions

form factor, and directly applicable to molecules. The advantage of using the analytical form factor, eq. (2.7), instead of numerical databases is that II(z2) can be routinely calculated to the desired accuracy, using the GABQ integration subroutine (appendix A).

The efficiency of the sampling method (i.e. the fraction of generated values of cos 9 that is accepted) increases with photon energy. At low energies, it equals 2/3 (exactly) for all elements. For E = 100 keV, the efficiencies for hydrogen and uranium are 100% and 86%, respectively.

2.2 Incoherent (Compton) scattering

In Compton scattering, a photon of energy E interacts with an atomic electron, which absorbs it and re-emits a secondary (Compton) photon of energy E' in the direction fZ = (9, <f>) relative to the direction of the original photon. The Compton scattering cross section, differential in the energy E' and direction fZ of the secondary photon, is calculated from the relativistic impulse approximation (Ribberfors, 1983), which ac­counts for electron binding effects and Doppler broadening. In this approximation, the potential in which the target electron moves is assumed to be constant (i.e. independent of the position coordinates) so that electron states can be represented by plane waves. Contributions from different atomic electron shells are considered separately. After a Compton interaction with the i-th shell, the target electron is ejected to a free state with kinetic energy Ee = E — E' — Ui, where U{ is the ionization energy of the considered shell.

Figure 2.3: Compton scattering.

The Compton atomic DCS is expressed as (eq. (21) in Brusa et al., 1996)

'EcV (Ec E_ ^2 n\ rv_ x x dP*d2crsIe

a-m = r* A .'dfZ 2 \EJ \E Ec

sin *9) F(p.) J(p.)d E'1

(2.22)

where re is the classical electron radius. Ec is the energy of the Compton line,

EEc = 1 k(1 — cos 0)

(2.23)

Page 43: PENELOPE, and algorithm and computer code for Monte Carlo ...

2.2. Incoherent (Compton) scattering 27

this is the energy of photons scattered in the direction 9 by free electrons at rest (cf. eq. (B.16) in appendix B). The momentum transfer vector is given by q = k — k', where k and k' are the momenta of the incident and scattered photons; its magnitude is

q = -VE2 + E12 - 2EE> cos 9. c

(2.24)

The quantity pz is the projection of the initial momentum p of the electron on the direction of the scattering vector k' — k = —q; it is given by1

Pzp • q _ EE'( 1 — cos 9) — mc2(E — E1)

q c2q (2.25)

or, equivalently,Pz _ E{E‘ - Ec) me Ec cq

Notice that pz = 0 for E' = Ec- Moreover,

(2.26)

dpz _ me f E E cos 9 — E' pz dE' cq \Ec cq me

(2.27)

The function J(pz) in. eq. (2.22) is the Compton profile,

J(Pz) = JJ p(p)dpxdpy, (2.28)

where p(p) is the electron momentum distribution. For an electron in a state V’(r), p(p) = |V>(p)|2, where V’(p) is the state wave function in the momentum representation. In the Hartree-Fock approximation for closed-shell configurations, the momentum dis­tribution of the electrons in an atomic shell, obtained by adding the contributions of the orbitals in that shell, is isotropic. For an isotropic distribution, expression (2.28) simplifies to

J(Pz) = 2tt / pp(p)dp. (2.29)J\Pz\

The atomic Compton profile is given by

= (2-30)i

where Z{ is the number of electrons in the z-th shell and Ji(pz) is the one-electron profile of this shell. J,-(pz) dpz gives the probability that the component of the electron momentum in a given direction is in the interval (pz,pz + dpz). The functions J(pz) and Ji(pz) are both bell-shaped and symmetrical about pz = 0 (see figure 2.4). Notice that the normalization

/ Ji(Pz) fyz = 1 (2.31)

is assumed. Extensive tables of Hartree-Fock Compton profiles for the elements have been published by Biggs et al. (1975). These numerical profiles are.adequate for bound

xThe expression (2.25) contains an approximation, the exact relation is obtained by replacing the electron rest energy m<? in the numerator by the electron initial total energy, >/m2c4 + (cp)2.

Page 44: PENELOPE, and algorithm and computer code for Monte Carlo ...

28 Chapter 2. Photon interactions

electron shells. In the case of conductors, the one-electron Compton profile for conduc­tion electrons may be estimated by assuming that these form a free-electron gas with pe electrons per unit volume. The one-electron profile for this system is (see e.g. Cooper, 1971)

/'"W = 4(1-|) -W>. ^8(°> = (2.32)

where pf = Ji(3ir2 p^)1^3 is the Fermi momentum. For scattering in a compound material, the molecular Compton profile is obtained as the sum of atomic profiles of the atoms in a molecule (additivity rule).

0.0100.001 0.100

Figure 2.4: Atomic Compton profiles (pz > 0) for aluminium, copper and gold. The contin­uous curves are numerical Hartree-Fock profiles tabulated by Biggs et al. (1975). The dashed curves represent the analytical profiles defined by eq. (2.44). (Adapted from Brusa et al., 1996.)

The factor F(pz) in eq. (2.22) is approximately given by

+ f (' + £?where qc is the momentum transfer associated with the energy E' — Ec of the Compton line,

qc = ~\JE2 + Eq — 2EEc cos 6. (2.34)

Expression (2.33) is accurate only for small |pz [-values. For large |pz|, J,(pz) tends to zero and the factor F(pz) has no effect on the DCS. We use the values given by expression (2.33) only for |pz| < 0.2mc and take F(±|pz|) = F(±0.2mc) for |pz| > 0.2mc. Owing to the approximations introduced, negative values of F may be obtained for large |pz|; in this case, we must set F = 0.

We can now introduce the effect of electron binding: Compton excitations are allowed only if the target electron is promoted to a free state, i.e. if the energy transfer E — E' is larger than the ionization energy U{ of the active shell. Therefore the DCS, including

Page 45: PENELOPE, and algorithm and computer code for Monte Carlo ...

2.2. Incoherent (Compton) scattering 29

Doppler broadening and binding effects, is given by

d2<ri„ -2 z r x 2dE'dfi

X f(z>,) fe Zi Jifa) Q(E-Ef- Vi) dPzd£'’

(2.35)

where Q(x) (= 1 if x > 0, = 0 otherwise) is the Heaviside step function. In the calculations we use the ionization energies U{ given by Lederer and Shirley (1978). The DCS for scattering of 10 keV photons by aluminium atoms is displayed in figure 2.5, for 9 = 60 and 180 degrees, as a function of the fractional energy of the emerging photon. The DCS for a given scattering angle has a maximum at E' = Ec] its shape resembles that of the atomic Compton profile, except for the occurrence of edges at E' = E — (/«.

-0 = 60

-0 = 180

0.90 0.95 1.00EVE

Figure 2.5: DCS for Compton scattering of 10 keV photons by aluminium atoms at the indicated scattering angles. The continuous curves represent the DCS (2.35) for the Hartree- Fock Compton profile (Biggs et al., 1975). The dashed curves are results from eq. (2.35) with the analytical profiles given by eq. (2.44). (Adapted from Brusa et al., 1996.)

• In the case of scattering by free electrons at rest we have U, = 0 (no binding) and Ji(pz) = S(pz) (no Doppler broadening). Moreover, from eq. (2.26) E' = Eq, so that photons scattered through an angle 9 have energy Eq. Integration of the DCS, eq. (2.35), over E' then yields the familiar Klein-Nishina formula,

(2.36)

Page 46: PENELOPE, and algorithm and computer code for Monte Carlo ...

30 Chapter 2. Photon interactions

For energies of the order of a few MeV and larger, Doppler broadening and binding effects are relatively small and the free-electron theory yields results practically equivalent to those of the impulse approximation.

The angular distribution of scattered photons is given by the directional DCS,

d^ndfl

__ fPi.maxx]TZ,0(E-%) / 2(p*)J;(p,)dp„

J—OO(2.37)

where ptimax is the highest pz-value for which an electron in the z'-th shell can be excited. It is obtained from eq. (2.25) by setting E' = E — Ui,

m m E(E ~ Ui){ 1 - cos 9) - mc2UiPi,max(1-C') "J — /--------------------------------------------------- —•

cy]2E{E-Ui){l-cos9) + Uf

Except for energies just above the shell ionization threshold, the function F(pz) in the integral can be replaced by unity, since pzJi{pz) is an odd function and its integral is close to zero, i.e.

/Pi,max

F{Pz)Ji{Pz) dpz ~ n,(p;,max), (2.39)-OO

whereni(Pz) = r Ji(Pz) dpz. (2.40)

J—oo

Notice that n,(pz) is a monotonously increasing function of pz, which varies from 0 at pz = — oo to unity at pz = oo; the quantity n,-(p;>max) represents the fraction of electrons in the z-th shell that can be effectively excited in a Compton interaction. We can then write

^4(f)2(f+£-sin2*)™ <2-4i>The function

^(^, ^) = E % 8(2 - %) T%,(p^) (2.42)

can be identified with the incoherent scattering function in the impulse approximation (see e.g. Ribberfors and Berggren, 1982). The total cross section can then be obtained as

(2.43)

2.2.1 Analytical Compton profiles

In order to minimize the required numerical information and to simplify the random sampling, we use approximate one-electron profiles of the form

J?(Pz) — Ji,o ”4 (di + d2J{fi |p2|) exp |d* — (di + d2J,-,o |pz|) ] (2.44)2

Page 47: PENELOPE, and algorithm and computer code for Monte Carlo ...

2.2. Incoherent (Compton) scattering 31

withn = 2, d\ = (-------= \ —, d<i = —d\ n = V2.

\ n / v 2 nThe quantity «/,-|0 = J,(0) is the value of the profile at pz = 0 obtained from the Hartree- Fock orbital (Biggs et al., 1975). J,-(0) is tabulated in the file PENINCH.TAB for all shells of the elements Z — 1 to 92. Notice that Jf"(pz) is normalized according to eq. (2.31). With the profiles (2.44),

nf-(Pz) = JHp'z) dPz = 'J—OO

\ exp d( — (di — d2Ji$p^) | if Pz < 0,

\ exp |d2 - (di + d2J,,0Pz)2j if Pz > 0.(2.45)

Thus, the incoherent scattering function (2.42) can be expressed analytically and the integral (2.43) evaluated very quickly with the aid of subroutine GABQ (appendix A). On the other hand, the sampling equation nf{jpz) = (pv.max) (see section 2.2.2) can be solved analytically,

Pz =d2Ji,o

di ~ [di — In 2A) 1/2'

. d2Ji,o(d* — In 2(1 — A)) ^ — di if A >

(2.46)

where A = ^nf(p,-jmax). Atomic Compton profiles obtained from the approximation given by eq. (2.44) are accurate for small pz and oscillate about the Hartree-Fock values for intermediate momenta (see figure 2.4). The relative differences are normally less than 5%, except for large momenta for which J(pz) is very small. Similar differences are found between the DCS computed from Hartree-Fock and analytical Compton profiles (see figure 2.5). For most applications (e.g. studies of detector response, dosimetry, radiotherapy, etc.), the effect of these differences on the simulation results is not impor­tant. The impulse approximation with the analytical one-electron profiles (2.44) then provides a conveniently simple method to introduce Doppler broadening and binding effects in the simulation of Compton scattering.

2.2.2 Simulation of incoherent scattering events

Compton events are simulated on the basis of the DCS given by eq. (2.35) with the analytical Compton profiles (2.44). The sampling algorithm adopted here is due to Brusa et al. (1996). It is similar to the one described by Namito et al. (1994), but has a higher efficiency.

The PDF of the polar deflection cos 9 and the energy E' of the scattered photon is given by (apart from normalization constants, which are irrelevant here)

P,„(cos8,£') = (^) (jt + §--An2 (>}

x F(p.) fe Z,- ^ (2.47)

Page 48: PENELOPE, and algorithm and computer code for Monte Carlo ...

32 Chapter 2. Photon interactions

Integration of expression (2.47) over E', using the approximation (2.39), yields the PDF of the polar deflection

Pe{cos9) = - sin^Q'j S(E,9), (2.48)

where S(E, 9) is the incoherent scattering function, eq. (2.42).

Random values of cos 9 from the PDF (2.48) can be generated by using the following algorithm (Baro et al., 1994a). Let us introduce the quantity

EcE 1 + /c(l

The minimum and maximum values of r are1

cos *)■

Tmin — 1 + 2/cand = 1,

(2.49)

(2.50)

which correspond to backward (9 = ir) and forward (9 = 0) scattering, respectively. The PDF of this variable is (again ignoring normalization constants)

PT(r) = Pg(cos 9)d(cos 9)

dr +/V2 2/c-2

+ (2/c + 1) + k2t S{E, 9). (2.51)

This distribution can be rewritten in the form (Nelson et al., 1985)

Pt(t) = K Pi(r) + a2 Pz(r)] T(cos9),

whereoi — ln(l + 2/c), <%2 =

2/c(l + k) (l+2/c)2’

AW =i

ln(l + 2/c) r ’Pi(t) = *0l)T

(2.52)

(2.53)

(2.54)

andT(cos0) 1 - (2.55)

(1-t)[(2<c + 1)t-11~| S(E,e) k2t(1 + r2) j S(E,f) = ir)'

The function in braces is positive, it equals 1 at the end points of the interval (rmin,!), and is less than unity inside this interval. Moreover, the ratio of incoherent scattering functions is also less than unity for any value of 9 < tt. Hence, the function T(cos 9) is a valid rejection function. The functions P,-(r) (i = 1,2) are normalized PDFs in the interval (rm;n. 1), which can be easily sampled by using the inverse transform method. The generation of random values of r according to the PDF given by eq. (2.52) can then be performed by combining the composition and rejection methods (section 1.1). The algorithm to sample cos 9 proceeds as follows:

(i) Sample a value of the integer i (=1, 2) according to the point probabilities

ti-(I) = a i&1 + &2

and 7r(2) = a 2al + &2

(2.56)

Page 49: PENELOPE, and algorithm and computer code for Monte Carlo ...

2.2. Incoherent (Compton) scattering 33

(ii) Sample r from P, (r) using the sampling formulae

T = <if i = 1,

. IT,L,+ f t1 - Tmi„)]1/2 if»' = 2,(2.57)

which can be easily derived by the inverse transform method (section 1.1.2).(iii) Determine cos 9 using eq. (2.49),

1 — Tcos 0 = 1 —

KT

and compute the quantities Pi,max(F, 9), eq. (2.38), and

2(2,9) = Z % 0(2 - %) (%-,=).

(2.58)

(2.59)

(iv) Generate a new random number £.(v) If £ > T(cos0), go to step (i).

(vi) Deliver cos 9.

The efficiency of this algorithm, i.e. the probability of accepting a generated cos 6-value, increases monotonically with photon energy and is nearly independent of Z\ typical values are 35%, 80% and 95% for E = 1 keV, 1 MeV and 10 MeV, respectively.

Once the direction of the emerging photon has been set, the active electron shell i is selected with relative probability equal to Zt- Q(E — U{) nf-(p,-jmax(2,9)). A random value of pz is generated from the analytical Compton profile (2.44) using the sampling formula (2.46). If pz is less than —me, it is rejected and a new shell and a pz-value are sampled2. Finally, the factor F(pz) in the PDF (2.47) is accounted for by means of a rejection procedure. It should be noted that the approximation F ~ 1 is valid only when the DCS is integrated over E'; otherwise, the complete expression (2.33) must be used. Let Pmax denote the maximum value of F(pz), which occurs at pz = 0.2me or —0.2mc; a random number £ is generated and the value pz is accepted if £Fmax < F(pz), otherwise the process of selecting a shell and a pz-value is reinitiated. The energy E' of the emerging photon is then calculated from eq. (2.25), which gives

E' = E1 — tr2

(1 — tr cos 9) + sign(pz) \J{l — tr cos 9)2 — (1 — tr2){ 1 — t) j , (2.60)

wheret = (pz/mc)2 and s\gn(pz) = pz/\pz\. (2.61)

For photons with energy larger than 5 MeV, for which Doppler broadening is negligible, we set E' = Ec (which amounts to assuming that pz = 0). In this case, the active electron shell i is sampled with relative probability Z,- and binding effects are accounted for by simply rejecting E'-values such that E — E' <U{.

2Notice that, due to the approximation introduced in eq. (2.25), a value pz < —me would yield a negative energy for the scattered photon.

Page 50: PENELOPE, and algorithm and computer code for Monte Carlo ...

34 Chapter 2. Photon interactions

The azimuthal scattering angle <j> of the photon is sampled uniformly in the interval (0, 2tt). We assume that the Compton electron is emitted with energy E<> = E — E' — Ui in the direction of the momentum transfer vector q = k — k', with polar angle 9e and azimuthal angle <f>e = </> + tt, relative to the direction of the incident photon, cos 9e is given by

cos 9e =E — E' cos 6

VE2 + En - 2EE' cos 9(2.62)

When E1 = Ec, this expression simplifies to

cos 9C = E + me2 / E — EcE \2mc2 + E — Ec

1/2

(2.63)

which coincides with the result (B.17). Since the active electron shell is known, charac­teristic X-rays and electrons emitted in the de-excitation of the ionized atom can also be followed. This is important, for instance, to account for escape peaks in scintillation or solid state detectors

Table 2.1: Average number nr of random numbers £ needed to simulate a single incoherent scattering event for photons with energy E in aluminium, silver and gold.

# (eV) Al Ag Au103 16.6 11.9 13.4104 11.0 11.4 11.5105 9.5 9.8 10.0106 8.2 8.2 8.3107 7.5 7.5 7.5

As a measure of the efficiency of the sampling algorithm, we may consider the average number nr of random numbers £ required to simulate an incoherent scattering event. nr is practically independent of the atomic number and decreases with photon energy (see table 2.1). The increase of nr at low energies stems from the loss of efficiency of the algorithm used to sample cos 9. Although the simulation of incoherent events becomes more laborious as the photon energy decreases, this has only a small influence on the speed of practical photon transport simulations since low-energy photons interact predominantly via photoelectric absorption (see figure 2.10 below).

2.3 Photoelectric effect

In the photoelectric effect, a photon is absorbed by the target atom and an electron is emitted from the z-th shell with kinetic energy Ee = E — where Ui is the ionization energy of this shell. Photoionization of a given shell is only possible when the photon energy exceeds the corresponding ionization energy; this gives rise to the characteristic absorption edges in the photoelectric cross section crph.

Page 51: PENELOPE, and algorithm and computer code for Monte Carlo ...

2.3. Photoelectric effect 35

Fluorescent radiation

Figure 2.6: Photoelectric effect.

Tables of photoelectric cross sections for all the elements and photon energies from 10 eV to 105 MeV have been elaborated by Cullen et al. (1989) on the basis of Scofield’s theoretical calculations of subshell cross sections (Saloman et al., 1988) and Hubbell’s total cross sections (Hubbell et al., 1980; Berger and Hubbell, 1987). The atomic cross sections used in PENELOPE are obtained by interpolation in a table that was generated by using the XCOM program of Berger and Hubbell (1987). The values in this table, which spans the energy range from 1 keV to 1 GeV for the elements Z — 1 to 92, are estimated to be accurate to within a few percent for photon energies above 1 keV (Saloman et ah, 1988; Cullen et ah, 1989).

In order to minimize the simulation time and computer memory, for compound materials (and also for mixtures) PENELOPE interpolates the inverse attenuation co­efficient (i.e. the molecular cross section) instead of the atomic cross sections of the constituent elements. Knowledge of the atomic crosss sections is needed, only when a photoabsorption event has effectively occurred, to determine the element that has been ionized. Atomic cross sections are calculated from the following approximate analytical expressions.

The log-log representation of crph as a function of E exhibits a characteristic saw­tooth profile (see figure 2.10 below). In the energy range between successive absorption edges, the photoelectric cross section is a continuous function of the photon energy. We use the parameterization of the atomic photoelectric cross section given by Baro et ah (1994a), which was obtained by fitting the photoelectric cross sections of Cullen et ah (1989) for E > 1 keV. Explicitly, the photoelectric cross section is given by

r <?K cr^(E, 2) if E > E<= = 5(2 + 15) keV,1 exp (As — Bsy + Csy-1 + Day~2) if 1 keV < E < Ec, (2.64)

where Gk is a 2-dependent parameter, y = In E and As, Bs, Cs and Ds are parameters characteristic of each element, which change values at the absorption edges. Here, energies are assumed to be given in eV and cross sections in barn (= 10-24 cm2). The function

<r?h(£, Z) = Z*1.6268 x 10-3 - 2.683 x 10^2—6 1

E-l1 + 4.173 x 10-22

Page 52: PENELOPE, and algorithm and computer code for Monte Carlo ...

36 Chapter 2. Photon interactions

1.5274 x 103 - 5.11 x lO-'Z 2 + 1 + 1.027 x 10~2Z

1.133 x 10" - 2.177 x 109Z 3.5+ 1 + 2.013 x 10-%Z - 9.12 x 1013E~4

is the empirical high-energy formula due to Hubbell (Hubbell et al., 1980). This formula yields the correct asymptotic behaviour of the photoelectric cross section (<rph oc 2?-1) at high energies (see e.g. Bethe and Salpeter, 1957).

The parameters for the elements Z = 1 to 92 and for the various energy inter­vals between successive absorption edges are supplied by the block data subprogram PENDAT, which also gives the ionization energies of the elements recommended by Led- erer and Shirley (1978). Notice that the analytical approximation, eq. (2.64), is based on free-atom theoretical data and, therefore, near-edge absorption structures produced by molecular or crystalline ordering (e.g. extended X-ray absorption fine-structure) are ignored.

The relative differences between the analytical photoelectric cross sections, eq. (2.64), and the values generated with the XCOM program are normally less than 1% for energies up to Ec. The difference oscillates about zero so that the average relative differences are usually less than 0.5%. The largest deviations of the fit are found in the intervals t/L3 < E < Uh2 and Uus < E < Uu3-, where they may occasionally reach values as large as 20%. In all cases, these anomalously large deviations concentrate in very narrow energy intervals (~ 100 eV wide). For energies larger than Ec = 5(Z + 15) keV, the differences rise above 2% for certain elements and do not change sign, i.e. they become systematic. Nevertheless, as the relative probability of photoabsorption is small at these energies, the present analytical formulae are sufficiently accurate for our purposes.

2.3.1 Initial direction of photoelectrons

Let us assume that the i-th shell has been ionized in the photoabsorption event. The discussion of how the active electron shell is selected is postponed to section 2.5. A photoelectron with kinetic energy Ee = E — Ui is then emitted in a direction, relative to that of the absorbed photon, defined by the polar and azimuthal angles 0e (figure 2.6) and <j)e. We consider that the incident photon is not polarized and, hence, the angular distribution of photoelectrons is independent of <j>t, which is uniformly distributed in the interval (0,2tt). The polar angle 9e is sampled from the K-shell cross section derived by Sauter (1931) using hydrogenic electron wave functions. The Sauter DCS (per electron) can be written as

f3 sin36. 1 + ]p{l - 1)(7 - 2)(1 - p cos 0e)j , (2.66)dfZe e \ K / 7 (1 — yScOsfle)4

where a is the fine-structure constant, re is the classical electron radius, and

7=1 + Ee/(mc2), 0 — \Jec{Ec + 2me2)

Ee + me2(2.67)

Page 53: PENELOPE, and algorithm and computer code for Monte Carlo ...

2.3. Photoelectric effect 37

Strictly speaking, the DCS (2.66) is adequate only for ionization of the K-shell by high- energy photons. Nevertheless, in many practical simulations no appreciable errors are introduced when Banter's distribution is used to describe any photoionization event, irrespective of the atomic shell and the photon energy. The main reason is that the emitted photoelectron immediately starts to interact with the medium, and its direction of movement is strongly altered after traveling a path length much shorter than the photon attenuation length. On the other hand, when the photon energy exceeds the K-edge, most of the ionizations occur in the K-shell and then the Sauter distribution represents a good approximation for most of the cases of photoabsorption.

Introducing the variable /t = 1 — cos 9e, the angular distribution of photoelectrons can be expressed in the form (normalization is irrelevant here)

Pit1) = (2 - P) aTH + \h{l “1,(7 ~2) P i. (2.68)1 M +Random sampling of g from this distribution can be performed analytically. To this end, apart from a normalization constant, p(g) can be factorized in the form

Pip) = dip)^ip) (2.69)

with

and

dip) — (2 p)

Trip) =A(A + 2)2 g

2 (A + p)3'

(2.70)

(2 71)

The variable g takes values in the interval (0,2), where the function gift) is definite positive and attains its maximum value at p = 0, while the function it(g) is positive and normalized to unity. Random values from the probability distribution 7r(yu) are generated by means of the sampling formula (inverse transform method, see section 1.1.2)

J^X/) d/ = f, (2.72)

which can be solved analytically to give

" = {A+lf-ii N + <A + 2*1,21 • <2-73>

Therefore, random sampling from Banter's distribution can be performed by the rejection method (see section 1.1.4) as follows:

(i) Generate g from 7r(p) by using eq. (2.73).(ii) Generate a random number £.

(iii) If CS'(O) > gip), go to step (i).(iv) Deliver g.

The efficiency of this algorithm is ~ 0.33 at low energies and increases slowly with Ee; for Ee = 1 MeV, the efficiency is 0.4. As photoelectric absorption occurs at most once in each photon history, this small sampling efficiency does not slow down the simulation significantly.

Page 54: PENELOPE, and algorithm and computer code for Monte Carlo ...

a; Chapter 2. Photon interactions

2.4 Electron-positron pair production

Electron-positron pairs can be created by absorption of a photon in the vicinity of a massive particle, a nucleus or an electron, which absorbs energy and momentum so that these two quantities are conserved. The threshold energy for pair production in the field of a nucleus (assumed of infinite mass) is 2me2. Pair production in the field of an electron (triplet production) is only possible for photons with energy larger than 4mc2.

Figure 2.7: Electron-positron pair production.

Pair production is simulated by means of the modified Bethe-Heitler DCS described by Bar6 et al. (1994a), which assumes an exponentially screened field and includes Coulomb and low-energy corrections. The DCS for a photon of energy E to create an electron-positron pair, in which the electron has a kinetic energy £L = eE — me2, is written as

= ar\CrZ[Z + rj\- 2 - e) ^i(e) + ^(e) , (2.74)

where a is the fine-structure constant and

<Me) = 9i(b)+9o(K),

with

and

b =

<Me) = 92(b) +5'0(«)

Rmc 1 1h 2k c( 1 — e)

9i(b)

92(b) =

- — 21n(l + b2) — 66tan x(6 ^)

62 [4 - 46 tan-1 (6-1) - 31n(l + 6"2)] ,

116 21n(l + b2) — 36tan-1(6_1)

4t2 4 - 46tan'1(6"1) - 31n(l + 6™2)] ,

9o(k) = 4:ln(Rmc/fi) - 4fc(Z) + F0(k,Z).

(2.75)

(2.76)

(2.77)

(2.78)

(2.79)

Page 55: PENELOPE, and algorithm and computer code for Monte Carlo ...

2.4. Electron-positron pair production 39

Cr = 1.0093 is the high-energy limit of Mork and Olsen’s radiative correction (Hubbell et al., 1980). The quantity R is the screening radius, determined by Salvat and Fer­nandez-Varea (1992) in such a way that the values of the total cross sections for pair production in the nuclear field by 10s MeV photons given by Hubbell et al. (1980) are exactly reproduced.

The quantity 77 in eq. (2.74) accounts for triplet production, i.e. pair production in the field of the atomic electrons (Hubbell et al., 1980; Tsai, 1974). It is calculated from the following empirical expression

77 = [1 - exp(-y)]?70O, (2.80)

where

v = (0.2840 - 0.1909a) ln(4/«) + (0.1095 + 0.2206a) ln2(4/k)+ (0.02888 - 0.04269a) ln3(4//c) + (0.002527 + 0.002623a) ln4(4/«), (2.81)

with a = OiZ. The values of the parameter 7700 for all the elements are given in graphical form by Salvat and Fernandez-Varea (1992).

The function fc(Z) is the high-energy Coulomb correction of Davies, Bethe and Maximon (1954) given by

fc(Z) = a2 [(1 + a2)"1 + 0.202059 - 0.03693a2 + 0.00835a4

- 0.00201a6 + 0.00049a8 - 0.00012a46 + 0.00003a12] . (2.82)

The function Fq(k, Z) is a correcting factor, which was determined by requiring that the total cross section for pair production computed from eq. (2.74) agree with the values tabulated by Hubbell et al. (1980). By inspection and numerical fitting of the total cross sections for pair production in the field of the nucleus given by these authors, we obtained the following analytical approximation

F0(k,Z) = (-0.1774- 12.10a + 11.18a2) (2/zc)1/2

+ (8.523 + 73.26a - 44.41a2) (2//c)- (13.52 + 121.1a - 96.41a2) (2/k)3/2

+ (8.946 + 62,05a - 63.41a2) (2/k)2. (2.83)

For each atomic target, the modified Bethe-Heitler DCS, eq. (2.74), is completely determined by the values of the parameters R and 77^, which are supplied by the block data subprogram PENDAT for the elements with Z = 1 to 92.

The total atomic cross section for pair (and triplet) production is obtained as

^ /"'“%Ede- (2-84)•'Cmin

whereemin = mc2/E = k-1 and emax = 1 — me1 /E = 1 — k-1. (2.85)

Page 56: PENELOPE, and algorithm and computer code for Monte Carlo ...

40 Chapter 2. Photon interactions

It is worth pointing out that, due to the fact that the correcting factor Fq(k, Z) is an approximation, the functions (f>\ and <f>2 may take small negative values for high atomic number elements and e-values very near the endpoints of the allowed interval given by eq. (2.85). To avoid inconsistencies, these functions are set equal to zero when they take negative values.

The relative differences between the total atomic cross sections obtained from the DCS given by eq. (2.74) and the total cross sections tabulated by Hubbell et al. (1980) are appreciable near the threshold (actually, eq. (2.74) shifts the threshold for pair production to values slightly larger than 2mc2), but decrease rapidly with increasing photon energy. At E = 3 MeV, the differences reduce to 4% and do not exceed 2% for energies larger than 6 MeV, for almost all the elements. Although these differences are not important, they may be larger than the uncertainties in the cross sections given by Hubbell et al. (1980). To avoid systematic errors, the mean free paths for pair production used in PENELOPE are obtained by interpolation in a table generated with the XCOM program (Berger and Hubbell, 1987). The Bethe-Heitler DCS is only used to sample the kinetic energies of the produced pair.

It is also worth noting that the dependence of the Bethe-Heitler DCS on the electron kinetic energy is reasonably accurate only for photon energies larger than ~ 5 MeV. For lower energies, the actual DCS becomes asymmetrical and the mean value of e becomes less than 1/2 (see e.g. Motz et al., 1969). At these energies, pair production is not dominant and, morever, the produced particles have ranges that are much less than the photon mean free path. Therefore, no appreciable simulation errors are incurred by using the Bethe-Heitler DCS, eq. (2.74), for energies down to the threshold.

2.4.1 Simulation of pair production events

The Bethe-Heitler DCS, eq. (2.74), depends only on the kinetic energy E- = eE — me2 of the produced electron, so that £L can be directly sampled from eq. (2.74); the kinetic energy of the positron is obtained as E+ = E — E- — 2me2. Notice that, although the Bethe-Heitler DCS accounts for pair and triplet production, all the events are simulated as if they were pairs. This approximation is justified by the fact that, in triplet production, the recoiling electron has a range that is much smaller than the mean free path of the incident photon.

The electron reduced energy e is distributed in the interval (as-1,1 — as-1), see eq. (2.85), according to the PDF given by eq. (2.74) (normalization is again irrelevant)

Ppp(e) = 2 (- — <Me) + <Me)> (2.86)

which is symmetrical about the point e = 1/2. Figure 2.8 shows this PDF for lead and various photon energies. The following algorithm for sampling e is based on the fact that the functions <f>i(e) and ^(e) are non-negative and attain their maximum values at e = 1/2.

Page 57: PENELOPE, and algorithm and computer code for Monte Carlo ...

2.4. Electron-positron pair production 41

200 MeV

Figure 2.8: Pair production DCS in lead as a function of the electron reduced energy, e = (.EL + mc2)/E. (Adapted from Bard et al., 1994a.)

Except for a normalization constant, the PDF (2.86) can be written in the form

with

and

Ppp(e) = uiUi(e)TTi(e) + u2U2(e)ir2(e) (2.87)

ui ~ 3 (2 ~ k) U2 = ^(1/2), (2.88)

Ti(£) = IQ _ \) (l_<) - X2(£) = I (I “ £) (2-89)£M«) = *(«)M(l/2), P2(e) = *(e)/*(l/2). (2.90)

The functions 7r,-(e) are normalized PDFs in the interval (/c-1,l — /e-1), from which random values of e can be easily sampled by using the inverse transform method. In this interval, the functions C7,-(e) are positive and less than unity, i.e. they are valid rejection functions. The generation of random values of e from the distribution (2.87) can now be performed by combining the composition and rejection methods (see section 1.1) according to the following algorithm:

(i) Sample a value of the integer i (=1, 2) according to the point probabilities

Ui , /nX u2P(l) = U\ + u2

and p(2) =U\ + u2

(2.91)

(ii) Sample e from 7T,-(e) using the sampling formulae (inverse transform method, see section 1.1.2)

2 + (2 ~ /c) ^ ~ 1^I/3 if ’ = lj

1 n in <2-92>e =

Page 58: PENELOPE, and algorithm and computer code for Monte Carlo ...

42 Chapter 2. Photon interactions

(iii) Generate a new random number £.(iv) If £ > C7,(e), go to step (i).(v) Deliver e.

Notice that the quantity 2£ — 1 may be negative and, therefore, taking its cube root will lead to a computer error; provision of this fact must be made when programming the algorithm. The efficiency of the algorithm is greater than 70% for energies near the threshold, and increases with increasing photon energies. For E = 1 GeV it is of the order of 95% for all the elements in the periodic table.

Angular distribution of the produced particles

Actually, the complete DCS for pair production is a function of the directions of the pair of particles. As the final state involves three bodies (the nucleus and the produced pair), the directions of the produced particles cannot be obtained from only their kinetic energies. The polar angles of the directions of movement of the electron and positron (0+ and figure 2.7) relative to the direction of the incident photon are sampled from the leading term of the expression obtained from high-energy theory (Heitler, 1954; Motz et al., 1969)

p(cos 9±) = a (1 — 0± cos 9±)~2, (2.93)

where a is a normalization constant and

/E±(£t + 2mc*)± E± + me2

is the particle velocity in units of the speed of light. Random values of cos 9± are obtained by using the inverse transform method (see section 1.1.2), which leads to the sampling formula

cos 9± = (2/—l )/3± + i‘ (2,95)

As the directions of the produced particles and the incident photon are not necessarily coplanar, the azimuthal angles <f>- and <j>+ of the electron and the positron are sampled independently and uniformly in the interval (0,2tt).

It is worth stressing the fact that the produced charged particles have ranges that are much smaller than the mean free path of the photons. Moreover, the charged particles immediately enter a multiple elastic scattering process which randomizes their directions of movement. As a consequence, there should be little difference between simulation results obtained with the present method and with exact random sampling from a more accurate DCS, differential in the energies and directions of the generated particles.

Compound materials

Let us consider a compound XxYy, in which the molecules consist of x atoms of the element X and y atoms of the element Y. The number of electrons per molecule is

Page 59: PENELOPE, and algorithm and computer code for Monte Carlo ...

2.5. Atomic relaxation 43

Zu = xZ(X) + yZ(Y) and the molecular weight is Am = xAw(X) + yAw(Y), where Z(X) and AW(X) stand for the atomic number and atomic weight of element X. The number of molecules per unit volume is A/*m = A/a.p/Am, where ATa is Avogadro’s number and p is the mass density of the material.

In the simulation of pair-production events, we could use the molecular DCSs ob­tained from the additivity rule. The simulation of each event would then consist in 1) sampling the atom which participates in the interaction and 2) generating a random value of the electron reduced energy e from the corresponding atomic DCS. To save computer time, PENELOPE generates e by considering an “equivalent” single element material of the same mass density p as the actual medium, atomic number Zeq and atomic weight Aeq given by

Z.qAM = ZwA«q = xZ(X)A*(X) + yZ(Y)A*(Y), (2.96)

i.e. its atomic number (weight) is the mass-average (Z-average) of the atomic numbers (weights) of the constituent atoms. The reduced energy is sampled from the DCS of the element with the atomic number closest to Zeq. Usually, this approximation does not alter the simulation results appreciably and permits a considerable simplification of the program and a reduction of the simulation time.

2.5 Atomic relaxation

Atoms are primarily ionized by photon interactions and by electron or positron impact. There is a fundamental difference between the ionizing effects of photons and of charged particles. A photon is only able to ionize directly a few atoms. In the case of photoab­sorption, when the photon energy is larger than the K-shell binding energy, about 80% of photoabsorptions occur in the K-shell, i.e. the resulting ion with a vacancy in the K-shell is highly excited. Incoherent scattering is not as highly preferential, but still the probability that an inner shell is ionized is nearly proportional to the number of electrons in the shell. Conversely, energetic charged particles ionize many atoms along their path and most of the ionizations occur in the less tightly bound atomic shells (or in the conduction band, in the case of metals) so that the ions produced are weakly excited.

Excited ions relax to their ground state by migration of the initial vacancy to outer electron shells, which proceeds through emission of fluorescent X-rays and/or Auger electrons with characteristic energies (see e.g. Perkins et al., 1991a). If the initial vacancy is in an outer shell, the emitted radiation is not very energetic and is absorbed in the vicinity of the ion. Consequently, the excitation energy of ions produced by electron and positron impact (and by triplet production) will be assumed to be locally deposited at the interaction site. In the case of photoelectric absorption or Compton scattering, the relaxation of vacancies in inner shells of high-Z elements must be considered in some detail since energetic X-rays and/or electrons are emitted. PENELOPE simulates the emission of characteristic radiation and Auger electrons that result from vacancies produced in a K-shell by photon interactions (Sempau et al., 1996).

Page 60: PENELOPE, and algorithm and computer code for Monte Carlo ...

44 Chapter 2. Photon interactions

Vacancies produced in shells other than the K-shell originate much less energetic radiation. The main effect of this low-energy radiation is to spread out the excitation energy of the ion within the surrounding material. As the direct simulation of the full de-excitation cascade would complicate the code considerably, we simply assume that, when ionization occurs in L or outer shells, the electron is emitted from the parent ion with a kinetic energy equal to the energy deposited by the photon,

E — E' in Compton scattering,E in photoelectric absorption. (2.97)

That is, the whole excitation energy of the ion is taken up by the electron and no fluorescent radiation is simulated. In reality, the emitted electrons have energies less than the values (2.97) and can be followed by characteristic X-rays, which have mean free paths that are usually much larger than the Bethe range of photoelectrons. By giving an artificially increased initial energy to the electron we allow it to transport energy farther from the ion so as to partially compensate for the neglect of other radiation emitted during the de-excitation cascade.

In the simulation, when the ionization occurs in the K-shell, the electron is ejected with the correct kinetic energy, equal to the deposited energy minus the K-shell ioniza­tion energy Uk- In the case of incoherent scattering, the sampling algorithm directly determines the electron shell that is ionized. In the case of photoabsorption, owing to the introduced simplifications, we need only determine whether the ionized shell is a K- shell. Evidently, K-shell ionization happens only when E > Uk- Then, the probability of absorption in the K-shell is given by

me)=SI- (2.98)

where <rph(-6') and cr^k(S) are the total atomic photoelectric cross section and the partial cross section for K-shell ionization, respectively. From calculated subshell photoelectric cross sections (Cullen et al., 1989) it is found that Pk(E) is practically independent of the photon energy. It can then be estimated from the K-edge jump ratio, which is defined by

Jk=St? (2'99)where crph(t/j|) and cPh([/£) are values of the photoelectric cross section for energies immediately above and below the K-edge, respectively. We have

Pk = 1 -Jk

(2.100)

Numerical values of this quantity for all the elements have been obtained from the photoelectric cross section tables of Cullen et al. (1989). In the simulation we use the expression

1 + 8.76 x 10~2Z — 7.35 x 10~4Z2 ~ 0.965 + 0.107Z — 8.39 x 10~4Z2 ’ ^2'101'

which reproduces the numerical values to within 0.6% for Z > 6.

Page 61: PENELOPE, and algorithm and computer code for Monte Carlo ...

2.5. Atomic relaxation 45

To be consistent with the fact that the emission of radiation after ionization of the L and outer shells is disregarded, we consider only characteristic X-rays and Auger electrons emitted in the first stage of the de-excitation cascade, i.e. when the initial vacancy in the K shell is filled by an electron from an outer subshell. Explicitly, the considered emission processes are K-L2, K-L3, K-M2, K-M3, K-N2, K-N3 and K-X radiative transitions and KLX Auger transitions. Here, X denotes the outermost shell with negligible binding energy. In the case of Auger emission, we assume that the electron is ejected with the maximum allowed kinetic energy Ex — Uk — CA2; this serves to partially compensate for neglecting the subsequent de-excitation cascade.

The transition probabilities, see figure 2.9, have been taken from the compilation by Perkins et al. (1991a). Although radiative transitions different from the ones indicated above (e.g. K-M4) are also possible, the corresponding transition probabilities are ex­ceedingly small (less than 0.01). Notice that the ratio of probabilities of the radiative transitions K-Y2 and K-Y3 (where Y stands for L, M or N) is approximately 1/2, as obtained from the dipole approximation (see e.g. Bransden and Joachain, 1983); radia­tive transitions K-Yl are strictly forbidden in the dipole approximation. Characteristic X-rays and Auger electrons are emitted isotropically.

1.000 b I 1 I I | I II i

; Auger KLX

0.100 r

0.010 r

10 20 30 40 50 60 70 80 90Z

Figure 2.9: Transition probabilities for atomic relaxation processes initiated by a vacancy in the IC-shell.

It is important to bear in mind that the simple approximations adopted to generate characteristic X-rays and Auger electrons set a lower limit to the photon energies for which PENELOPE is applicable. In principle, simulation results are expected to be reliable only for photons with energies larger than the L-shell binding energy (~ 1 keV for Ni, ~ 5 keV for I, ~ 20 keV for U). We recall also that the photoelectric cross section tables are limited to E > 1 keV, which represents another effective lower limit. A number of practical reasons discouraged us from attempting to extend the photon simulation algorithm to lower energies. Firstly, photon attenuation coefficients at these energies are affected by considerable uncertainties (see e.g. Creagh and Hubbell, 1992). Secondly, a consistent simulation of photons with energies below the L edge requires taking into account the generation of X-rays and electrons in this energy range, which can be emitted by heavy atoms after ionization of their L and outer shells. To simulate

Page 62: PENELOPE, and algorithm and computer code for Monte Carlo ...

46 Chapter 2. Photon interactions

the de-excitation cascade of ions with a vacancy in these shells, we need the relative probabilities and energies of all possible radiative and non-radiative transitions. These quantities are poorly known; even the L-shell fluorescence yield is uncertain in about 20% (see e.g. Hubbell, 1989; Perkins et al., 1991a). Finally, the attenuation length of X-rays with energies of the order of 1 keV (or the L-shell ionization energy, whichever is the larger) is of the order of a few microns, even for light materials such as water and, hence, for many practical purposes photons with these energies can be assumed to be locally absorbed in the medium.

2.6 Attenuation coefficients

The partial attenuation coefficient for photoelectric absorption is defined by

Pph = AfcTph, (2.102)

where M = N\p/Au is the number of atoms or molecules per unit volume and <rph is the atomic or molecular photoelectric cross section. The photoelectric mass attenuation coefficient is given by /zph/p. Analogous definitions apply for the other interaction processes. The partial attenuation coefficient equals the inverse mean free path for the corresponding process. The total mass attenuation coefficient is obtained as

~ = — (Cco + Om + 0"ph + 0'pp) • (2.103)P Am

1E+4 g-rruim 111iiiuj i iiuiuj i innii|—muuii'-i

— coherent

incoherent

photoelectric

pair product.1E+2

IE-2

i> vi i mini i /nitil i ill mil > i mini • i i liiml i mild N Him# i iimj i i ntml

E(eV) E(eV)

Figure 2.10: Partial and total mass attenuation coefficients for carbon and lead. (Adapted from Bar6 et al., 1994a.)

Page 63: PENELOPE, and algorithm and computer code for Monte Carlo ...

2.6. Attenuation coefficients 47

As mentioned above, PENELOPE uses mean free paths for photoelectric absorp­tion and pair production obtained with the XCOM program of Berger and Hubbell (1987). This code generates a table of cross sections, for a fixed grid of energies. Pho­toelectric cross sections for energies above the K-edge (or above the highest K-edge in the case of compounds) are obtained by means of cubic spline log-log interpolation in this table; linear log-log interpolation is used for energies between absorption edges (since our cubic spline subroutines cannot handle discontinuities). Total cross sections for pair production are evaluated by cubic spline log-log interpolation of the function (1 — 2mc2/E)-3<7pP, which varies slowly with the photon energy.

Mean free paths for coherent and incoherent scattering are computed from the DCSs described in sections 2.1 and 2.2. The resulting values are virtually identical to the ones given by the XCOM program for E greater than ~ 50 keV. At lower energies, our mean free paths for Compton scattering deviate from those given by XCOM; these were calculated from a different theoretical model (Hubbell et al., 1975), which neglects Doppler broadening (see e.g. Brusa et al., 1996). The evaluation of the total atomic cross section for these processes [see eqs. (2.10) and (2.42)] involves a numerical quadrature, which is performed by using subroutine GABQ (appendix A). Notice that for high-energy photons, the integrand in the coherent scattering cross section, eq. (2.10), is sharply peaked at 9 = 0. In such a case, the numerical integration method is not effective. For energies larger than ~ Z/2 MeV, we take advantage of the asymptotic behaviour given by eq. (2.12) to avoid time-consuming integration. Partial and total attenuation coefficients for carbon and lead, as representatives of low- and high-Z materials, are displayed in figure 2.10.

Page 64: PENELOPE, and algorithm and computer code for Monte Carlo ...

46 Chapter 2. Photon interactions

Page 65: PENELOPE, and algorithm and computer code for Monte Carlo ...

Chapter 3

Electron and positron interactions

In this chapter we consider the interactions of electrons and positrons with kinetic energy E in matter. For the sake of simplicity, we start by assuming that particles move in a single-element medium of atomic number Z. The extension to compounds, and mixtures, is normally done on the basis of the additivity rule.

The possible interactions of the particle with the medium are elastic scattering, inelastic collisions, bremsstrahlung emission, and annihilation in the case of positrons. The atomic DCSs adopted in PENELOPE are analytical functions of the atomic number, the kinetic energy, the scattering angle 9 and the energy loss W. These DCSs, which are sufficiently accurate for most practical simulation purposes, allow the analytical random sampling of the scattering angle and the energy loss, so that sampling errors that could originate from numerical interpolation are readily avoided. It is worth pointing out that multiple scattering distributions are quite insensitive to the fine details of the single scattering DCSs. If the adopted DCSs have a physically reasonable shape, only the values of a few integrals of the DCS have a direct influence on the simulation results (Liljequist, 1987; Fernandez-Varea et al., 1993b). As a consequence, a general purpose simulation procedure can be made fairly simple by using analytical approximate DCSs with parameters determined so as to exactly reproduce the correct values of these relevant integrals.

Owing to the large number of interactions suffered by a fast electron or positron before coming to rest, detailed simulation is unfeasible at high energies. In PENELOPE we have overcome this practical difficulty by using a mixed simulation procedure (see chapter 4) instead of the habitual condensed simulation schemes adopted in other high- energy simulation codes —e.g. ETRAN (Berger and Seltzer, 1988), ITS3 (Halbleib et al., 1992), EGS4 (Nelson et al., 1985), GEANT (Brun et al., 1986). The fact of using analytical DCSs is essential for condensed simulation, not only to facilitate the formu­lation and programming of the algorithm, but also to allow the cutoffs to be arbitrarily selected and varied with the particle energy during the evolution of a track.

Page 66: PENELOPE, and algorithm and computer code for Monte Carlo ...

50 Chapter 3. Electron and positron interactions

3.1 Elastic collisions

Single elastic collisions are determined by the values of the polar and azimuthal scat­tering angles 6 and <f>, respectively. Assuming that the scattering centres have spherical symmetry, single and multiple scattering angular distributions are axially symmetrical about the direction of incidence, i.e. they are independent of the azimuthal scattering angle (j>.

Figure 3.1: Elastic scattering.

Let d(jei/df2 denote the DCS for elastic scattering into the solid angle element dfl about the direction (0, <f>). The total elastic cross section is given by

fdn Mand the mean free path between elastic events is

Aei = l/(A/'crel), (3.2)

where M is the number of scattering centres per unit volume. Other important quantities (see section 4.1) are the transport cross sections

<rt = J [1 - Pj(cos 0)] dfi, (3.3)

where Pt{cos 6) are Legendre polynomials. The l-th transport mean free path is defined by

A i = 1 /(Afo'i). (3.4)

For simulation purposes, it is convenient to measure polar angular deflections pro­duced by single scattering events in terms of the variable

p = (1 — cos 0)/2 (3.5)

instead of the scattering angle 0. Notice that p varies from 0 (forward scattering) to1 (backward scattering), and that a set of points (p, <f>) uniformly distributed on the

Page 67: PENELOPE, and algorithm and computer code for Monte Carlo ...

3.1. Elastic collisions 51

rectangle (0,1) x (0, 2tt) corresponds to a set of points uniformly distributed on the unit sphere. The DCS per unit angular deflection,

d<7ei do-ei4tt

can be written in the form

d y.

do-ei 1

dfl’

-pM,dfl M Aelwhere pei(fi) is the normalized PDF of ft in a single collision.

The first and second transport mean free paths, Ai and A2, are given by

Af1 = Uj( 1 - cos 6)^dn=^^' ip =

and

(3.6)

(3.7)

(3.8)

|(1 - cos2 9)^1 dfi = i- jf'oi - /)w(^) dp = £ (W - (/)) , (3.9)

where (• • •) indicates the average value in a single collision. The quantities A% and A2

determine the first and second moments of the multiple scattering distributions (see section 4.1). The inverse of the first transport mean free.path gives a measure of the average angular deflection per unit path length. By analogy with the “stopping power”, which is defined as the mean energy loss per unit path length, Af1 is sometimes called the “scattering power”.

3.1.1 The W2D model

The most reliable description of elastic scattering is provided by detailed Monte Carlo simulations based on accurate partial wave DCSs. However, this procedure is too labo­rious to be adopted as the basis of a simulation code for general purposes. It is more convenient to use suitable analytical approximate DCSs that may differ in detail from the partial wave DCSs but lead to nearly the same multiple scattering distributions. PENELOPE simulates elastic scattering on the basis of the W2D scattering model de­scribed by Bar6 et al. (1994b).

The W2D single scattering DCS is given by (cf. eq. (3.7))

j (W2D) .-~tr~= H7W2D(,,)' (3-10)

The single scattering distribution pw2d(/0 is a statistical admixture of a Wentzel distri­bution1 and a ^-distribution (a fixed-scattering-angle process),

Pmo(p) = (1 - + BS(p - p,), (3.11)

1The Wentzel angular distribution pw(fi) = A(1 + A)/(pi + A)2 describes the scattering by anexponentially screened Coulomb field within the Born approximation.

Page 68: PENELOPE, and algorithm and computer code for Monte Carlo ...

52 Chapter 3. Electron and positron interactions

with A>0, 0<B<1 and 0 < po < 1. Notice that pw2d(a0 is normalized to unity. The parameters A, B and p0 are determined in such a way that the values of (p) and (p2) obtained from pw2d(p) are equal to those of the actual scattering process:

Jq W2d(p) dp = (p) = (3.12)

and= = (3.13)

In other words, the W2D model gives the same mean free path and first and second transport mean free paths as the partial wave DCS. As a consequence (see Baro et al., 1994b), this model yields simulated multiple scattering distributions that do not differ significantly from those obtained from the partial wave DCS.

The information needed to determine the parameters of the W2D model reduces to the characteristic functions Aei, A% and A%. PENELOPE reads a table of values of these functions from the input material data file, for a grid of energies that is dense enough to permit cubic spline log-log interpolation. The input file is prepared by the auxiliary program MATERIAL from a database that contains atomic elastic total and transport cross sections for the elements with Z = 1-92 (calculated as described in appendix C).

""I * t t nntl —i_i.i nml i iinntl

1E+2 1E+3 1E+4 1E+5 1E+6 1E+7

i , 1 mttl i t tnml

1E+2 1E+3 1E+4 1E+5 1E+6 1E+7

E (eV) E (eV)

Figure 3.2: Elastic mean free path, Aei, and first and second transport mean free paths, A% and Ag, for electrons scattered in aluminium and gold as functions of the kinetic energy of the projectile.

The system of eqs. (3.12) and (3.13) is underdetermined (two equations and three unknowns). Following Baro et al. (1994b), the value po is specified in terms of those of

Page 69: PENELOPE, and algorithm and computer code for Monte Carlo ...

3.1. Elastic collisions 53

A and B in such a way that these eqs. determine a unique pair of values A and B. We recast eqs. (3.12) and (3.13) in the form

(1 — B) n(A) + B (io — (a*),

(1 — B) /z2(A) + B fio = (A

where

and

*a> - r" $£#=a[<i+a> b (^) -x]^ d/*=a 1[i ~ •/i2(A) = f

Jo

Let us tentatively set /z0 = (/z), so that eq. (3.14) reduces to

/z(A) = </z),

(3.14)

(3.15)

(3.16)

(3.17)

(3.18)

from which the value of A can be easily calculated by the Newton-Raphson method. The value of B is obtained from eq. (3.15)

fjfljA) - (fi2)fi2(A) - (fi)2'

(3.19)

When fi2(A) > {ft2), B is positive and this is the required solution. Otherwise, we set Ho = 0.8, and arrange eqs. (3.14) and (3.15) in the form

B = 0i) - K-A)Ho — /z(A)

andHo /i(A) — /z2(A) Ho(lA ~ if*2)

(3.20)

(3.21)Ho — /z(A) 7Z0 — (h)

It can be shown (Baro et al., 1994b) that this last equation has a single root A in the interval (0, Aq), where Aq is the solution of eq. (3.18). Hence, eq. (3.21) can be solved by inverse linear interpolation. The value of B given by eq. (3.20) is then positive and less than unity, as required.

Before starting the simulation, PENELOPE determines a table of the distribution parameters A and B (using the previously read table of mean free paths and transport mean free paths) and stores it in the computer memory. We avoid storing the parameter Ho by storing the value B' = +B when Ho = T^(^) and B' = —B when /z0 = 0.8. Thus, Ho can be obtained from the value of A and the sign of B'. It can be seen that A and B' are continuous functions of energy (as are Aei, and Ag). During the simulation, these parameters are rapidly evaluated, for any energy, by interpolation in the stored table.

The W2D model is directly applicable to compounds (and mixtures) by using the adequate values of the mean free path and the first and second transport mean free paths. These are calculated from atomic total and transport cross sections (appendix C) by means of the additivity rule. More accurate characteristic functions could be

Page 70: PENELOPE, and algorithm and computer code for Monte Carlo ...

54 Chapter 3. Electron and positron interactions

obtained by using the molecular DCS, which can be computed as the squared modulus of the global scattering amplitude that results from the coherent superposition of the waves scattered by the different atoms in a molecule (see e.g. Mott and Massey, 1965). In any case, elastic scattering in compounds can be simulated by using essentially the same scheme as for elemental materials.

3.1.2 Simulation of single elastic events

The cumulative distribution function of pw2D(p) is

,x-^(1 + '4)/‘Jrn

PW2d(p') d// = oA4r p

if 0 < p < p0,

B + (l-B)(1 + A)f* if /*></*< 1./x ~r ft

(3.22)

Owing to the analytical simplicity of this function, the random sampling of the polar angular deflection p = (1 — cos 9)/2 can be performed by using the inverse transform method (section 1.1.2). The sampling equation may be written as

P — Av2d(£)i (3.23)

where Pw2d(£) *s the inverse of the cumulative distribution function, which is given by

PC1W2D (0

£A(1 — B)(l + A) — £

Po

(f - #)A

with

. (1 — B)(l + A) — (£ — B)

(1 + A)po

if 0 < f < fo,

if £o <£ < £o + B,

if + B < £ < 1,

(3.24)

6 = (i - By A + po (3.25)

The azimuthal scattering angle ^ is sampled uniformly in the interval (0, 2tt) using the sampling formula (j> = 2tt£.

3.2 Inelastic collisions

The simulation of inelastic collisions of electrons and positrons in dense media is based on the analytical DCS model proposed by Salvat and Fernandez-Varea (1992). The effect of individual inelastic collisions on the projectile is described by the polar scattering angle 6 and the energy loss W. Instead of the scattering angle, it is convenient to use the recoil energy Q (see appendix B, eqs. (B.20) and (B.23)), defined by

Q(Q + 2mc2) = {cq)2. (3.26)

Page 71: PENELOPE, and algorithm and computer code for Monte Carlo ...

3.2. Inelastic collisions 55

E-W

Figure 3.3: Inelastic collisions.

The quantity q is the magnitude of the momentum transfer q = p — p', where p and p' are the linear momenta of the projectile before and after the collision.

Let us first consider the inelastic interactions of electrons or positrons with an isolated atom (or molecule) containing Z electrons in its ground state. The DCS for collisions with energy loss W and recoil energy Q, as derived from the non-relativistic first Born approximation, can be written in the form

dV„i 1 Af{Q,W)iWAQ mv* WQ dW ’ ( 1

where v is the velocity of the projectile. The function df(Q,W)/dW is the generalized oscillator strength (GOS), which is studied in detail by Inokuti (1971). The GOS can be represented as a surface over the plane (Q, W), which is known as the Bethe surface. This surface contains all the relevant information to describe the inelastic collisions of charged particles with the target system under consideration (within the first Born approximation).

In the limit of very high recoil energies, the binding of the target electrons and their momentum distribution have a negligible effect on the interaction. Hence in the high-Q region, the target electrons behave as if they were both essentially free and at rest and the GOS vanishes except for W ~ Q. The Bethe surface in this region reduces to a ridge along the line W = Q, named the Bethe ridge by Inokuti (1971). For low recoil energies, the details of the Bethe surface are characteristic of the considered target. The GOS for Q = 0 reduces to the optical oscillator strength (OOS). Experimental information on the OOS is provided by measurements of either photoelectric cross sections or dielectric functions (see e.g. Fernandez-Varea et al., 1993a).

The GOS satisfies the Bethe sum rule (Inokuti, 1971)

s: df(Q,W)dW d W = Z, (3.28)

irrespective of the value of Q. The mean excitation energy /, which plays the central role in the Bethe stopping power formula (see e.g. Berger and Seltzer, 1982), is given by

Page 72: PENELOPE, and algorithm and computer code for Monte Carlo ...

a. Chapter 3. Electron and positron interactions

(Fano, 1963; Inokuti, 1971)

Zln I = In Wdf(Q = 0, W)

d WdW. (3.29)

To obtain the collision DCS in analytical form, we adopt a simple GOS model pro­posed by Liljequist (1983). In this model, the response of the target to inelastic collisions is represented by a limited number M of excitations (or undamped classical oscillators) characterized by resonance energies Wi and oscillator strengths The Liljequist GOS can be written as

= \W;-,Q,W). (3.30)

The excitation spectrum F(Wi; Q, W) of the z-th oscillator is assumed to be

F(Wi] Q, W) = 8{W - Wi) 6(Wi -Q) + 8{W - Q) Q(Q - Wi), (3.31)

where 5(a?) is the Dirac delta function and 0(x) is the step function. The corresponding OOS reduces to

df(Q = Q,W) dW

M

’Emw-wi),t'=l

(3.32)

which has the same analytical form as the OOS underlying Sternheimer’s calculations of the density effect correction (Sternheimer, 1952). In order to reproduce the high-energy stopping power given by the Bethe formula (Berger and Seltzer, 1982), the excitation energies and oscillator strengths must satisfy the Bethe sum rule (3.28) and lead, through eq. (3.29), to the accepted value of the mean excitation energy I, i.e.

£ fi = Z, £ fi In Wi = Z In I. (3.33)

Following Sternheimer (1952), excitations of each atomic electron shell are described by means of a single oscillator. We set

/; = % and ^ = V(a%): + ^n2, (3.34)

where Z; is the number of electrons in the z-th shell, Ui is their ionization energy and

ftp = ^47rh2AfZe2/m (3.35)

is the plasma energy corresponding to the total electron density in the material. The term 2/,-ftp/3Z under the square root in eq. (3.34) accounts for the Lorentz-Lorenz correction. In the case of conductors and semiconductors, excitations of the conduction band are described by a single oscillator with binding energy Up — 0, resonance energy Wp and oscillator strength /p. The parameters Wp and fp should be identified with the plasmon energy and the effective number of electrons that participate in plasmon excitations (per atom). These quantities can be deduced e.g. from electron energy-loss spectra or from measured optical data. When this information is not available, we can simply fix the value of fp and set Wp = Jfp/ZQp. This prescription was used

Page 73: PENELOPE, and algorithm and computer code for Monte Carlo ...

3.2. Inelastic collisions 57

by Sternheimer et al. (1982, 1984) to calculate the density effect correction for single­element metals; /p was taken to be the lowest chemical valence of the element. In practice, the values of Wp and /p have little influence on the stopping power for energies E larger than about 50 keV.

The semiempirical adjustment factor a in eq. (3.34) is introduced to obtain agreement with the adopted mean excitation energy /. It is obtained as the positive root of the equation _____________

z In / = fp In W„ + £ f, In ^(««)» + ||n*. (3.36)

From simple arguments based on the ~ W~3 dependence of the photoelectric cross section it is concluded that a should be of the order of exp(1/2) = 1.65 (Sternheimer et al., 1982).

PENELOPE uses the ionization energies U{ given by Lederer and Shirley (1978). The default mean excitation energies I of the elements are the ones recommended by Berger and Seltzer (1982). Numerical values of these quantities are coded in the block-data subprogram PENDAT.

Excitations with Q = W, i.e. those located on the Bethe ridge, nearly correspond to free (binary) collisions and will be referred to as close collisions, in contrast to excitations with Q < W, which have a resonance-like character and will be referred to as distant collisions (Bohr, 1948). The energy loss DCS is defined as the integral of the DCS, eq. (3.27), over the kinematically allowed recoil energies. It can be split into contributions from close and distant excitations:

do-coi _ fQ+ 2?re4 1 df(Q, W) _ d<rc dcrd dW ~ JQ— mv2 WQ dW V “ dW + dW* (3.37)

where Q- and Q+ are given by eq. (B.23) in appendix B. Introducing the GOS, eq. (3.30), the contribution due to close collisions reduces to

dcrcdW t'=l dW

Q(W - Wi), (3.38)

wheredcrpt _ 2?re4 1

dW mv2 W2(3.39)

is the Rutherford cross section for collisions with free electrons at rest. The contribution to the energy loss DCS due to distant collisions is found to be

dad 2vre4 ^ /,• „ (W{ dW mv2 £ Wi \Q-

8(W-Wi). (3.40)

Relativistic corrections can now be introduced in the theory. To this end we closely follow the treatment of Fano (1963). The relativistic DCS for close collisions is given by eq. (3.38) with the Rutherford DCS replaced by the Born relativistic DCSs for binary collisions with free electrons at rest (Rohrlich and Carlson, 1954). These latter cross

Page 74: PENELOPE, and algorithm and computer code for Monte Carlo ...

58 Chapter 3. Electron and positron interactions

sections are different for electrons and positrons and are given by the Mpller (1932) and Bhabha (1936) formulae. In what follows, quantities referring to electrons and positrons are denoted by superscripts ” and “+” respectively. The relativistic DCS for close collisions can then be written in the form

^ E W)Q(W- Wt) 6(Wm, - W). (3.41)

The functions F^(E, W) are the ratios of the Mpller and Bhabha DCSs to the Ruther­ford DCS and are given by

*■’(* ^ s 1 + (r^)2 -rf;+(^)2 (“2+ih)for electrons and

c2

+ 1)2

(3.42)

FM{e<w) b i_(Y)x [3(7 + l)2 + 1 - 27(7 - l)/c + (7 — 1)2ac2 I

for positrons. Here we have introduced the reduced energy loss k defined by

(3.43)

k = W/E. (3.44)

The maximum energy loss is Wmax = E (/cmax = 1) for positrons. In the case of electrons, the projectile (primary electron) and the target are indistinguishable; we consider that the primary is the most energetic electron after the collision and hence the energy loss W cannot exceed half the initial energy E, i.e. Wmax = E/2 (acmax = 1/2).

The relativistic DCS for distant collisions (see eq. (16) in Fano, 1963) may be split into a “longitudinal” term, which accounts for the interaction through the static unre­tarded Coulomb field, and a “transverse” term which arises from the interaction through emission and reabsorption of virtual photons. The longitudinal term is still given approx­imately by eq. (3.40), but now the proper relativistic expression (B.21) of the minimum recoil energy must be used (together with a small correction introduced into the argu­ments of the logarithms, cf. eq. (3.53)). The transverse term, which vanishes in the non-relativistic limit, is strongly influenced by the dielectric properties of the medium where the fast electron moves. In particular, the atomic DCSs for media of the same material but different densities will differ (density effect).

The density effect

The usual treatment of this effect is based on the classical dielectric approach, which leads to results equivalent to those of the Born approximation for low-density materials. The complex dielectric function e(W) and the OOS are related by (Fano, 1963)

-1 1 7T fi2 d/(Q = 0,W) e(W)J 2 ZW dWIm (3.45)

Page 75: PENELOPE, and algorithm and computer code for Monte Carlo ...

3.2. Inelastic collisions 59

The energy loss DCS for distant transverse interactions is computed as

d<rt _ 27re4 1 df(Q = 0,W) f 1 \ 2

dW mv2 W dW [ V-/32/ P J ’

where the quantity 8 is the density effect correction to the stopping power. As discussed by Salvat and Fernandez-Varea (1992), expression (3.46) results from an approximation that introduces a small error in the distant transverse DCSs of the different oscillators (only at high energies), but these errors cancel to give the correct stopping power.

The density effect correction 8 can be computed as (Fano, 1963)

8 1 rdf(Q = 0,W) ( l>zJo —dW—ln V + F? (3.47)

where L is a real-valued function of f32 defined as the positive root of the following equation (Inokuti and Smith, 1982):

1 d/(Q = 0,M,T„_W2 + L2 dW

d W = f(L). (3.48)

The function T(L) decreases monotonically with L, and hence, the root L(f32) exists only when 1 — yd2 < J-"(0); otherwise it is 8 = 0. Therefore, the function L(02) starts with zero at f32 = 1 — ^"(0) and grows monotonically with increasing /32. With the OOS, given by eq. (3.32), we have

i M

HL) = W? + L2fi (3.49)

and(3.50)

3.2.1 Differential and integrated cross sections

The DCS for collisions in dense media can now be calculated as

do-col _ , (doci dcrd, \dW ~ VdW 4WJ '

(3.51)

The partial DCS per unit oscillator strength for close collisions with the i-th oscillator is given by (see eq. (3.41))

W = ^W2fW{e’ w) 6(w - w,) 0(^-“ - w) (3-52)

and the corresponding DCS for distant (longitudinal and transverse) interactions is

dcrdt-d W

27re4 1 [ (WiQ- + 2mc2\ ( 1mv2 Wi [ln \Q- Wi + 2mc2 ) + V - /32 -fP-8 8(W - Wt), (3.53)

Page 76: PENELOPE, and algorithm and computer code for Monte Carlo ...

60 Chapter 3. Electron and positron interactions

where Q_ is given by eq. (B.21) with W = W;. The argument of the first logarithm differs from the one in eq. (3.40) due to the relativistic correction for the longitudinal term (cf. our eq. (3.40) and eq. (16) in Fano, 1963).

In the case of compounds, the molecular DCS for inelastic collisions is still given by eq. (3.51) since the oscillators may pertain either to atoms or molecules. When the value of the mean excitation energy of the compound is not known, it may be estimated from the additivity rule. Consider a compound XxYy, in which the molecules consist of x atoms of the element X and y atoms of the element Y. The number of electrons per molecule is Zu = xZ(X) + yZ(Y), where Z(X) stands for the atomic number of element X. The mean excitation energy of the compound is thus

In I = V [xZ(X) In Ix + yZ(Y) In /Y], (3.54)

where Ix denotes the mean excitation energy of element X.

11iiji| i i mill

Au(xlOO) -

Ag(xlO) .

1E+1 r'

i i "iml__l l mini__ i i mini__ i i mini

1E+4 1E+5 1E+6 1E+7 1E+8 1E+9E(eV)

Figure 3.4: Collision stopping power, Sco\/P, for electrons in Al, Ag (xlO) and An (xlOO) as a function of the kinetic energy. The curves are results from the present model. Circles are values from Berger and Seltzer’s tables (1982). (Adapted from Salvat and Fernandez-Varea, 1992.)

The mean free path between inelastic collisions is given by

X^(B) = AT ^-dW. (3.55)

The collision stopping power Sco\(E) and energy straggling parameter D^(F7) are defined by

(3.56)

Page 77: PENELOPE, and algorithm and computer code for Monte Carlo ...

3.2. Inelastic collisions 61

n UE) = AfJ'W^iW. (3.57)

With the present model, the mean free path, the stopping power and the straggling parameter can be calculated analytically. The resulting expressions are a bit lengthy but it is very simple to code them in a computer program.

Collision stopping powers for electrons in aluminium, silver and gold obtained from the present DCSs are compared with sample values from the stopping power tables of Berger and Seltzer (1982) for E > 10 keV in figure 3.4. At these energies, our results practically coincide with the values in the tables of reference. Inelastic mean free paths and stopping powers for low-energy electrons (E = 100 eV to 100 keV) in aluminium obtained from the present model are compared with experimental data from several authors in figure 3.5.

The DCSs given by eq. (3.51) yield a quite accurate average description of inelastic collisions. However, the continuous energy loss spectrum associated with single distant excitations of a given atomic electron shell is approximated here as a single resonance (^-distribution). Therefore, the simulated energy loss spectra show unphysically narrow peaks at energy losses that are multiples of the resonance energies. These spurious peaks are automatically smoothed out after multiple inelastic scattering and also when the bin width used to tally the energy loss distributions is larger than ~ 100 eV (which is the order of magnitude of the difference between resonance energies of neighbouring oscillators).

3.2.2 Simulation of hard inelastic collisions

The DCS given by expressions (3.52) and (3.53) permit the random sampling of the energy loss W by using purely analytical methods. In practical simulations, only hard collisions, with energy loss larger than a specified cutoff value Wcc, need to be simulated (see chapter 4). Moreover, since the energy loss in distant collisions is W = W{ (see eq. (3.53)), we only need to consider close collisions.

Energy loss in electron hard close collisions

The PDF of the reduced energy loss k = W/E in close collisions with the i-th oscillator is given by (see eqs. (3.52) and (3.42))

Pc(-)(K) = kT2F(-)(£, W) 0(/c - /cc) 0 (| - /c)

with kc = maxffPi, Wcc)/E. Here, normalization is irrelevant.

We introduce the distribution

$(“)(«) = (k~2 + 5a) Q(k — kc) 0 Q — /c^ , a =

(3.58)

7 — 1a =7

(3.59)

Page 78: PENELOPE, and algorithm and computer code for Monte Carlo ...

62 Chapter 3. Electron and positron interactions

E(eV)

Figure 3.5: Collision mean free path and stopping power for low-energy electrons in Al. The plotted curves are pXCol and Sco\/p. Special symbols are experimental data from different sources (see Salvat and Fernandez-Varea, 1992); closed symbols for mean free paths and open symbols for stopping powers. (Adapted from Salvat and Fernandez-Varea, 1992.)

It may be shown that in the interval (/cc, |). Therefore, we can sample thereduced energy loss k from the PDF (3.58) by using the rejection method (see section 1.1.4) with trial values sampled from the distribution (3.59) and acceptance probability

Random sampling from the PDF (3.59), can be performed by using the composition method (section 1.1.5). We consider the following decomposition of the (normalized) PDF given by eq. (3.59):

<oL(«0 = fpi(/c) + (5aKc/2)p2(/c)l (3.60)

wherePi(«0 1 — 2kcK

21 — 2kc

(3.61)

are normalized PDFs in the interval (kc, |). Random values of k from the PDF (3.59) can be generated by using the following algorithm:

(i) Generate £.(ii) Set ( = (1 + 5a/cc/2)£.

(hi) If ( < 1, deliver the value k = kc/{ 1 — ((1 — 2/cc)].(iv) If C > 1, deliver the value k = kc + (( — 1)(1 — 2/cc)/(5okc).

Page 79: PENELOPE, and algorithm and computer code for Monte Carlo ...

3.2. Inelastic collisions 63

The rejection algorithm for random sampling of k from the PDF (3.58) proceeds as follows:

(i) Sample k from the distribution given by eq. (3.59).

(ii) Generate a random number £.

(iii) If £(1 + 5a/c2) < k2Pcc(k), deliver k.

(iv) Go to step (i).

Notice that, in the third step, we accept the k value with probability /$(-), which approaches unity when k is small.

The efficiency of this sampling method depends on the values of the kinetic energy and the cutoff reduced energy loss «c, as shown in table 3.1. For a given energy and for Wcc values which are not too large, the efficiency increases when Wcc decreases.

Table 3.1: Efficiency (%) of the random sampling algorithm of the energy loss in close collisions of electrons and positrons, for different values of the kinetic energy and the cutoff energy loss nc.

E(eV) Kc0.001 0.01 0.1 0.25 0.4

103 99.9 99.9 99.8 99.7 99.610s 99.7 98 87 77 70107 99 93 70 59 59109 99 93 71 62. 63

Energy loss in positron hard close collisions

The PDF of the reduced energy loss k = W/E in positron close collisions with the z-th oscillator is given by (see eqs. (3.52) and (3.43))

pW(K) = k~2fM{E, W) Q(k - kc) 0(1 - k), (3.62)

with kc = max(W,-, Wcc)/E as before. Again, normalization is not important.

Consider the distribution

$(+)(k) = k~2Q{k - kc) 0(1 - k). (3.63)

It is easy to see that in the interval (/cc, 1). Therefore, we can generate kfrom the PDF, eq. (3.62), by using the rejection method with trial values sampled from the distribution of eq. (3.63) and acceptance probability /$(+). Sampling from the PDF <&("*") can easily be performed with the inverse transform method.

The algorithm for random sampling from the PDF, eq. (3.62), is:

Page 80: PENELOPE, and algorithm and computer code for Monte Carlo ...

64 Chapter 3. Electron and positron interactions

(i) Sample k from the PDF, eq. (3.63), as k = kc/[1 — £(1 — /cc)].(ii) Generate a new random number £.

(iii) If £ < k2P^(k), deliver k.(iv) Go to step (i).

The efficiency of this algorithm, for given values of the kinetic energy and the cutoff reduced energy loss kc, practically coincides with that of the algorithm for electron collisions described above (see table 3.1).

Angular deflection and secondary electron emission

To specify the inelastic event completely, we must also determine the recoil energy Q. The probability distribution function of Q in collisions with a given W is proportional to the corresponding DCS, d2crcoi/(dQdW), which is considered in detail by Fano (1963). For close collisions, Q = W. For distant interactions with the z-th oscillator, longitudinal collisions are more probable than transverse ones and the (unnormalized) PDF of Q is approximately given by (see eqs. (16), (22) and (23) in Fano, 1963)

P«(Q) = | Q [1 + Q/(2mc*)] lf<?-<l9< Wh (3.64)

( 0 otherwise,

where Q- is the minimum recoil energy, eq. (B.21). Random sampling from this PDF can be performed by the inverse transform method, which gives the sampling formula

Q = Qs '2 me2

(3.65)

whereQs =-------------------------—-------------------------^ - l + Q_/(2mc2)"

Once the energy loss and the recoil energy have been sampled, the polar scattering angle 6 is determined from eq. (B.20) (which simplifies to eq. (B.14) in the case of close collisions). The azimuthal scattering angle (f> is sampled uniformly in the interval (0, 2tt).

According to our GOS model, each oscillator Wi corresponds to a shell with /,- elec­trons and ionization energy [/,■ (for the conduction electrons we set Ui = 0). We assume that in a collision where energy W is transferred to the z-th oscillator, a secondary elec­tron or delta ray is emitted with energy Es = W — Ui in the direction of the momentum transfer q, with polar scattering angle 9S and azimuthal angle <j>s = ir + <j> (see figure 3.3). From conservation of linear momentum in the ^-direction we have

cq cos 6S = cp — cp' cos 9, (3.67)

where cos 9 is the polar deflection of the primary electron given by eq. (B.20). It follows that

cqs9 = {cp)2 - {cp1)2 + {cgf = W(2E -W + 2 me2) + Q(Q + 2mc2)2 epeq ~ 2 [E(E + 2mc2)]1/2 [Q(Q + 2mc2)]1/2'

(3.68)

Page 81: PENELOPE, and algorithm and computer code for Monte Carlo ...

3.3. Bremsstrahlung emission 65

In the case of close collisions (Q = W), this expression simplifies to

COS0S«=1V)=(jw++^) ’(3.69)

which agrees with the result for binary collisions with free electrons at rest, see eq.(B.15).

3.3 Bremsstrahlung emission

The DCS for bremsstrahlung emission by a fast electron, or positron, with initial kinetic energy E in the field of an atom is a complicated function of the energy loss W, the final direction of the projectile and the direction of the emitted photon (Koch and Motz, 1959; Tsai, 1974). The habitual practice in Monte Carlo simulation is to sample the energy loss W from the single-variate distribution obtained by integrating the DCS over the other variables. This permits the generation of W easily, but information on the angular distributions is completely lost. Angular deflections of the projectile are considered to be accounted for by the elastic scattering DCS and, consequently, the direction of movement of the projectile is kept unaltered in the simulation of radiative events.

3.3.1 The Bethe-Heitler DCS

Bremsstrahlung emission is described by using the modified Bethe-Heitler DCS with exponential screening proposed by Sal vat and Fernandez-Varea (1992). This analytical DCS is based on a high-energy formula, which is obtained from the Born approximation (Bethe and Heitler, 1934; Tsai, 1974). This approximation is valid whenever the kinetic energy of the electron before and after photon emission is much larger than its rest energy me2. The modified Bethe-Heitler DCS includes an empirical correction which extends its validity to lower energies.

It is convenient to consider the radiative DCS in terms of the reduced energy e of the emitted photon defined as

1,1/(3.70)W

E + me2 ’where W is the energy lost by the particle (i.e. the energy of the emitted bremsstrahlung photon). The maximum reduced energy of the emitted photons is emax = E/(E + me2).

The modified Bethe-Heitler DCS, for bremsstrahlung emission by electrons in the field of an atom of atomic number Z and screening radius R, can be written in the form

^ = vlcZ[Z + rj\ , (3.71)

where a is the fine-structure constant, re is the classical electron radius and

V’i(e) = /l(Z>) + /o(e), ¥>2(e) = ^(1 — e) [/z(6) + /o(e)], (3.72)

Page 82: PENELOPE, and algorithm and computer code for Monte Carlo ...

66 Chapter 3. Electron and positron interactions

E-W

Figure 3.6: Bremsstrahlung emission.

with‘■Till.* 7 = ! + */(-’), (3.73)

and

/o(e) = 4t\n(Rmc/h) + F2(Z, E) — 4/c(Z) 0(ed — e), (3.74)

/i(&) = 2 — 21n(l + 62) — 46 tan-1 (6-1), (3.75)

= ^ — 2In(l + 62) — 66tan-1(6-1)

- 62 [4 - 46 tan-1 (6-1) - 31n(i + b~2)] . (3.76)

The quantity r) in eq. (3.71) accounts for the production of bremsstrahlung in the field of the atomic electrons and is considered in detail by Seltzer and Berger (1985). For the sake of simplicity, we assume that the dependence of the electron-electron bremsstrahlung DCS on the photon energy is the same as for the screened nuclear DCS, but let rj vary with the electron energy. Seltzer and Berger (1985) reported electron- electron bremsstrahlung cross sections for six different elements. By numerical fit of their data we have found that the variation of 77 with E, averaged over these six elements, may be approximated as

*Z'E^ (3.77)

where rjoo is the high-energy limit.

Bremsstrahlung emission is closely related to electron-positron pair production (at least within the Born approximation). In particular, the high-energy Bethe-Heitler DCSs for pair production and bremsstrahlung emission involve the same screening functions. Therefore, the screening radius R and the electron contribution parameter are the same for both processes. The values of these parameters for the elements Z = 1-92 are delivered by the block-data subprogram PENDAT.

Page 83: PENELOPE, and algorithm and computer code for Monte Carlo ...

3.3. Bremsstrahlung emission 67

The function fc(Z) is the high-energy Coulomb correction, given by eq. (2.82). This correction is valid only at high energies and, moreover, it has the wrong sign near the tip of the spectrum. From the analysis given by Seltzer and Berger (1985), it follows that the Coulomb correction should not be used when E — W is less than ~ 5me2. Consequently we set fc(Z) = 0 when W > E — 5me2, i.e. when

E — 5me2 e>ed= E + mc* '

This condition “turns off” the Coulomb correction for E < 2.5 MeV and near the tip, where it is no longer applicable.

The term F^(Z, E) in eq. (3.74) has been introduced to compensate for the failure of the Born approximation at low energies. Such a term also serves to eliminate an undesirable feature of the DCS (3.71), namely, that it becomes negative for some values of e. From a numerical fit of the radiative cross sections given by Seltzer and Berger (1985) we have determined the following correction term

F2(Z, E) = (4.650 - 6.005a + 2.946a2)r“1 - (32.42 - 67.08a - 3.906a2)(l + r)"1

+ (20.33 + 23.38a - 77.42a2)(l + r)“2, (3.79) .

where a = aZ and r = E/mc2. The “scaled” radiative DCS is defined as {/3/Z)2W d<Trad/dW, where f3 stands for the velocity of the electron in units of c (appendix B). Scaled DCSs for uranium and electrons with E = 1, 10 and 100 MeV are compared with the values given by Seltzer and Berger (1985) in figure 3.7. Notice that the scale for each curve is the closest to its lettering. The effect of the Coulomb correction is clearly shown by the discontinuity in the DCS for 10 and 100 MeV electrons. In the vicinity of this discontinuity, the Bethe-Heitler DCS still provides a fairly good approximation. The modification introduced by the low-energy correction F2(Z, E) is indicated for 1 and 10 MeV electrons. The effect of this correction is a global shift of the scaled DCS to higher values, which clearly improves the DCS. The low-energy correction given by eq. (3.79) is more accurate than the one proposed by Salvat and Fernandez-Varea (1992). Differences between the present DCSs and those of Seltzer and Berger (1985) are significant only for energies below ~ 1 MeV.

The radiative DCS for positrons reduces to that of electrons in the high-energy limit but is smaller for intermediate and low energies. Owing to the lack of more accurate calculations, the DCS for positrons is obtained by multiplying the electron DCS by an e-independent factor, i.e.

^2- = FV(Z, (3.80)

The factor FP(Z, E) is set equal to the ratio of the radiative stopping powers for positrons and electrons, which has been calculated by Kim et al. (1986) (cf. Berger and Seltzer, 1982). In the calculations we use the following analytical approximation

FP(Z, E) = 1 - exp(—1.2359 x 10"11 + 6.1274 x 10"212 - 3.1516 x 10"213

+ 7.7446 x 10-314 _ % Q595 x 10"315 + 7.0568 x 10"516 - 1.8080 x 10“6 i7), (3.81)

Page 84: PENELOPE, and algorithm and computer code for Monte Carlo ...

gg Chapter 3. Electron and positron interactions

where

t = In (3.82)

Expression (3.81) reproduces the values of FP(Z,E) tabulated by Kim et al. (1986) to an accuracy of about 0.5%.

15

TT

o0.0 0.2 0.4 0.6 0.8 1.0

W/E

Figure 3.7: Scaled bremsstrahlung DCS, (P/Z)2 W da^/dW (in millibarn = 10-27 cm2), for XT and electrons with E = 1, 10 and 100 MeV. The continuous curves are the Bethe-Heitler DCS, eq. (3.71). Circles are data from the Seltzer and Berger (1985) tables. The dashed curves for E = 1 and 10 MeV represent the Bethe-Heitler DCS without the low-energy correction, i.e. with Fg(Z, E) = 0. The discontinuity of the DCS originates from the Coulomb correction. (Adapted from Salvat and Fernandez-Varea, 1992.)

The total cross section for bremsstrahlung emission is infinite due to the divergence of the DCS (3.71) for small reduced photon energies. Nevertheless, the cross section for emission of photons with reduced energy larger than a given cutoff value Wcr is finite. The corresponding mean free path is

(3.83)

where = Wcr/(E + me2). The radiative stopping power and the radiative energy straggling parameter,

(3.84)

(3.85)

Page 85: PENELOPE, and algorithm and computer code for Monte Carlo ...

3.3. Bremsstrahlung emission 69

IE-2,-

"""I ' l "iml1E+4 1E+5 IE+6 1E+7 1E+8 1E+9

E(eV)

Figure 3.8: Radiative stopping power, Sta.d/p, for electrons in Al, Ag (xlO) and An (xlOO) as a function of the kinetic energy. The continuous and dashed curves are results from the present model, with and without the low-energy correction Fz(Z, E) respectively. Circles are values from Berger and Seltzer’s (1982) tables. (Adapted from Salvat and Fernandez-Varea, 1992.)

are both finite. These quantities are easily calculated by using the GABQ subroutine (appendix A).

Radiative stopping powers of aluminium, silver and gold for electrons are shown as functions of the kinetic energy in figure 3.8. It is seen that stopping powers computed from the DCS given by eq. (3.71) are in good agreement with the Berger and Seltzer (1982) values for energies above 1 MeV. The relative differences are less than 5% for energies of the order of 1 MeV and decrease with energy, becoming smaller than 1% at ~ 100 MeV. To improve the accuracy of the simulation results, PENELOPE renormalizes the DCS, eq. (3.71), (i.e. multiplies it by an e-independent factor) so as to exactly re­produce the Berger and Seltzer’s radiative stopping powers for electrons. The correcting factor is obtained, for the elements Z — 1-92, from numerical data generated by the computer code ESTAR of Berger (1992) (see section 5.1.2).

3.3.2 Simulation of hard radiative events

The simulation of hard radiative events is performed on the basis of the Bethe-Heitler DCS, eq. (3.71). In the case of compounds, to save computer time and memory, the energy loss is sampled from the DCS of the element with the atomic number closest to

Page 86: PENELOPE, and algorithm and computer code for Monte Carlo ...

70 Chapter 3. Electron and positron interactions

Zeq, given by eq. (2.96),

1Z«q = ^ [xZ(X)A*(X) + yZ(YM,(Y)], (3.86)

and, at the same time, the mean free path between these events is adjusted so as to reproduce the stopping power of the actual material. Usually, this approximation does not modify the simulation results appreciably.

Energy loss in hard photon bremsstrahlung emission

The PDF for the reduced energy loss e = W/{E + me2) in hard radiative events (W > Wo-) is given by (see eq. (3.71))

Pv(e) = |v?i(e)e + <j52(e)^-0(e £Cr) 0(^max ^), (3.87)

where emax = E/(E + mc2). Normalization is again irrelevant. Notice that the functions y>,-(e), (*=1,2) attain their maximum values at ecr or ed (see eq. (3.78)).

The distribution (3.87) can be rewritten in the form

Pr(e) = aiFi(e)7r1(e) + a2F2(t:)7r2(e), (3.88)

whereal — n (emax ecr) 9^1,max, a2 — In(Cmax/ecr)<^2 max,

Fi(e) = yi(e)/yi,r

Ti-i(e) =

E2(c) — v?2(e)/V’a.max,

1 1

(3.89)

7r2(e)ln(Cmax/^cr) €

and_ r max{vPi(ecr),y>,(ed)} if ed > ecr,

Wi(e„) if ed < «cr- (3.90)

The functions 7r,(e) are normalized PDFs in the interval (ecr, emax). Random values of e can be easily sampled from these distributions by using the inverse transform method. In the interval (ecr, emax), the values of the functions P,-(e) are positive and less than unity, i.e. they are valid rejection functions. The generation of random values of e from the PDF (3.88) can then be performed by combining the composition and rejection methods (section 1.1) according to the following algorithm:

(i) Sample the value of the integer i (=1,2) according to the discrete probabilities p(l) = 01/(01 + a2) and p(2) = o2/(ai + o2).

(ii) Sample e from 7T,-(e) according to the formulae (inverse transform method):

[4 + £ (4ax - 4)]1/2 ifi=1»

^cr(^max/^cr)^ if i—2.e = (3.91)

Page 87: PENELOPE, and algorithm and computer code for Monte Carlo ...

3.3. Bremsstrahlung emission 71

(Hi) Generate a new random number £.

(iv) If £ < .F,-(e), deliver e.

(v) Go to step (i).

The efficiency of this algorithm depends on the values of E and eCT and, for a given energy and a value of ecr which is not too large, it increases when eCT decreases (see table 3.2). In practical simulations, efficiencies of about 90% may be obtained by using a value of the cutoff energy Wcr of the order of a few keV.

Table 3.2: Efficiency (%) of the random sampling algorithm of the photon energy in hard bremsstrahlung emission for electrons and positrons in An for different values of the kinetic energy and the cutoff photon energy ecr.

E (eV) 6cr10"6

rT1

o1—1 0.01 0.1 0.5

10s 97 96 92 89 92107 91 87 75 63 58109 93 89 81 72 74

Angular distribution of bremsstrahlung photons

Let 9 and denote the polar and azimuthal angles of the direction of the emitted photon. Considering that the atomic field is spherically symmetric, the angular distribution of the emitted photon is independent of cf>] hence, the azimuthal scattering angle is distributed uniformly in the interval (0,2tt). The mean value of the polar scattering angle is given approximately by (Heitler, 1954)

(9) ~me2

E + me2(3.92)

In several high-energy Monte Carlo codes [e.g. EGS4 (Nelson et al., 1985)], the polar scattering angle is set equal to (9) (i.e. photons are emitted on a cone with axis along the direction of incidence and semiaperture (9)).

A more realistic angular distribution can be derived from simple, semiclassical argu­ments as follows (see e.g. Jackson, 1975). Consider that the incident electron is moving in the direction of the z-axis of a reference frame K at rest with respect to the labo­ratory frame. Let (9', <f>') denote the polar and azimuthal angles of the direction of the emitted photon in a reference frame K' that moves with the electron and whose axes are parallel to those of K. In K7, the angular distribution of the emitted photons can be approximated as (dipole approximation)

Pd(cos 9') = - (1 + cos2 9'). o

(3.93)

Page 88: PENELOPE, and algorithm and computer code for Monte Carlo ...

72 Chapter 3. Electron and positron interactions

The direction of emission (8, (f>) in K is obtained by means of the Lorentz transformation

cos 6 — cos O' + (3 1 + /? cos 8' ’ <t> = <f>', (3.94)

whereJE(E + 2mc2)

E + me2

is the velocity of the electron in units of the velocity of light c. Thus, the angular distribution in K is given by

p(cos 8) = pa(cos 8') d(cos 8') d(cos 8)

cos 8 — [3 \ 2 11 — /3 cos 8 J 72(1 —/Scos 8)2

(3.96)

with 72 = 1/(1 — /32) = 1 + E/(mc2).

In the high-energy limit (7 >> 1,8 <C 1), the angular distribution (3.96) takes the form

372 l + 74^4 0

23T (1 + 7202)4

This result is in good agreement with the angular distributions obtained from high- energy theory (Heitler, 1954; Koch and Motz, 1959).

To generate random values of cos 8, we first sample cos 8' from the dipole distribution, eq. (3.93), using a composition method (see section 1.1.5) and then transform it back to the K frame by using the Lorentz transform (3.94). The dipole distribution can be written in the form

Pd(cos 8') = &1 + cos2 8') = j 7Ti(cos 8') + j ^2 (cos 8'), (3.98)0 4 4

wheretti(cos 8') — ^ and ^(cosfl') = ^ cos20' (3.99)

are normalized PDFs, from which random values of cos 8' can be sampled by using the inverse transform method. The algorithm for sampling cos 8 proceeds as follows:

(i) Sample the value of the integer i (=1,2) according to the discrete probabilities p(l) = 3/4 and p(2) = 1/4.

(ii) Generate cos 8' from tt,(cos 81) using the formulae (inverse transform method):

f 2£ - 1 if %=1,

(sign(2f-l)|2f-l|i/3 if 2=2,(3.100)

where sign(x) denotes the sign of x.

(iii) Deliver cos 8 =cos 8' + /?

1 + /3 cos 8''

Page 89: PENELOPE, and algorithm and computer code for Monte Carlo ...

3.4. Positron annihilation 73 <

Bremsstrahlung angular distributions for electrons with energies from 1 to 500 keV, obtained by the method of partial waves, have been published by Kissel et al. (1983). The semiclassical distribution (3.96) represents only a rough approximation for electron energies below ~ 1 MeV. At these energies, however, the observed angular distribution of photons is primarily determined by the direction distribution of the emitting electrons. As the direction of motion of electrons becomes rapidly randomized due to multiple elastic scattering, simulated bremsstrahlung distributions are practically insensitive to the adopted “intrinsic” angular distribution (except for thin targets).

3.4 Positron annihilation

Following Nelson et al. (1985), we consider that positrons penetrating a medium of atomic number Z with kinetic energy E can annihilate with the electrons in the medium by emission of two photons. We assume that the target electrons are free and at rest, thus disregarding electron binding effects, which enable one-photon annihilation (Heitler, 1954). When annihilation occurs in flight, i.e. when the kinetic energy E of the positron is larger than the “absorption” energy, the two photons may have different energies, say E- and E+, which add to E + 2mc2. In what follows, quantities referring to the photon with the lowest energy will be denoted by the subscript Each annihilation event is then completely characterized by the quantity

C = ———•, E + 2 me2

Figure 3.9: Positron annihilation.

Assuming that the positron moves initially in the direction of the z-axis, from conserva­tion of energy and momentum it follows that the two photons are emitted in directions with polar angles (see appendix B)

cos 0_ = (72 - l)“1/2(7 + 1 - 1/C) (3.102)

andcos 0+ = (72 - 1) 1/2[7 + 1 - 1/(1 - Oli (3.103)

Page 90: PENELOPE, and algorithm and computer code for Monte Carlo ...

74 Chapter 3. Electron and positron interactions

and azimuthal angles <£_ and (f>+ = <f>- + tt. The quantity 7 = 1 + E/{mc?) is the total energy of the positron in units of its rest energy.

The maximum value of £ is 1/2, its minimum value is found when cos 0_ = —1 and is given by

Cmin —1

7 + 1 + (72 - 1) 1/2* (3.104)

The DCS (per electron) for two-photon annihilation, as observed in the centre-of- mass system of the positron and the electron, is given by Heitler (1954). Nelson et al. (1985) transformed this DCS to the laboratory system (where the electron is at rest), their result can be written as

j^=(T+1X>_1)P(0^(l-C)l, (3.105)

where2(0 = -(7 + l)2 + (72 +47 + 1) j (3.106)

Owing to the axial symmetry of the process, the DCS is independent of the azimuthal angle which is uniformly distributed on the interval (0,2tt).

The mean free path A^ for two-photon annihilation is

a; * -1/2 dcr.

•d C = MZ-irrz

d£ (7 + 1)(72 - 1)

{(72 + 47 + l)ln 7+ (72 - l)1/2] - (3 + 7) (72 - l)1/2} , (3.107)

where J\fZ is the density of electrons in the medium.

x

3.4.1 Generation of emitted photons

The probability distribution function of £ is given by (normalization is irrelevant here)

WO = 2(£) + 2(1 - 0, Cmm < C < 1/2. (3.108)

To sample £, we may take advantage of the symmetry of this expression under the exchange of the two photons, which corresponds to exchanging £ and 1 — £. We first consider the distribution

P(v) = 5(t>), £min < v < 1 - £min

and write it in the form

with

P(v) = ■K{v)g(y)

ir(v) = In 1 ~ Cn-1

V

(3.109)

(3.110)

(3.111)

Page 91: PENELOPE, and algorithm and computer code for Monte Carlo ...

3.4. Positron annihilation 75

and9(v) —(7 + l)2u + (72 + 47 + 1) — — (3.112)

7r(u) is a proper PDF (i.e. it is definite positive and normalized to unity) and g(v) is a monotonically decreasing function. Random values of v from the distribution P(v) can be easily generated by using the following algorithm (rejection method):

(i) Sample a value v from the distribution 7t(y). This is easily done with the inverse transform method, which yields the following sampling equation

v — Cmin1 — Cn (3.113)

(ii) Generate a new random number £.

(iii) If &(Cmin) > g(v), go to step (i).(iv) Deliver v.

It is clear that the random value

C — min(u, 1 — u) (3.114)

follows the distribution given by eq. (3.108) when v is sampled from the distribution P(v). The efficiency of this sampling algorithm practically equals 100% for positrons with kinetic energy E less than 10 keV, decreases when E increases to reach a minimum value of ~ 80% at E ~ 10 MeV and increases monotonically for larger energies.

As the result of annihilation, two photons with energies E- = ({E + 2me2) and E+ = (1 — C)(E + 2mc2) are emitted in the directions given by eqs. (3.102) and (3.103).

Page 92: PENELOPE, and algorithm and computer code for Monte Carlo ...

76 Chapter 3. Electron and positron interactions

Page 93: PENELOPE, and algorithm and computer code for Monte Carlo ...

Chapter 4

Mixed simulation algorithms for electrons and positrons

In principle, the scattering model and sampling techniques described in chapter 3 could allow the detailed Monte Carlo simulation of electron and positron transport in matter. However, detailed simulation is feasible only when the mean number of interactions per track is small (a few hundred at most). This occurs for electrons with low initial kinetic energies or for thin geometries. The number of interactions experienced by an electron or positron before being effectively stopped increases with its initial energy, so that detailed simulation becomes impracticable at high energies.

PENELOPE implements a “mixed” simulation scheme (Berger, 1963; Reimer and Krefting, 1976; Andreo and Brahme, 1984), which combines the detailed simulation of hard events (i.e. events with polar scattering angle 9 or energy loss W larger than previously selected cutoff values 9s and Wc) with condensed simulation of soft events, in which 9 < 9s or W < Wc. Details of this mixed simulation algorithm are given by Baro et al. (1995). Owing to the fact that for high-energy electrons the DCSs for the various interaction processes decrease rapidly with the polar scattering angle and the energy loss, cutoff values can be selected such that the mean number of hard events per electron track is sufficiently small to allow their detailed simulation. In general, this is accomplished by using relatively small cutoff values, so that each soft interaction has only a slight effect on the simulated track. The global effect of the (usually many) soft interactions that take place between each pair of consecutive hard events can then be simulated accurately by using a multiple scattering approach. Hard events occur much less frequently than soft events, but they have severe effects on the track evolution (i.e. they cause large angular deflections and/or lateral displacements), which can only be properly reproduced by detailed simulation. The time needed to simulate each track diminishes rapidly when the cutoff values for the scattering angle and the energy loss are increased. Mixed simulation algorithms are usually very stable under variations of the adopted cutoff values, whenever these are kept below some reasonable limits. Mixed simulation is then preferable to condensed simulation because 1) spatial distributions are better simulated, 2) tracks in the vicinity of interfaces are properly handled, and 3) possible dependences of the results on user-defined parameters are largely reduced.

Page 94: PENELOPE, and algorithm and computer code for Monte Carlo ...

78 Chapter 4. Mixed simulation algorithms for electrons and positrons

4.1 Elastic scattering

Let us consider electrons (or positrons) with kinetic energy E moving in a hypothetical infinite homogeneous medium, with A/" scattering centres per unit volume, in which they experience only elastic collisions.

4.1.1 Multiple scattering theory

Assume that an electron starts off from a certain position, which we select as the origin of our reference frame, moving in the direction of the 2-axis. Let /(r, d; s) denote the probability density of finding the electron at the position r = (x,y,z), moving in the direction given by the unit vector d after having travelled a path length s. The diffusion equation for this problem is (Lewis, 1950)

K + d • V/ = jV / [/(r, d'i») - /(r, d; s)] dn, (4.1)

where 9 = cos-1(d • d') is the scattering angle corresponding to the angular deflection d' —> d. This equation has to be solved with the boundary condition /(r, d; 0) = (l/7r)5(r)5(l — cos%), where % is the polar angle of the direction d. By expanding /(r, d; s) in spherical harmonics, Lewis (1950) obtained exact expressions for the angular distribution and for the first moments of the spatial distribution after a given path length s. The probability density F{x\ s) of having a final direction in the solid angle element dft around a direction defined by the polar angle % is given by

/„ 00 21 4-1/(r, d; s) dr = 53 ~TZ~ exp(-s/A*)P*(cos %), (4.2)

i=o ^

where P^(cos %) are Legendre polynomials and = 1/(Ncri) is the l-th transport mean free path (see eq. (3.4)). The result given by eq. (4.2) coincides with the distribution obtained by Goudsmit and Saunderson (1940). Evidently, the distribution F(%; s) is symmetric about the z-axis, i.e. independent of the azimuthal angle of the final direction.

From the orthogonality of the Legendre polynomials, it follows that

{Pi( cos %)) = 27r y Pt(cos %)F(%; s) d(cosx) = exp(-s/A<). (4.3)

In particular, we have(cos x) = exp(—s/Ai) (4.4)

and(cos2 x) = ^ [1 +2exp(-s/A2)]. (4.5)

Lewis (1950) also derived analytical formulae for the first moments of the spatial distribution and the correlation function of z and cos %. Neglecting energy losses, the

Page 95: PENELOPE, and algorithm and computer code for Monte Carlo ...

4.1. Elastic scattering 79

results explicitly given in Lewis’ paper simplify to

(*> = 27r J z/(r, d;s) d(cosx) dr = Ax [1 — exp(—s/Ax)], (4.6)

(a* + =~ 2tt J (x2 + t/2) /(r, d; s) d(cos %) dr

= t [ df exp(-f/Ai) f [1 - exp(—u/A2)]exp(u/Ax)du,0 Jo Jo

(4.7)

(z cos x) — 2ir J z cos %/(r, d; s).d(cos %) dr

= exp(—s/Ax) J [1+ 2exp(—t/A2)]exp(i/Ax)di. (4.8)

The quantities (4.4)-(4.8) are completely determined by the values of the transport mean free paths Ax and A2.

4.1.2 Mixed simulation algorithms

At high energies, where detailed simulation is impracticable, Ax >> Aei so that the average angular deflection in each collision is small. In other words, the great majority of elastic collisions of fast electrons are soft collisions with very small deflections. We shall consider mixed simulation procedures (see Fernandez-Varea et al., 1993b; Baro et al., 1994b) in which hard collisions, with scattering angle 9 larger than a certain value 0s, are individually simulated and soft collisions (with 9 < 9$) are described by means of a multiple scattering approach.

In practice, the mixed algorithm will be specified by means of the mean free path A^ between hard elastic events, defined by

(49)

This equation determines the cutoff angle 0s as a function of A^\ A convenient recipe to set the mean free path A^ is

\W{E) =max{Aei(£),CxAx(£)}, (4.10)

where C\ is a pre-selected small constant (say, less than ~ 0.1). For increasing energies, Aei attains a constant value and Ax increases steadily (see figure 3.2) so that the formula (4.10) gives a mean free path for hard collisions that increases with energy, i.e. hard collisions are less frequent when the scattering effect is weaker. The recipe (4.10) also makes sure that A^ will reduce to the actual mean free path Aei for low energies. In this case, soft collisions cease to occur (0s = 0) and mixed simulation becomes purely detailed. It is worth noticing that, when mixed simulation is effective (i.e. when Ag^ > Aei), the mean angular deflection in a path length A^ is (see eq. (4.4))

1 - (cos x) = 1 - exp(-A^V^i) - Cl. (4.11)

Page 96: PENELOPE, and algorithm and computer code for Monte Carlo ...

80 Chapter 4. Mixed simulation algorithms for electrons and positrons

Hence, when using the prescription (4.10), the average angular deflection due to a single hard collision and to the soft collisions in the previous step (i.e. in the path length after the previous hard collision) equals C\.

The PDF of the step length t between two successive hard collisions is

Pi*) = •4yexp(-i/A2,)), (4.12)

and random values of t can be generated by means of the sampling formula, eq. (1.10)

( = -A^ln(. (4.13)

The (unnormalized) PDF of the polar deflection 0 in single hard collisions is

p(h)(0) = sin 9 6(9 - 9S), (4.14)

where 0(x) stands for the step function.

The inverse transport mean free paths A71, see eq. (3.4), for the actual scattering process can be split into contributions from soft and hard collisions, i.e.

where

and

1_J_, J_A, “ A?’ A?1’

(4.15)

-7-r = A/*27t / [1 — P^(cos #)] -377^ sin 9 d9 (4.16a)Jo dsi

4m = AA27T f [1 - Pf (cos 6)] sin 9 d9. (4.16b)A(,h) Jo s d 0

Let us assume that an electron starts off from the origin of coordinates moving in the direction of the z-axis and undergoes the first hard collision after travelling a path length t. The exact angular distribution produced by the soft collisions along this step is

OO C\p 1 1^(s)(x; 0 = 2 —exp(-t/Aj°)P*(cos %). (4.17)

The average longitudinal displacement at the end of the step is given by (see eq. (4.6))

(z)w = aSs) [1 - exp(-i/Ai**)] (4.18)

where A^ is the first transport mean free path for soft collisions, which is larger than A%. As the mean free path between hard collisions is much less than A^\ the value t/X^ is, on average, much less than unity. Owing to this fact, the global effect of the soft collisions in the step, i.e. the change in direction of movement and the spatial displacement, can be simulated by using the following simple algorithm (see figure 4.1):

Page 97: PENELOPE, and algorithm and computer code for Monte Carlo ...

4.1. Elastic scattering 81

(i) The electron first moves a random distance r, which is sampled uniformly in the interval (0,t), in the initial direction.

(ii) Then a single artificial soft elastic collision takes place. The electron changes its direction of movement according to the multiple scattering distribution F^xjf).

(iii) Finally, it moves a distance t — r in the new direction.

t — T

Figure 4.1: Simulation of the global effect of soft collisions between two consecutive hard collisions. (Adapted from Fernandez-Varea et al., 1993b.)

Obviously, this algorithm leads to the exact angular distribution at the end of the step. Moreover, the average longitudinal displacement at the end of the simulated step is

(*)2L = | + |(C0SX)(S) = * i+ 4 .A'"1,

(4.19)

which agrees closely with the exact result given by eq. (4.18).

The algorithm can be adapted to simulate multiple elastic scattering processes in limited material structures, which may consist of several regions of different compositions separated by well-defined surfaces (interfaces). In limited geometries, when the track crosses an interface, we stop it at the crossing point, and continue with the simulation in the new material. In spite of its simplicity, this recipe gives a fairly accurate description of interface crossing. To see this, consider that a hard collision has occurred at the position r in region “1” and assume that the following hard collision occurs in region “2”. The step length t between these two hard collisions is larger than the distance s from r to the interface (see figure 4.2). If the artificial soft elastic collision occurs in region “1”, the angular deflection in this collision is sampled from the distribution F(s\x'i t)- Otherwise, the electron reaches the interface without changing its direction of movement. Assuming t <C A^, the mean angular deflection in a soft collision is

1 - (cos x)(s) = 1 - exp(—f/A^s)) ~ (4.20)

Moreover, when this assumption is valid, lateral displacements due to soft collisions are small and can be neglected to a first approximation. As the probability for the soft

Page 98: PENELOPE, and algorithm and computer code for Monte Carlo ...

82 Chapter 4. Mixed simulation algorithms for electrons and positrons

collision to occur within region “1” equals s/t, the average angular deflection of the simulated electron track when it reaches the interface is

1 - (cos x) = j (l - (cos x)(s)) = (4.21)

which practically coincides with the exact mean deviation after the path length s within region “1”, as required. Thus, by sampling the position of the soft collision uniformly in the segment (0, t) we make sure that the electron reaches the interface with the correct average direction of movement.

r + rd

Figure 4.2: Simulation of a track near the crossing of an interface. (Adapted from Fernandez- Varea et ah, 1993b.)

Simulation of the angular deflection in artificial soft elastic events

The global effect of the soft collisions experienced by the particle along a path segment of length t between two consecutive hard events is simulated as a single artificial soft elastic event. The angular deflection is sampled from the multiple scattering distribution F{s){X',t), eq. (4.17).

Whenever the cutoff angle 6s is small, the angular distribution F^)(%;t) may be calculated by using the small angle approximation (see e.g. Lewis, 1950). Notice that &s can be made as small as desired by selecting a small enough value of C\, see eq. (4.10). Introducing the limiting form of the Legendre polynomials

P*(cos0)~l--l(l + l)02 (4.22)

(4.23)

into eq. (4.16a) we get

i.e. the transport mean free paths are completely determined by the single value A^. The angular distribution F& then simplifies to

mx;f) = E^rexp t{t +1) tAM Pe(c osx). (4.24)

Page 99: PENELOPE, and algorithm and computer code for Monte Carlo ...

4.1. Elastic scattering 83

This expresion can be evaluated by using the Moliere approximation for the Legendre polynomials, we obtain (see Fernandez-Varea et al., 1993b)

1/2 A^2tt ,smv

exp8A|") 21 x (4.25)

which does not differ significantly from the Gaussian distribution with variance t/X^K This result is accurate whenever t <C A^ and 9s <C 1. It offers a possible method of generating the angular deflection in artificial soft events. When the result given by eq. (4.25) is applicable, the single parameter A^ completely determines the multiple scattering distribution due to soft collisions, i.e. other details of the DCS for scattering angles less than 9s are irrelevant.

We now return to the notation of section 3.1, and use the variable // = (! — cos %)/2 to describe angular deflections in elastic events.

In most practical cases the number of hard collisions per electron track can be made relatively large by simply using a small value of the parameter Ci (see eq. (4.10)). When the number of steps is large enough, say larger than ~ 20, it is not necessary to use the exact distribution F^(x]t) to sample the angular deflection in artificial soft collisions. Instead, we may use a simpler distribution, ^(/qi), with the same mean and variance, without appreciably distorting the simulation results. This is due to the fact that other details of the adopted distribution are washed out after a sufficiently large number of steps and will not be seen in the simulated distributions. Notice that, within the small angle approximation, it is necessary to keep only the proper value of the first moment to get the correct final distributions. However, if the cutoff angle 9s is not small enough, the angular distribution F^)(%; Z) may become sensitive to higher-order moments of the soft single scattering distribution. Thus, by also keeping the proper value of the variance, the range of validity of the simulation algorithm is extended, i.e. we can speed up the simulation by using larger values of C\ (or of A^) and still obtain the correct distributions.

The first and second moments of the multiple scattering distribution F&{h\ t) are

(A*)W = / ^a(^t) d/t Jo

1 - exp(—t/Af0)] (4.26)

andfi2Fa(ir,t) dfi = (n)^ — - [l — exp(—i/A^)] , (4.27)

where A^ and A^ stand for the first and second transport mean free paths for soft collisions. The angular deflection in artificial soft elastic events can be generated from a distribution Fa(/q t), which is required to satisfy eqs. (4.26) and (4.27), but is otherwise arbitrary. PENELOPE uses the following

F&((J>] t) — (l — (/j)^) S(fi — Hi) + (//)^5 (h — hi) , (4.28)

whereHi — (h)^s\ 1 — °) and /z2 = (^)^(l — a) + o (4.29)

Page 100: PENELOPE, and algorithm and computer code for Monte Carlo ...

84 Chapter 4. Mixed simulation algorithms for electrons and positrons

with1/2

It can be easily verified, that this distribution has the required first and second moments.

From expression (4.28), it is clearly seen that when (p)^ <C 1, most artificial soft elastic events have a deflection equal to pi, which is smaller than (p)^. In practical simulations of high-energy particles we frequently found values of (p)^ of the order of 10~4 (which corresponds to a scattering angle of 1.15°) and smaller. Under these circum­stances, the mean angular deflection obtained from a limited number of random values generated from the distribution given by eq. (4.28) is very likely to be less than (p)^ (since the deflection p2 occurs only once every 104 sampled values) and then one gets the impression that the angular deflection is underestimated. Of course, this impression results from the limited statistics, but this also happens to occur in practical simula­tions. As a consequence, when the cutoff deflection ps is very small, simulations based on the distribution (4.28) tend to underestimate the angular deflection. To correct for this anomalous tendency, we use the distribution (4.28) only when (p)^ > 10-3, other­wise we simply set p — {p)^s\ thus neglecting angle straggling in soft elastic collisions when the mean deflection is small.

- (Mw)

<„)<*> (i - („)(=))

4.1.3 Simulating with the W2D model

PENELOPE simulates elastic scattering by using the W2D model (see section 3.1), which allows the formulation of the mixed simulation algorithm in closed analytical form.

The mean free path between hard elastic events and the cutoff deflection ps = (1 — cos #s)/2 are related through (see eqs. (3.10) and (4.9))

1 If1= J] Jus PW2D^ d/Z* (4*31)

This equation can be easily inverted to give

Vs = Av2D (£s) , (4.32)

where& - 1 “ (4-33)

and P*W2D is the inverse of the single scattering cumulative probability function, given by eq. (3.24).

The random sampling of the angular deflection p in hard collisions is performed by the inverse transform method (section 1.1.2); random values of p are obtained from the sampling equation

/ PW2d(/0 d/f' = £ [ Pw2d(/0dp'.Jus JiiS

(4.34)

Page 101: PENELOPE, and algorithm and computer code for Monte Carlo ...

4.1. Elastic scattering 85

With the W2D distribution, eq. (3.11), this equation can be solved analytically to give

fl = Py—1W2D 1 - Ael

AS*(i-0 (4.35)

To determine the distribution Fa(/q t), eq. (4.28), we need the first and second trans­port mean free paths for soft collisions, which are given by

with

(A?) = and (a£s)) = — [S^s) - S2(ps)]

rvs rusSi(fis) — Jo PP\V2d(p) d/i and S2(gs) = jQ P P\V2d(p) d/t.

and

with

and

h(p) — A

h(p) = A(1+A)p: — 2Ii(p)

A + pThe quantities £o and £g are defined by eqs. (3.25) and (4.33), respectively.

(4.36)

(4 37)

r quantities can be computed analytically as

' (1 — B)Iy.(ps) if 0 < £s < £o

Si(ps) = < (1 — B)I-i(po) + (£s — Co) Po if Co <Cs< Co + B (4.38)

. (1 — B)Ii(ps) + Bp o if Co + B < Cs <1

' (1 — B)I2(p s) if 0<Cs< CoS2(ps) = ' (1 — B)I2(p o) + (£s — if Co < Cs < Co + B (4.39)

. (1 - 2)/: W + Bpo if Co + B<£s <1

(4.40)

(4.41)

In reality, elastic scattering coexists with inelastic collisions and bremsstrahlung emission, so that the particle loses energy along its track. The distance travelled by the particle from a given position to the following hard elastic collision is sampled from the mean free path A^ evaluated at the beginning of the step (there is no other alternative in this respect, since the length to be travelled up to the next hard collision, and hence the energy to be lost before colliding, are not known in advance). This introduces a certain systematic error, since the kinetic energy, and hence the properties of the interaction with the medium, may change appreciably along a single step. To keep this error below a reasonable limit, the energy loss in each step should be much smaller than the kinetic energy E at the beginning of the step. The mean energy loss in a step is given by

(AS) = A ^S(E), (4.42)

whereS(E) = Scoi(E) + 5rad(F) (4.43)

Page 102: PENELOPE, and algorithm and computer code for Monte Carlo ...

86 Chapter 4. Mixed simulation algorithms for electrons and positrons

is the total stopping power. Therefore, the average fractional energy loss in a step can be made less than a preselected small value, by taking

Aei(£),minE

2(2) } (4.44)

The parameters C\ and Cg, to be selected by the user, determine the computer time needed to simulate each track. Ideally, they should not have any influence on the accuracy of the simulation results. This is ensured by simply limiting their maximum values.

Our experience is that simulation results are generally stable under variations of C\ and Ci within the interval (0,0.1). It should be noted that each of these two parameters act on different energy ranges. This is illustrated in figure 4.3, where the lengths Aei, A% and E/S for electrons in gold are represented as functions of the kinetic energy. The mean free path A^ for hard elastic events, determined from the prescription (4.44) with Ci = Ci = 0.05 is also plotted. For low energies, A^ = Aei and the simulation is purely detailed (ps = 0). For intermediate energies, A^ = C7iAj, whereas A^ = C2E/S{E) in the high-energy domain. From figure 4.3 it is clear that increasing the value of C2

does not have any effect on the simulation of electron tracks with initial energies that are less than ~ 10 MeV.

» » """I1E+3 1E+4 1E+5 1E+6 1E+7 1E+8

E(eV)

Figure 4.3: Elastic mean free path Aei, first transport mean free path A% and E/S(E) for electrons in gold. The solid line represents the mean free path between hard elastic events A^

obtained from eq. (4.44) with C\ — C2 = 0.05. (Adapted from Baro et al., 1995.)

Computationally, it is faster to simulate a real elastic collision (i.e. to sample the random deflection p from the W2D single scattering distribution) than to simulate

Page 103: PENELOPE, and algorithm and computer code for Monte Carlo ...

4.2. Energy losses 87

an artificial soft elastic event. Therefore, when A^ < 2Aei, we use strictly detailed simulation.

4.2 Energy losses

The high-energy codes currently available implement different approximate methods to simulate inelastic collisions. Thus, ETRAN makes use of the multiple scattering theories of Landau (1944) and Blunck and Leisegang (1950) to obtain the energy loss distribu­tion due to inelastic collisions after a given path length; the production of secondary electrons is simulated by means of the Mpller (1932) and Bhabha (1936) DCSs, which neglect binding effects. This approach accounts for the whole energy straggling, within the accuracy of the multiple scattering theory, but disregards the correlation between delta ray emission and energy loss in each track segment. As a consequence, energetic delta rays can be generated in a track segment where the energy lost by the primary particle is smaller than the energy of the emitted delta rays. EGS4 uses a mixed proce­dure to simulate collision energy losses: hard inelastic collisions are simulated from the M0ller and Bhabha DCSs, thus neglecting binding effects, and soft inelastic collisions are described by means of the continuous slowing down approximation (CSDA), i.e. energy straggling due to soft inelastic collisions is ignored. As regards bremsstrahlung emis­sion, EGS4 implements a mixed procedure in which hard radiative events are simulated in detail and use is made of the CSDA to simulate the effect of soft photon emission; ETRAN uses strictly detailed simulation.

To make the arguments more precise, we introduce the cutoff values Wcc and Wcr, and consider inelastic collisions with energy loss W < Wcc and emission of bremsstrahlung photons with W < Wcr as soft stopping interactions. The use of the CSDA to describe soft interactions is well justified when the energy straggling due to these interactions is negligible, as happens when the cutoff energies Wcc and Wcr are both small, so that the fraction of the stopping power due to soft interactions is also small. To improve the description of energy straggling one should reduce the cutoff energies, but this enlarges the number of hard inelastic and radiative events to be simulated along each track and hence the simulation time. Our purpose is to go beyond the CSDA by introducing energy straggling in the description of soft stopping interactions. It is clear that, by proceeding in this way, we will be able to use larger values of the cutoff energies Wcc and WCT, and hence speed up the simulation, without distorting the energy distributions.

PENELOPE implements the mixed simulation algorithm described by Bar6 et al. (1995). The quantities that define the algorithm are the mean free paths A^i and A^a between hard collisions and hard radiative events, the stopping power Ss and the energy straggling parameter associated with soft interactions. These quantities are given by

A£to=(v/^diy)"\ (4.45)

(4.46)

Page 104: PENELOPE, and algorithm and computer code for Monte Carlo ...

gg Chapter 4. Mixed simulation algorithms for electrons and positrons

and

Ss(£)=Af fJo

ClUE) = M (Jo

WcCW^^dW + Af f

JodWWcr dW

wc,W'2 dcTcol

~dW dW + Af fWc'Jo

W

dW

2 do"raddW

dW.

(4.47)

(4.48)

Let us consider that a particle, electron or positron, travels a step of length t be­tween two consecutive hard events of any kind (i.e. hard elastic or inelastic collisions, hard bremsstrahlung emissions, and annihilation in the case of positrons). Along this step, the particle is assumed to interact only through soft inelastic collisions and soft bremsstrahlung emission. We consider that the average energy loss in this path length, Ss(E)tj is much less than the initial energy E so that the DCSs can be assumed to stay essentially constant along the step. This can be guaranteed by simply taking a small enough value of the simulation parameter C2, see eq. (4.44) and figure 4.3, since the mean free path between consecutive hard events of any kind is shorter than the mean free path between hard elastic events. Let G(u>] t) denote the PDF of the energy loss ev along the path length t; this distribution satisfies the transport equation (Landau, 1944)

= M jT [<?(« — W;t) — G(Wi i)J dW (4.49)

with the initial value G(W; 0) = 8{W). Here, d<rs/dW stands for the DCS for soft stopping interactions, i.e.

d<Ts d<7co1 0(WCC -W) + 0(Wcr - W),dW dW dW (4.50)

where Q(x) is the step function. A closed formal solution of the integral equation (4.49) may be obtained by considering its Fourier, or Laplace, transform with respect to u> (see e.g. Landau, 1944, Blunck and Leisegang, 1950). For our purposes it is only necessary to know the first moments of the energy loss distribution after the path length t,

fOO(ivn) = / u)nG{fjJ'i t) dev.

Jo(4.51)

From eq. (4.49) it follows that

dcrsdW

too rco= Af I dev / dW un [G(cv — W]t) — G(u>] t)]

Jo Jo

= m (rdw' r iw^+w)n°^ ^ - <“”> r ^

“ S r iw’ (4.52)

where use has been made of the fact that d<7s/dW vanishes when W < 0. In particular, we have

d» =AA^°° W^p dW = 5S,dt dW

(4.53)

Page 105: PENELOPE, and algorithm and computer code for Monte Carlo ...

4.2, Energy losses 89

i(o,2)=Hu)*/fiw+Arrw2w6w=2<u,)Ss+n- (4-54>

and, hence,(w) = Sst, (4.55)

(tv2) = (Sst)2 + fZ2*. (4.56)

The variance of the energy loss distribution is

var(tv) = (tv2) - (tv)2 = fi2Z, (4.57)

i.e. the energy straggling parameter fi2 equals the variance increase per unit path length.

The key point in our argument is that soft interactions involve only comparatively small energy losses. If the number of soft interactions along the path length t is statisti­cally sufficient, it follows from the central limit theorem that the energy loss distribution is Gaussian with mean Sst and variance f22Z, i.e.

G(tv; t) ~ 1(2tt!1J(B)i)1/2 eXP

(w - g.(g)<)2'ani(E)t . (4.58)

This result is accurate only if 1) the average energy loss Ss(E)t is much smaller than E (so that the DCS dtrs/dW is nearly constant along the step) and 2) its standard deviation [n2(I?)2]1/r2 is much smaller than its mean Ss(E)t (otherwise there would be a finite probability of negative energy losses), i.e.

[n2(E)t]^ < &(E)f C 2. (4.59)

Requirement 1) implies that the cutoff energies Wcc and Wcr for delta ray production and photon emission have to be relatively small. The second requirement holds for path lengths larger than tcr\t = fi2/52.

Now, we address ourselves to the problem of simulating the energy losses due to soft stopping interactions between two consecutive hard events. The distribution (4.58) gives the desired result when conditions (4.59) are satisfied. In fact, the use of a Gaussian distribution to simulate the effect of soft stopping interactions was previously proposed by Andreo and Brahme (1984) (see also McLellan et al., 1994). Unfortunately, the step lengths found in our simulations are frequently too short for conditions (4.59) to hold (i.e. t is usually less than ZCrit)- To get over this problem, we replace the actual energy loss distribution G(w; t) by a simpler “equivalent” distribution Ga(cu; t) with the same mean and variance, given by eqs. (4.55) and (4.57). Other details of the adopted distribution have no effect on the simulation results, provided that the number of steps along each track is statistically sufficient (say, larger than ~ 20). PENELOPE generates w from the distribution

C?a(kq if) — b8(u)) + (1 — b)----------0(w — oj\) 0(u>2 — w) (4.60)u>2 — u>i

with

6 = 0, wi = (tv) — [3var(tv)]^2 , tv2 = (tv) + [3var(tv)]lyr2 if (tv)2 > 3var(tv) (4.61)

Page 106: PENELOPE, and algorithm and computer code for Monte Carlo ...

90 Chapter 4. Mixed simulation algorithms for electrons and positrons

and

3var(w) — (cv)23var(cv) + 3 (tv)2 ’

Wg3var(cv) + 3 (tv)2

mif (tv)2 < 3var(tv). (4.62)

This distribution has the required mean and variance and the maximum energy loss, tV2, is usually much less than E. Energy losses larger than E might be generated only when the step length has a value of the order of the Bethe range, and this is extremely unlikely. It is worth noticing that, after a moderately large number of steps, this simple simulation scheme effectively yields an energy loss distribution that has the correct first and second moments and is nearly Gaussian. Further improvements of the distribution of soft energy losses would mean considering higher order moments of the single scattering inelastic DCS given by eq. (4.50).

In spatial-dose calculations, the energy loss cv due to soft stopping interactions can be considered to be locally deposited at a random position-uniformly distributed along the step. This procedure yields dose distributions identical to those obtained by assuming that the energy loss is deposited at a constant rate along the step, but is computationally simpler. According to this, PENELOPE simulates the combined effect of all soft elastic collisions and soft stopping interactions that occur between a pair of successive hard events, separated a distance f, as a single artificial event in which the particle changes its direction of movement according to the distribution Fa(/z; t), eq. (4.28), and loses energy cv that is generated from the distribution G?a(cv; t), eq. (4.60). The position of the artificial event is sampled uniformly along the step, as in the case of purely elastic scattering (section 4.1.2). When the step crosses an interface (see figure 4.2), the artificial event is simulated only when its position lies in the initial material; otherwise the track is stopped at the interface and restarted in the new material. It can be easily verified that the particle reaches the interface not only with the correct average direction of movement, but also with the correct average energy, E — Sss.

4.2.1 Scattering by atomic electrons

Most of the existing high-energy simulation codes have difficulties in accounting for the angular deflections of the projectile due to inelastic collisions (see e.g. Jenkins et al., 1988). The inelastic cross section differential in the scattering angle can be calculated approximately in terms of the incoherent scattering function (see e.g. Mott and Massey, 1965). This was the approach followed by Fano (1954) in order to introduce electron scattering effects in the Moliere theory. However, the DCS calculated in this way ac­counts for all excitations and, hence, it is not adequate for mixed simulations, where the part of electron scattering due to hard collisions is explicitly simulated. Moreover, the calculation of the DCS from the incoherent scattering function involves an average over excitation energies that cannot be performed exactly; instead an effective “minimum momentum transfer” is introduced, which must be estimated empirically. This may cause inconsistencies for low-energy projectiles. A more consistent approach (Baro et al., 1995) is obtained by simply computing the restricted angular DCS, for soft collisions with W < Wcc, from our inelastic scattering model (see section 3.2), as follows.

Page 107: PENELOPE, and algorithm and computer code for Monte Carlo ...

4.2. Energy losses 91

The recoil energy Q is given by (see appendix B)

Q(Q + 2 me2) = cV + p'2 — 2pp' cos 9), (4.63)

where p and p' are the magnitudes of the momentum of the projectile before and after the collision,

(cp)2 = E(E + 2mc2) and (cp')2 = (E - W)(E -W + 2mc2). (4.64)

The (unnormalized) PDF of Q in distant collisions with the z-th oscillator is (see eq. (3.64))

Pdito) = Q(l + Q/2mc’)’ °-<0< W<- (4'M)

In these collisions, the recoil energy Q and the angular deflection p = (1 — cos 0)/2 are related through

Q(Q + 2 me2) = Acpcpip + (cp — cpi)2, (4.66)

where pi is the momentum of the projectile after the collision,

(cPl)2 = {E- Wi)(E -Wi + 2mc2). (4.67)

The PDF of the angular deflection in distant collisions can then be written as

ftiW = = 4cpcpill + {cp-cpi)2 2(QP+’rL?y (4.68)

Considering that Q -C me2 for the majority of soft distant collisions, the normalized distribution of p in these collisions is

Pdiifj) =

with

In '4cpcp\p\ + (cp - cpif(cp - cpx)2

Pi = p(Q = Wi) =

-l 4cp cpi4cp cpip + (cp — cpi)2 ’

W{(Wi + 2mc2) — (cp — cpif 4 cp cpi

0 < p < pi

(4.69)

(4.70)

On the other hand, the DCS per unit oscillator strength for soft (W < Wcc) close collisions with the z-th oscillator is approximately given by the Rutherford formula

dar; irePi < P < P2,dp (pfic)2 p2’

where e is the electron charge, 0c is the speed of the projectile and

WCC(WCC + 2mc2) - (cp - cp2)2

(4.71)

P2 — ft(Q — IFcc) — 4cp cp2(4.72)

with(cp2)2 = (E- Wcc)(E - Wcc + 2mc2). (4.73)

Page 108: PENELOPE, and algorithm and computer code for Monte Carlo ...

92 Chapter 4. Mixed simulation algorithms for electrons and positrons

Actually, close collisions should be described by the Mdller (or Bhabha) DCS (eqs. (3.41)—(3.44)); the use of the Rutherford DCS, which disregards spin and exchange effects, facilitates the calculations considerably with a negligible loss of accuracy. Hence, the angular DCS for soft collisions is

(4.74)

where era,- is the total cross section per unit oscillator strength for distant collisions with the z-th oscillator (which can be evaluated analytically from eq. (3.53)) and the summation extends over the oscillators with resonance energy less than WcC.

The mean free path and the first and second transport mean inelastic scattering are given by

free paths for soft

MM (4.75)

(4.76)

and

Md’;dv (4.77)

With the DCS given by eq. (4.74), these quantities can be calculated analytically. The mean free path obtained from eq. (4.75) practically coincides with the value obtained by integrating the energy loss DCSs given by eq. (3.51); this validates the approximationsintroduced in deriving the angular DCS given in eq. (4.74).

In principle, the W2D model can be applied to any elastic scattering law. In partic­ular, it can be used to describe the combined effect of pure elastic scattering and soft electronic scattering. This is accomplished by simply determining the parameters of the W2D model from the values of the mean free path and transport mean free paths of thecombined process, instead of those of exclusively elastic scattering, specify the combined process are

The quantities that

ki'L^+MZL- (4.78)

(4.79)

and(4.80)

4.3 Generation of random tracks

Each electron or positron history consists of a chronological succession of events. Thesecan be either hard events, artificial events or other relevant stages of the particle history

Page 109: PENELOPE, and algorithm and computer code for Monte Carlo ...

4.3. Generation of random tracks 93

(such as its initial state, the crossing of an interface or the effective absorption after slowing down). The trajectory of the particle between a pair of successive events is a straight segment, which will be referred to as a step.

Interactions qualified as hard events are hard elastic collisions (“el”), hard inelastic collisions (“col”), hard bremsstrahlung photon emission (“rad”), and positron annihila­tion (“an”) when dealing with positrons. The simulation of hard events is performed in detail by using the DCSs described in chapter 3. The mean free path between consecu­tive hard events is given by

—=—+ A00 A<?>

(4.81)

The PDF of the step length t between two successive hard events is

P(t) = l^j-exp (-*/A(h)) . (4.82)

In each hard event, one and only one interaction (i=“el”, “col”, “rad” or “an”) occurswith probability

Pi = A<h>/AP>). (4.83)

As mentioned above, the combined effect of all soft elastic and stopping interactions that occur between a pair of successive hard events is simulated as a single artificial event in which the particle changes its direction of movement and loses energy. It is worth pointing out that the present algorithm differs from the one described by Baro et al. (1995) in an important aspect. Here artificial events account for both the change of direction and the energy loss due to soft interactions along the step. In the previous version, angular deflections and energy losses were treated separately, with the result that three soft events, one elastic and two inelastic, occurred between each pair of consecutive hard events. The present formulation permits a large simplification in the structure of the main program.

The generation of the angular deflection in artificial events is discontinued when the simulation of elastic scattering becomes detailed (i.e. when A^ < 2Aei, see section 4.1.3). In studies of low-energy electron and positron transport (with, say, E < 100 keV) it may be convenient to disregard bremsstrahlung emission, which has a negligible stopping effect; PENELOPE switches radiative interactions off when Wa is negative. Since oscillators with resonance energy Wi greater than Wcc do not participate in arti­ficial soft interactions, when Wcr is negative and Wcc is less than the lowest oscillator resonance energy, the particles do not lose" energy in the artificial events.

The state of the particle immediately after an event is defined by its position coor­dinates r, energy E and direction cosines of its direction of movement d, as seen from the laboratory reference frame. It is assumed that particles are locally absorbed when their energy becomes smaller than a preselected value Eabs; positrons are considered to annihilate after absorption. In the description of the algorithm we use the symbol <— in expressions like “o «— 6” to indicate that the value b replaces the value of a. The practi­cal generation of random electron and positron tracks in arbitrary material structures, which may consist of several homogeneous regions of different compositions separated by well-defined surfaces (interfaces), proceeds as follows:

Page 110: PENELOPE, and algorithm and computer code for Monte Carlo ...

94 Chapter 4. Mixed simulation algorithms for electrons and positrons

(i) Set the initial position r, kinetic energy E and. direction of movement d of the primary particle.

(ii) Sample the distance t to be travelled up to the following hard event from the PDF given by eq. (4.82),

* = -A(h)ln£. (4.84)

(iii) Generate the length r = of the step to the next artificial soft event. Let the particle advance this distance in the direction d: r <— r + rd.

(iv) If the track has crossed an interface:Stop it at the crossing point (i.e. redefine r as equal to the position of this point and set r equal to the travelled distance).Go to (ii) to continue the simulation in the new material, or go to (ix) if the new material is the outer vacuum.

(v) Simulate the artificial soft event:Sample the polar angular deflection p — (1—cos 9)/2 from the distribution Fa(p; t), eq. (4.28). Sample the azimuthal scattering angle as <f> = 2tt£. Perform a rotation R(9, <j>) of the vector d according to the sampled polar and azimuthal angular de­flections (as described in section 1.3.2) to obtain the new direction: d *— R(8, <^)d. Sample the energy loss w due to soft stopping interactions along the step t from the distribution GJu)\ £), eq. (4.60), and reduce the kinetic energy: E <— E — w. Go to (ix) if jE < Sabs.

(vi) Let the particle advance the distance t — r in the direction d: r <— r + (t — r)d.(vii) Do as in (iv).(viii) Simulate the hard event:

Sample the kind of interaction according to the point probabilities given by eq. (4.83). Sample the polar scattering angle 9 and the energy loss W from the corresponding DCS. Generate the azimuthal scattering angle as <j> — 2tt£. Perform a rotation R(9, <f) of the vector d to obtain the new direction: d «— R(B, <f>)d. Reduce the kinetic energy of the particle: E <— E — W.If, as a result of the interaction, a secondary particle is emitted in a direction ds, with energy Es > Eabs, store its initial state (r, Es, ds).Go to (ii) if E > £abs-

(ix) Simulate the tracks of the secondary electrons produced by the primary particle (or by other secondaries previously followed) before starting a new primary track.

In order to simplify the calculations, the parameters of the multiple scattering distri­butions FJyP\ t) and Ga(w; r) are evaluated for the kinetic energy immediately after each hard event and are assumed to stay constant along the track length t between a pair of successive hard events (i.e. the effect of the energy loss due to soft stopping interactions on these distributions is disregarded). This approximation does not have any practical effect on the simulation results as long as the average fractional energy loss due to soft stopping interactions between successive hard events is small. This is ensured by simply using a suitably small value of the constant C2 in eq. (4.44).

Page 111: PENELOPE, and algorithm and computer code for Monte Carlo ...

4.3. Generation of random tracks 95

Simulation with PENELOPE is controlled by the constants C\ and (72 and the cutoff energies Wcc and Wcr. Hereafter, these four quantities will be referred to as simulation parameters. The parameter Ci determines the mean free path A^ between hard elastic events, see eq. (4.44). This parameter should be small enough to ensure reliable simulation results. PENELOPE admits values of C\ from 0 (detailed simulation) up to 0.2, which corresponds to a mean angular deflection (9) ~ 37° after a step of length A^\ The simulation parameter C2 gives the maximum average fractional energy loss between consecutive hard elastic events and it is effective only at high energies (see section 4.1.3). From the discussion in section 4.1, it is clear that C2 should also be small. The cutoff energies Wcc and Wcr mainly influence the simulated energy distributions. The simulation speeds up by using larger cutoff energies, but if these are too large the simulated energy distributions may be somewhat distorted. In practice, simulated energy distributions are found to be insensitive to the adopted values of Wcc and when these are less than the bin width used to tally the energy distributions. Thus, the desired energy resolution determines the maximum allowed cutoff energies.

The reliability of the whole simulation rests on a single condition: the number of hard events per primary track must be “statistically sufficient”, i.e. larger than ~ 20. When this condition is satisfied, we expect to get correct simulation results irrespective of the adopted simulation parameters. In principle, to minimize the simulation time we should use the largest values of the parameters that are compatible with the particular conditions of each experiment; these can be estimated from a few short previous trial simulations. We could also avoid any previous analysis by simply using “safe” values of the simulation parameters (e.g. C\ = 0.001, C2 = 0.01, Wcc = Wcr = O.OlEo), at the expense of wasting some computer time. As regards elastic scattering, a convenient alternative is to determine A^(£) from the expression (cf. eq. (4.44))

A^(E) = maxi Aei(E),min CiAi(2),C2E Alh)el,max (4.85)

where A^ax is an energy-independent value selected by the user. If the irradiated body has a characteristic thickness T, we can then make sure that each particle experiences (on average) ~ 20 hard elastic collisions, irrespective of the values of C\ and C2, by simply taking A^Lv ~ T/20.

Page 112: PENELOPE, and algorithm and computer code for Monte Carlo ...

96 Chapter 4. Mixed simulation algorithms for electrons and positrons

Page 113: PENELOPE, and algorithm and computer code for Monte Carlo ...

Chapter 5

The simulation package PENELOPE

The scattering model and simulation algorithms described in the previous chapters have been implemented in the FORTRAN 77 subroutine package PENELOPE, which performs “analogue” simulation of electron-photon showers (i.e. the simulated showers are in­tended to be replicas of actual showers). Photon histories are generated by using the detailed simulation method (section 1.3), i.e. all interaction events are simulated in chronological succession. The generation of electron and positron tracks is performed by using the mixed procedure described in chapter 4. The practical advantage of PENE­LOPE is that it allows the user to write his or her own simulation program, with ar­bitrary geometry and scoring, without previous knowledge of the intricate theoretical aspects of scattering and transport theories. PENELOPE has been devised to do the largest part of the simulation work. The MAIN program, to be provided by the user, only has to control the evolution of the tracks simulated by PENELOPE and keep score of relevant quantities.

5.1 Simulating with PENELOPE

PENELOPE generates electron-photon showers in material systems consisting of a num­ber of homogeneous regions (bodies). The maximum number of different materials that can be handled simultaneously is determined by the parameter MAXMAT, which is set equal to 3 in the present version. The user can increase this parameter by editing the PENELOPE source file. With MAXMAT=3, the code runs on 80387 and 80486 IBM- compatible personal computers, even with old FORTRAN compilers that do not support extended memory.

The label KPAR identifies the kind of particle: KPAR = 1, electron; KPAR = 2, photon; KPAR = 3, positron. A particle is assumed to be absorbed in the medium when its energy becomes less than a value EARS (KPAR) (in eV) specified by the user. Positrons are assumed to annihilate, by emission of two photons, when absorbed. In dose calculations, EARS (KPAR) should be determined in such a way that the residual range of particles

Page 114: PENELOPE, and algorithm and computer code for Monte Carlo ...

98 Chapter 5. The simulation package PENELOPE

with this energy is smaller than the dimensions of the volume elements used- to tally the spatial dose distribution. As the photoelectric cross section database is limited to energies > 1 keV, photon absorption energies EABS(2) must be larger than this value. We recall also that, for elements with intermediate and high atomic numbers, secondary characteristic photons with energies less than the L-shell absorption edge are not simulated. Absorption energies for electrons and positrons must be larger than 100 eV. This limit is dictated by two different reasons: firstly, charge cloud polarization effects make the calculation of reliable DCSs for elastic scattering difficult at these low energies and, secondly, the electron trajectory picture is not applicable when the de Broglie wavelength of the electron, Ag = (150 eV/E)1/2 A, is similar to or greater than the interatomic spacing (~ 1 A). In order to prepare various interpolation tables, PENELOPE must know the absorption energies for electrons, positrons and photons. These are introduced through the named common block -» COMMON/ABSEN/EABS(3)

The simulation package is initialized from the MAIN program by calling a single sub­

routine,-> CALL PEINIT(EMAX,Cl,C2,WCC,WCR,HFPMAX,NMAT)which reads the input data of the different materials, evaluates relevant scattering prop­erties and prepares several tables that are used during the simulation. Its input argu­ments are:

NMAT ... Number of different materials (less than or equal to MAXMAT).

EMAX ... Maximum energy (in eV) of the simulated particles.Notice that if the primary particles are positrons with initial kinetic energy EP, the maximum energy of annihilation photons equals EMAX=EP+1.022E6 eV; in this special case, the maximum energy is larger than the initial kinetic energy.

The following parameters determine the mixed algorithm adopted to simulate electron and positron histories:

Cl... Average angular deflection, C\ = 1 — (cos %), produced by multiple elastic scat­tering along a path length equal to the mean free path between hard elastic events, eq. (4.11). The maximum allowed value is 0.2.

C2 ... Maximum average fractional energy loss between consecutive hard elastic events, eq. (4.44). The maximum allowed value is 0.1.

WCC ... Cutoff energy loss (in eV) for hard inelastic collisions.

WCR ... Cutoff energy loss (in eV) for hard bremsstrahlung emission.HFPMAX ... An array of dimension MAXMAT. HFPMAX (M) specifies the maximum mean

free path A^ax (in cm) between hard elastic events in the M-th material, see eq. (4.85). Mixed simulation algorithms yield reliable results provided only that the mean number of hard events per particle track in each body is larger than, say, 20. In order to ensure that this condition is satisfied, when the irradiated structure contains a very thin body of material M, HFPMAX (M) should be given a value of the order of one twentieth of the characteristic thickness of that body. For thick bodies, HFPMAX (M) can be set equal to a very large positive value (e.g. 1020) and then it has no effect on the simulation.

Page 115: PENELOPE, and algorithm and computer code for Monte Carlo ...

5.1. Simulating with PENEL OPE 99

5.1.1 Input material data file

PENELOPE reads information about each material, including tables of various energy- dependent interaction properties, from an input file (UNIT=5). This file is generated by the program MATERIAL (see below), which extracts atomic interaction data from the numerical database.

The structure of the material data file is the following

____ +_____1______+____2_____+_____3_____+_____4____ +____ 5_____ +_____6_____+PI MATERIAL:( A48 )P2 MASS DENSITY=( Ell.4 )G/CM3P3 NUMBER OF ELEMENTS IN THE M0LECULE=(I2) /.LE.15/P4+ ATOMIC NUMBER=(I2),ATOMS/M0LECULE=( E13.6 )P5 MEAN EXCITATION ENERGY=( F8.2 )EVP6 NUMBER OF 0SCILLAT0RS=(I2) /.LE.30/P7+ ( E13.6 , E13.6 , E10.3 ,12) OSCILLATOR DATA

P8 NUMBER OF INPUT ENERGIES=( 13) FOR ELECTRONS /.LE.180/P9+ (E,MFP,1ST AND 2ND TRANS.MFP,COL.SP,RAD.SP) (EV,MTU)P10 NUMBER OF INPUT ENERGIES=( 13) FOR POSITRONS /.LE.180/P11+ (E,MFP,1ST AND 2ND TRANS.MFP,COL.SP,RAD.SP) (EV,MTU)P12 NUMBER OF INPUT ENERGIES=( 13) FOR PHOTONS /.LE.400/P13+ (E,RAYL,COMP,PHOT AND PAIRP AT.COEFFICIENTS) (EV,CM2/G)

____ +_____1_____+_____2_____+_____3_____+_____4_____+_____5_____+_____6_____+

(data are written within the parentheses in the specified format).

Line PI... Text identifying the material ( <48 characters).

Line P2 ... Mass density p (in g/cm3).

Line P3 ... Number of different elements in the material, NELEM (< 15).

NELEM lines P4 ... each one contains the atomic number and the number of atoms per “molecule” (i.e. the stoichiometric index) of an element in the material.

Line P5 ... Mean excitation energy I (in eV). If the input value is less than 1 eV, it is computed from Berger and Seltzer’s (1982) values for the elements by using the additivity rule.

Line P6 ... Number of oscillators, NOS (< 30).

NOS lines P7 ... Oscillator data. Each line contains the following quantities (in the

given order and format):1) Oscillator strength /,-.2) Ionization energy [/; (in eV). For the “plasmon” oscillator, the input energy is the excitation energy Wp with reversed sign (the sign serves

only to indicate that this oscillator corresponds to plasma oscillations and has zero binding energy).

3) One-electron Compton profile for pz = 0, J;(0) (in atomic units).4) An integer that marks K-shell oscillators (equal to Z for the K-shell of the element of atomic number Z, zero for other shells).

Page 116: PENELOPE, and algorithm and computer code for Monte Carlo ...

100 Chapter 5. The simulation package PENELOPE

Line P8 ... Number of input energy mesh points for electron scattering data, NINPE(< 180).

NINPE lines P9 ... each one contains the following quantities (in the given order and free format, separated by blanks):

1) electron kinetic energy E (eV),2) elastic mean free path pXei (/zg/cm2),3) elastic first transport mean free path pXi (/zg/cm2),4) elastic second transport mean free path />A2 (/zg/cm2),5) collision stopping power Scoi/p (eV cm2//zg),6) radiative stopping power Sia.&lp (eV cm2//zg).

It is assumed that input energies are in increasing order and cover the range from 100 eV to 1 GeV. They must be conveniently spaced to permit natural cubic spline log-log interpolation (and extrapolation to higher energies) of mean free paths, transport mean free paths and stopping powers.

Line P10 ... Number of input energy mesh points for positron scattering data, NINPP (< 180).

NINPP lines Pll ... each one contains the same data as lines P9 but for positrons (the energies can be different from those entered for electrons but they must satisfy the same conditions).

Line P12 ... Number of input energy mesh points for photon attenuation coefficients, NINPG (< 400).

NINPG lines P13 ... each one containing the following data (in the given order and free format, separated by blanks):

1) photon energy E (eV), in increasing order.2) Rayleigh partial mass attenuation coefficient /zco//> (cm2/g),3) Compton partial mass attenuation coefficient /z;n/p (cm2/g),4) photoelectric partial mass attenuation coefficient /zph/p (cm2/g),5) pair-production partial mass attenuation coefficient /zpp//> (cm2/g).

The energies in the table should cover the range from 1 keV to 1 GeV and be densely spaced so that interpolation (and possible extrapolation to higher ener­gies) of the attenuation coefficients does not introduce appreciable errors. Natural cubic spline log-log interpolation is used, except for the photoelectric attenuation coefficient of photons with energy below the highest absorption edge, which is obtained by means of simple linear log-log interpolation.

Mean free paths, transport mean free paths and stopping powers of electrons and positrons are given in mass-thickness units (1 mtu = 1 /zg/cm2) and eV/mtu, respec­tively. Photon mass attenuation coefficients are expressed in cm2/g. These quantities are practically independent of the material density; the only exception is the collision stopping power for electrons and positrons with kinetic energies larger than about 0.5 MeV, for which the density effect correction may be appreciable.

Notice that the energy-dependent quantities tabulated in the input material data file determine the most relevant characteristics of the scattering model. Thus, the W2D DCS for electron and positron elastic scattering is completely defined by the mean free paths

Page 117: PENELOPE, and algorithm and computer code for Monte Carlo ...

5.1. Simulating with PENELOPE 101

and transport mean free paths. Collision and radiative stopping powers read from the input file are used to renormalize the built-in analytical DCSs, i.e. these are multiplied by an energy-dependent factor such that the input stopping powers are exactly reproduced. The mean free paths used in the simulation of photon transport are directly inferred from the input attenuation coefficients.

To simulate systems with several materials, the corresponding data files must be catenated in a single input file. PENELOPE labels the I-th material in this file with the index MAT=I, which is used during the simulation to identify the material where the particle is transported.

5.1.2 The program MATERIAL and the database

The material data file is created by the auxiliary program MATERIAL. The energy- dependent quantities listed in this file are either evaluated from the atomic interaction data included in the database or computed using analytical DCSs. MATERIAL runs in­teractively and is self-explanatory. Basic information about the material is supplied by the user from the keyboard, in response to prompts from the program. The required information is: 1) chemical composition (i.e. elements present and stoichiometric index of each element), 2) mass density p, 3) mean excitation energy I and 4) resonance en­ergy Wp and oscillator strength /p of plasmon excitations (see section 3.2). Alloys and mixtures are treated as compounds, with stoichiometric indices equal, or proportional, to the percentage in number of atoms of the elements. The file COMPDATA.TAB (adapted from Berger, 1992) contains the composition, mean excitation energy and mass density of 279 materials of radiological interest. MATERIAL can either read the data from this file or accept values entered from the keyboard. Notice that PENELOPE does not work for elements with atomic number Z > 92.

The database consists of the following 187 ASCII files:

COMPDATA.TAB ... contains composition data for 279 different materials.

IDLIST.TAB ... list of materials included in the COMPDATA.TAB file, with identification

numbers.

92 files named PENEPZZ.TAB with ZZ=atomic number (01-92).

These files contain electron and positron interaction data. The information in each file is organized in columns:1st column: kinetic energies (eV) in increasing order; the grid of energies is approx­imately logarithmic, with 15 points per decade, and is the same for all elements. 2nd column: total elastic cross section for electrons.3rd column: elastic first transport cross section for electrons.4th column: elastic second transport cross section for electrons.5th column: total elastic cross section for positrons.6th column: elastic first transport cross section for positrons.7th column: elastic second transport cross section for positrons.8th column: radiative total stopping cross section, cr^(E) = , for elec­trons.

Page 118: PENELOPE, and algorithm and computer code for Monte Carlo ...

102 Chapter 5. The simulation package PENELOPE

Cross sections (columns 2 to 7) are given in barns (1 barn = 10 24 cm2); stopping cross sections are expressed in eV-barn.

92 files named PENPHZZ.TAB with ZZ= atomic number (01-92), organized in columns. The grid of energies for each element is obtained by merging a generic grid (the same for all elements, covering the energy range from 1 keV to 100 GeV) with the grid of absorption edges of the element. Moreover, between each pair of consecutive absorption edges there is at least one grid point. Each file contains the following quantities:1st column: photon energies (in eV) in increasing order.2nd column: photoelectric total cross section <rph (in barns).3rd column: pair production cross section crpp (in barns).

PENINCH.TAB ... One-electron Compton profiles for pz = 0 of the elements Z = 1 to 92. Each line contains data pertaining to an atomic electron shell:1st column: atomic number of the element.2nd column: electron shell.3rd column: number of electrons in the shell, Z{.4th column: maximum value J,-(0) of the one-electron Compton profile (in atomic units).5th column: ionization energy U{ (in eV).

Elastic total and transport cross sections for electrons and positrons were calculated, for all elements, with methods described in appendix C. crC-)(/T) was obtained from electron radiative stopping powers given by the program ESTAR of Berger (1992) for E > 1 keV. Values for E < 1 keV were extrapolated, using a log-log cubic polynomial, to match the radiative stopping cross section at E = 100 eV given by Perkins et al. (1991b). Photoelectric and pair-production cross sections were generated by means of the XCOM program of Berger and Hubbell (1987). The one-electron Compton profile values J,(0) are from Biggs et al. (1975).

For compounds, electron and positron elastic mean free paths and transport mean free paths, electron radiative stopping powers and photon attenuation coefficients are obtained using the additivity rule, i.e. the corresponding molecular cross section is set equal to the sum of atomic cross sections weighted with the stoichiometric index of the element. Radiative stopping powers for positrons are obtained from eq. (3.80),

S^(E) = Fv(Z,B)SiJ(E). (5.1)

Collision stopping powers are directly calculated from the analytical expressions given in section 3.2. The value of the mean excitation energy I is either read from the COMPDATA.TAB file or tentatively obtained from Berger and Seltzer’s (1982) recom­mended /-values for the elements using the additivity rule. Atomic cross sections for coherent and incoherent scattering of photons are evaluated from the analytical DCSs described in chapter 2.

Page 119: PENELOPE, and algorithm and computer code for Monte Carlo ...

5.1. Simulating wi th PEN EL OPE 103

5.1.3 MAIN program

As mentioned above, PENELOPE must be complemented with a steering MAIN program, which controls the geometry and the evolution of tracks, keeps score of the relevant quantities and performs the required averages at the end of the simulation.

The connection between PENELOPE and the MAIN program is done via the named common block-> COMMON/TRACK/E,X,Y,Z,U,V,W,WGHT,DS,DE,KPAR,IBODY,MAT,ICOL

containing the following quantities:Particle state variables:

KPAR ... Kind of particle (1, electron; 2, photon; 3, positron).

E ... Current particle energy (eV) (kinetic energy for electrons and positrons).X, Y, Z ... Position coordinates (cm).U, V, W ... Direction cosines of the direction of movement.WGHT ... In analogue simulations, this is a dummy variable. When using variance

reduction methods, the particle weight can be stored here.IBODY ... This flag serves to identify different bodies in complex material struc­

tures.MAT ... Material in which the particle moves (the one in the body labelled IBODY).

Changes in state variables performed by the simulation routines (see below):DS ... Length (cm) of the following step (output from JUMP).

DE ... Energy (eV) deposited in the material in the last event (output from KNOCK).

ICOL ... Gives the kind of the last event (output from KNOCK).Electrons and positrons:

IC0L=1 artificial soft event,IC0L=2 hard elastic collision,IC0L=3 hard inelastic collision,IC0L=4 hard bremsstrahlung emission,IC0L=5 positron annihilation.

Photons:IC0L=1 coherent scattering,IC0L=2 incoherent scattering,IC0L=3 photoelectric absorption,IC0L=4 electron-positron pair production.

The position coordinates r =(X,Y,Z) and the direction cosines d =(U,V,W) of the direc­tion of movement are referred to a fixed rectangular coordinate system, the “laboratory” system, which can be arbitrarily defined. During the simulation, all energies and lengths are expressed in eV and cm, respectively.

PENELOPE has been structured in such a way that a particle track is generated as a sequence of free flights or “jumps”; at the end of each jump, the particle suffers an interaction with the medium (a “knock”) where it loses energy, changes its direction of flight and, in certain cases, produces secondary particles. Electron-photon showers are simulated by successively calling the following subroutines:

Page 120: PENELOPE, and algorithm and computer code for Monte Carlo ...

104 Chapter 5. The simulation package PENELOPE

SUBROUTINE CLEANS Initializes the secondary stack.

SUBROUTINE START Forces the following event to be a soft artificial one. This subroutine must be called before starting a new primary or secondary track and also when a track crosses an interface. Invoking START is strictly necessary only for electrons and positrons; for photons this subroutine has no physical effect. However, it is advisable to call START for any kind of particle since it checks whether the energy is within the expected range, and can thus help to detect bugs in the MAIN program.

SUBROUTINE JUMP Determines the length DS of the step to the following event.SUBROUTINE KNOCK Simulates the following event, computes new energy and direction

of movement, and stores the initial states of the generated secondary particles, if

any.

SUBROUTINE SECPAR(LEFT) Sets the initial state of a secondary particle and removes it from the secondary stack. The output value of LEFT is the number of secondary particles that remained in the stack at the calling time.

The sequence of calls to generate a random track is independent of the kind ofparticle that is being simulated. The generation of random showers proceeds as follows(see figure 5.1):

(i) Set the initial state of the primary particle, i.e. assign values to the state variables

KPAR, E, r = (X,Y, Z), d = (U, V, W), IBODY and MAT, the body and material where the particle moves.

(ii) CALL CLEANS to initialize the secondary stack.

(iii) CALL START to initialize the simulation of a track.(iv) CALL JUMP to generate the path length DS to the following event.

(v) Compute the position of the following event:• If the track has crossed an interface, stop the particle at the position where

the track intersects the interface, and shorten the step length DS accordingly. Change to the new material (the one behind the interface) by redefining the variables IBODY and MAT.When the particle escapes from the system, the simulation of the track has been finished; increment counters and go to step (vii).Go to step (iii).

(vi) CALL KNOCK to simulate the following event.

• If the energy is less than EABS (KPAR), end the track, increment counters and go to step (vii).

• Go to step (iv).(vii) CALL SECPAR(LEFT) to start the track of a particle in the secondary stack (this

particle is then automatically removed from the stack).

• If LEFT>0, go to step (iii). The initial state of a secondary particle has already

been set.

• If LEFT=0, the simulation of the shower produced by the primary particle has been completed. Go to step (i) to generate a new primary particle (or leave the simulation loop after simulating a sufficiently large number of showers).

Page 121: PENELOPE, and algorithm and computer code for Monte Carlo ...

5.1. Simulating with PENELOPE 105

Initialize PENELOPE

Start a new shower

Initial state

^ Does the track cross an interface?

Gone?

«( LEFT>0? y

^ N<NT0T? )>

N=N+1

CALL JUMP

CALL KNOCK

CALL START

CALL CLEANS

r + DS dr + DS d

CALL SECPAR(LEFT)

Change to new body

CALL PEINITC...) N=0

Modify DS to end the step at the first interface

KPAR, E, r=(X,Y,Z), d=(U,V,W)

IBODY, MAT

Figure 5.1: Flow diagram of the MAIN program for simulating electron-photon showers with

PENELOPE.

Page 122: PENELOPE, and algorithm and computer code for Monte Carlo ...

106 Chapter 5. The simulation package PENELOPE

Subroutines JUMP and KNOCK keep the position coordinates unaltered; the positions of successive events have to be followed by the MAIN program (by performing a displacement of length DS along the direction of movement after each call to JUMP). The energy of the particle is automatically reduced by subroutine KNOCK, after generating the energy loss from the relevant probability distribution. KNOCK also modifies the direction of movement according to the scattering angles of the simulated event.

In order to avoid problems related with possible overflows of the secondary stack, when a secondary particle is produced its energy is temporarily assumed as locally deposited (the deposited energy in each event is given by the variable DE in common block TRACK). Hence, the energy E of a secondary must be subtracted from the corresponding dose counter when the secondary track is started. Occasional overflows of the secondary stack are remedied by eliminating the less energetic secondary electron or photon in the stack1; positrons are not eliminated since they will eventually produce quite energetic annihilation radiation. As the main effect of secondary particles is to spread out the energy deposited by the primary, the elimination of the less energetic secondary electrons and photons does not invalidate local dose calculations.

It is the responsibility of the user to avoid calling subroutines JUMP and KNOCK with energies outside the interval (EARS (KPAR) ,EMAX). This could cause improper interpola­tion of the cross sections. The simulation is aborted (and an error message is printed in unit 6) if the conditions EARS (KPAR) <E<EMAX are not satisfied when a primary or secondary track is started (whenever subroutine START is called at the beginning of the track).

Notice that

(1) PENELOPE uses DOURLE PRECISION arithmetic for all real quantities.

(2) The MAIN program must include the following three common blocks:-*■ COMMON/TRACK/E ,X,Y,Z,U, V,W, WGHT ,DS,DE, KPAR, IRODY.MAT, ICOL—> COMMON/ARSEN/EARS (3) ... Absorption energies.

—» C0MM0N/RSEED/ISEED1, ISEED2 ... Random number generator seeds.

Owing to the long execution time, the code, will usually be run in batch mode. It is advisable to limit the simulation time rather than the number of tracks to be simulated, since the time required to follow each track is difficult to predict. To this end, one can link a clock routine and stop the simulation after exhausting the allotted time.

Variance reduction methods are not contemplated in the simulation routines. Split­ting and Russian roulette do not require changes in PENELOPE; the necessary manip­ulations on the numbers and weights WGHT of particles can be done in the MAIN program. Particles resulting from splitting can be stored in the secondary stack by invoking sub­routine STORES —see the PENELOPE source file. Interaction forcing implies changing the inverse mean free paths of the forced interactions and, at the same time, redefining the weights of the generated secondary particles. In principle, it is possible to do in­teraction forcing from the MAIN program by manipulating the interaction probabilities, that are made available through COMMON/JUMCOL/. These manipulations are performed

1The control, and required modifications, of the secondary stack are performed by PENELOPE.

Page 123: PENELOPE, and algorithm and computer code for Monte Carlo ...

5.2. Planar geometries 107

automatically by calling the auxiliary subroutines JUMPF and KNOCKF, instead of JUMP and KNOCK —see the source file.

5.2 Planar geometries

The set of FORTRAN source files includes a MAIN program, named PENLAYER, that simu­lates electron-photon showers in multilayered planar structures, consisting of up to 10 layers of 3 different materials (these values can be increased by modifying the param­

eters MAXLAY and MAXMAT in the source files PENLAYER.FOR and PENELOPE.FOR). The laboratory reference frame is chosen in such a way that the sample is limited by the

planes z = 0 and z = X); U, where U is the thickness of the z-th layer (see figure 5.2).

Z vV

h / #2

tix © f 11 ,

Lg/

Source «

Figure 5.2: Planar geometry.

Primary particles (electrons, photons or positrons) are assumed to be emitted from a plane source at z = zq > 0; the polar direction cosine of the initial direction is uniformly sampled in a given interval (cos 0i, cos O2) and axial symmetry of the primary beam about the z-axis is assumed. For instance, an isotropic source corresponds to 6\ — 0, 62 = 180 deg; a beam of primary particles impinging normally on the sample along the z-axis corresponds to 9i = 62 = 0. The initial energy Eq of primary particles is sampled from a normal distribution with given mean and half width at half maximum.

Particles leaving the “front” (z = 0) and “back” (z = surfaces of the sam­ple with energies greater than the absorption energy EARS (KPAR) are referred to as backscattered and transmitted particles, respectively. Notice that, as both the source and the sample are axially symmetrical about the z-axis, the same holds for the simu­lated spatial distributions. The particle flux .at any plane perpendicular to the z-axis is also symmetrical about this axis. Instructions on the use of PENLAYER are given as comments in the source file.

PENLAYER provides very detailed information about radiation transport in matter, the output file contains a self-explanatory report of the simulation results, which includes:

(i) Fractions of primary particles that are transmitted, backscattered and absorbed and a number of average quantities (track length within the sample; number of

Page 124: PENELOPE, and algorithm and computer code for Monte Carlo ...

108 Chapter 5. The simulation package PENELOPE

events of each kind per particle; energy, direction and lateral displacement of particles that leave the sample, etc.).

(ii) Energy distributions of transmitted and backscattered primary particles.(iii) Angular distributions of transmitted and backscattered particles.(iv) Depth-dose distribution, radial dose distribution and depth distribution of de­

posited charge for each layer in the sample.

This program has been intensively used during the last two years to analyze the reliability of PENELOPE. It has been applied to a variety of experimental situations, covering a wide energy range. Benchmark comparisons with experimental data have been published elsewhere (Bard et ah, 1995; Sempau et ah, 1996).

5.3 Quadric geometry package

In simulations of high-energy photon transport, complex geometries can be handled by means of relatively simple methods, which do not require control of interface crossings (see e.g. Snyder et ah, 1969). Unfortunately, similar techniques are not applicable to electron and positron transport, mainly because these particles have much shorter track lengths and, hence, the transport process is strongly influenced by inhomogeneities of the medium. With the analogue simulation scheme adopted in PENELOPE, it is necessary to determine when a particle track crosses an interface, not only for electrons and positrons but also for photons. To facilitate the programming work, a FORTRAN 77 geometry package, called PENGEOM, has been developed.

The irradiated material system consists of a number of homogeneous bodies, defined by their composition (material) and limiting surfaces. Notice that separate bodies may have the same composition. For practical reasons, all limiting surfaces are assumed to be quadrics defined by the implicit equation

.E(x,y,.z) = Axxx 4- Axyxy 4- Axzxz -(- Ayyy 4- Ay^yz 4- Azzz

4* Axx 4- Ayy 4- Azz 4- Aq = 0, (5.2)

which includes planes, pairs of planes, spheres, cylinders, cones, ellipsoids, paraboloids, hyperboloids, etc. Positions are referred to the laboratory coordinate system and all lengths are in cm.

In practice, limiting surfaces are frequently known in “graphical” form and it may be very difficult to obtain the corresponding quadric parameters. Try with a simple example: calculate the parameters of a circular cylinder of radius R such that its sym­metry axis goes through the origin and is parallel to the vector (1,1,1). To facilitate the definition of the geometry, each quadric surface can be specified either through its implicit equation or by means of its reduced form, which is easily visualized, and a few simple geometrical transformations.

A reduced quadric is defined by an expression of the form

EX#, Z/, z) = A®2 4- Az/2 4- Az2 4- Az 4- A = 0, (5.3)

Page 125: PENELOPE, and algorithm and computer code for Monte Carlo ...

5.3. Quadric geometry package 109

where the coefficients (indices) Ii to I5 can only take the values —1, 0 or 1. Notice that reduced quadrics have central symmetry about the 2-axis, i.e. Fr(—x,—y,z) = Fr(x,y,z). The possible (real) reduced quadrics are given in table 5.1.

Table 5.1: Reduced quadrics.

Reduced form Indices Quadric

2-1 = 0 0 0 0 1 -1 planez2 - 1 = 0 0 0 1 0 -1 pair of parallel planesx2 + y2 -t- z2 — 1 =0 1 1 1 0 -1 spherex2 + y2 — 1 = 0 ' 1 1 0 0 -1 cylinderx2 + y2 — z2 = 0 1 1 -1 0 0 conex2 — y2 — 1=0 ’ 1 -1 0 0 -1 hyperbolic cylinderx2 + y2 — z2 — 1 =0 1 1 -1 0 -1 one sheet hyperboloidx2 + y2 — z2 + 1 =0 1 1. -1 0 1 two sheet hyperboloidO

IIN1H 1 0 0 -1 0 parabolic cylinderx2 + y2 — z = 0 1 1 0 -1 0 paraboloidx2 — y2 — z = 0 1 -1 0 -1 0 hyperbolic paraboloid... and permutations of x, y and z that preserve the central symmetry with respect to the z-axis.

A quadric is obtained from the corresponding reduced form by applying the following transformations (in the quoted order):

(i) An expansion along the directions of the axes, defined by the scaling factors X-SCALE= a, Y-SCALE= b and Z-SCALE= c. The equation of the scaled quadric is

&(%, y, 2) = A + & 0)' + + 4, = o. (5.4)

Thus, for instance, the reduced sphere transforms into an ellipsoid with semiaxes equal to the scaling factors.

(ii) A rotation, defined through the Euler angles OMEGA, THETA and PHI, which spec­ify a sequence of rotations about the coordinate axes: first a rotation of angle OMEGA about the 2-axis, followed by a rotation of angle THETA about the y-axis and, finally, a rotation of angle PHI about the 2-axis. Notice that rotations are active; the coordinate axes remain fixed and only the quadric surface is rotated. A positive rotation about a given axis would carry a right-handed screw in the positive direction along the axis. Positive (negative) angles define positive (nega­tive) rotations. The global rotation transforms a plane perpendicular to the 2-axis into a plane perpendicular to the direction with polar and azimuthal angles THETA and PHI, respectively. The first rotation R(z, OMEGA) has no effect when the initial (expanded) quadric is symmetric about the 2-axis.

Page 126: PENELOPE, and algorithm and computer code for Monte Carlo ...

110 Chapter 5. The simulation package PENELOPE

(iii) A shift, defined by the components of the displacement vector (X-SHIFT, Y-SHIFT, Z-SHIFT).

Thus, a quadric is completely specified by giving the set of indices (/i, I2, I3, h, h), the scale factors (X-SCALE, Y-SCALE, Z-SCALE), the Euler angles (OMEGA, THETA, PHI) and the displacement vector (X-SHIFT, Y-SHIFT, Z-SHIFT). Any quadric surface can be expressed in this way.

A point with coordinates (zo, %/o, zo) is said to be inside a surface F(x,y,z) = 0 if F{x0, t/o, z0) < 0, and outside it if F(x0, yo, z0) > 0. A quadric surface divides the space into two exclusive regions that are identified by the sign of F(x,y,z), the surface side pointer. A body can be defined by its limiting quadric surfaces and corresponding side pointers (+1 or —1). Previously defined bodies can also be used to delimit a new body; this is very convenient when the new body contains inclusions or when it is penetrated by other bodies. However, the use of limiting bodies may lengthen the calculation (see below). Generally, it is more effective to split a complex body into simpler parts that can be defined by using only their limiting surfaces.

The geometry is defined from the input file (UNIT=5). In principle, this may permit simulation of different geometries by using the same main program. The input file consists of a number of data sets, which define the different elements (surfaces or bodies). A data set starts and ends with a separation line filled with zeros. The first line after each separation line, must start with one of the defining 8-character strings ’SURFACE-’,’BODY------’ or ’END------- ’ (here, blank characters are denoted by they are essential!).Informative text (as many lines as desired) can be written at the beginning of thefile, before the first separation line. A line starting with the string ’END------- ’ after aseparation line discontinues the reading of geometry data. Each element is identified by its type, surface or body, and a label with an INTEGER*2 value. Although the element label can be given an arbitrary value (—9 to 99) in the input file, PENGEOM redefines it so that surfaces and bodies are consecutively numbered. Notice that in the definition of a body we can only use surfaces and bodies that have been previously defined.

The format of the data set of a surface defined in reduced form is the following: 0000000000000000000000000000000000000000000000000000000000000000 SURFACE (12) TEXT DESCRIBING THE SURFACE ...INDICES=(I2,12,12,12,12), NUMBER OF PARAMETERS=(12)X-SCALE=( E22.15 ,12) (DEFAULTS. 0)

Y-SCALE=( E22.15 ,12) (DEFAULTS. 0)

Z-SCALE=( E22.15 ,12) (DEFAULTS. 0)

0MEGA=( E22.15 ,12) DEG (DEFAULTED.0)THETA=( E22.15 ,12) DEG (DEFAULTS. 0)

PHI=( E22.15 ,12) RAD (DEFAULTED.0)

X-SHIFT=( E22.15 ,12) (DEFAULTED.0)

Y-SHIFT=( , E22.15 ,12) (DEFAULTS. 0)

Z-SHIFT=( E22.15 ,12) (DEFAULT=0.0)

0000000000000000000000000000000000000000000000000000000000000000• Quantities must be written within the parentheses, in the specified format. All

lengths are in cm, angles can be given in either degrees (DEG) or radians (RAD). When angles are in degrees, it is not necessary to specify the unit.

Page 127: PENELOPE, and algorithm and computer code for Monte Carlo ...

5.3. Quadric geometry package 111

• Surface parameters are optional and can be entered in any order. Default values are assigned to parameters not defined in the input file. Thus, to define an elliptic cylinder centered on the z-axis, only two parameters are required.

• The 12 value following each parameter must be set equal to zero to make the parameter value effective. When this field contains a positive integer IP, the parameter is set equal to the value stored in the IP-th component of the array PARINP, an input argument of subroutine GEOMIN (see below). This permits the user to modify the geometry parameters from the MAIN program.

Limiting surfaces can also be defined in implicit form. When a quadric surface is defined in this way, the indices must be set to zero; this switches the reading subroutine GEOMIN to implicit mode. The format of an implicit surface data set is

0000000000000000000000000000000000000000000000000000000000000000 SURFACE (12) TEXT DESCRIBING THE SURFACE ...INDICES=( 0, 0, 0, 0, 0), NUMBER OF PARAMETERS=(12) •

AXX=( E22.15 ,12) (DEFAULTED.0)AXY=( E22.15 ,12) (DEFAULTS. 0)AXZ=( E22.15 ,12) (DEFAULTS. 0)AYY=( E22.15 ,12) (DEFAULTED.0)AYZ=( E22.15 ,12) (DEFAULTED.0)AZZ=( E22.15 ,12) (DEFAULTS. 0)

AX=( E22.15 ,12) (DEFAULTED.0)AY=( E22.15 ,12) (DEFAULTS. 0)AZ=( E22.15 ,12) (DEFAULTED.0)A0=( E22.15 ,12) (DEFAULTED.0)

0000000000000000000000000000000000000000000000000000000000000000

• Quantities must be written within the parentheses, in the specified format. All lengths are in cm.

• Surface parameters are optional and can be entered in any order. The default value 0.0 is assigned to parameters not defined in the input file.

• The 12 value following each parameter has the same meaning as above; it must be set equal to zero to make the parameter value effective. Otherwise the parameter value is replaced with the corresponding component of the array PARINP (see below).

The format of a body data set is

0000000000000000000000000000000000000000000000000000000000000000 BODY (12) TEXT DESCRIBING THE BODY ...MATERIAL(12), NUMBER OF LIMITING ELEMENTS=(I2)SURFACE (12), SIDE P0INTER=(I2)SURFACE (12), SIDE P0INTER=(I2) ...BODY (12)BODY (12) . . .

0000000000000000000000000000000000000000000000000000000000000000

Page 128: PENELOPE, and algorithm and computer code for Monte Carlo ...

112 Chapter 5. The simulation package PENELOPE

• Quantities must be written within the parentheses, in the specified format.• The indicator of each material (2nd line) must agree with the convention adopted

in PENELOPE. Void inner volumes can be described as material bodies with Material set.to o.

• A line is required to define each limiting surface, with its side pointer, and each limiting body.

The following is an example of a geometry definition file:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSPHERE OF 5 CM RADIUS WITH A CUBIC HOLE OF 2 CM SIDE, BOTH CENTERED AT THE ORIGIN. THE CUBE IS ROTATED 90 DEG ABOUT THE Z-AXIS (A TRANSFORMATION THAT LEAVES THE BODY UNALTERED) TO

EXEMPLIFY THE FORMATS.0000000000000000000000000000000000000000000000000000000000000000 SURFACE ( 1) PLANES X=+l,-l ROTATED 90 DEG ABOUT THE Z-AXIS INDICES3( 1, 0, 0, 0,-1), NUMBER OF PARAMETERS=( 1)

0MEGA=( 90.0 ,0) DEG0000000000000000000000000000000000000000000000000000000000000000 SURFACE ( 2) PLANES Y=+l,-l ROTATED 90 DEG ABOUT THE Z-AXIS INDICES=( 0, 1, 0, 0,-1), NUMBER OF PARAMETERS=( 1)

0MEGA=( 90.0 ,0)

0000000000000000000000000000000000000000000000000000000000000000 SURFACE (33) PLANES Z=+l,-l (IMPLICIT FORM)INDICES=( 0, 0, 0, 0, 0), NUMBER OF PARAMETERS=( 2)

AZZ=( 1.0 ,0)

A0=(-1.0 , 0)0000000000000000000000000000000000000000000000000000000000000000 BODY ( 1) VOID CUBEMATERIAL( 0), NUMBER OF LIMITING ELEMENTS3( 3)SURFACE ( 1), SIDE P0INTER=(-1)SURFACE ( 2), SIDE P0INTER=(-1)SURFACE (33), SIDE POINTER3(-1)

0000000000000000000000000000000000000000000000000000000000000000 SURFACE (24) SPHERE. R=5INDICES3( 1, 1, 1, 0,-1), NUMBER OF PARAMETERS3( 3)

, 0)

, o), 0)

0000000000000000000000000000000000000000000000000000000000000000 BODY ( 2) SPHERE. R=5MATERIAL( 1), NUMBER OF LIMITING ELEMENTS3( 2)SURFACE (24), SIDE P0INTER=(-1)BODY ( 1)

0000000000000000000000000000000000000000000000000000000000000000 END 0000000000000000000000000000000000000000000000000000000

X-SCALE=( 5.0 Y-SCALE3( 5.0

Z-SCALE=( 5.0

Page 129: PENELOPE, and algorithm and computer code for Monte Carlo ...

5.3. Quadric geometry package 113

PENGEOM uses a brute force method to locate a point, i.e. to determine the body that contains it (see below). It is assumed that bodies are defined in “ascending”, exclu­sive order so that previously defined bodies effectively delimit the new ones. However, in order to speed up the calculations, the bodies that actually limit the one being defined must be explicitly declared. PENGEOM runs faster when bodies are completely defined by their limiting surfaces, but this is not always possible or convenient for the user. For instance, to describe a small steel cube immersed in a big spherical water phantom we must define the inner cube first, followed by the definition of the water sphere with the cubic hole (see the previous example). Evidently, it is impossible to define the hollow sphere (as a single body) by means of its limiting quadric surfaces. Notice that all the elements (surfaces and bodies) that actually limit a given body must be explicitly declared; omission of a limiting body may cause inconsistencies.

■ The package PENGEOM consists of the following subroutines; GEOMIN, ROTSHF, LOCATE and STEP. ROTSHF is called internally, it rotates and shifts a quadric given in implicit form. The subroutines to be called from the MAIN progam are:

• SUBROUTINE GEOMIN(PARINP,NPINP,NMAT,NBOD)Reads geometry data from the input file and initializes the geometry package.

Input arguments:PARINP ... Array containing optional parameters, which may replace the ones

entered from the input file. This array must be declared in the MAIN program, with a minimum dimension of 2, even if NPINP = 0.

NPINP ... Number of parameters defined in PARINP (positive).

Output arguments:NMAT ... Number of different materials in full bodies (excluding void regions). NBOD ... Number of defined bodies.

• SUBROUTINE LOCATEDetermines the body that contains the point with coordinates (X, Y, Z).

Input values (through COMMON/TRACK/):X, Y, Z ... Particle position coordinates.U, V, W ... Direction cosines of the direction of movement.

Output values (through COMMON/TRACK/):IBODY ... Body where the particle moves.MAT ... Material in IBODY. The output MAT = 0 indicates that the particle is in a

void region. •

• SUBROUTINE STEP(DSEF,NCROSS)Used in conjunction with PENELOPE, this subroutine performs the geometrical part of the track simulation. The particle starts from the point (X,Y,Z) and pro­ceeds to travel a length DS in the direction (U,V,W) within the material where it

moves. STEP displaces the particle and stops it at the end of the step, or just after entering a new material. The output value DSEF is the distance travelled within the initial material. If the particle enters a void region, STEP continues the

Page 130: PENELOPE, and algorithm and computer code for Monte Carlo ...

114 Chapter 5. The simulation package PENELOPE

particle track, as a straight segment, until it penetrates a material body or leaves the system (the path length through void regions is not included in DSEF). When the particle arrives from a void region (MAT = 0), it is stopped after entering the first material body and DSEF is set equal to 0. The output value MAT = 0 indicates that the particle has escaped from the system.

Input-output values (through COMMON/TRACK/):X, Y, Z ... Input: coordinates of the initial position.

Output: coordinates of the final position.U, V, W ... Direction cosines of the displacement. They are kept unaltered.DS ... Path length to be travelled (unaltered).IBODY ... Input: initial body, i.e. the one that contains the initial position.

Output: final body.MAT ... Material in body IBODY (automatically changed when the particle crosses

an interface).

Output arguments:DSEF ... Travelled path length before leaving the initial material or completing

the jump (less than DS if the track crosses an interface).NCROSS ... Number of interface crossings (=0 if the particle does not leave the

initial material, greater than 0 if the particle enters a new material).

The geometry package works as follows. Given a body KB and a surface KS, the quantity IFLAG(KB,KS) is defined as

IFLAG(KB,KS) = 1, if KS is a limiting surface of KB and KB is inside KS (i.e. side pointer = — 1),= 2, if KS is a limiting surface of KB and KB is outside KS (i.e. side pointer = +1),= 3, if KS does not directly limit KB, but appears in the definition of one of the bodies that limit KB,= 4, otherwise.

To locate a point (X,Y,Z), subroutine LOCATE computes the side pointers (i.e. the sign of F(X,Y, Z)) for all surfaces. Then it explores the bodies in ascending order looking for the first one that fits the given side pointers. After the body IBODY which contains the initial position of the particle has been identified, we can call subroutine STEP to move the particle a certain distance DS, dictated by PENELOPE, along the direction (U,V,W). STEP starts by checking whether the track segment crosses any of the surfaces that limit IBODY. If after travelling the distance DS the particle remains within the same material, DSEF is set equal to DS and control is returned to the main program. Otherwise, STEP stops the particle just after entering a new material, or when it leaves the system (i.e. when the straight trajectory does not intersect a non-void body after leaving the initial body; in this case the value MAT=0 is returned). It is worth noting that the surfaces KS that define the initial body are those with IFLAG(IBODY,KS)=1 and 2 (proper limiting surfaces) or =3 (limiting surfaces of limiting bodies). Although it may happen that a surface with IFLAG=3 does not directly limit the body, subroutine STEP cannot know it from the information at hand and, consequently, all surfaces with IFLAG=3 are analyzed

Page 131: PENELOPE, and algorithm and computer code for Monte Carlo ...

5.4. Installation 115

in each move. It is clear that, to reduce the number of surfaces to be considered, we should minimize the number of bodies used to delimit other bodies.

Each time a track enters a new material, STEP stops the particle at the interface and tells us that the material in which the particle is moving has changed (i.e. the output value of MAT is different from the input one). There is then a risk that, owing to numerical truncation errors, STEP places the particle on the wrong side of the interface (i.e. the track is stopped just before the interface). If this occurs, the program could go into an endless loop in which STEP repeatedly tries to move the particle a very small distance (of the order of 10"15 cm) towards the interface but does not succeed, i.e. the particle is trapped at the interface. To avoid this collapse of the track, after each interface crossing, STEP applies an additional small displacement (= 10-8 cm) in the direction of movement, which is physically irrelevant and sufficient to compensate for the effect of truncation errors. The same strategy is used in subroutine LOCATE: when the particle is too close to an interface, it is moved 10-7 cm along the surface gradient direction or its opposite, depending on whether the particle approaches or leaves the interface. This effectively eliminates the risk of particle trapping at the interfaces. Notice that the direction of movement (U,V,W) must be defined before calling LOCATE.

Before starting the simulation, the user should make sure that the geometry has been defined correctly. To this end, subroutine GEOMIN writes a detailed geometry report in the output file (UNIT=6), which includes the coefficients of all quadric surfaces and the values of IFLAG(KB,KS) for all bodies and surfaces. The program is stopped when a clearly incorrect input datum is found, the wrong quantity appears in the last printed line. Notice that surfaces and bodies are renumbered in increasing order; the label used to identify each element during simulation is the one in the output geometry report, which may differ from the value in the input file!

As a practical example of simulation with complex geometries, the FORTRAN source files include a main program named PENDOSES that generates electron-photon showers using PENELOPE and PENGEOM. For details on the structure of PENDOSES, and the formats of the input data file, see the comments in the source file PENDOSES.FOR. This program computes the average energy deposited in each body by primary particles emitted from a point source. With minor modifications, it also provides the probability distribution of the energy deposited in selected bodies or groups of bodies. It is a simple exercise to introduce a spatial grid, and the corresponding counters, and tally spatial dose distributions. Any future user of PENELOPE should become familiar with the programming details of PENDOSES before attempting her/his own application of PENELOPE.

5.4 Installation

The FORTRAN source files of PENELOPE, the auxiliary programs and the database are supplied on a single floppy disk, in MS-DOS format, which is available from the authors. Files in the distribution disk have been compressed using the program GZIP (free software), which is also included. The directory structure and contents of the

Page 132: PENELOPE, and algorithm and computer code for Monte Carlo ...

116 Chapter 5. The simulation package PENELOPE

diskette are the following:

• Subdirectory PROGRAMS. It contains the following 13 files:

PENELOPE. INF ... Abridged manual with general information.PENELOPE. FOR ... Simulation subroutine package.

MATERIAL. FOR ... Main program to generate material data files.

PENGEOM. FOR ... Quadric geometry subroutine package (handles systems with up to 60 surfaces and 40 bodies).

PENFORCE.FOR ... Interaction forcing subroutines.

PENLAYER. FOR ... Main program for multilayer geometries and axially symmetric beams.

PENLAYER. IN ... Input data file of PENLAYER (example).

PENLAYER.MAT ... Material data file, read by PENLAYER (example).

PENDOSES.FOR ... Main program for arbitrary quadric geometries. Computes the average energy deposited in each body by primary particles emitted from a point source.

PENDOSES.IN ... Input data file of PENDOSES (example).PENDOSES.MAT ... Material data file, read by PENDOSES (example).

PENDOSES.GEO ... Geometry definition file, read by PENDOSES (example).

TIMER.FOR ... Clock subroutine, based on the subroutine GETTIM of Microsoft FORTRAN (version 5.0). It gives the execution time in seconds.

• Subdirectory PENDBASE containing 187 files:

IDLIST.TAB ... List of names and identifying numbers of the materials included in the file COMPDATA.TAB.

COMPDATA.TAB ... Contains physical and composition data for 279 materials of radiological interest.

PENEPZZ .TAB ... 92 files with electron and positron scattering data for the ele­ments hydrogen (ZZ=01) to uranium (ZZ=92).

PENPHZZ. TAB ... 92 files with photon interaction data for the elements ZZ= 01 to 92.

PENINCH.TAB ... One-electron Compton profiles for pz = 0 of the elements ZZ= 01 to 92.

To get the executable file of MATERIAL, compile and link the files MATERIAL.FOR and PENELOPE.FOR. This executable file must be placed and run in the same subdirectory as the database files (PENDBASE); to run it from a different directory, edit the source file MATERIAL. FOR and modify the path of the database files.

The executable files of PENLAYER and PENDOSES are obtained by compiling and linking the following groups of source files:

Page 133: PENELOPE, and algorithm and computer code for Monte Carlo ...

5.4. Installation 117

PENLAYER: PENLAYER.FOR, PENELOPE.FOR, TIMER.FORPENDOSES: PENDOSES.FOR, PENELOPE.FOR, PENGEOM.FOR, TIMER.FOR

The programs are written in standard FORTRAN 77 language, so that they should run on any computer. The only exception is the clock subroutine TIMER.FOR, which must be adapted to your computer’s compiler. Good luck!

Page 134: PENELOPE, and algorithm and computer code for Monte Carlo ...

118 Chapter 5. The simulation package PENELOPE

Page 135: PENELOPE, and algorithm and computer code for Monte Carlo ...

Appendix A

Numerical tools

A.l Cubic spline interpolation

In this section we follow the presentation of Maron (1982). Suppose that a function /(z) is given in numerical form, i.e. as a table of values

fi = f(xi) (z = (A.l)

The points (knots) z< do not need to be equispaced, but we assume that they are in (strictly) increasing order

x\< X2< ••• < zjv- (A.2)

A function y(z) is said to be an interpolating cubic spline if

1) It reduces to a cubic polynomial within each interval [z,-, z,-+1], i.e. if zt- < z < z,+i

ip(x) = a,- + biX + c,z2 + d{X3 = p,-(z) (z = 1,..., N — 1). (A.3)

2) The polynomial p,-(z) matches the values of /(z) at the endpoints of the z-th interval,

Pi(xi) = /i, Pifai+i) = fi+i (z = 1,..., N - 1), (A.4)

so that <p(z) is continuous in [zi,zjv].

3) The first and second derivatives of <p(z) are continuous in [zi, z^r]

Pi^i+l) = Pi+i(^'«+i) (z = 1,..; , N - 2), (A.5)

Pi(xi+i) = Pi+i (*»’+i) (z = 1,..., AT — 2). (A.6)

Consequently, the curve y = y(z) interpolates the table (A.l) and has a continuously turning tangent.

To obtain the spline coefficients a,-, Cj, d; (z = 1,..., N — 1) we start from the fact that ip"(x) is linear in [z,-,z,-+i]. Introducing the quantities

hi = z,-+1 — Xi (z = 1,..., N — 1) (A.7)

Page 136: PENELOPE, and algorithm and computer code for Monte Carlo ...

120 Appendix A. Numerical tools

ando-i = ip"(xi) (i = (A.8)

we can write the obvious identity

p"{x) = cr~^r—- + eri+iX-X- (i = 1). (A.9)fix tlx

Notice that z,-+i must be larger than z,- in order to have hi > 0. Integrating eq. (A.9) twice with respect to x, gives for i = 1,..., N — 1

Pi(x) = <r>{Xi+i~X)Z + M* - %) + - x), (A.10)U tlx D/2»t

where A,- and Bi are constants. These can be determined by introducing the expression (A.10) into eqs. (A.4), this gives the pair of eqs.

hi+ Bihi = fi

hiand (TiA-i-r + A{hi = fi+i. (A.ll)

Finally, solving for A,- and B,- and substituting the result in (A.10), we obtain

Xi+l X"T Jt

(a; - z,-)3

Pi(s) = +1,— — - “ x)tl{

+ o-.'+i6 hi

— hi(x — X{) + fi+1

A,"z — Z;

(A.12)

hi

To be able to use <p(x) to approximate /(z), we must find the second derivatives <Ti (* = !,..., N). To this end, we impose the conditions (A.5). Differentiating (A.12) gives

+ T 3(z - z,-)2 L

L hi J 6 hi + hi, (A.13)

wherec yi+1 — y%0{ — , h{ (A.14)

Hence,i / \ h{ hi

Pi\Xi+1) = (Xi— + + Oi, (A.15a)

// \ hi hiPi\Xi) = -<7iy - o-i+i— + bi (A.15b)

and, similarly,/ / \ ^t+1 ^i+1 , c

Pt+lC^i+l) = 2 °"«+2 g + di+l • (A.15c)

Replacing (A.15a) and (A.15c) in (A.5), we obtain

hiOi + 2(hi + hi+i)ai+i + hi+acrt-+2 = 6 {8i+i - d.) (z = 1,..., N - 2). (A.16)

Page 137: PENELOPE, and algorithm and computer code for Monte Carlo ...

A. I. Cubic spline interpolation 121

The system (A.16) is linear in the N unknowns cr; (i = 1,..., N). However, since it contains only N — 2 equations, it is underdetermined. This means that we need either to add two additional (independent) equations or to fix arbitrarily two of the N unknowns. The usual practice is to adopt endpoint strategies that introduce constraints on the behaviour of <p(x) near aq and xjv. An endpoint strategy fixes the values of <Ti and <7jv, yielding an (N — 2) x (N — 2) system in the variables <r,- (i = 2,..., N — 1). The resulting system is, in matrix form,

f H2 h,2 0h,2 Hz hz 0 hz #4

0 0 00 0 0

\ 0 0 0

0 0 0 0 0 0 0 0 0

Hn-z hjy-z 0 h]y—z Hn-2 hjv-2

0 hjtj—2 Hm- 1 )

< cr2 > ( d2 \

^3 Dz

cr4 d4

CTN-3 Dn-z

(TN-2 Dn-2

\ CTN-1 / \ Dn- 1 /

(A.17)

whereHi = 2(/i,_i + hi) (i = 2,..., N — 1) (A.18)

andD2 = 6(<?2 — ^i) — h\CT\

Di = 6(&-&_i) (i = 3,..., AT — 2) (A.19)

DN-1 = 6(5;v-i — 8n~2) — hff-ictn.

(<Ti and ctn are removed from the first and last equations, respectively). The matrix of coefficients is symmetric, tridiagonal and diagonally dominant (the larger coefficients are in the diagonal), so that the system (A.17) can be easily (and accurately) solved by Gauss elimination. The spline coefficients a,-, c,-, dt- (i = 1,... ,N — 1) —see eq.(A.3)— can then be obtained by expanding the expressions (A.12):

di = gjry [cr,a;?+1 — CT{+iX? + 6 (/,£,•+! — /i+i^i)] + (<?«+!— crfa:i+1),

= ^7 l&i+ixl — 1 + 2 (/t+1 — /;)] + (cr,- — crf+1),

Ci = 2^7

* = 6^(<r‘+1_<ri)'

(A.20)

When accurate values of f"{x) are known, the best strategy is to set = f"{xx) andyjv = /"(a^/v), since this will minimize the spline interpolation errors near the endpoints

and %#. Unfortunately, the exact values f"{xx) and /"(xw) are not always available.

The so-called natural spline corresponds to taking <ri = cr^- = 0. It results in ay — ip(x) curve with the shape that would be taken by a flexible rod (such as a draughtman’s spline) if it were bent around pegs at the knots but allowed to maintain its natural (straight) shape outside the interval [asi, rcjv]. Since oi = <7jv = 0, extrapolation of ip(x) outside the interval [xi, x/v] by straight segments gives a continuous function with continuous first and second derivatives (i.e. a cubic spline in [—00,00]).

Page 138: PENELOPE, and algorithm and computer code for Monte Carlo ...

122 Appendix A. Numerical tools

The accuracy of the spline interpolation is mainly determined by the density of knots in the regions where f(x) has strong variations. For constant, linear, quadratic and cubic functions the interpolation errors can be reduced to zero by using the exact values of <xi and <7/v (in these cases, however, the natural spline may introduce appreciable errors near the endpoints). It is important to keep in mind that a cubic polynomial has, at most, one inflexion point. As a consequence, we should have at least a knot between each pair of inflexion points of f(x) to ensure proper interpolation. Special care must be taken when interpolating functions that have a practically constant value in a partial interval, since the spline tends to wiggle instead of staying constant. In this particular case, it may be more convenient to use linear interpolation.

Obviously, the interpolating cubic spline <p(x) can be used not only to obtain inter­polated values of /($) between the knots, but also to calculate integrals such as

f /(x) da: ~ da;, X\ < a and b < a;#, (A.21)J a Ja

analytically. It is worth noting that derivatives of ip(x) other than the first one may differ significantly from those of f(x).

To obtain the interpolated value <p(xc) —see eq. (A.3)— of f(x) at the point xc, we must first determine the interval [a;,-, a:t+i] that contains the point xc. To reduce the effort to locate the point, we use the following binary search algorithm:

(i) Set i = 1 and j = N.

(ii) Set k = [(* + i)/2].

(iii) If Xk < xc, set i = k\ otherwise set j = k.

(iv) If j — i > 1, go to step (ii).

(v) Deliver i.

Notice that the maximum delivered value of i is N — 1.

A.2 Numerical quadrature

In many cases, we need to calculate integrals of the form

[Bf(z)dz, (A.22)JA

where the integrand is coded as an external function subprogram, which gives nominally exact values. These integrals are evaluated by using the FORTRAN 77 subroutine GABQ, which implements the twenty-point Gauss method with an adaptive bipartition scheme to allow for error control. This subroutine is comparatively fast and is able to deal even with functions that have integrable singularities located at the endpoints of the interval [A, B], a quite exceptional feature.

Page 139: PENELOPE, and algorithm and computer code for Monte Carlo ...

A,2. Numerical quadrature 123

A.2.1 Gauss integration

We use the twenty-point Gauss formula (see e.g. Abramowitz and Stegun, 1974), given by

with

[ f{z) dz - J2Wif(Zi)Ja 1 ;=i

(A.23)

b — a b + aZi= 2 *i+ 2 ' (A.24)

The abscissa x,- (—1 < x,- < 1) is the z-th zero of the Legendre polynomial P2o(®), the weights W{ are defined as

2(1 - x?) [P{Q{xi)}2

(A.25)

The numerical values of the abscissas and weights are given in table A.l. The difference between the exact value of the integral and the right-hand side of eq. (A.23) is

A2o(6-or(20!)4

41 (401)3 J W(A.26)

where £ is a point in the interval [a, 6].

Table A.l: Abscissas and weights for twenty-point Gauss integration.

±X{ W{7.65265211334973340-022.2778585114164508D-013.7370608871541956D-015.1086700195082710D-016.3605368072651503D-017.4633190646015079D-018.3911697182221882D-019.1223442825132591D-019.6397192727791379D-019.9312859918509492D-01

1.5275338713072585D-011.4917298647260375D-011.4209610931838205D-011.3168863844917663D-011.1819453196151842D-011.01930119817240440-018.32767415767047490-026.26720483341090640-024.06014298003869410-021.76140071391521180-02

The Gauss method gives an estimate of the integral of f(z) over the interval [a, 6], which is obtained as a weighted sum of function values at fixed points inside the interval. We point out that (A.23) is an open formula, i.e. the value of the function at the endpoints of the interval is never required. Owing to this fact, subroutine GABQ can integrate functions that are singular at the endpoints. As an example, the integral of /(x) = x-1/2 over the interval [0,1] is correctly evaluated. This would not be possible with a method based on a closed formula (i.e. one that calls the function at the interval endpoints).

Page 140: PENELOPE, and algorithm and computer code for Monte Carlo ...

124 Appendix A. Numerical tools

A.2.2 Adaptive bipartition

Subroutine GABQ exploits the fact that the error A20, eq. (A.26), of the calculated integral decreases when the interval length is reduced. Thus, halving the interval and applying the Gauss method to each of the two subintervals gives a much better estimate of the integral, provided only that the function f(x) is smooth enough over the initial interval. Notice that the error decreases by a factor of about 2~40(!).

The algorithm implemented in GABQ is as follows. The integration interval (A, B) is successively halved so that each iteration gives a doubly finer partition of the initial in­terval. We use the term “n-subinterval” to denote the subintervals obtained in the re-th iteration. In each iteration, the integrals over the different n-subintervals are evaluated by the Gauss method, eq. (A.23). Consider that the integral over a given n-subinterval is Si. In the following iteration, this n-subinterval is halved and the integrals over each of the two resulting (n + 1 )-subintervals are evaluated, giving values Sia and Sib- If S[ = Sia + Sib differs from Si in less than the selected tolerance, 5% is the sought value of the integral in the considered n-subinterval; the value is then accumulated and this n-subinterval is no longer considered in subsequent iterations. Each iteration is likely to produce new holes (eliminated subintervals) in the regions where the function is smoother and, hence, the numerical effort progressively concentrates in the regions where f(x) has stronger variations. The calculation ends when the exploration of the interval (A, B) has been succesfully completed or when a clear indication of an anoma­lous behaviour of f[x) is found (e.g. when there is a persistent increase of the number of remaining n-subintervals in each iteration). In the second case an error message is printed in unit 6 and the error code IER=1 is returned to the MAIN program.

Page 141: PENELOPE, and algorithm and computer code for Monte Carlo ...

Appendix B

Kinematics

B.l Basic definitions

Owing to the wide energy range covered by PENELOPE, relativistic kinematics must be used. Let P denote the four-momentum of a particle, i.e.

P = (£c~\ p), (B.l)

where £ and p are the total energy (including the rest energy) and three-momentum respectively and c is the velocity of light in vacuum. The scalar product of four-vectors P and P' is defined by

P-P' = ££'c~2 - p • p'. (B.2)The square of the four-momentum is

P-P = £2c~2 -p2 = m2c2, (B.3)

where m is the rest mass of the particle and p is the magnitude of its three-momentum. From eq. (B.3) it follows that

(cp)2 = £2 — m2c4. (B.4)

For a massive particle (m 0), the kinetic energy E is defined as

E — £ — me2, (B.5)

where me2 is its rest energy. The magnitude of the three-momentum is given by

{cp)2 = E(E + 2mc2) (B.6)

or, in terms of the velocity v of the particle,

p = 7 mv = 7 m(3c, (B.7)

where /? = v/c is the velocity in units of the speed of light and 7 = (1 — /92)-1/2. Using these relations, together with eq. (B.4), we arrive at

2 _ E(E + 2me2) P ~ {E + me2)2 and 7 = 1 +

Eme2' (B.8)

Page 142: PENELOPE, and algorithm and computer code for Monte Carlo ...

126 Appendix B. Kinematics

The three-momentum of a photon (m = 0) with energy £ is

p — £c x. (B.9)

B.2 Two-body reactions

Consider a reaction in which a projectile “1” collides with a target “2” initially at rest in the laboratory frame of reference. We limit our study to the important case of two-body reactions in which the final products are two particles, “3” and “4”. The kinematics of such reactions is governed by energy and momentum conservation.

We take the direction of movement of the projectile to be the z-axis, and set the rr-axis in such a way that the reaction plane (i.e. the plane determined by the three- momenta of particles “1”, “3” and “4”) is the x-z plane. The four-momenta of the projectile, the target and the reaction products are then (see figure B.l)

Pi = (PiC a,0,0,Pi) (B.lOa)

P2 = (m2c, 0,0,0) (B.lOb)

P3 = (£3c-1, pz sin Ozi 0, pz cos d3) (B.lOc)

Pi = (Pic-1, — Pa sin O4,0, p4 cos 64) (B.lOd)

Figure B.l: Kinematics of two-body reactions.

Energy and three-momentum conservation is expressed by the four-vector equation

A + P2 = P3 + Pa- (B.ll)

From this equation, the angles of emergence of the final particles are uniquely determined by their energies. Thus,

m\(? = P4 • Pi = (Pi + P2 — P3) • (Pi + P2 — P3)= Pi • Pi + p2 ' P2 + P3 ' P3 "I" 2PX • P2 — 2Pi • P3 — 2p2 • P3

= m2c2 + m2c2 + rrigC2 -f- 2£iAc 2 — 2 (j£\£zc ^ — P1P3 cos ^3) — 2S2S3C 2,

Page 143: PENELOPE, and algorithm and computer code for Monte Carlo ...

B.2. Two-body reactions 127

and it follows that

cos 03 =m|c4 — m2C4 — 77l2C4 — TTlgC4 + 2£i(£3 — £2) ~h 2£2£3

2 (SI - m$c,)1/2 (£1 - mis')112(B-12)

Clearly, by symmetry, we can obtain a corresponding expression for cos 04 by interchang­ing the indices 3 and 4

cos 04 =m3c4 — m\cA — rajC4 — m2c4 + 2£%(£^ — 62) + 2£2£4

2 (£2 — mfc4)1^ (£4 — mlc4)1^2(B.13)

The different two-body reactions found in Monte Carlo simulation of coupled elec­tron-photon transport are characterized by a single parameter, namely the energy of one of the particles that result from the reaction. The energy of the second particle is determined by energy conservation. Eqs. (B.12) and (B.13) then fix the polar angles, 03

and 04, of the final directions. Explicitly, we have (the notation is the same as the one used in chapters 2 and 3)

• Binary collisions of electrons and positrons with free electrons at rest.

Projectile:Target:Scattered particle: Recoil electron:

Electron or positron Electron

mi — m, Si = E + me2. m2 — m, S2 = me2. m3 = m, S3 = E — W + me2. m4 = m, £4 = PF + me2.

„ (E — W E + 2mc2 V/2C0S 3 V W ^ “ W + 2mc2)

„ AF E + 2mc2 V/2cos94=(b FTwj ■

• Compton scattering of photons by free electrons at rest.

(B.14)

(B.15)

Projectile: Photon mx = 0, Si = E = /c me2.Target: Electron m2 = m, £2 = me2.Scattered photon: m3 = 0, £3 = tS.Recoil electron: m4 = m, £4 = me2 + (1 — r)S.

cos 1i63 = Kk + 1-7)'COS 04 = (/I + 1)

1—T 1/2

k [2 + k(1 — t)]

(B.16)

(B.17)

Page 144: PENELOPE, and algorithm and computer code for Monte Carlo ...

128 Appendix B. Kinematics

• Annihilation of positrons with free electrons at rest.

Projectile: Positron m\ — m, £\ = E + me2 = 7 me2.Target: Electron m2 = m, £2 = me2.Annihilation photons: m3 = 0, £3 = (,{E + 2mc2).

7B4 = 0, £4 = (1 — C)(E + 2mc2).

cos Ss = (j2 - l) 1/2 (7 + 1 - 1/C), (B.18)

cos 04 = (7s - l) 1/2 ^7 + 1 - • (B.19)

B.3 Inelastic collisions of electrons and positrons

Let p and E be the three-momentum and the kinetic energy of the projectile just before an inelastic collision, the corresponding quantities after the collision are denoted by p' and E' = E — W, respectively. Evidently, the maximum energy loss is W = E. The momentum transfer in the collision is q = p — p'. It is customary to introduce the recoil energy Q defined by

Q(Q + 2me2) = (cq)2 = c2 [p2 + p'2 — 2pp' cos 0) , (B.20)

which, in the particular case where the collision is with a free electron at rest, coincides with the recoil energy of the target electron after the collision (cf. eq. (B.6)), i.e. Q = W (if the projectile is an electron we consider it as distinguishable from the target electron).

The kinematically allowed recoil energies are those in the interval Q- < Q < Q+ with end points given by eq. (B.20) with cos 0 = ±1:

Q± = [c2(p ±p')2 + m2c4j ^ —me2

(E{E + 2?nc2)) 1/2

±{{E-W)(E-W + 2mc2))112 + mV j -me2. (B.21)T 2 v/2

Notice that Q+ > W. When If <£, the expression for Q- is unsuitable for numerical evaluation since it involves the subtraction of two similar quantities. In this case it is more convenient to use the approximation

Q- ^W2

2 /32mc2 *

In the non-relativistic limit, these relations simplify to

(B.22)

Q = q2/2m, Q± = [E1'2 ±{E- W)1/2}2. (B.23)

Page 145: PENELOPE, and algorithm and computer code for Monte Carlo ...

Appendix C

Calculation of electron and positron elastic cross sections

In this appendix we describe the methods used to calculate the elastic cross sections and transport cross sections that have been introduced in the database.

Elastic scattering of fast electrons and positrons by neutral atoms can be described by using the static field approximation (Mott and Massey, 1965). In this approximation, the DCS is obtained by solving the partial wave expanded Dirac equation for the motion of the projectile in the electrostatic field of the nucleus screened by the atomic electrons. For projectiles with kinetic energies less than a few keV, charge cloud polarization corrections should be considered, but these have a small effect on the transport cross sections (see e.g. Sal vat et al., 1987b). In this appendix, dcrei/dfZ denotes the DCS per unit solid angle for elastic scattering into the direction fZ = (0, <f>).

Assuming a point nucleus, the scattering potential is given by

V(r) Wr') ^3^,f epe{r }J |r-r'

(C.l)

where Z is the atomic number of the target, Z' (—1 for electrons, +1 for positrons) is the charge of the projectile in units of the elemental charge e and pe(r) is the density of atomic electrons, which is assumed to be spherically symmetric. The most accurate atomic scattering fields available to date are those obtained from self-consistent Hartree- Fock computations. These numerical fields can be closely approximated by means of the following analytical expression

y(r) =Z'Ze2

r

3An exp (~anr/a0),

71=123 A* = (C.2)

where do is the Bohr radius. Here we adopt the atomic analytical potential (C.2) with the parameters determined by Sal vat et al. (1987a) from a fit of the Dirac-Hartree-Fock- Slater (DBFS) field.

PENELOPE simulates elastic collisions by means of the W2D model, which is com-

Page 146: PENELOPE, and algorithm and computer code for Monte Carlo ...

130 Appendix C. Calculation of electron and positron elastic cross sections

pletely determined by the total elastic cross section

oei = J dfi = 27r sin 0 d0, (C.3)

and the first and second transport cross sections are (see eq. (3.3))

01 = J(1 — cos ^)“^ dfi (C.4)

and^ - / 2(1 cos29)dn dn' (C.5)

C.l Partial wave calculations

For projectiles with kinetic energy E up to 100 keV, elastic total cross sections and transport cross sections have been calculated by using the code PWADIR (DIRac Partial Wave Analysis) described by Sal vat and Mayol (1993). In the case of electrons, PWADIR accounts for exchange effects through a local exchange potential, which is added to the static field (C.2). At higher energies, partial wave calculations are still feasible but they are very time consuming, because of the slow convergence of the partial wave series. Moreover, for energies that are higher than a few tens of MeV, finite nuclear size effects may be important and the point-nucleus approximation is not adequate.

C.2 Screened Mott formula/

A convenient method to estimate elastic DCSs at intermediate and high energies (E > Z keV) is provided by the screened Mott formula (Fernandez-Varea et ah, 1993c)

dcrsMdfi

dcrRdQ

Fejt-'q)z l%)|=. (C.6)

The first factor in this formula is the relativistic Rutherford DCS (see e.g. Mott and Massey, 1965)

don _ (2m-jZ'Zt2)2 _ (Z'Ze2\2 1 - 1dfi q4 \ me2 J /34 (1 — cos 0)2’

where m is the electron mass, /3 is the speed of the projectile in units of the velocity of light c and 7 = (1 — /32)-1/2 is the energy of the projectile in units of its rest energy me2. The quantity q is the momentum transfer, which is related to the linear momentum p — 'ymfle and to the polar scattering angle 0 through q = 2psin(0/2). The Rutherford formula describes the scattering of a spinless particle in the Coulomb field

, Z'Ze2r) =-------r (C.8)

Page 147: PENELOPE, and algorithm and computer code for Monte Carlo ...

C.2. Screened Mott formula 131

of a bare point nucleus. The other factors on the right-hand side of eq. (C.6) account for spin, screening and finite nuclear size effects, respectively.

The spin correction R{9) is obtained by considering the case of scattering by the (unscreened) Coulomb field of the nucleus, eq. (C.8). Exact relativistic phase shifts for this field can be calculated analytically (Mott and Massey, 1965) and the DCS, which is known as the unscreened Mott DCS, may be computed with a modest amount of numerical work. We have (Dogget and Spencer, 1956; Sherman, 1956; Vande Putte, 1974)

^ = I/mWI2 + WW. (C.9)

The direct and spin-flip scattering amplitudes /m(0) and gu{6) can be obtained from

fu(0) = (n/p) [-rrvm + G(0)\, (C.10)

5m(0) = o/p) t cos 0)F(0) + (1 - cos 6)G(0)] / sin 0, (C.ll)

where ( = — x//? with % = aZ'Z and a is the fine-structure constant. The complex functions F(9) and G(9) are defined by

F(9) = F0(9) + F1(9) (C.12)

G(9) = G0(9) + G1(9) (C.13)= j^^exp[2iCln(sin(0/2))l

(C.14)

i 00fi(») = % E(->) VDi + (e + 1)PW] ft(cos 6)

1 e=o(C.15)

G0(9) = -iCFo(0)cot2(0/2) (C.16)• °o

t?,(6) = - O-1)' \eD> - (<+l)2Cw Pl(COS0)^ 1=0

(C.17)

exp(-iTrl) P(l - i£) exp(-i?r/)f) P(^ - i£)" ^ + i£ P(^ + i£) * + % % + i£)' (C.18)

where V is the complex gamma function and pt = (l2 — x2)1^2- The unscreened Mott DCS, eq. (C.9), can be given in terms of the functions F(9) and G(9) as (Sherman, 1956)

dcrMdfl

= {h/pf rr2iF(e)r, iGwi+sin2(0/2) cos2 (0/2) (C.19)

The spin correction R{9) is given by

R(9) = dau/dfld (Jr/dfl (C.20)

The computation of R(9) is performed by using the numerical procedure described by Sherman (1956) (see also Vande Putte, 1974). For small scattering angles [9 < 10

Page 148: PENELOPE, and algorithm and computer code for Monte Carlo ...

132 Appendix C. Calculation of electron and positron elastic cross sections

degrees), where the series (C.15) and (C.17) are slowly convergent, the asymptotic formula attributed to Bartlett and Watson (Motz et al., 1964) is used

R{0) = l + 7r/?2CRe T(|-iC) r(i+iQ‘ r(i + iC) r(i-ic). sin(0/2). (C.21)

In eq. (C.6), screening effects are accounted for by the factor [1 — Fe(t 1q)/Z]2, where

71=1

(fi<*n)2(rm„)2 + q2

(C.22)

is the electronic form factor corresponding to the atomic field given by eq. (C.2). This screening correction with t = 1 is identical to the one obtained within the first Born approximation (Mott and Massey, 1965). Notice that the screening factor vanishes for q — 0, thus leading to a finite DCS for forward scattering. In the limit of large momen­tum transfers, this factor approaches unity, i.e. screening effects become negligible. The correcting factor t(Z,E), which is introduced to improve the agreement between the screened Mott and partial wave DCSs, is given by (see Fernandez-Varea et ah, 1993c)

tH(Z, E) = 1 + 1.053 (aZ)1'971 + [0.00569 + 0.995 (aZ)1'778" (C.23)

for electrons, and/ x 1.167

*(+)(Z, E) = 0.988 + 0.914 (aZ)1'670 + 2.191 (aZ)1"399 ( - - 1) (C.24)

for positrons.

The finite size of the nucleus influences the DCS for high-energy projectiles and large scattering angles. In eq. (C.6), this effect is taken into account (again within the first Born approximation; Mott and Massey, 1965) by multiplying the point-nucleus DCS by the squared form factor |Fn(g)|2 of the nuclear charge distribution pn(r), which reduces to unity for a point nucleus. A simple analytical expression for the nuclear form factor is obtained by using Helm’s (1956) uniform-uniform folded charge distribution

Ai(r) = J p0(r')pi(r - r') dr', (C.25)

where po and pi are uniform distributions (normalized to unity) over spheres of radii

Ro = 1.2 x 10™13A1/3 cm, = 2.0 x 10"13 cm, (C.26)

where A is the mass number of the considered nucleus. This charge distribution decreases smoothly at the surface of the nucleus and, for spherical nuclei, yields results more realistic than the cruder uniform spherical distribution. The corresponding form factor is

Fn(q) = F(R0,q)F{Ruq), (C.27)where

F(R>q) = [sin(<7#/&) - {qR/h) cos(qR/%)]

is the form factor for a uniformly charged sphere.

(C.28)

Page 149: PENELOPE, and algorithm and computer code for Monte Carlo ...

C.2. Screened Mott formula 133

C.2.1 Integrated cross sections

For projectiles with kinetic energy larger than 100 keV, the first and second transport cross sections, eqs. (C.4) and (C.5), have been calculated from the screened Mott DCS, eq. (C.6), by using the GABQ subroutine (appendix A). For E = 100 keV, the values ob­tained in this way agree with the results of partial-wave calculations with the PWADIR code (Salvat and Mayol, 1993) to within less than 1%.

Eikonal total cross section

It is important to note that the screened Mott formula, eq. (C.6), is not accurate for very small scattering angles. Therefore, a different approach should be used to obtain the total elastic cross section crei, which strongly depends on the small-angle behaviour of the DCS. It turns out that the eikonal approximation (see e.g. Schiff, 1968) leads to a DCS that is very accurate for high energies and small scattering angles (Zeitler and Olsen, 1964). Hence, the total cross section for E > 100 keV can be computed from the optical theorem, using the forward scattering amplitude for the free-atom analytical DHFS field, eq. (C.2), obtained from the eikonal approximation.

The eikonal scattering amplitude is given by

/eik(0) = ijr Jq Jo(g6){l ~ exp [-ixeik(&)] j&d&, (C.29)

where Jq is the ordinary Bessel function of order zero, b = (r2 — z2)1/2 is the impact parameter and

772 /*ooX'tk(b) = J-fx>V(i,z)dz (0.30)

is the eikonal phase. For the analytical field given by eq. (C.2), we have

m 3W&) = =-2Z'Ze: Z ^ #oW), (C.31)

"’P n=l

where Kq is the modified Bessel function of order zero. Owing to the fast oscillations of the Jo(qb) function, the evaluation of the eikonal scattering amplitude, eq. (C.29), for high-energy projectiles and scattering angles greater than zero is a difficult numerical problem. However, for forward scattering (q = 6 = 0), the Jo(qb) function equals unity and the eikonal amplitude

/eik(0) = i | jf |l - exp [-ixeik(&)]j&d6 (C.32)

can be easily computed for any energy.

The total cross section is obtained from the result (C.32) with the help of the optical theorem:

—■ Im [/eik(0)] = 471- jf jl - cos [Xeik(Z>)]j&dZ>.Cel = (C.33)

Page 150: PENELOPE, and algorithm and computer code for Monte Carlo ...

134 Appendix C. Calculation of electron and positron eleLstic cross sections

Notice that the eikonal cross section, eq. (C.33), has been derived under the assumption that spin and finite nuclear size effects are negligible. This is well justified for high- energy projectiles, since then the majority of elastic collisions correspond to very small scattering angles for which the spin and nuclear size correcting factors, R(9) and |F„(g)|2, are practically equal to unity. In other words, crel is practically insensitive to spin and finite nuclear size effects. The total cross sections for E > 100 keV introduced in the database have been computed from eq. (C.33).

Page 151: PENELOPE, and algorithm and computer code for Monte Carlo ...

Bibliography

M. Abramowitz and I. Stegun (1974), Handbook of Mathematical Functions (Dover, New York).

P. Andreo (1991), Phys. Med. Biol. 36, 861.

P. Andreo and A. Brahme (1984), Rad. Res. 100, 16.

J. Bard, M. Roteta, J.M. Fernandez-Varea and F. Salvat (1994a), Radiat. Phys. Chem. 44, 531.

J. Bard, J. Sempau, J.M. Fernandez-Varea and F. Salvat (1994b), Nucl. Instr. and Meth. B84, 465.

J. Bard, J. Sempau, J.M. Fernandez-Varea and F. Salvat (1995), Nucl. Instr. and Meth. B100, 31.

M.J. Berger (1963), Methods in Computational Physics, vol. 1, eds. B. Alder, S. Fernbach and M. Rotenberg (Academic Press, New York) p. 135.

M.J. Berger (1992), National Institute of Standards and Technology, Report NISTIR 4999 (Washington).

M.J. Berger and J.H. Hubbell (1987), National Bureau of Standards, Report NBSIR 87-3797 (Washington).

M.J. Berger and S.M. Seltzer (1972), Nucl. Instr. and Meth. 104, 317.

M.J. Berger and S.M. Seltzer (1982), National Bureau of Standards, Report NBSIR 82-2550 (Washington). Also available as ICRU Report 37 (1984).

M.J. Berger and S.M. Seltzer (1988), in Monte Carlo Transport of Electrons and Pho­tons, eds. T.M. Jenkins, W.R. Nelson and A. Rindi (Plenum, New York).

H.A. Bethe and W. Heitler (1934), Proc. R. Soc. London A146, 83.

H.A. Bethe and E.E. Salpeter (1957), Handbuch der Physik, vol. 35, 88 (Springer, Berlin).

H.J. Bhabha (1936), Proc. R. Soc. London A154, 195.

A.F. Bielajew and D.W.O. Rogers (1987), Nucl. Instr. and Meth. B18, 165.

Page 152: PENELOPE, and algorithm and computer code for Monte Carlo ...

136 Bibliography

A. F. Bielajew and D.W.O. Rogers (1988), in Monte Carlo Transport of Electrons andPhotons, eds. T.M. Jenkins, W.R. Nelson and A. Rindi (Plenum, New York) p. 407.

F. Biggs, L.B. Mendelsohn and J.B. Mann (1975), At. Data and Nucl. Data Tables 16,201.

O. Blunck and S. Leisegang (1950), Z. Physik 128, 500.

N. Bohr (1948), Kgl. Danske Vidensk. Selsk. Mat.-Fys. Medd. 18, n. 8.

M. Born (1969), Atomic Physics (Blackie and Son, London).

B. H. Bransden and C.J. Joachain (1983), Physics of Atoms and Molecules (Longman,London).

R. Brun, F. Bruyant, M. Maire, A.C. McPherson and P. Zanarini (1986), CERN Report DD/EE/84~1 (Geneva).

D. Brusa, G. Stutz, J.A. Riveros, J.M. Fernandez-Varea and F. Sal vat (1996), Nucl. Instr. and Meth. A (in press).

H.P. Chan and K. Doi (1983), Phys. Med. Biol. 28, 109.

M. Cooper (1971), Adv. Phys. 20, 453.

D.C. Creagh and J.H. Hubbell (1992), International Tables for X-ray Crystallography, vol. C. (Kluwer Academic Publ., Dordrecht).

D.E. Cullen, M.H. Chen, J.H. Hubbell, S.T. Perkins, E.F. Plechaty, J.A. Rathkopf and J.H. Scofield (1989), Lawrence Livermore National Laboratory, Report UCRL- 50400 vol. 6, rev. 4, parts A and B.

D.E. Cullen, S.T. Perkins and J.A. Rathkopf (1990), Lawrence Livermore National Laboratory, Report UCRL-ID-1034^4 •

H. Davies, H.A. Bethe and L.C. Maximon (1954), Phys. Rev. 93, 788.

J.A. Doggett and L.V. Spencer (1956), Phys. Rev. 103, 1597.

P. A. Doyle and P.S. Turner (1968), Acta Cryst. A 24, 390.

P. l’Ecuyer (1988), Commun. ACM 31, 742.

U. Fano (1954), Phys. Rev. 93, 117.

U. Fano (1963), Annual Review of Nuclear Science 13, 1.

J.M. Fernandez-Varea, R. Mayol, D. Liljequist and F. Salvat (1993a), J. Phys.: Condens. Matter 5, 3593.

J.M. Fernandez-Varea, R. Mayol, J. Bard and F. Salvat (1993b), Nucl. Instr. and Meth.B73, 447.

Page 153: PENELOPE, and algorithm and computer code for Monte Carlo ...

Bibliography 137

J.M. Fernandez-Varea, R. Mayol and F. Sal vat (1993c), Nucl. Instr. and Meth. B82, 39.

S. Goudsmit and J.L. Saunderson (1940), Phys. Rev. 57, 24 and 58, 36.

J. A. Halbleib, R.P. Kensek, T.A. Mehlhorn, G.D. Valdez, S.M. Seltzer and M.J. Berger(1992), Report SAND91-1634 Sandia National Laboratories.

E. Hayward and J.H. Hubbell (1954), Phys. Rev. 93, 955.

K. F.J. Heinrich and D.E. Newbury (1991), eds., Electron Probe Quantitation (PlenumPress, New York).

W. Heitler (1954), The Quantum Theory of Radiation (Oxford Univ. Press, London).

R.H. Helm (1956), Phys. Rev. 104, 1466.

J.H. Hubbell, H.A. Gimm and I. 0verb0 (1980), J. Phys. Chem. Ref. Data 9, 1023.

J.H. Hubbell, Wm. J. Veigele, E.A. Briggs, R.T. Brown, D.T. Cromer and R.J. Howerton (1975), J. Phys. Chem. Ref. Data 4, 471. Erratum: ibid. 6 (1977) 615.

J.H. Hubbell (1989), National Institute of Standards and Technology, Report NISTR 89-4144.

M. Inokuti (1971), Rev. Mod. Phys. 43, 297.

M. Inokuti and D.Y. Smith (1982), Phys. Rev. B25, 61.

A. Jablonski (1987), Surf. Science 188, 164.

J.D. Jackson (1975), Classical Electrodynamics (John Wiley and Sons Inc., New York).

F. James (1980), Rep. Prog. Phys. 43, 1145.

F. James (1990), Comput. Phys. Commun. 60, 329.

T. M. Jenkins, W.R. Nelson and A. Rindi (1988), eds., Monte Carlo Transport of Elec­trons and Photons (Plenum, New York).

M.H. Kalos and P.A. Whitlock (1986), Monte Carlo Methods, vol. 1 (Wiley, New York).

P.P. Kane, L. Kissel, R.H. Pratt and S.C. Roy (1986), Phys. Rep. 140, 75.

L. Kim, R.H. Pratt, S.M. Seltzer and M.J. Berger (1986), Phys. Rev. A33, 3002.

L. Kissel, C.A. Quarles and R.H. Pratt (1983), At. Data and Nucl. Data Tables 28, 381.

H.W. Koch and J.W. Motz (1959), Rev. Mod. Phys. 31, 920.

L. Landau (1944), J. Phys. U.S.S.R. 8, 201.

C.M. Lederer and V.S. Shirley (1978), eds., Table of Isotopes, 7th edition (Wiley, New York) appendix III.

Page 154: PENELOPE, and algorithm and computer code for Monte Carlo ...

7J& Bibliography

H.W. Lewis (1950), Phys. Rev. 78, 526.

D. Liljequist (1983), J. Phys. D: Appl. Phys. 16, 1567.

D. Liljequist (1987), J. Appl. Phys. 62, 333.

M. Ljungberg and S. Strand (1989), Comput. Meth. Programs Biomed. 29, 257.

M. J. Maron (1982), Numerical Analysis: A Practical Approach (Macmillan, New York).

J. McLellan, S. Sawchuk, J.J. Battista, G.A. Sandison and L.S. Papiez (1994), Med.Phys. 21, 367.

G. Moliere (1948), Z. Naturforsch. 3a, 78.

C. Mpller (1932), Ann. Physik 14, 531.

K. J. Mork (1971), Phys. Rev. A4, 917.

N. F. Mott and Q.S.W. Massey (1965), The Theory of Atomic Collisions (Oxford Uni­versity Press, London).

J.W. Motz, H.A. Olsen and H.W. Koch (1964), Rev. Mod. Phys. 36, 881.

J.W. Motz, H.A. Olsen and H.W. Koch (1969), Rev. Mod. Phys. 41, 581.

Y. Namito, S. Ban and H. Hirayama (1994), Nucl. Instr. and Meth. A349, 489.

W.R. Nelson, H. Hirayama and D.W.O. Rogers (1985), Stanford Linear Accelerator Center Report SLAG-265 (Stanford).

S.T. Perkins, D.E. Cullen, M.H. Chen, J.H. Hubbell, J. Rathkopf and J. Scofield (1991a), Lawrence Livermore National Laboratory Report UCRL-50400, vol. 30.

S.T. Perkins, D.E. Cullen and S.M. Seltzer (1991b), Lawrence Livermore National Lab­oratory Report UCRL-50400, vol. 31.

W.H. Press and A. Teukolsky (1992), Computers in Physics 6, 522.

L. Reimer and E.R. Ivrefting (1976), National Bureau of Standards Special Publication460 (US Government Printing Office, Washington DC) p. 45.

L. Reimer (1985), Scanning Electron Microscopy (Springer, Berlin).

L. Reimer, U. Zepke, J. Moesch, St. Schulze-Hillert, M. Ross-essemer, W. Probst andE. Weimer (1992), EEL Spectroscopy (Carl Zeiss, Oberkochen).

R. Ribberfors (1983), Phys. Rev. A27, 3061.

R. Ribberfors and K.-F. Berggren (1982), Phys. Rev. A26, 3325.

F. Rohrlich and B.C. Carlson (1954), Phys. Rev. 93, 38.

R.Y. Rubinstein (1981), Simulation and the Monte Carlo Method (Wiley, New York).

Page 155: PENELOPE, and algorithm and computer code for Monte Carlo ...

Bibliography 139

E. B. Saloman, J.H. Hubbell and J.Ii. Scofield (1988), At. Data and Nucl. Data Tables38, 1.

F. Sal vat (1987), Comput. Phys. Commun. 46, 427.

F. Sal vat and J.M. Fernandez-Varea (1992), Nucl. Instr. and Meth. B63, 255.

F. Sal vat, J.D. Martinez, R. Mayol and J. Parellada (1987a), Phys. Rev. A36, 467.

F. Sal vat, R. Mayol and J.D. Martinez (1987b), J. Phys. B: At. Mol. Phys. 20, 6597.

F. Sal vat and R. Mayol (1993), Comput. Phys. Commun. 74, 358.

F. Sauter (1931), Ann. Phys. 11, 454.

L.I. Schiff (1968), Quantum Mechanics (McGraw-Hill, Tokyo).

P.J. Schultz and K.G. Lynn (1988), Rev. Mod. Phys. 60, 701.

S.M. Seltzer and M.J. Berger (1985), Nucl. Instr. and Meth. B12, 95.

J. Sempau, E. Acosta, J. Baro, J.M. Fernandez-Varea and F. Sal vat (1996), Nucl. Instr. and Meth. B (to be submitted).

N. Sherman (1956), Phys. Rev. 103, 1601.

V.S. Snyder, M.R. Ford, G.G. Warner and ILL. Fisher (1969), MIRD Pamphlet No. 5, J. Nucl. Med. 10, suppl. No. 3.

R.M. Sternheimer (1952), Phys. Rev. 88, 851.

R.M. Sternheimer, M.J. Berger and S.M. Seltzer (1982), Phys. Rev. B26, 6067.

R.M. Sternheimer, M.J. Berger and S.M. Seltzer (1984), At. Data and Nucl. Data Tables 30, 261.

F. Titus (1970), Nucl. Instr. and Meth. 89, 93.

A.L. Tofterup (1986), Surf. Science 167, 70.

Y.S. Tsai (1974), Rev. Mod. Phys. 46, 815.

D. W. Vande Putte (1974), Nucl. Instr. and Meth. 115, 117.

A.J. Walker (1977), ACM Trans. Math. Software 3, 253.

E. Zeitler and H. Olsen (1964), Phys. Rev. 136, A1546.

C.D. Zerby (1963), in Methods in Computational Physics, vol. 1, eds. B. Alder, S. Fernbach and M. Rotenberg (Academic Press, New York) p. 89.

L. Zheng-Ming and A. Brahme (1993), Radiat. Phys. Chem. 41, 673.