AbstractSiliconSensorMaterial#

class optika.sensors.materials.AbstractSiliconSensorMaterial(temperature=<Quantity 300. K>)[source]#

Bases: AbstractSensorMaterial

An interface representing the light-sensitive material of a silicon sensor.

Attributes

is_mirror

flag controlling whether this material reflects or transmits light

shape

The array shape of this object.

temperature

The temperature of this sensor.

transformation

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

Inheritance diagram of optika.sensors.materials.AbstractSiliconSensorMaterial
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:

int | float | complex | ndarray | Quantity | AbstractScalar

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

RayVectorArray

abstractmethod efficiency(rays, normal)#

The fraction of light that passes through the interface.

Parameters:
Return type:

int | float | complex | ndarray | Quantity | AbstractScalar

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:

ScalarArray

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:

int | float | complex | ndarray | Quantity | AbstractScalar

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

AbstractScalar

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:

Quantity | AbstractScalar

abstractmethod 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

property is_mirror: bool#

flag controlling whether this material reflects or transmits light

abstract property shape: dict[str, int]#

The array shape of this object.

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

The temperature of this sensor.

property transformation: None#

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