AbstractBackIlluminatedSiliconSensorMaterial#
- class optika.sensors.materials.AbstractBackIlluminatedSiliconSensorMaterial(temperature=<Quantity 300. K>)[source]#
Bases:
AbstractSiliconSensorMaterialAn interface representing the light-sensitive material of a backilluminated silicon sensor.
Attributes
The charge collection efficiency on the illuminated surface of the sensor.
A model of this sensor's depletion region.
flag controlling whether this material reflects or transmits light
The RMS roughness of the oxide layer surface.
The RMS roughness of the silicon substrate surface.
The array shape of this object.
The temperature of this sensor.
The thickness of the ion implant layer.
The thickness of the oxide layer on the illuminated side of the sensor.
The thickness of the light-sensitive silicon substrate.
the coordinate transformation between the global coordinate system and this object's local coordinate system
Methods
__init__([temperature])absorbance(wavelength[, direction, n, 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(wavelength[, ...])Compute the charge collection efficiency of this CCD sensor material using
charge_collection_efficiency().direction_refracted(wavelength[, direction, ...])The cosine of the refracted propagation angle inside the light-sensitive region of the sensor.
efficiency(rays, normal)The fraction of light that passes through the interface.
electrons_measured(photons_absorbed, wavelength)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.
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(wavelength[, ...])Compute the probability of measuring an absorbed photon for this sensor using
probability_measurement().quantum_efficiency(wavelength[, direction, ...])Compute the quantum efficiency of this CCD material using
quantum_efficiency_effective()andquantum_yield_ideal().quantum_efficiency_effective(wavelength[, ...])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(photons, wavelength[, direction, ...])Given the photons incident on each pixel, 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.transmittance(wavelength[, direction, n, normal])Compute the fraction of energy transmitted to the light-sensitive region of the sensor.
width_charge_diffusion(wavelength)The standard deviation of the charge diffusion kernel for this sensor.
Inheritance Diagram

- Parameters:
temperature (Quantity | AbstractScalar)
- absorbance(wavelength, direction=None, n=1, normal=None)[source]#
Compute the fraction of energy absorbed by the light-sensitive region of the sensor.
- Parameters:
wavelength (Quantity | AbstractScalar) – The wavelength of the incident light in vacuum.
direction (None | AbstractCartesian3dVectorArray) – The propagation direction of the incident light in the ambient medium. If
None(default), normal incidence (\(\hat{z}\)) is assumed.n (complex | AbstractScalar) – The complex index of refraction of the ambient medium.
normal (None | AbstractCartesian3dVectorArray) – The vector perpendicular to the surface of the CCD sensor.
- Return type:
- attenuation(rays)#
the attenuation coefficient of the given rays
- Parameters:
rays (AbstractRayVectorArray) – input rays to calculate the attenuation coefficient for
- Return type:
- charge_collection_efficiency(wavelength, direction=None, n=1, normal=None)[source]#
Compute the charge collection efficiency of this CCD sensor material using
charge_collection_efficiency().- Parameters:
wavelength (Quantity | AbstractScalar) – The wavelength of the incident light in vacuum.
direction (None | AbstractCartesian3dVectorArray) – The propagation direction of the incident light in the ambient medium. If
None(default), normal incidence (\(\hat{z}\)) is assumed.n (complex | AbstractScalar) – The complex index of refraction of the ambient medium.
normal (None | AbstractCartesian3dVectorArray) – The vector perpendicular to the surface of the CCD sensor.
- Return type:
- direction_refracted(wavelength, direction=None, n=1, normal=None)[source]#
The cosine of the refracted propagation angle inside the light-sensitive region of the sensor.
This is the quantity
signal()expects as itsdirectionargument. Performing the refraction here lets the sensor’scollectmethod fold the ambient index of refraction into the per-pixel cosine, sosignal()does not need a separate ambient-index argument.- Parameters:
wavelength (Quantity | AbstractScalar) – The wavelength of the incident light in vacuum.
direction (None | AbstractCartesian3dVectorArray) – The propagation direction of the incident light in the ambient medium. If
None(default), normal incidence (\(\hat{z}\)) is assumed.n (complex | AbstractScalar) – The complex index of refraction of the ambient medium.
normal (None | AbstractCartesian3dVectorArray) – The vector perpendicular to the surface of the sensor.
- Return type:
- efficiency(rays, normal)[source]#
The fraction of light that passes through the interface.
- Parameters:
rays (AbstractRayVectorArray) – the input rays to calculate the efficiency for
normal (AbstractCartesian3dVectorArray) – the vector perpendicular to the optical surface
- Return type:
- electrons_measured(photons_absorbed, wavelength, direction=None, n=1, normal=None, width_pixel=<Quantity 0. um>, axis_xy=None, wrap=False)[source]#
Randomly sample the number of measured electrons given the number of absorbed photons using
electrons_measured().- Parameters:
photons_absorbed (AbstractScalar)
wavelength (Quantity | AbstractScalar)
direction (None | AbstractCartesian3dVectorArray)
n (complex | AbstractScalar)
normal (None | AbstractCartesian3dVectorArray)
width_pixel (Quantity | AbstractScalar | AbstractCartesian2dVectorArray)
wrap (bool)
- Return type:
- 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:
- 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:
- photons_incident(electrons, wavelength, direction=None, n=1, normal=None)[source]#
Compute the expected number of incident photons for a given number of electrons.
- Parameters:
electrons (Quantity | AbstractScalar) – The energy collected by the sensor in units of electrons.
wavelength (Quantity | AbstractScalar) – The assumed wavelength of the incident photons.
direction (None | AbstractCartesian3dVectorArray) – The assumed direction of the incident photons.
n (complex | AbstractScalar) – The complex index of refraction of the ambient medium.
normal (None | AbstractCartesian3dVectorArray) – The vector perpendicular to the surface of the sensor.
- Return type:
- probability_measurement(wavelength, direction=None, normal=None)[source]#
Compute the probability of measuring an absorbed photon for this sensor using
probability_measurement().- Parameters:
wavelength (Quantity | AbstractScalar) – The wavelength of the incident light in vacuum.
direction (None | AbstractCartesian3dVectorArray) – The propagation direction of the incident light in the ambient medium. If
None(default), normal incidence (\(\hat{z}\)) is assumed.normal (None | AbstractCartesian3dVectorArray) – The vector perpendicular to the surface of the CCD.
- Return type:
- quantum_efficiency(wavelength, direction=None, n=1, normal=None)[source]#
Compute the quantum efficiency of this CCD material using
quantum_efficiency_effective()andquantum_yield_ideal().- Parameters:
wavelength (Quantity | AbstractScalar) – The wavelength of the incident light in vacuum.
direction (None | AbstractCartesian3dVectorArray) – The propagation direction of the incident light in the ambient medium. If
None(default), normal incidence (\(\hat{z}\)) is assumed.n (complex | AbstractScalar) – The complex index of refraction of the ambient medium.
normal (None | AbstractCartesian3dVectorArray) – The vector perpendicular to the surface of the CCD.
- Return type:
- quantum_efficiency_effective(wavelength, direction=None, n=1, normal=None)[source]#
Compute the effective quantum efficiency of this CCD material using
quantum_efficiency_effective().- Parameters:
wavelength (Quantity | AbstractScalar) – The wavelength of the incident light in vacuum.
direction (None | AbstractCartesian3dVectorArray) – The propagation direction of the incident light in the ambient medium. If
None(default), normal incidence (\(\hat{z}\)) is assumed.n (complex | AbstractScalar) – The complex index of refraction of the ambient medium.
normal (None | AbstractCartesian3dVectorArray) – The vector perpendicular to the surface of the CCD.
- Return type:
- 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:
- signal(photons, wavelength, direction=1, width_pixel=<Quantity 0. um>, axis_xy=None, noise=True, wrap=False)[source]#
Given the photons incident on each pixel, compute the number of electrons measured by the sensor using
signal().- Parameters:
photons (Quantity | AbstractScalar) – The number of photons incident on each pixel.
wavelength (Quantity | AbstractScalar) – An assumed grid of wavelengths for the incident photons.
direction (float | AbstractScalar) – The cosine of the refracted angle inside the light-sensitive region, as produced by
direction_refracted().width_pixel (Quantity | AbstractScalar | AbstractCartesian2dVectorArray) – The physical size of each pixel, used by the charge-diffusion model.
axis_xy (None | tuple[str, str]) – The two logical axes corresponding to the pixel grid of the sensor. If provided, charge diffusion will occur along these two axes. If
None(the default), no diffusion is performed.noise (bool) – Whether to add noise to the result.
wrap (bool) – Controls how diffused charge is treated at the edges of the pixel grid. If
False(the default), charge that diffuses past the edge of the grid is lost, as it would be at the physical edge of a sensor. IfTrue, the grid is treated as periodic and the charge re-enters the opposite edge (a toroidal boundary).
- Return type:
- 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.
- transmittance(wavelength, direction=None, n=1, normal=None)[source]#
Compute the fraction of energy transmitted to the light-sensitive region of the sensor.
- Parameters:
wavelength (Quantity | AbstractScalar) – The wavelength of the incident light in vacuum.
direction (None | AbstractCartesian3dVectorArray) – The propagation direction of the incident light in the ambient medium. If
None(default), normal incidence (\(\hat{z}\)) is assumed.n (complex | AbstractScalar) – The complex index of refraction of the ambient medium.
normal (None | AbstractCartesian3dVectorArray) – The vector perpendicular to the surface of the CCD sensor.
- Return type:
- width_charge_diffusion(wavelength)[source]#
The standard deviation of the charge diffusion kernel for this sensor. Calculated using
optika.sensors.charge_diffusion().- Parameters:
wavelength (Quantity | AbstractScalar) – The wavelength of the incident light in vacuum.
- Return type:
- abstract property cce_backsurface: float | AbstractScalar#
The charge collection efficiency on the illuminated surface of the sensor.
- abstract property depletion: AbstractDepletionModel#
A model of this sensor’s depletion region.
- abstract property roughness_oxide#
The RMS roughness of the oxide layer surface.
- abstract property roughness_substrate#
The RMS roughness of the silicon substrate surface.
- temperature: Quantity | AbstractScalar = <Quantity 300. K>#
The temperature of this sensor.
- abstract property thickness_implant: Quantity | AbstractScalar#
The thickness of the ion implant layer.
- abstract property thickness_oxide: Quantity | AbstractScalar#
The thickness of the oxide layer on the illuminated side of the sensor.
- abstract property thickness_substrate: Quantity | AbstractScalar#
The thickness of the light-sensitive silicon substrate.