Walidacja — identyfikator pików gamma
parseGammaEnergies: puste=[], zero=[]; gammaMatches: δ≤tol, prob≥0, limit działa, Cs-137 znaleziony.
| Stan | Asercja | Wynik | Oczekiwane |
|---|---|---|---|
| ✓ | parseGammaEnergies("0.662") zwraca tablicę z jednym elementem 0.662 parseGammaEnergies tokenizuje po przecinkach i białych znakach; Cs-137 linia 0.6616 MeV. |
count=1, val=0.6620 MeV | [0.662] |
| ✓ | parseGammaEnergies("0") = [] (wartości ≤ 0 odrzucone) Energia 0 MeV nie jest linią gamma; parser odrzuca wartości ≤ 0. |
count = 0 | 0 (puste) |
| ✓ | parseGammaEnergies("") = [] (pusty wejście) Pusty ciąg → brak energii → pusta lista; brak błędów. |
count = 0 | 0 (puste) |
| ✓ | parseGammaEnergies("0.662, 1.173") = 2 elementy (Cs-137 i Co-60) Dwie linie kalibracyjne: Cs-137 (0.6616 MeV) i Co-60 pierwsza linia (1.1732 MeV). |
count = 2 | 2 |
| ✓ | gammaMatches(db, [], 5 keV) = [] (brak energii wejściowych) Pusta lista energii wejściowych → brak zapytań do bazy → pusta lista dopasowań. |
count = 0 | 0 |
| ✓ | gammaMatches([0.662 MeV], tol=10 keV) zwraca Ba-137m przy ~661.657 keV Linia 661.657 keV jest w praktyce linią Ba-137m, nuklidu potomnego po rozpadzie Cs-137; identyfikator ma pokazać rzeczywistego emitera. |
count = 12 dopasowań; pierwszy: Ba-137m1 | Ba-137m1 |
| ✓ | Wszystkie dopasowania mają |delta_kev| ≤ toleranceKeV=5 Baza zwraca tylko linie w oknie [E-tol, E+tol]; delta_kev = (line_mev - requested) × 1000. |
OK: wszystkie ≤ 5.0 keV (n=7) | |delta| ≤ 5 keV |
| ✓ | gammaMatches z tol=1 keV ≤ tol=50 keV (węższe okno → mniej kandydatów) Szersze okno energetyczne → więcej nuklidów z liniami blisko; węższe filtruje surowiej. |
narrow(3) ≤ wide(12) | narrow ≤ wide |
| ✓ | probability ≥ 0 dla wszystkich dopasowań (prawdopodobieństwo emisji gamma) Prawdopodobieństwo emisji linii gamma ∈ [0, 1]; dane JEFF/ENDF/B powinny zawierać ≥ 0. |
OK (n=12) | probability ≥ 0 |
| ✓ | limitPerPeak=1 → ≤ 1 dopasowanie na pik (kwerendy LIMIT działają) gammaMatches używa SQL LIMIT ?; ogranicza kandydatów do limitPerPeak najlepiej pasujących. |
count = 1 (limit=1) | ≤ 1 |
Benchmarki sprawdzają typowe linie kalibracyjne i naturalne tło gamma oraz logikę tolerancji energetycznej.
| Benchmark | Wynik modelu | Punkt odniesienia | Ocena |
|---|---|---|---|
| Ba-137m: linia 661,657 keV po rozpadzie Cs-137 Benchmark typowej linii kalibracyjnej; ważne jest wskazanie emitera Ba-137m, nie skrótu myślowego Cs-137. |
pierwszy kandydat: Ba-137m1, n=3 | Ba-137m1, E_gamma = 0,661657 MeV | Jakościowy ✓ |
| Co-60: pierwsza linia kaskady Benchmark klasycznej linii kalibracyjnej Co-60. |
pierwszy kandydat: Co-60, n=1 | Co-60, E_gamma = 1,173228 MeV | Jakościowy ✓ |
| Co-60: druga linia kaskady Benchmark wymaga, aby identyfikator rozpoznawał obie główne linie Co-60. |
pierwszy kandydat: Co-60, n=1 | Co-60, E_gamma = 1,332492 MeV | Jakościowy ✓ |
| K-40: naturalna linia tła Benchmark naturalnego piku tła, który użytkownik często zobaczy w widmie. |
pierwszy kandydat: K-40, n=1 | K-40, E_gamma = 1,460822 MeV | Jakościowy ✓ |
| Tolerancja energetyczna i limit wyników Benchmark logiki wyszukiwania, a nie konkretnej biblioteki linii. |
narrow=3, wide=12, limit1=1 | węższe okno nie daje więcej kandydatów; limitPerPeak=1 daje najwyżej 1 wynik | Jakościowy ✓ |
Sprawdzone: parse(0.662)=[0.662], parse(0)=[], parse('')=[], parse(2 energii)=2, matches([],tol)=[], Cs-137 znaleziony, δ≤tol, narrow≤wide, prob≥0, limitPerPeak.
Dane źródłowe i granice precyzji
Widma gamma, identyfikacja i kalibracja
| Nuklid kontrolny | Cs-137 |
|---|---|
| NuDAT/NUBASE | źródła etykiet, półokresów, spin/parity i trybów rozpadu; intensywności emisji nie są mieszane z ENDF/JEFF bez jawnego wyboru źródła |
| ENDF/B-VIII.1 decay | T1/2=30.08 y; gałęzie rozpadu: 2; gamma >=0,1%: brak w stanie podstawowym; rekordy MF=8/MT=457: 18 |
| JEFF-4.0 decay | T1/2=30.0494 y; gałęzie rozpadu: 2; gamma >=0,1%: brak w stanie podstawowym; rekordy MF=8/MT=457: 41 |
| FISPACT decay_2020 | T1/2=30.0494 y; gałęzie rozpadu: 2; gamma >=0,1%: brak w stanie podstawowym; rekordy MF=8/MT=457: 41 |
| ORIP/TORI gammas | 0 linii gamma w aktywnej bazie głównej |
Co to wnosi: ranking pików i kalibracja mogą pokazywać źródło linii oraz rozbieżności ENDF/JEFF/NuDAT/ORIP. Parser emisji gamma odczytuje tylko dyskretne linie z podsekcji gamma, bez mieszania ich z liniami X ani elektronami konwersji.
Audyt modelu: Identyfikator pików gamma
Kalkulator dopasowuje listę zmierzonych energii pików do linii gamma w aktywnej bibliotece danych i pokazuje energię linii, odchyłkę, intensywność oraz czas półtrwania kandydata.
Najważniejsze uproszczenia
- Nie modeluje wydajności detektora ani tła.
- Nie rozwiązuje mieszaniny wielu nuklidów jako jednego problemu dopasowania.
- Nie używa kształtu piku ani kalibracji energetycznej detektora.
Co można liczyć dokładniej
- Wykorzystać intensywności względne do rankingu wiarygodności całego zestawu linii.
- Dodać korektę wydajności detektora dla energii.
- Dodać tryb mieszaniny z wieloma kandydatami naraz.