63 vector<pair<tkstring, double>> decay_modes;
68 if(data.
value!=-1) cout<<left<<setw(33)<<_name<<
": "<< setw(10) << data.
value <<
" (" << setw(8) << data.
err <<
")" << setw(5) << data.
unit << data.
info << endl;
71 vector<pair<tkdb_table::measure_data_struct,tkstring>> sort_map(map<tkstring, tkdb_table::measure_data_struct> &map_in,
bool inverse =
false) {
73 vector<pair<tkdb_table::measure_data_struct,tkstring>> sorted_map;
74 sorted_map.reserve(map_in.size());
75 std::transform(map_in.begin(), map_in.end(), std::back_inserter(sorted_map),
76 [](
const auto &it) { return std::make_pair(it.second, it.first); });
77 std::sort(std::begin(sorted_map), std::end(sorted_map), [inverse](pair<tkdb_table::measure_data_struct,tkstring> a, pair<tkdb_table::measure_data_struct,tkstring> b) {
78 if(inverse)
return a.first.value > b.first.value;
79 else return a.first.value <= b.first.value;
86 if(name.
is_empty() || Z==-1 || N==-1 || A==-1) {
90 cout<<left<<
"Nucleus: "<<setw(5)<<name<<endl;
91 cout<<
"Z="<<setw(3)<<Z<<
", N="<<setw(3)<<N<<
", A="<<setw(3)<<A<<endl;
92 print_data(
"Mass Excess",mass_excess);
93 print_data(
"Quadrupole deformation",quadrupoleDeformation);
94 print_data(
"Abundance",abundance);
95 if(decay_modes.size()) {
96 cout<<left<<setw(33)<<
"Decay modes"<<
": ";
97 for(
auto &mode: decay_modes) cout<< mode.first <<
" : " <<
tkstring::form(
"%g",mode.second) <<
" ; ";
100 print_data(
"Radius",radius);
101 print_data(
"Electirc quadrupole",electric_quadrupole);
102 print_data(
"Magnetic dipole",magnetic_dipole);
109 std::map<int,tkn::tkstring> columns;
117 json_nucleus read_nucleus(json &entry);
118 void fill_isotope(
const json_nucleus &_json_nuc);
121 int fill_database(
const char* _json_filename,
const char *_gs_filename,
int _only_charge=0,
int _only_mass=0);