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')>#