Skip to main content

Module secondary

Module secondary 

Source
Expand description

Secondary-electron generation at inelastic events.

The model is Kieft and Bosch’s, J. Phys. D: Appl. Phys. 41, 215310 (2008), doi:10.1088/0022-3727/41/21/215310, as written out by T. Verduin, Quantum Noise Effects in e-Beam Lithography and Metrology, PhD thesis, Delft University of Technology (2017), doi:10.4233/uuid:f214f594-a21f-4318-9f29-9776d60ab06c (“Verduin” below, with the thesis’s printed page and equation numbers). The kinematics are ported from Nebula, source/physics/kieft/inelastic.h at commit a50a8e83207980ed221ac83cfe874751d39b86a9 (https://github.com/Nebula-simulator/nebula), BSD-3-Clause, Copyright (c) 2020, Nebula-simulator; the notice is in THIRD_PARTY_LICENSES.md.

§Energy

An inelastic event takes W from the primary (from the inelastic CrossSectionTable) and lifts an electron of binding energy B (measured below the Fermi level) into the conduction band with kinetic energy E_SE = E_F + W - B (Verduin Eq. 3.86, p. 78), measured, like every kinetic energy inside a material, from the band bottom (crate::electron::boundary). For a valence event (no shell channel supplies B):

  • in a metal, B = 0: the electron comes from the Fermi level (Nebula’s handling when no binding energy applies), and every event with W > 0 makes one. A band built with BandStructure::with_valence_binding_ev sets B to that value instead (the rule of Azzolini et al., arXiv:1809.00859, p. 6; cited there), and then only an event with W > B makes one, a loss W <= B staying in the solid as below; B = 0 is the default unchanged;
  • in a semiconductor or insulator, B = E_g when W > E_g, an excitation across the gap (Verduin p. 78; Nebula sets the binding energy to the band gap); an event with W <= E_g makes no secondary and its energy stays in the solid (Verduin p. 78 and section 3.4 assign it to optical phonons).

The bookkeeping of one event is a SecondaryEvent, which satisfies loss = secondary + binding + deposited with binding = B - E_F, the energy that the liberated electron’s initial state lies below the band bottom (negative for a conduction electron, which already had E_F).

§Inner-shell events

A loss ω drawn from the channel of inner shell j (crate::electron::transport::Transport::with_inner_shells) uses the same Eq. 3.86 with B = B_j, the shell’s binding energy: E_SE = E_F + ω - B_j. This is the shell-resolved form of de Vera et al., Int. J. Mol. Sci. 23, 6121 (2022), eqs. (32) and (35) (the reference of crate::electron::inelastic::inner_shell): a loss ω = W + B_j in shell j gives the emitted electron W = ω - B_j, which here is its kinetic energy above the Fermi level, so E_SE = E_F + W on the band-bottom axis.

Binding reference. Eq. 3.86 measures B below the Fermi level, and so does this module for a shell: B_j is used as given, as a binding energy below E_F. The subshell energies of a crate::electron::data::SubshellBindingTable (EADL) are free-atom values; they are not converted to a solid-state, Fermi-referenced edge (no work-function or chemical shift is applied). The event’s SecondaryEvent::binding_ev is B_j - E_F, positive for every shell that lies below the Fermi level, and the tallies keep it in the solid at the event (tally::electron): atomic relaxation (Auger electrons, fluorescence photons) is not transported.

Limits. The transport draws ω within [B_j, E - E_F] (E the primary’s band-bottom energy), so E_SE lies in [E_F, E - B_j] and is never negative; a shell channel is closed when E - E_F <= B_j. Every shell event liberates an electron (no gap test); the electron is followed only if E_SE reaches the stopping threshold, else its energy is deposited, as for a valence event.

Direction. The Ivanchenko transformation below with B = B_j (Verduin Eqs. 3.105-3.111 are written for a bound electron of any binding).

§Direction

The method of Ivanchenko, as used by Kieft and Bosch (Verduin pp. 82-85): the binding is transformed away, E -> E - E_F + 2B (Eq. 3.105) and ΔE -> W + B (Eq. 3.106), and the free-electron binary-collision angle of the secondary, cos β = sqrt(ΔE / E) (Eq. 3.100, non-relativistic), gives its direction about the primary’s with a uniform azimuth (Eq. 3.107). Optionally a randomly oriented instantaneous momentum of relative size sqrt(B / ΔE) is added (Eq. 3.108), and the primary is deflected to conserve momentum, p̂'_i ∝ p̂_i - cos β p̂''_t (Eq. 3.111). Both options are on in Nebula’s defaults and in SecondaryModel::KIEFT_BOSCH. The secondary starts at the primary’s position (no delocalisation, Verduin p. 85).

Structs§

SecondaryEvent
The energy bookkeeping of one inelastic event under a secondary model, all in eV. loss_ev = secondary_ev + binding_ev + deposited_ev up to rounding.

Enums§

SecondaryModel
Whether and how inelastic events make secondary electrons.