Creating a secondary ray when an electrode is hit.


In both CPO2D and CPO3D there is an option to create a ‘secondary’ ray whenever an electrode is hit by a ‘primary’ ray.


(It is sometimes useful to use ‘artificial’ primary rays in order to create secondaries that have one of the many types of energy and angular distributions described below, and then to use these secondaries as initial rays.)


Examples are given in xmpl2d25, xmpl2d26, xmpl2d39, xmpl2d48, xmpl3d48, xmpl3d49, xmpl3d58, xmpl3d78, xmpl3d81, xmpl3d82 and xmpl3d941.

The choices available for the direction of the secondaries are:

specular reflection,

backward direction,

direction normal to segment,

lambert law (random) direction.

The choices available for the energy of the secondaries are:

constant fraction of primary energy,

constant energy,

same energy as the primary trajectory,

top-hat energy distribution between defined limits (random),

Maxwell energy distribution (quasi-random),

Ura energy distribution (quasi-random).

The choices available for the number of secondaries per primary are:

constant number,

poisson distribution (but see warning below about 2D use),

a hybrid combination of a constant number and a poisson distribution (see below),

an empirical distribution (see below).


The mass and/or charge of the secondaries can be different from those of the primaries.


A minimum energy must be specified, below which secondary rays will not be produced.


A factor must also be specified by which the ray currents are multiplied at each impact (this factor is essentially the number of secondaries per primary).


Relativistic corrections are not applied.


A specified range of segments can be made active for secondary production (while the remainder are then inactive) by using an ‘advanced option’ to choose the active range of electrodes.


Beware: A secondary ray is sometimes stopped because the previous secondary ray returns almost immediately back to the electrode, and so does not have sufficient energy.



Note on secondary multiplication.

This section can be skipped if you are not simulating an electron multiplier or if you are familiar with the concepts of secondary multiplication.

First, an initial individual electron can be simulated by using the pulsed beam option, although this is rarely necessary in practice (see test3d30 for an example).

Second, the footnotes in xmpl3d81 should be useful.

Third, in principle we could simulate the production of individual secondary electrons, but it is difficult technically and practically, and is essentially not necessary in the great majority of simulations. One of the practical difficulties is the increase in the number of trajectories. If the multiplication factor is 5 then an initial single trajectory becomes 5, then 25, 125, 625, 3125, 15625, etc. In fact 15626 is less than the regular maximum of 16000 for the number of trajectories (which CPO Ltd can increase by special request). But when the number of initial trajectories is 100, say, then after 3 multiplications (500, 2500, 12500) the maximum number of trajectories is reached. And the computing times increase very much as the number of trajectories increases.

Fourth, each trajectory represents a model particle or super-electron that follows the path of a single electron but typically carries the charge of many electrons. Using non-uniform distributions for the numbers, energies and directions of the secondaries (maxwellian etc) and using a reasonably large number of trajectories (>20 say) then the final statistical distributions of the current, energy and positions of the final secondaries given by the CPO program will be very close to the real distributions.





The headings below are:

(1) Lambert law random direction:

(2) Top-hat energy distribution.

(3) Maxwell energy distribution.

(4) Ura energy distribution.

(5) Constant number of secondaries per primary

(6) Poisson distribution of number of secondaries per primary

(7) Hybrid combination of constant number of secondaries and a poisson distribution.

(8) Empirical distribution of number of secondaries per primary

(9) Controlling randomisation

(10) Further information


See also randomisation seed and techniques.


(1) Lambert law random direction:

The probability that the angle to the normal is theta is cos(theta). Therefore sin(theta) is uniformly distributed from 0 to 1 (for example see A L Garcia, Numerical Methods for Physics, 2nd edition, Prentice Hall, New Jersey, 1994, ISBN 0-13-906744-2, page 349).

Therefore the component of the velocity in the plane of the emitter is vel_plane = vel*r, where r is a random number from 0 to 1. Then the component normal to the emitter is vel_normal = sqrt(vel**2 - vel_plane**2). This tends to make vel_normal > vel_plane.

The distribution of azimuthal angles is uniform.

These remarks apply to 3D systems only -for 2D systems see the note on 2D Lambert distribution.

(2) Top-hat energy distribution.

This is a random distribution between specified limits.

(3) Maxwell energy distribution.

This is given the form p(E)*dE = sqrt(E)*exp(-E/kT)*dE (which is derived from the velocity distribution p(v)*dv = v^2*exp(-m*v^2/2*kT)*dv).

The maximum of the distribution is at 0.5*kT, the mean energy is 1.5*kT and the root-mean-square is also 1.5*kT.

The distribution is approximately simulated by dividing it into 100 equal areas and using the energies at the centres of these areas. The 100 values of E/kT are:














But beware: the last of the set values, which represents the long tail of the distribution, has been determined empirically to give the correct mean value of E.

(4) Ura energy distribution.

This has the form p(E)*dE = (4/3)*w*exp(-2*sqrt(w))*dw, where w = E/Emax and where Emax is called kT in the program. This formula is quoted by J Zach, Optik 83 (1989) 30-40, who cites K Ura, H Fujioka and T Yokobashi, "Calculation of local field effect on voltage contrast in SEM", EM 1980, P Bredero (Ed) (Seventh European Congress on EM Foundation, Leiden 1980) 330-331.

The maximum of the distribution is at Emax, the mean energy is 5*Emax and the root-mean-square is 5.244*Emax. The distribution has a long high-energy tail.

The distribution is approximately simulated in the program by dividing it into 100 equal areas and using the energies at the centres of these areas. The 100 values of E/ Emax are:

0.11297, 0.21629, 0.29695, 0.36848, 0.43484, 0.49789, 0.55866,

0.61779, 0.67572, 0.73278, 0.78920, 0.84517, 0.90085, 0.95634,

1.01177, 1.06721, 1.12275, 1.17845, 1.23437, 1.29058, 1.34712,

1.40405, 1.46141, 1.51924, 1.57758, 1.63649, 1.69599, 1.75613,

1.81694, 1.87848, 1.94077, 2.00385, 2.06777, 2.13257, 2.19829,

2.26497, 2.33265, 2.40139, 2.47123, 2.54221, 2.61439, 2.68783,

2.76256, 2.83866, 2.91619, 2.99520, 3.07576, 3.15795, 3.24183,

3.32749, 3.41500, 3.50446, 3.59595, 3.68958, 3.78545, 3.88368,

3.98437, 4.08766, 4.19370, 4.30262, 4.41458, 4.52976, 4.64834,

4.77053, 4.89653, 5.02660, 5.16099, 5.29998, 5.44388, 5.59304,

5.74784, 5.90868, 6.07605, 6.25046, 6.43249, 6.62279, 6.82211,

7.03127, 7.25125, 7.48313, 7.72820, 7.98793, 8.26406, 8.55865,

8.87416, 9.21355, 9.58046, 9.97939,10.41602,10.89765,11.43385,



But beware: the last of the set values, which represents the long tail of the distribution, has been determined empirically to give the correct mean value of E.

(5) Constant number of secondaries per primary

This is the recommended choice, for the reasons given in the next 2 sections.

(6) Poisson distribution of number of secondaries per primary

First, remember that each ray represents a model particle that moves in the total electric field as if it were a single electron or ion but carries the charge and current of many adjacent electrons or ions -this model particle has sometimes been labelled a super-electron or ion. This is because the total current in a beam is shared by the rays, so individual ray currents are usually greater than the currents that would be produced by individual electrons.

However in this option we pretend that the original source current (current_initial) of a ray is due to a single electron.


Here is a specific example of this option (and after that we shall describe it more generally):

Suppose that a ray represents an electron and has an initial current of 1 microAmp. This is a continuous current. It represents the flow of 6.24E12 electrons per second. Suppose that the ray hits an electrode and produces secondary electrons with a multiplication factor m = 2 (that is, a mean of 2 secondaries per primary). The probability that the number of secondaries is n is given by the poisson distribution

prob(n) = m^n*exp(-m)/factorial(n)

For m = 2 this gives prob(n) = 0.135, 0.271, 0.271, 0.180, 0.090, 0.036, 0.012, for n = 0 to 6. When n = 0 the ray is terminated.

The current of secondaries after the first collision follows this probability distribution. That is, the probability that the current is n microAmp is prob(n).

Suppose that the current is 2 microAmp after the first collision and that the ray has a second collision with another electrode. The program uses current_now/current_initial to find that this ray now represents 2 electrons. The mean number of secondaries for 2 primaries is 4 in the present example. The values of prob(n) after the second collision are still given by the poisson formula, with m = 4, and are now 0.018, 0.073, 0.147, 0.195, 0.195, 0.156, 0.104, 0.060, 0.030, 0.013, 0.005, 0.002, 0.001, for n = 0 to 12. The probability that the current after the second collision is n*current_initial is now prob(n)*current_initial.

This procedure is repeated for each collision. When the mean number of secondaries becomes large the poisson probability has a narrow peak at n = m, and so the program then simply puts n = m.

Note that the probability that the number of secondaries is zero can be significant. In the present example it is 0.14 for the first collision. The probability that the first or any later collisions result in the termination of the ray can be shown to be 0.30.

It can be asked, what is the difference between (1) the result given above for prob(n) after 2 collisions when there are 2 secondaries after the first collision, and (2) an exact calculation in which the each of the 2 secondaries is treated individually? For example, in the exact calculation the probability for 1 secondary when there are 2 primaries is given by (probability that one of the primaries produces 0 secondaries)*(probability that the other primary produces 1 secondary)*2 = 0.135*0.271*2 = 0.073, which is the same as the value given by the program’s procedure. In fact all the probabilities are the same, since this is a property of combined poisson distributions. The procedure used by the program is therefore valid.


More generally:

After K collisions the current is current_K, say, and therefore the number of individual electrons that it represents is

n_electrons = current_K/current_initial.

The mean number of electrons after the next collision is therefore

mean_electrons_after = n_electrons*mult_factor,

where mult_factor is the mean number of secondaries per primary, as specified by the user. The actual number of secondaries after the collision, n_electrons_after, has a poisson distribution with the mean value given above. The program finds the random value of n_electrons_after and then uses this to deduce the current after the collision, current_(K+1). Remember that n_electrons_after will sometimes be zero, particularly for the early collisions, in which case the program terminates the trajectory. The routine that generates the random poisson number is valid only for mean_electrons_after < 60. Above that value the program simply puts

current_(K+1) = current_K*mult_factor.

See also note on program for generating this poisson distribution.

(7) Hybrid combination of constant number of secondaries and a poisson distribution.

This option has a limited usefulness and is not recommended (it was created before the above poisson option was improved, and is retained only in case it might occasionally be needed). Here a poisson distribution is used for the first N times that a ray hits an electrode but after that the number of secondaries per primary is the mean number n_mean (that is, the multiplication factor specified by the user or the mean number calculated for an empirical distribution -see next section). The number N is specified by the user.

(8) Empirical distribution of number of secondaries per primary

The relevant formulas are taken from from A. V. Raspereza et al, Submicrochannel plate multipliers, Applied Surface Science 111 (1997) 295-301. See alsoY. S. Choi and J. M. Kim, Monte Carlo simulations for tilted-channel electron multipliers, IEEE Transactions on Electron Devices, Vol 47, No, 6, June 2000, 1293-1296.


The mean number is given by the empirical formula

 n_mean = n_max*exp(am*(1. - cs))*4.*x/(1. + x)^2,


 x = sqrt(cs)*energy/emax,

 cs = cosine of angle to perpendicular,

 energy = energy of primary electron,

 am is a material constant,

 emax = energy for maximum multiplication factor,

 n_max = maximum mean secondary electron yield, at emax and angle = 0.


(Information given by Glyn Collinson, University College London, Jan 2008:

Choi and Kim appear not to have a minus sign before the material constant inside the exponential, although Raspereeza et al does. I believe this to be a misprint in the later paper. According to Bruining, "Physics and applications of secondary electron emission", pergamon press (1954), the material constant is equal to am = ln(n_mean/n_max)/(1-cs). Rearranging gives n_mean = n_max exp(am (1-cs)). Which is probably the basis for the Choi and Kim equation. n_mean = n_max exp(am (1-cs)) * (4*x/(1+x)^2), which gives a good agreement with the experimental results of Muller, H.O., "Die Abhängigkeit der sekundärelektronenemission eniger Metalle com Einfallswinkel des primären Kathodenstrahls", Z. Phys, 104, pp465, (1937) )


According to Raspereza et al:

  n_max emax am

 Lead glass 4.0 250 0.5

 Alumina 4.8350 350 0.5

They also say that the secondary electrons have a Maxwellian energy distribution with a mean value 2.0ev, and a cosine angular distribution.

The value of n_mean can be used either as the mean value of a Poisson distribution or as a constant multiplication factor.

Warning: This empirical distribution was found experimentally only for Maxwell energy distributions and Lambert angular distributions, although we have made it available for use with all distributions.


Warning: The poisson options are intended for 3D systems. They are also available in CPO2DS but this is essentially unphysical because the angle to the perpendicular is the angle in the (r,z) plane only.


(9) Controlling randomisation

See Controlling randomisation



(10) Further information about secondary electron yields, supplied by Glyn Collinson, [email protected], but not checked by us:

According to Sternglass:

yield (E) = 1.11*yield(max)*(E / Emax)^-0.35*(1- exp(-2.3*(E/Emax)^1.35))




















Secondary electron emission from Aluminium:




Minimum Primary Energy


4.25 eV

Type of distribution



Temperature of Maxwellian Distribution


2.66 eV

Primary energy for maximum secondary yield


275 eV

Maximum mean secondary electron yield at Emax



Secondary electron yield with normal incidence (è = 0)



Material constant

(á xm)Al


Hachenberg and Brauers (1959) show that the Maxwellian distribution gives the best fit.




For users who are editing or constructing an 'input data file' without the use of the data-builder -that is, pre-processor:

But Manual editing is certainly not recommended -it is a relic from the time when the databuilder was not available All users are strongly encouraged to use the databuilder, which always gives the correct formats and which has many options for which the formats are not described or easily deduced.


To trigger the option:

In CPO2D put 's' at the beginning of the line concerned with crossing electrodes. In CPO3D put 's' after the direction of time.

In both cases add a further line to carry the necessary information, as follows:


Start with two letters.

The first controls the direction of the secondaries:

's' for specular reflection,

'b' for backward direction,

'n' for direction normal to segment,

'r' for random direction.

The second controls the energy of the secondaries:

'f' for fraction of primary energy,

'c' for constant energy,

's' for same energy as the primary trajectory,

'r' for top-hat random energy between the limits sec_min and sec_max,

'm' for maxwellian random energy distribution.


Then enter numbers on the remainder of the line, as follows:

If either of the letters is 'r', start with the 'seed' number.

Next comes the minimum energy of the primary trajectory -for energies less than this the trajectory is stopped.

If the second letter is 'r' enter sec_min and sec_max, if it is 'f' enter the required fraction, if it is 'c' enter the constant energy.

Finally enter the factor by which the ray current will be multiplied at each impact.


It is possible to choose the active range of electrodes, that is, to allow some electrodes to create secondaries while other electrodes do not.


Return to general note on fields of view and ray limits.