Conventions and implementation notes
This page records the conventions Asymmetry follows and points to where each is implemented, so that a number read off a fit, a plot, or an exported file can be interpreted unambiguously.
Units
Unless a page states otherwise, Asymmetry uses these units throughout the interface, the fitted parameters, and the exported data:
Quantity |
Unit |
Used for |
|---|---|---|
Time |
μs |
histogram bins, fit ranges, lifetimes |
Frequency |
MHz |
precession and oscillation frequencies |
Magnetic field |
Gauss (G) |
applied and internal fields |
Distance |
Å |
muon–nucleus distances in dipolar models |
Relaxation rate |
μs⁻¹ |
relaxation rates and field-distribution widths |
Phase |
radians |
oscillation phases |
The muon gyromagnetic ratio is taken as \(\gamma_\mu / 2\pi = 135.539\) MHz/T.
The asymmetry convention
The asymmetry of a forward group \(F(t)\) and a backward group \(B(t)\) is
with the calibration constant \(\alpha\) applied to the backward group and the optional intrinsic-asymmetry balance \(\beta = A_{0,b}/A_{0,f}\) (default 1, giving the familiar \((F - \alpha B)/(F + \alpha B)\)) applied to the forward group in the denominator — the musrfit asymmetry-fit (fit type 2) correction pair, set in the Grouping window’s Corrections column. This convention is used consistently across the interface, the loaders, the grouping tools, and the fitting inputs. Some other programs place \(\alpha\) on the forward group instead, so take care when comparing α values between tools (\(\beta\) is numerically identical in both conventions). The corrections that produce the asymmetry are applied in a fixed order — deadtime, then background, then grouping, then asymmetry — as described in Key concepts and Data reduction.
Errors
Per-bin asymmetry uncertainties use exact Poisson error propagation through the asymmetry expression, rather than treating the numerator and denominator as independent, so the reported errors are well calibrated — a property the test suite checks with a pull distribution on every build (Synthetic runs and degraded statistics).
Fit functions
A fit component evaluates a normalised polarisation or relaxation shape scaled by an amplitude, and a fittable model is assembled by combining components with arithmetic and fraction groups. Component notation follows Blundell et al. (2022), and each function cites the original literature for its form. The full catalogue, with the naming and parameter conventions, is Fit functions.
Where the behaviour lives
The analysis engine is pure Python and free of any interface code, so every
convention above is exercised identically from the GUI and from a script. The
relevant packages are asymmetry.core.transform (grouping, asymmetry,
deadtime, background), asymmetry.core.fitting (models and engines),
asymmetry.core.fourier (frequency-domain tools), and
asymmetry.core.io (loaders). The API reference is API reference, and
the design rationale and study notes behind individual features are kept in the
repository under docs/porting/.