IdealSensorMaterial#
- class optika.sensors.materials.IdealSensorMaterial[source]#
Bases:
Vacuum,AbstractSensorMaterialAn idealized sensor material with a quantum efficiency of unity, no charge diffusion, and a noise model which consists of only shot noise.
Attributes
flag controlling whether this material reflects or transmits light
The array shape of this object.
the coordinate transformation between the global coordinate system and this object's local coordinate system
Methods
__init__()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.
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.
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

- attenuation(rays)#
the attenuation coefficient of the given rays
- Parameters:
rays (RayVectorArray) – input rays to calculate the attenuation coefficient for
- Return type:
- charge_diffusion(rays, normal)[source]#
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:
- efficiency(rays, normal)#
The fraction of light that passes through the interface.
- Parameters:
rays (RayVectorArray) – the input rays to calculate the efficiency for
normal (AbstractCartesian3dVectorArray) – the vector perpendicular to the optical surface
- Return type:
- index_refraction(rays)#
the index of refraction of this material for the given input rays
- Parameters:
rays (RayVectorArray) – input rays used to evaluate the index of refraction
- Return type:
- photons_incident(electrons, wavelength, direction, normal)[source]#
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:
- signal(rays, normal, noise=False)[source]#
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.