spad_deadtime_apply — PHOTON spad op

• Data kinds: countrate → countrate

• Call: import fullseye as fs; fs.ledger.spad_deadtime_apply(rate_hz, dead_time_ns=50.0, paralyzable=False) (implementation को सीधे call करना हो तो import photoncount; photoncount.spad_deadtime_apply(rate_hz, dead_time_ns=50.0, paralyzable=False), registry से लेना हो तो opsphoton.get("spad_deadtime_apply"))

उपयोग

detector के dead time से असली photon rate को विकृत करता है (counts खो जाते हैं)।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

After every detection a SPAD is blind for a recharge (dead) time tau, so the *measured* rate m is always below the *true* incident rate n. Two classical laws, and this op implements both:

• non-paralysable (default) — an arriving photon during the dead time is simply lost: m = n / (1 + n*tau). Monotonic, saturating at 1/tau.

• paralysable (paralyzable=True) — an arriving photon *restarts* the dead time: m = n * exp(-n*tau). This law peaks at n = 1/tau (where m = 1/(e*tau)) and then falls, so a bright scene can read *darker* than a dim one. That is why no inverse op exists for it (see spad_deadtime_correct).

*rate_hz* is a 1-D array of true rates in counts per second; *dead_time_ns* is the dead time in nanoseconds, defaulting to 50 — the middle of the 10-100 ns range a passively quenched SPAD occupies, and a placeholder to be replaced by the datasheet value, never a measurement of your detector. Returns the measured rates as a float64 1-D array of the same length.

Ground truth (pinned in the tests): at n = 1/tau the non-paralysable law gives exactly n/2; the paralysable law's maximum is exactly 1/(e*tau) at n = 1/tau; both reduce to m = n as n*tau -> 0.

Raises ValueError: negative, non-finite or non-1-D *rate_hz*, a non-positive *dead_time_ns*, and a non-bool *paralyzable*.

उपयोग की विस्तृत guide

• photon_timeresolved family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• photon_timeresolved — py -3.11 examples/photon_timeresolved.py

वे अगले ops जिनसे type जुड़ता है (countrate को input के रूप में लेते हैं)

spad_deadtime_correct

इसी category के (spad)

spad_deadtime_correct · tcspc_coates_correct


*Provenance: photoncount.py — PHOTON operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.