docs: reflect normalization fixes, detector cleanup and CLI overrides
- README: remove stale detector_response.py tree entry and the detector-models highlight (module removed); document per-branch measured transition endpoints from paceENSDF and JSON-flow CLI override semantics - TODO: drop the DEFAULT_JSON_SCHEMA detector-keys clause (removed) - data/custom_input_example.json: strip dead detector_* keys
This commit is contained in:
@@ -60,8 +60,7 @@ beta_shape_pnpi/
|
||||
│ │ ├── finite_size.py ✓ L0 expansion + charge distribution U term
|
||||
│ │ ├── screening.py ✓ Atomic electron screening (ratio method)
|
||||
│ │ ├── exchange.py ✓ Hayen-2018 empirical fit coefficients
|
||||
│ │ ├── radiative.py ✓ Outer radiative corrections, soft-photon resummation
|
||||
│ │ └── detector_response.py ✓ Analytical detector response models
|
||||
│ │ └── radiative.py ✓ Outer radiative corrections, soft-photon resummation
|
||||
├── beta_spectrum/output/ ← output, plotting, visualization, CSV export
|
||||
│ ├── __init__.py # BetaSpectrumAnalyzer, CSVEmitter, Visualizer
|
||||
│ ├── core.py # BetaSpectrumAnalyzer base class
|
||||
@@ -191,9 +190,9 @@ ______________________________________________________________________
|
||||
For a complete list of implemented and planned features, see [TODO.md](TODO.md). Key highlights:
|
||||
|
||||
- **Physics corrections**: phase space, Fermi function, finite size, screening, exchange, radiative (with delta_cut resummation)
|
||||
- **Detector response**: Gaussian, Gaussian+tail, Tikhonov models with tabulated support
|
||||
- **Detector response**: not implemented — `SpectrumModel` keeps a duck-typed optional convolution hook; the analytical models were removed (restore-or-delete decision tracked in TODO.md)
|
||||
- **Multi-branch decay**: intensity-weighted sum of branch spectra, per-branch calculators with branch-specific endpoint, transition type (from ENSDF), and `--intensity-cutoff` CLI filter
|
||||
- **Analysis tools**: χ² fitter (SpectrumFitter + CurveFitter), C(W) extraction pipeline, Kurie plot analysis, g_V/g_A extraction
|
||||
- **Experimental data**: ExpSpectrum container, energy calibration, peak fitting, dead-time/pile-up correction
|
||||
- **CLI**: `bs_pnpi --nuclide Tc99` — full paceENSDF integration (auto-lookup of Z, A, Q-value, transition type, half-life, branches, forbiddenness from ENSDF)
|
||||
- **paceENSDF integration**: `get_decay_info_from_paceENSDF()`, `create_config_from_source("paceENSDF", nuclide="Tc99")`, `_parse_nuclide_symbol()` for Z=1..98, FORBIDDENNESS_MAP, `--nuclide` CLI flag
|
||||
- **CLI**: `bs_pnpi --nuclide Tc99` — full paceENSDF integration (auto-lookup of Z, A, Q-value, transition type, half-life, branches, forbiddenness from ENSDF); for JSON input the file's values are used and CLI flags (`--e-step`, `--neutrino-mass`, `--intensity-cutoff`, `--csv-separator`, `--normalize-to-one`) override them only when explicitly given
|
||||
- **paceENSDF integration**: `get_decay_info_from_paceENSDF()`, `create_config_from_source("paceENSDF", nuclide="Tc99")`, `_parse_nuclide_symbol()` for Z=1..98, FORBIDDENNESS_MAP, `--nuclide` CLI flag; per-branch endpoints are the measured transition endpoint energies from ENSDF (max endpoint across branches defines the spectrum endpoint)
|
||||
|
||||
@@ -32,7 +32,7 @@ beta_spectrum/ ← theory-only core
|
||||
│ ├── screening.py
|
||||
│ ├── exchange.py
|
||||
│ ├── radiative.py
|
||||
│ └── detector_response.py ← stays here (part of theory)
|
||||
│ └── (detector_response.py — removed; restore-or-delete pending below)
|
||||
└── nuclear_data.py ← paceENSDF integration
|
||||
|
||||
exp_data/ ← experimental data handling
|
||||
@@ -102,9 +102,10 @@ output/ ← output, visualization, CSV export
|
||||
- [x] README updated with new architecture diagram and Quick Start examples
|
||||
- [x] Version bumped to 0.4.0
|
||||
- [ ] Decide: restore or delete the `detector_response` module — it was removed from
|
||||
`beta_spectrum/components/` together with its tests, but `fitter/model.py` keeps a
|
||||
duck-typed optional hook and `DEFAULT_JSON_SCHEMA` keeps the detector keys;
|
||||
restore from git history (commits up to `5f99566`) if convolution is needed again
|
||||
`beta_spectrum/components/` together with its tests; `fitter/model.py` keeps a
|
||||
duck-typed optional hook only (`DEFAULT_JSON_SCHEMA` detector keys and the CLI
|
||||
dry-run detector line were removed with audit cleanup).
|
||||
Restore from git history (commits up to `5f99566`) if convolution is needed again
|
||||
|
||||
______________________________________________________________________
|
||||
|
||||
|
||||
@@ -5,14 +5,5 @@
|
||||
"A_number": 99,
|
||||
"endpoint_MeV": 0.294,
|
||||
"transition_type": "A",
|
||||
"e_step_MeV": 0.001,
|
||||
"use_detector_response": false,
|
||||
"detector_model": "gaussian",
|
||||
"detector_sigma_a_keV": 1.0,
|
||||
"detector_sigma_b": 0.0,
|
||||
"detector_tail_fraction": 0.0,
|
||||
"detector_tau_keV": 5.0,
|
||||
"detector_fano_factor": 0.12,
|
||||
"detector_n_channels": 4096,
|
||||
"detector_channel_energy_range": [0.0, 0.35]
|
||||
"e_step_MeV": 0.001
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user