Potentials and fields

The field module calculates the potentials and fields of silicon sensors.

The potential is determined numerically by solving these equations on a mesh:

(1)\[\nabla^2 \Phi = 0\]
(2)\[\nabla^2 \Phi = \frac{\rho}{\epsilon}\]

For the weighting potential equation (1) is solved with the boundary conditions:

\[\begin{split}\begin{eqnarray} \Phi & = & 0 \\ \Phi_r & = & 1 \end{eqnarray}\end{split}\]

The pixel readout electrode(s) are at a potential 1 and all other equipotential pixel parts (backside, bias columns, etc.) at 0.

For the electric potential the equation (2) is solved with the boundary conditions:

\[\begin{split}\begin{eqnarray} \Phi & = & V_{bias} \\ \Phi_r & = & V_{readout} \end{eqnarray}\end{split}\]

The pixel readout electrode(s) are at \(V_{readout}\) potential and the bias parts (backside, bias columns, etc.) are at \(V_{bias}\).

The field is then derived via:

\[\vec{E} = -\nabla \phi\]

Note

For simple cases (e.g. planar sensor with 100% fill factor) also analytical solutions are provided. The analytical results are also used to benchmark the numerical results in the automated unit tests.

Decription class

The challenge for the field determination is that numerical differentiation of the potential amplifies numerical instabilities, thus the potential has to be smoothed before differentiation. A convinient interface is provided by the field description class.

class scarce.fields.Description(potential, min_x, max_x, min_y, max_y, nx, ny, smoothing=0.1)[source]

Class to describe potential and field at any point in space. The numerical potential estimation is used and interpolated. The field is derived from a smoothed potential interpolation to minimize numerical instabilities.

Methods

scarce.fields.calculate_planar_sensor_w_potential(mesh, width, pitch, n_pixel, thickness)[source]

Calculates the weighting field of a planar sensor.

scarce.fields.calculate_3D_sensor_w_potential(mesh, width_x, width_y, n_pixel_x, n_pixel_y, radius, nD=2)[source]
scarce.fields.get_weighting_potential_analytic(x, y, D, S, is_planar=True)[source]

Planar sensor: From Nuclear Instruments and Methods in Physics Research A 535 (2004) 554-557, with correction from wbar = pi*w/2/D to wbar = pi*w/D with:

x [um] is the offset from the middle of the electrode y [um] the position in the sensor D [um] the sensor thickness S [um] the pixel pitch

3D sensor: Weighting potential for two cylinders with: D [um] distance between columns S [um] is the radius

scarce.fields.get_weighting_field_analytic(x, y, D, S, is_planar=True)[source]

Calculates the analytical weighting field.

Parameters:
  • x (number) – X position in sensor in um
  • y (number) – Y position in sensor in um
  • D (number) – The sensor thickness in um
  • S (number) – 3D sensor only: electrode radius in um
  • is_planar ({True, False}) – To select 3D or planar geometry
Returns:

Weighting field in x/y in V/um

Return type:

array_like

Notes

From Nuclear Instruments and Methods in Physics Research A 535 (2004) 554-557, with correction

\[\bar{w} = \frac{\pi*w}{2D} -> \bar{w} = \frac{\pi*w}{D}\]

The field is calculated from the drivation of the potential.

scarce.fields.get_potential_planar_analytic_1D(x, V_bias, V_readout, n_eff, D)[source]

Calculates the potential in the depletion zone of a planar sensor.

Parameters:
  • x (array_like) – Position in the sensor between 0 and D in \(\mathrm{\mu m}\)
  • V_bias (number) – Bias voltage in volt.
  • V_readout (number) – Readout voltage in volt.
  • n_eff (number) – Effective doping concetration in \(\mathrm{cm^{-3}}\)
  • D (number) – Thickness of the sensor in \(\mathrm{\mu m}\)

Notes

The formular can be derived from the 1D Poisson equation (2), wich has the following general solution for \(x <= x_{\mathrm{dep}}\) with the full depletion assumption:

\[\Phi_p = \frac{\rho}{2\epsilon} x^2 + \mathrm{const_{p,1}} x + \mathrm{const_{p,2}}\]

For the undepleted region \(x > x_{\mathrm{dep}}\) there is no spacecharge (\(\rho = 0\)). Thus the generel solution of the 1D Laplace equation (1) can be used here:

\[\Phi_l = \mathrm{const_{l,1}} x + \mathrm{const_{l,2}}\]

For an underdepleted sensor (\(x_{\mathrm{dep}} <= D\)) these boundary conditions have to be satisfied:

  1. \[\Phi_p(0) = V_{\mathrm{readout}}\]
  2. \[\Phi_l(D) = V_{\mathrm{bias}}\]
  3. \[\Phi_p(x_{\mathrm{dep}}) = \Phi_l(x_{\mathrm{dep}})\]
  4. \[\frac{\partial}{\partial x} \Phi_p(x_{\mathrm{dep}}) = 0\]
  5. \[\frac{\partial}{\partial x} \Phi_l(x_{\mathrm{dep}}) = 0\]

The following simultaneous equations follow:

  1. \[\Phi_p = \frac{\rho}{2\epsilon} x^2 + \mathrm{const_{p,1}} x + V_{\mathrm{readout}}\]
  2. \[\Phi_l = (x - D)\cdot \mathrm{const_{l,1}} + V_{\mathrm{bias}}\]
  3. \[\frac{\rho}{2\epsilon} x_{\mathrm{dep}}^2 + \mathrm{const_{p,1}} x_{\mathrm{dep}} + V_{\mathrm{readout}} = (x_{\mathrm{dep}} - D) \cdot \mathrm{const_{l,1}} + V_{\mathrm{bias}}\]
  4. \[\frac{\rho}{\epsilon} x_{\mathrm{dep}} + \mathrm{const_{p,1}} = 0\]
  5. \[\mathrm{const_{l,1}} = 0\]

With the solution:

\[\begin{split}\Phi(x) = \left\{ \begin{array}{ll} \frac{\rho}{2\epsilon} x^2 - \frac{\rho}{\epsilon} x_{\mathrm{dep}} x + V_{\mathrm{readout}} & x\leq x_{\mathrm{dep}} \\ V_{\mathrm{bias}} & x > x_{\mathrm{dep}} \end{array} \right.\end{split}\]

with \(x_{\mathrm{dep}} = \sqrt{\frac{2\epsilon}{\rho}(V_{\mathrm{readout}} - V_{\mathrm{bias})}}\)

If the sensor is fully depleted (\(x_{\mathrm{dep}} > D\)) only \(\Phi_p\) has to be solved with the following boundary conditions:

  1. \[\Phi_p(0) = V_{\mathrm{readout}}\]
  2. \[\Phi_p(D) = V_{\mathrm{bias}}\]

The following simultaneous equations follow:

  1. \[\Phi_p = \frac{\rho}{2\epsilon} x^2 + \mathrm{const_{p,1}} x + V_{\mathrm{readout}}\]
  2. \[\Phi_p(D) = \frac{\rho}{2\epsilon} D^2 + \mathrm{const_{p,1}} D + V_{\mathrm{readout}} = V_{\mathrm{bias}}\]

With the solution:

\[\Phi(x) = \frac{\rho}{2\epsilon} x^2 + \left(\frac{V_{\mathrm{bias}} - V_{\mathrm{readout}}}{D} - \frac{\rho}{2\epsilon} D\right) x + V_{\mathrm{readout}}\]

For the generell solution follows:

\[\begin{split}\Phi(x) = \left\{ \begin{array}{ll} \frac{\rho}{2\epsilon} x^2 - \frac{\rho}{\epsilon} x_{\mathrm{dep}} x + V_{\mathrm{readout}} & x_{\mathrm{dep}} \leq D, x\leq x_{\mathrm{dep}} \\ V_{\mathrm{bias}} & x_{\mathrm{dep}} \leq D, x > x_{\mathrm{dep}} \\ \frac{\rho}{2\epsilon} x^2 - \frac{\rho}{2\epsilon} D \left(\frac{x_{\mathrm{dep}}^2}{D^2} + 1\right) x + V_{\mathrm{readout}} & x_{\mathrm{dep}} > D \end{array} \right.\end{split}\]

with \(x_{\mathrm{dep}} = \sqrt{\frac{2\epsilon}{\rho}(V_{\mathrm{readout}} - V_{\mathrm{bias})}}\)

scarce.fields.get_electric_field_analytic(x, y, V_bias, n_eff, D, V_readout=0, S=None, is_planar=True)[source]

Calculates the electric field.

  • Planar sensor:

    Calculates the field E_y[V/um], E_x = 0 as a function of the position x between the electrodes [um], the bias voltage V_bias [V], the effective doping concentration n_eff [10^12 /cm^-3] and the sensor Width D [um]. The analytical function from the detector book p. 93 is used.

    The field is derived from the potential:

    \[\vec{E} = -\nabla\Phi\]

    From the solution of the potential follows in 1D (\(\vec{E}(\vec{x}) = E(x)\)):

    \[\begin{split}E(x) = \left\{ \begin{array}{ll} \frac{\rho}{\epsilon} x_{\mathrm{dep}} - \frac{\rho}{\epsilon} x & x_{\mathrm{dep}} \leq D, x\leq x_{\mathrm{dep}} \\ 0 & x_{\mathrm{dep}} \leq D, x > x_{\mathrm{dep}} \\ \frac{\rho}{2\epsilon} D \left(\frac{x_{\mathrm{dep}}^2}{D^2} + 1\right) - \frac{\rho}{\epsilon} x & x_{\mathrm{dep}} > D \end{array} \right.\end{split}\]

    with \(x_{\mathrm{dep}} = \sqrt{\frac{2\epsilon}{\rho}(V_{\mathrm{readout}} - V_{\mathrm{bias})}}\)

  • 3D sensor:

    Calculates the field E_x/E_y [V/um] in a 3d sensor as a function of the position x,y between the electrodes [um], the bias Voltage V_bias [V], the effective doping concentration n_eff [cm^-3], the electrode distance D [um] and radius R [um]. So far the same field like the weighting field is used –> space charge is ignored.