86 vector<pair<tkstring, double>> decay_modes;
91 if(data.
value!=-1) cout<<left<<setw(33)<<_name<<
": "<< setw(10) << data.
value <<
" (" << setw(8) << data.
err <<
")" << setw(5) << data.
unit << data.
info << endl;
94 vector<pair<tkdb_table::measure_data_struct,tkstring>> sort_map(map<tkstring, tkdb_table::measure_data_struct> &map_in,
bool inverse =
false) {
96 vector<pair<tkdb_table::measure_data_struct,tkstring>> sorted_map;
97 sorted_map.reserve(map_in.size());
98 std::transform(map_in.begin(), map_in.end(), std::back_inserter(sorted_map),
99 [](
const auto &it) { return std::make_pair(it.second, it.first); });
100 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) {
101 if(inverse)
return a.first.value > b.first.value;
102 else return a.first.value <= b.first.value;
109 if(name.
is_empty() || Z==-1 || N==-1 || A==-1) {
113 cout<<left<<
"Nucleus: "<<setw(5)<<name<<endl;
114 cout<<
"Z="<<setw(3)<<Z<<
", N="<<setw(3)<<N<<
", A="<<setw(3)<<A<<endl;
115 print_data(
"Mass Excess",mass_excess);
116 print_data(
"Quadrupole deformation",quadrupoleDeformation);
117 print_data(
"Abundance",abundance);
118 if(decay_modes.size()) {
119 cout<<left<<setw(33)<<
"Decay modes"<<
": ";
120 for(
auto &mode: decay_modes) cout<< mode.first <<
" : " <<
tkstring::form(
"%g",mode.second) <<
" ; ";
123 print_data(
"Radius",radius);
124 print_data(
"Electirc quadrupole",electric_quadrupole);
125 print_data(
"Magnetic dipole",magnetic_dipole);
132 std::map<int,tkn::tkstring> columns;
140 json_nucleus read_nucleus(json &entry);
141 void fill_isotope(
const json_nucleus &_json_nuc);
144 int fill_database(
const char* _json_filename,
const char *_gs_filename,
int _only_charge=0,
int _only_mass=0);