IdealSensorMaterial#

class optika.sensors.materials.IdealSensorMaterial[source]#

Bases: Vacuum, AbstractSensorMaterial

An idealized sensor material with a quantum efficiency of unity, no charge diffusion, and a noise model which consists of only shot noise.

Attributes

is_mirror

flag controlling whether this material reflects or transmits light

shape

The array shape of this object.

transformation

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

Inheritance diagram of optika.sensors.materials.IdealSensorMaterial
attenuation(rays)#

the attenuation coefficient of the given rays

Parameters:

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

Return type:

int | float | complex | ndarray | Quantity | AbstractScalar

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:
Return type:

RayVectorArray

efficiency(rays, normal)#

The fraction of light that passes through the interface.

Parameters:
Return type:

int | float | complex | ndarray | Quantity | AbstractScalar

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:

int | float | complex | ndarray | Quantity | AbstractScalar

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:
Return type:

AbstractScalar

signal(rays, normal, noise=False)[source]#

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

property is_mirror: bool#

flag controlling whether this material reflects or transmits light

property shape: dict[str, int]#

The array shape of this object.

property transformation: None#

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