Detectors#

Classes for modeling the signal detection process in flow cytometry.

class Detector(*, phi_angle, numerical_aperture, cache_numerical_aperture=<Quantity(0, 'dimensionless')>, gamma_angle=<Quantity(0, 'degree')>, sampling=<Quantity(100, 'dimensionless')>, responsivity=<Quantity(1.0, 'ampere / watt')>, dark_current=<Quantity(0.0, 'ampere')>, name=None)[source]#

Bases: object

Represents a photodetector for flow cytometry simulations.

This class simulates a photodetector that captures light scattering signals in a flow cytometry setup. It models the detector’s response by incorporating various noise sources (shot noise, thermal noise, and dark current noise) into the signal processing workflow, thereby providing a realistic representation of detector performance.

Parameters:
  • name (str, optional) – A unique identifier for the detector. If not provided, a unique ID is generated.

  • phi_angle (Angle) – The primary azimuthal angle of incidence for the detector (in degrees).

  • numerical_aperture (Dimensionless) – The numerical aperture of the detector (dimensionless).

  • cache_numerical_aperture (Dimensionless, optional) – The numerical aperture of the caching element placed in front of the detector (dimensionless). Default is 0 AU.

  • responsivity (Current / Power, optional) – The responsivity of the detector (in amperes per watt). Default is 1 A/W. Typical ranges include 0.4-0.7 A/W for silicon-based detectors and 0.8-0.9 A/W for InGaAs-based detectors.

  • dark_current (Current, optional) – The dark current of the detector (in amperes). Default is 0 A. Typical values are in the range of 1-100 nA.

  • gamma_angle (Angle, optional) – The complementary (longitudinal) angle of incidence, if applicable (in degrees). Default is 0°.

  • sampling (Dimensionless, optional) – The number of spatial sampling points defining the detector’s resolution. Default is 100 AU.

apply_dark_current_noise(signal_generator, bandwidth)[source]#

Compute and return the dark current noise.

Parameters:
  • signal_generator (SignalGenerator) – The signal generator instance used to apply noise to the signal.

  • bandwidth (Frequency) – The bandwidth of the signal (in Hz).

  • as (Dark current noise is computed)

  • math:: (..) – sigma_{text{dark}} = sqrt{2 q I_d B}

  • where

    • \(q\) is the elementary charge (1.602176634 x 10⁻¹⁹ C),

    • \(I_d\) is the dark current,

    • \(B\) is the bandwidth.

Return type:

None

apply_shot_noise(**kwargs)#
cache_numerical_aperture: Dimensionless = <Quantity(0, 'dimensionless')>#
responsivity: Responsitivity | None = <Quantity(1.0, 'ampere / watt')>#