Plesty Perovskite G2 Search
Search a sample for single-photon emitters and measure the saturation curve of each one found. With the laser on at the search power, the stage maps the count rate in fine steps (0.1 µm), row by row in +x. A bright point is judged where the stage is, the moment it is read, and the row goes on from it: the stage never moves back. A spot is kept only if two conditions hold:
- its count rate is well above the background mapped so far, and
- the second-order correlation at zero delay, g2(0), is below 0.5 — the mark of a single-photon emitter (a source that rarely emits two photons at once) — from enough coincidences to tell.
A spot failing either condition is recorded and the map goes on. An emitter gets a saturation curve: its count rate at each laser power of a series, read against a powermeter.
laser on (8 %) -> map the area cell by cell (2 um cells), each cell in
0.1 um steps, each row in +x; at each point:
-> (1) a spot? 3 x the background so far, >= 150 kcps, still climbing
-> there and then, the stage still: g2, 20 s: g2(0) < 0.5? no -> row on
-> saturation curve, then row on
The rig
| Sub-device | Instrument | Server on the bench (setup.yaml) |
|---|---|---|
stage |
Thorlabs KST201 x/y/z stage (ZST225 actuators); only x and y move | kst201-d2xx, plesty-kst201 |
tt |
Swabian Time Tagger, the two detectors of a Hanbury Brown–Twiss setup | swabian-tt, plesty-swabian-tt |
laser |
PicoQuant Taiko PDL M1 | taiko-pdl-m1, plesty-taiko-pdl-m1 |
pm |
Thorlabs PM-series powermeter (PM100D), optional | pow, plesty-thorlabs-powermeter |
setup.yaml declares the servers as the perovskite bench does, names and
sources alike; the bench starts each and gives the run its address
(KST201_D2XX_ADDRESS, SWABIAN_TT_ADDRESS, TAIKO_PDL_M1_ADDRESS,
POW_ADDRESS), which the rig's sub-devices read.
Choices in config/default.yaml
laser.mode—pulsed: g2(0) is the area of the zero-delay peak over the mean area of the side peaks, which sit at multiples of the laser period.cw: g2(0) is the coincidences around zero delay over the histogram's far wings.map— the area in stage mm, its cells (cell_um) and its step. Cells are mapped one after the other, rows of cells from low y up, each in +x; within a cell, rows run in +x, each frombacklash_umbelow its start, so the stepper's backlash does not shift sub-micron steps; a spot is judged where the row has the stage. Every move is checked against the map plus that approach before it is sent.candidates— the background is a low percentile of the points mapped so far; a spot readscontrasttimes it and abovemin_cps, still climbing its patch, and a patch is judged againrejudge_gaintimes brighter.g2.permille,g2.min_coincidences— the g2's own laser power (lower than the map's keeps biexciton emission out of the dip), and the coincidences below which a g2 is inconclusive rather than a verdict.saturation— the powers fromstart_permilletostop_permilleinpointssteps,logorlinear.powermeter— delete the block to run without one; the saturation curve's power axis is then the laser's own calibrated estimate.
The saturation curve is fitted with I(P) = I_inf · P / (P + P_sat) + b · P,
the linear term taking the background that grows with the power.
Running
uv sync
uv run python -m plesty.perovskite_g2_search --dry-run # the plan, no devices
uv run python -m plesty.perovskite_g2_search # config/default.yaml
uv run python -m plesty.perovskite_g2_search --resume <run_id> # continue a run
Copy .env.example to .env first and fill in the bench's address, token and
data paths. Runs land in <PLESTY_DATA>/perovskite-g2-search/<run_id>, one
record per step in records.jsonl: each map row, the candidates, and per
candidate where it was aimed, its correlation, g2(0) and verdict, and for an
emitter its saturation points and fit. An interrupted run resumes at the step
it stopped at; the laser is turned off however a run ends.
Metadata
Release files for plesty-perovskite-g2-search 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| plesty_perovskite_g2_search-0.1.0.tar.gz | 513.9 kB | Without provenance | Details for plesty_perovskite_g2_search-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| plesty_perovskite_g2_search-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for plesty_perovskite_g2_search-0.1.0-py3-none-any.whl |
Total release size: 561.4 kB
Release files / plesty_perovskite_g2_search-0.1.0.tar.gz
| Download URL | plesty_perovskite_g2_search-0.1.0.tar.gz |
|---|---|
| Size | 513.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1d817153050de0149018ea147d6bbdec355532e0885617ad88c4340a50b84980
|
|
BLAKE2b-256 checksum How to use checksums |
53d111944ee48596621213a9b0962c166e4c235fc35b890bb0f64b57936ba638
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / plesty_perovskite_g2_search-0.1.0-py3-none-any.whl
| Download URL | plesty_perovskite_g2_search-0.1.0-py3-none-any.whl |
|---|---|
| Size | 47.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
66265b3ba79628c666ae8d2d346d8c4142536580f2e53ce32e4c955e33a40d50
|
|
BLAKE2b-256 checksum How to use checksums |
9195b0bdea42c35b5a100336b67b07ccba3ed1a3f76514341d48650f8aee2a99
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for plesty-perovskite-g2-search 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.