BackIlluminatedSiliconSensorMaterial#

class optika.sensors.materials.BackIlluminatedSiliconSensorMaterial(temperature=<Quantity 300. K>, thickness_oxide=<Quantity 0. nm>, thickness_implant=<Quantity 0. nm>, thickness_substrate=<Quantity 0. um>, roughness_oxide=<Quantity 0. nm>, roughness_substrate=<Quantity 0. um>, cce_backsurface=0, depletion=None, eqe_measured=None)[source]#

Bases: AbstractBackIlluminatedSiliconSensorMaterial

A back-illuminated silicon sensor material which uses the method described in Stern et al. [1994] to compute the quantum efficiency.

Attributes

cce_backsurface

The charge-collection efficiency of the back surface of the sensor.

depletion

A model of this sensor's depletion region.

eqe_measured

An optional measurement of the effective quantum efficiency.

is_mirror

flag controlling whether this material reflects or transmits light

roughness_oxide

The RMS roughness of the oxide layer on the illuminated side of the sensor.

roughness_substrate

The RMS roughness of the silicon substrate.

shape

The array shape of this object.

temperature

The temperature of this sensor.

thickness_implant

The thickness of the ion implant layer.

thickness_oxide

The thickness of the oxide layer on the illuminated side of the sensor.

thickness_substrate

The thickness of the light-sensitive silicon substrate.

transformation

the coordinate transformation between the global coordinate system and this object's local coordinate system

Methods

__init__([temperature, thickness_oxide, ...])

absorbance(rays, normal)

Compute the fraction of energy absorbed by the light-sensitive region of the sensor.

attenuation(rays)

the attenuation coefficient of the given rays

charge_collection_efficiency(rays, normal)

Compute the charge collection efficiency of this CCD sensor material using charge_collection_efficiency().

charge_diffusion(rays, normal)

Given a set of incident rays, compute how much the position of each ray is perturbed due to charge diffusion within the sensor.

efficiency(rays, normal)

The fraction of light that passes through the interface.

electrons_measured(rays, normal)

Randomly sample the number of measured electrons given the number of absorbed photons using electrons_measured().

fano_factor(wavelength)

The Fano factor (ratio of the variance to the mean) of the Fano noise for this sensor material.

fit_eqe(thickness_substrate, depletion, ...)

Fit the parameters of this sensor to a given effective quantum efficiency.

index_refraction(rays)

the index of refraction of this material for the given input rays

photons_incident(electrons, wavelength, ...)

Compute the expected number of incident photons for a given number of electrons.

probability_measurement(rays, normal)

Compute the probability of measuring an absorbed photon for this sensor using probability_measurement().

quantum_efficiency(rays, normal)

Compute the quantum efficiency of this CCD material using quantum_efficiency_effective() and quantum_yield_ideal().

quantum_efficiency_effective(rays, normal)

Compute the effective quantum efficiency of this CCD material using quantum_efficiency_effective().

quantum_yield_ideal(wavelength)

Compute the ideal quantum yield of this CCD sensor material using optika.sensors.quantum_yield_ideal().

signal(rays, normal[, noise])

Given a set of absorbed rays, compute the number of electrons measured by the sensor using signal().

to_string([prefix])

Public-facing version of the __repr__ method that allows for defining a prefix string, which can be used to calculate how much whitespace to add to the beginning of each line of the result.

width_charge_diffusion(rays, normal)

The standard deviation of the charge diffusion kernel for this sensor.

Inheritance Diagram

Inheritance diagram of optika.sensors.materials.BackIlluminatedSiliconSensorMaterial
Parameters:
classmethod fit_eqe(thickness_substrate, depletion, eqe_measured, temperature=<Quantity 300. K>)[source]#

Fit the parameters of this sensor to a given effective quantum efficiency.

Parameters:
Return type:

Self

absorbance(rays, normal)#

Compute the fraction of energy absorbed by the light-sensitive region of the sensor.

Parameters:
Return type:

PolarizationVectorArray

attenuation(rays)#

the attenuation coefficient of the given rays

Parameters:

rays (AbstractRayVectorArray) – input rays to calculate the attenuation coefficient for

Return type:

int | float | complex | ndarray | Quantity | AbstractScalar

charge_collection_efficiency(rays, normal)#

Compute the charge collection efficiency of this CCD sensor material using charge_collection_efficiency().

Parameters:
Return type:

AbstractScalar

charge_diffusion(rays, normal)#

Given a set of incident rays, compute how much the position of each ray is perturbed due to charge diffusion within the sensor.

Parameters:
Return type:

RayVectorArray

efficiency(rays, normal)#

The fraction of light that passes through the interface.

Parameters:
Return type:

int | float | complex | ndarray | Quantity | AbstractScalar

electrons_measured(rays, normal)#

Randomly sample the number of measured electrons given the number of absorbed photons using electrons_measured().

Parameters:
Return type:

RayVectorArray

fano_factor(wavelength)#

The Fano factor (ratio of the variance to the mean) of the Fano noise for this sensor material.

The method uses the equivalent function, optika.sensors.fano_factor, along with the :attr:`temperature() attribute to compute the Fano factor for this material

Parameters:

wavelength (Quantity | AbstractScalar)

Return type:

ScalarArray

index_refraction(rays)#

the index of refraction of this material for the given input rays

Parameters:

rays (AbstractRayVectorArray) – input rays used to evaluate the index of refraction

Return type:

int | float | complex | ndarray | Quantity | AbstractScalar

photons_incident(electrons, wavelength, direction, normal)#

Compute the expected number of incident photons for a given number of electrons.

Parameters:
Return type:

AbstractScalar

probability_measurement(rays, normal)#

Compute the probability of measuring an absorbed photon for this sensor using probability_measurement().

Parameters:
Return type:

AbstractScalar

quantum_efficiency(rays, normal)#

Compute the quantum efficiency of this CCD material using quantum_efficiency_effective() and quantum_yield_ideal().

Parameters:
Return type:

AbstractScalar

quantum_efficiency_effective(rays, normal)#

Compute the effective quantum efficiency of this CCD material using quantum_efficiency_effective().

Parameters:
Return type:

AbstractScalar

quantum_yield_ideal(wavelength)#

Compute the ideal quantum yield of this CCD sensor material using optika.sensors.quantum_yield_ideal().

Parameters:

wavelength (Quantity | AbstractScalar) – The wavelength of the incident light

Return type:

Quantity | AbstractScalar

signal(rays, normal, noise=True)#

Given a set of absorbed rays, compute the number of electrons measured by the sensor using signal().

Parameters:
Return type:

RayVectorArray

to_string(prefix=None)#

Public-facing version of the __repr__ method that allows for defining a prefix string, which can be used to calculate how much whitespace to add to the beginning of each line of the result.

Parameters:

prefix (None | str) – an optional string, the length of which is used to calculate how much whitespace to add to the result.

Return type:

str

width_charge_diffusion(rays, normal)#

The standard deviation of the charge diffusion kernel for this sensor. Calculated using optika.sensors.charge_diffusion().

Parameters:
Return type:

AbstractScalar

cce_backsurface: Quantity = 0#

The charge-collection efficiency of the back surface of the sensor.

depletion: None | AbstractDepletionModel = None#

A model of this sensor’s depletion region.

eqe_measured: None | FunctionArray = None#

An optional measurement of the effective quantum efficiency.

property is_mirror: bool#

flag controlling whether this material reflects or transmits light

roughness_oxide: Quantity = <Quantity 0. nm>#

The RMS roughness of the oxide layer on the illuminated side of the sensor.

roughness_substrate: Quantity = <Quantity 0. um>#

The RMS roughness of the silicon substrate.

property shape: dict[str, int]#

The array shape of this object.

temperature: Quantity | AbstractScalar = <Quantity 300. K>#

The temperature of this sensor.

thickness_implant: Quantity = <Quantity 0. nm>#

The thickness of the ion implant layer.

thickness_oxide: Quantity = <Quantity 0. nm>#

The thickness of the oxide layer on the illuminated side of the sensor.

thickness_substrate: Quantity | AbstractScalar = <Quantity 0. um>#

The thickness of the light-sensitive silicon substrate.

property transformation: None#

the coordinate transformation between the global coordinate system and this object’s local coordinate system