The database used for the levels and decays is extracted from the ENSDF database.
For a given nucleus, the database is composed of different validated datasets, corresponding to different ways to produce the nucleus. A global dataset named : "ADOPTED LEVELS, GAMMAS" is used to merge all the different datasets in one. This is the default dataset of any nucleus in TkN.
TkN allows to load the different datasets. For a given nucleus, the datasets and their associated ID can be listed using:
tknucleus nuc("132Sn");
nuc.get_level_scheme()->print("dataset")
[ INFO ] --- ENSDF ---
[ INFO ] 132Sn : ADOPTED LEVELS, GAMMAS (14197) [2018-03]
[ INFO ] 133IN B-N DECAY (165 MS) (14198) [2018-03]
[ INFO ] 248CM SF DECAY (14199) [2018-03]
[ INFO ] COULOMB EXCITATION (14200) [2018-03]
[ INFO ] 132IN B- DECAY (0.200 S) (14201) [2018-03]
[ INFO ] 132SN IT DECAY (2.080 US) (14202) [2018-03]
[ INFO ] --- XUNDL ---
[ INFO ] U(N,F):IS,RADIUS:XUNDL-3 (14203) [2020-03]
[ INFO ] COULOMB EXCITATION:XUNDL-4 (14204) [2020-04]
[ INFO ] 133IN B-N DECAY:162 MS:XUNDL-5 (14205) [2020-10]
[ INFO ] 133IN B-N DECAY:167 MS:XUNDL-6 (14206) [2020-10]
[ INFO ] 132IN B- DECAY:XUNDL-7 (14207) [2022-05]
[ INFO ] 134IN B-2N DECAY:XUNDL-8 (14208) [2024-01]
[ INFO ] 133IN B-N DECAY:XUNDL-10 (14209) [2025-11]
[ INFO ] 133IN B-N DECAY:XUNDL-11 (14210) [2025-11]
[ INFO ] 132IN B- DECAY:XUNDL-9 (14211) [2025-11]
[ INFO ] U(N,F):IS,RADIUS:XUNDL-12 (14212) [2026-02]
[ COMMENT ] Current dataset is '132Sn : ADOPTED LEVELS, GAMMAS' (14197)
The datasets are displayed in two sections: evaluated ENSDF datasets and non-evaluated XUNDL datasets. The publication date of each dataset (in YYYY-MM format) is shown in brackets when available, e.g. [2024-01].
To display dataset comments alongside the list, pass the "com" option:
nuc.get_level_scheme()->print("dataset", "com")
The dataset can be selected as follows (using the Coulomb Excitation dataset ids):
tknucleus nuc("132Sn");
nuc.get_level_scheme()->select_dataset(12584);
nuc.get_level_scheme()->print("level");
nuc.get_level_scheme()->select_dataset(12588);
nuc.get_level_scheme()->print("level");
[ INFO ] dataset 'COULOMB EXCITATION' contains 2 levels:
[ INFO ] Level energy = 0 keV [no uncertainty] ; Jpi: 0+
[ INFO ] Level energy = 4040 keV [no uncertainty] ; Jpi: 2+
[ INFO ] dataset 'COULOMB EXCITATION:XUNDL-4' contains 4 levels:
[ INFO ] Level energy = 0 keV [no uncertainty] ; Jpi: 0+
[ INFO ] Level energy = 4041.2 keV [no uncertainty] ; Jpi: 2+ ; lifetime = 2.95 (-0.47 ; +0.70 ) fs
[ INFO ] Level energy = 4351.9 keV [no uncertainty] ; Jpi: 3- ; lifetime = 2.4 (-0.6 ; +1.3 ) ps
[ INFO ] Level energy = 4416 keV [no uncertainty] ; Jpi: 4+ ; lifetime = 3.95 (0.13 ) ns uncertain level tag: S
The current dataset object can be retrieved and inspected programmatically:
tknucleus nuc("132Sn");
auto ds = nuc.get_level_scheme()->get_dataset();
To iterate over all available datasets:
for (auto &[id, ds] : nuc.get_level_scheme()->get_datasets()) {
glog << info << ds->get_name() << " (" << id << ")" << do_endl;
}
Here are the main methods available on a tkdataset:
| method name | description |
| get_id() | returns the dataset integer ID |
| get_name() | returns the dataset name as a string |
| get_comment() | returns the dataset comment string (can be empty) |
| has_comment() | returns true if a comment is available |
| get_date() | returns the publication date in YYYY-MM format (can be empty) |
| has_date() | returns true if a publication date is available |
| get_source() | returns the source string: "ENSDF" or "XUNDL" |
| is_xundl() | returns true if the dataset comes from XUNDL |