# Multi-Pixel CHAI-class receivers have multiple pixels per array (e.g., 7 HFA pixels) and multiple arrays (HFA, LFA, 4G1--4G4). The engine handles this via a single vectorized path. ## Vectorized Path `resolve_calibration_load_full()` computes gamma, T_rec, and bad channels for **all pixels simultaneously** as `[C, R, A]` arrays. The calibration loop (`calibrate_full`) broadcasts these across the dump and subscan axes -- no per-pixel loop needed. This is the **only** calibration path used by `cal-cli`, `cal-io::pipeline`, and `cal-py`. ### Common PWV Strategy By default (`pwv_per_pixel = false`), PWV is fitted from pixel 0 only and propagated to all other pixels via `PwvSource::External`. This ensures consistent atmospheric correction across the focal plane and reduces computation by $\frac{1}{N_{pixels}}$. Set `pwv_per_pixel = true` (`--pwv-per-pixel` on the CLI) to fit each pixel independently (useful for diagnosing receiver-dependent systematics). ### Per-Pair Atmosphere Fitting When `pwv_per_pixel` is enabled, the engine can also perform per-pair atmosphere fitting (`determine_atmosphere_per_pair`), where each ON-OFF pair gets its own atmospheric transmission computed from its associated OFF subscan's airmass and sky signal. ### Multi-Frontend Linked PWV For multi-frontend observations (e.g., HFA + LFA + 4G bands observed simultaneously), the engine pools PWV estimates across all frontends to produce a single linked PWV value. This is handled by `cal-io/src/pipeline/linked_pwv.rs` and ensures physically consistent atmospheric correction across all bands in a multi-frontend session. **Implementation:** - `cal-core/src/scan/cal_load.rs` -- `CalibrationLoadFull` with `[C, R, A]` arrays - `cal-core/src/calibrate.rs` -- `calibrate_full()` broadcasts across all pixels - `cal-io/src/pipeline/wrappers.rs` -- `common_pwv_source()` - `cal-io/src/pipeline/linked_pwv.rs` -- multi-frontend PWV pooling