docs: restructure knowledge base into tree layout + gA extraction module
- Organize into tree structure: corrections/, nuclear-structure/, gA-extraction/, refs/ - Move all correction notes to corrections/ (01-09) - Move nuclear structure to nuclear-structure/ with index - Add gA-extraction/ with SSM algorithm, sNME/ESSM formalism, Tc99 case study, and implementation TODO - Reorganize refs by topic (electromagnetic/, forbidden-decay/) - Update all wikilinks to new paths - Remove radiative_spec.md (code algorithm, not reference) - Lint: all wikilinks verified valid - Comprehensive gA extraction research based on Paulsen et al. (2024) and Song et al. (2025)
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
---
|
||||
title: "Implementation TODO — gA Extraction Pipeline"
|
||||
date: 2026-05-14
|
||||
tags:
|
||||
- gA/extraction/todo
|
||||
- implementation-plan
|
||||
status: active
|
||||
aliases: [gA pipeline, SSM implementation, shape factor module]
|
||||
related_notes:
|
||||
- gA-extraction/01-ssm-algorithm
|
||||
- gA-extraction/02-ssnme
|
||||
- gA-extraction/03-tc99-case-study
|
||||
---
|
||||
|
||||
# Implementation TODO — gA Extraction Pipeline
|
||||
|
||||
> [!info] Status
|
||||
> **Research phase.** Experimental data to be added by user. Implementation to follow after documentation is complete.
|
||||
|
||||
## Phase 1: Nuclear Model Input (P0 — prerequisite)
|
||||
|
||||
- [ ] **1.1** Obtain precomputed shape factor components $C_V(W)$, $C_A(W)$, $C_{VA}(W)$ for $^{99}\text{Tc}$
|
||||
- [ ] Option A: Use Kostensalo & Suhonen (2017) MQPM results (published in PRC 96, 024317)
|
||||
- [ ] Option B: Use Ramalho & Suhonen (2024) NSM results (Front. Phys. 12, 1455778)
|
||||
- [ ] Option C: Run shell model with KShell or another available code
|
||||
- [ ] **Decision:** Which source to use? (See [[gA-extraction/03-tc99-case-study]] for comparison)
|
||||
- [ ] **1.2** Store components as lookup tables (CSV or NumPy):
|
||||
- `data/Tc95_CV.csv` — $C_V(W)$ vs. $W$
|
||||
- `data/Tc95_CA.csv` — $C_A(W)$ vs. $W$
|
||||
- `data/Tc95_CVA.csv` — $C_{VA}(W)$ vs. $W$
|
||||
- Columns: `W (unitless)`, `C_V`, `C_A`, `C_VA`
|
||||
- $W$ range: $[1.001, 1.580]$ (corresponds to $T \in [0.5, 295]$ keV)
|
||||
- [ ] **1.3** Decide on sNME handling:
|
||||
- [ ] Fix to CVC value (Paulsen et al. approach)
|
||||
- [ ] Fit as free parameter (ESSM — Song et al. approach) **RECOMMENDED**
|
||||
- If ESSM: also need l-NME from nuclear model
|
||||
|
||||
## Phase 2: Shape Factor Module (P1 — depends on 1.1)
|
||||
|
||||
Create `beta_spectrum/components/shape_factor_gA.py`:
|
||||
|
||||
- [ ] **2.1** `ShapeFactorGA` class:
|
||||
```python
|
||||
class ShapeFactorGA:
|
||||
def __init__(self, C_V_table, C_A_table, C_VA_table, sNME=None):
|
||||
# Load tables, interpolate to arbitrary W
|
||||
# sNME: if None, use CVC value; if float, use fitted value
|
||||
|
||||
def evaluate(self, W, gA, gV=1.0):
|
||||
"""Compute C(W; gA, gV) = gV²·CV(W) + gA²·CA(W) + gV·gA·CVA(W)"""
|
||||
|
||||
def evaluate_components(self, W):
|
||||
"""Return (C_V(W), C_A(W), C_VA(W))"""
|
||||
```
|
||||
- [ ] **2.2** Interpolation: Use `scipy.interpolate.interp1d` with `kind='cubic'` for smooth evaluation
|
||||
- [ ] **2.3** Validation: Check that $C(W)$ is monotonically reasonable for $g_A \in [0.4, 1.8]$
|
||||
- [ ] **2.4** Unit test: `test_shape_factor_gA_consistency` — verify decomposition matches Eq. (1)
|
||||
|
||||
## Phase 3: Fitting Pipeline (P2 — depends on 1.2 + 2.1)
|
||||
|
||||
Create `beta_spectrum/gA_fit.py`:
|
||||
|
||||
- [ ] **3.1** `fit_gA_spectrum(W_exp, N_exp, sigma_exp, shape_factor, W_min, W_max)`:
|
||||
```python
|
||||
def fit_gA_spectrum(W_exp, N_exp, sigma_exp, sf, W_min=0.020, W_max=0.275):
|
||||
"""
|
||||
Fit gA to experimental spectrum using χ² minimization.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
W_exp : array_like
|
||||
Electron total energy (unitless, W = 1 + T/m_ec²)
|
||||
N_exp : array_like
|
||||
Measured counts (or normalized spectrum)
|
||||
sigma_exp : array_like
|
||||
Uncertainties on N_exp
|
||||
sf : ShapeFactorGA
|
||||
Precomputed shape factor
|
||||
W_min, W_max : float
|
||||
Fit range in unitless W
|
||||
|
||||
Returns
|
||||
-------
|
||||
gA_best, gA_low, gA_high, chi2_min, chi2_curve
|
||||
"""
|
||||
```
|
||||
- [ ] **3.2** Grid search: $g_A \in [0.4, 1.8]$ with 0.01 step
|
||||
- [ ] **3.3** Brent's method refinement around grid minimum
|
||||
- [ ] **3.4** Confidence interval: find $g_A$ where $\chi^2 = \chi^2_{\text{min}} + 1$
|
||||
- [ ] **3.5** χ² curve output for visualization
|
||||
- [ ] **3.6** Unit test: `test_fit_gA_reproduces_input` — inject known $g_A$, verify recovery
|
||||
|
||||
## Phase 4: ESSM Extension (P2 — optional but recommended)
|
||||
|
||||
- [ ] **4.1** `fit_gA_sNME(W_exp, N_exp, sigma_exp, sf, l_NME, t_half_exp)`:
|
||||
- Simultaneous fit of $g_A$ and sNME
|
||||
- Match both spectral shape AND experimental half-life
|
||||
- Return both (sNME_c, sNME_f) solutions
|
||||
- [ ] **4.2** Half-life computation:
|
||||
```python
|
||||
def compute_half_life(sf, gA, gV, sNME, W0):
|
||||
"""Compute t_1/2 from integrated shape factor"""
|
||||
C_integral = integrate(C(W; gA, gV, sNME) * phase_space * Fermi * ... dW)
|
||||
return kappa / C_integral
|
||||
```
|
||||
- [ ] **4.3** Validation against Song et al. (2025) results for $^{99}\text{Tc}$
|
||||
|
||||
## Phase 5: Validation (P3 — depends on 3.1 + 4.1)
|
||||
|
||||
- [ ] **5.1** Reproduce Paulsen et al. (2024) result: $g_A^{\text{eff}} = 1.526(92)$ with CVC-fixed sNME
|
||||
- [ ] **5.2** Reproduce Song et al. (2025) result: $g_A^{\text{eff}} \approx 1.0\text{--}1.2$ with ESSM
|
||||
- [ ] **5.3** Cross-check: polynomial fit $A \cdot W + B \cdot W^{-1} + C \cdot W^2$ vs. SSM for same $g_A$
|
||||
- [ ] **5.4** Sensitivity analysis: vary $W_{\text{min}}$, $W_{\text{max}}$, nuclear model, sNME
|
||||
|
||||
## Phase 6: Experimental Data Analysis (P4 — depends on user providing data)
|
||||
|
||||
- [ ] **6.1** Import raw spectrum data (format TBD)
|
||||
- [ ] **6.2** Apply detector response correction (if needed) — [[corrections/07-detector-response]]
|
||||
- [ ] **6.3** Run `fit_gA_spectrum` with appropriate fit range
|
||||
- [ ] **6.4** Run `fit_gA_sNME` (ESSM) if nuclear model input available
|
||||
- [ ] **6.5** Generate publication-quality plots:
|
||||
- Measured spectrum + best-fit theoretical curve
|
||||
- Residuals plot
|
||||
- χ² vs. $g_A$ curve
|
||||
- Comparison with polynomial fit
|
||||
- [ ] **6.6** Uncertainty budget: propagate detector, model, and systematic uncertainties
|
||||
|
||||
## Phase 7: Paper Draft Support
|
||||
|
||||
- [ ] **7.1** Generate tables: fitted $g_A$, sNME, $\chi^2$, confidence intervals
|
||||
- [ ] **7.2** Generate figures for paper
|
||||
- [ ] **7.3** Cross-reference with literature values
|
||||
- [ ] **7.4** Draft methodology section using [[gA-extraction/01-ssm-algorithm]] as reference
|
||||
|
||||
## File Structure (target)
|
||||
|
||||
```
|
||||
beta_shape_pnpi/
|
||||
├── beta_spectrum/
|
||||
│ ├── components/
|
||||
│ │ └── shape_factor_gA.py ← Phase 2
|
||||
│ └── gA_fit.py ← Phase 3 + 4
|
||||
├── data/
|
||||
│ ├── Tc95_CV.csv ← Phase 1
|
||||
│ ├── Tc95_CA.csv
|
||||
│ ├── Tc95_CVA.csv
|
||||
│ └── experimental/ ← Phase 6 (user-provided)
|
||||
├── tests/
|
||||
│ └── test_shape_factor_gA.py ← Phase 2 + 3
|
||||
│ └── test_gA_fit.py
|
||||
└── docs/
|
||||
└── gA-extraction/
|
||||
├── 01-ssm-algorithm.md
|
||||
├── 02-ssnme.md
|
||||
├── 03-tc99-case-study.md
|
||||
└── 04-implementation-todo.md
|
||||
```
|
||||
|
||||
## Decision Points
|
||||
|
||||
1. **Nuclear model source:** Which precomputed $C_i(W)$ to use? (MQPM vs. NSM)
|
||||
2. **sNME strategy:** CVC-fixed or ESSM? (ESSM recommended)
|
||||
3. **Fit range:** What $W_{\text{min}}$, $W_{\text{max}}$ for your detector?
|
||||
4. **Detector corrections:** Do you need response deconvolution before fitting?
|
||||
|
||||
## References for Implementation
|
||||
|
||||
| Item | Source |
|
||||
|---|---|
|
||||
| Shape factor formalism | Kostensalo & Suhonen, PRC 96, 024317 (2017) |
|
||||
| ESSM formalism | Kumar et al., EPJA 57, 225 (2021) |
|
||||
| sNME analysis | Ramalho & Suhonen, Front. Phys. 12, 1455778 (2024) |
|
||||
| $^{99}\text{Tc}$ MMC data | Paulsen et al., PRC 110, 055503 (2024) |
|
||||
| $^{99}\text{Tc}$ ESSM analysis | Song et al., arXiv:2506.17544 (2025) |
|
||||
| BB formalism | Behrens & Bühring (1982) |
|
||||
Reference in New Issue
Block a user