Update description and docs

Phase space upgrad (forbidden factors)
This commit is contained in:
2026-04-29 22:35:56 +03:00
parent 9ea2fdae33
commit c40a6f7700
2 changed files with 40 additions and 5 deletions
+23 -1
View File
@@ -101,6 +101,7 @@ config = SpectrumConfig(
Z_daughter=91,
A_number=232,
endpoint_MeV=4.8, # Q-value
transition_type="A", # Allowed transition (default)
)
spectrum = BetaSpectrum.from_config(config)
@@ -118,7 +119,7 @@ analyzer.export_to_csv("output.csv") # Export data to CSV
| Component | Module | Status | Description |
|---|---|---:|---|
| Phase Space | `phase_space.py` | ✓ | Baseline $p W (W_0 - W)^2$, optional neutrino mass support |
| Phase Space | `phase_space.py` | ✓ | Baseline $p W (W_0 - W)^2$ with transition-type-dependent forbidden factors and optional neutrino mass support |
| Fermi Function | `fermi.py` | ✓ | Relativistic Coulomb correction via `scipy.special.loggamma` |
| Finite Size L0 | `finite_size.py` | ✓ | Low-Z expansion from Hayen et al. with prefactor |
| Charge Distribution U | `finite_size.py` | ✓ | Second-order $(1/5)(\alpha Z W R)^2$ correction |
@@ -136,6 +137,7 @@ Use `SpectrumConfig` to selectively enable/disable each correction:
```python
config = SpectrumConfig(
Z_parent=20, Z_daughter=21, A_number=40, endpoint_MeV=5.0,
transition_type="F1", # first forbidden non-unique
use_fermi=True,
use_screening=False, # disable atomic screening
use_exchange=True,
@@ -145,6 +147,26 @@ config = SpectrumConfig(
---
## Transition Types
The `transition_type` parameter in `SpectrumConfig` determines the **forbidden factor** applied to the phase space calculation. This encodes the angular momentum and parity selection rules for the nuclear transition:
| Type | Name | Forbidden Order | $\Delta J^\pi$ | Forbidden Factor |
|------|------|-----------------|----------------|------------------|
| `A` | Allowed | 0 | $0^+, 1^+$ | $1$ |
| `F1` | First forbidden (non-unique) | 1 | $0^-, 1^-, 2^\pm$ | $p_\nu^2 + p_e^2$ |
| `F1U` | First forbidden (unique) | 1 | $2^-$ | $p_\nu^2 + p_e^2$ |
| `F2` | Second forbidden (non-unique) | 2 | $1^\pm, 2^+, 3^\pm$ | $p_\nu^4 + \frac{3}{10}p_\nu^2 p_e^2 + p_e^4$ |
| `F2U` | Second forbidden (unique) | 2 | $3^-$ | $p_\nu^4 + \frac{3}{10}p_\nu^2 p_e^2 + p_e^4$ |
| `F3` | Third forbidden (non-unique) | 3 | $0^\pm, 1^\pm, 2^\pm, 3^+, 4^\pm$ | $p_\nu^6 + 7p_\nu^4 p_e^2 + 7p_\nu^2 p_e^4 + p_e^6$ |
| `F3U` | Third forbidden (unique) | 3 | $4^-$ | $p_\nu^6 + 7p_\nu^4 p_e^2 + 7p_\nu^2 p_e^4 + p_e^6$ |
| `F4` | Fourth forbidden (unique) | 4 | $5^-$ | $p_\nu^6 + 7p_\nu^4 p_e^2 + 7p_\nu^2 p_e^4 + p_e^6$ |
The forbidden factor multiplies the baseline phase space $p_e W_e p_\nu W_\nu$, modifying the spectral shape at higher energies. The even/odd suffix (`U`) distinguishes **unique** transitions (single contributing nuclear matrix element) from **non-unique** ones (multiple contributing matrix elements).
> [!note] Shape factor
> For a complete treatment of forbidden transitions, the nuclear **shape factor** $C(Z,W)$ from `[[10-nuclear-structure]]` should also be included. This is not yet implemented in the calculator.
## Dependencies
**Runtime:** numpy, scipy (for `loggamma`, `spence`), matplotlib (plotting), pandas (CSV export)
+17 -4
View File
@@ -47,9 +47,22 @@ Deviations from linearity near the endpoint indicate:
## Calculator Implementation
> [!tip] Code mapping
> Module: `beta_spectrum/components/phase_space.py` → `PhaseSpace(W0)` class
> Module: `beta_spectrum/components/phase_space.py` → `PhaseSpace(W0, transition_type)` class
>
> Simple evaluation of $p \times W \times (W_0 - W)^2$ with masking near endpoint for numerical safety. Optionally includes neutrino mass support.
> Evaluates $p \times W \times (W_0 - W)^2$ multiplied by a **transition-type-dependent forbidden factor**. Supports optional neutrino mass.
## Transition Type and Forbidden Factors
The `PhaseSpace` calculator accepts a `transition_type` parameter that determines the multiplicative forbidden factor applied to the baseline phase space:
| `transition_type` | Forbidden Order | Forbidden Factor |
|---|---|---|
| `A`, `F1` | 0, 1 | $1$ |
| `F1U`, `F2` | 1, 2 | $p_\nu^2 + p_e^2$ |
| `F2U`, `F3` | 2, 3 | $p_\nu^4 + \frac{3}{10}p_\nu^2 p_e^2 + p_e^4$ |
| `F3U`, `F4` | 3, 4 | $p_\nu^6 + 7p_\nu^4 p_e^2 + 7p_\nu^2 p_e^4 + p_e^6$ |
The forbidden factor modifies the energy dependence of the spectrum, becoming significant at higher electron energies. See `[[10-nuclear-structure]]` for the full shape factor treatment.
## Energy Range
@@ -63,6 +76,6 @@ The phase space factor:
```python
from beta_spectrum import PhaseSpace, T_to_W
ps = PhaseSpace(W0=T_to_W(5.0)) # endpoint = 5 MeV
values = ps(W_grid) # returns p·W·(W₀-W)²
ps = PhaseSpace(W0=T_to_W(5.0), transition_type="A") # allowed transition, 5 MeV endpoint
values = ps(W_grid) # returns p·W·(W₀-W)² × forbidden_factor
```