- 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)
7.1 KiB
7.1 KiB
title, date, tags, status, aliases, related_notes
| title | date | tags | status | aliases | related_notes | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Implementation TODO — gA Extraction Pipeline | 2026-05-14 |
|
active |
|
|
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.Wdata/Tc95_CA.csv—C_A(W)vs.Wdata/Tc95_CVA.csv—C_{VA}(W)vs.W- Columns:
W (unitless),C_V,C_A,C_VA Wrange:[1.001, 1.580](corresponds toT \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
ShapeFactorGAclass: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.interp1dwithkind='cubic'for smooth evaluation - 2.3 Validation: Check that
C(W)is monotonically reasonable forg_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):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_Awhere\chi^2 = \chi^2_{\text{min}} + 1 - 3.5 χ² curve output for visualization
- 3.6 Unit test:
test_fit_gA_reproduces_input— inject knowng_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_Aand sNME - Match both spectral shape AND experimental half-life
- Return both (sNME_c, sNME_f) solutions
- Simultaneous fit of
- 4.2 Half-life computation:
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.2with ESSM - 5.3 Cross-check: polynomial fit
A \cdot W + B \cdot W^{-1} + C \cdot W^2vs. SSM for sameg_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_spectrumwith 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_Acurve - 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
- Nuclear model source: Which precomputed
C_i(W)to use? (MQPM vs. NSM) - sNME strategy: CVC-fixed or ESSM? (ESSM recommended)
- Fit range: What
W_{\text{min}},W_{\text{max}}for your detector? - 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) |