AbstractSiliconSensorMaterial#
- class optika.sensors.materials.AbstractSiliconSensorMaterial(temperature=<Quantity 300. K>)[source]#
Bases:
AbstractSensorMaterialAn interface representing the light-sensitive material of a silicon sensor.
Attributes
flag controlling whether this material reflects or transmits light
The array shape of this object.
The temperature of this sensor.
the coordinate transformation between the global coordinate system and this object's local coordinate system
Methods
__init__([temperature])attenuation(rays)the attenuation coefficient of the given rays
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.
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, ...)Given the number of electrons measured by the sensor, and a grid of wavelengths, compute the expected number of photons incident on the sensor.
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.Inheritance Diagram

- Parameters:
temperature (Quantity | AbstractScalar)
- attenuation(rays)[source]#
the attenuation coefficient of the given rays
- Parameters:
rays (AbstractRayVectorArray) – input rays to calculate the attenuation coefficient for
- Return type:
- abstractmethod 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:
rays (RayVectorArray) – The rays incident on the sensor surface.
normal (AbstractCartesian3dVectorArray) – The vector perpendicular to the surface of the sensor.
- Return type:
- abstractmethod efficiency(rays, normal)#
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:
- fano_factor(wavelength)[source]#
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)[source]#
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:
- abstractmethod photons_incident(electrons, wavelength, direction, normal)#
Given the number of electrons measured by the sensor, and a grid of wavelengths, compute the expected number of photons incident on the sensor.
- Parameters:
electrons (Quantity | AbstractScalar) – The number of electrons measured by the sensor.
wavelength (Quantity | AbstractScalar) – An assumed grid of wavelengths for the incident photons.
direction (AbstractCartesian3dVectorArray) – An assumed propagation direction for the incident photons.
normal (AbstractCartesian3dVectorArray) – The vector perpendicular to the surface of the sensor.
- Return type:
- quantum_yield_ideal(wavelength)[source]#
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:
- abstractmethod signal(rays, normal, noise=True)#
Given a set of absorbed rays, compute the number of electrons measured by the sensor using
signal().- Parameters:
rays (RayVectorArray) – The rays absorbed by the light-sensitive silicon layer. The
optika.rays.RayVectorArray.intensityfield should either be in units of photons or energy.normal (AbstractCartesian3dVectorArray) – The vector perpendicular to the surface of the sensor.
noise (bool) – Whether to add noise to the result.
- 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.
- temperature: Quantity | AbstractScalar = <Quantity 300. K>#
The temperature of this sensor.