Explore B(E2) values
This example macro prints all known B(E2) in Weisskopf unit from ADOPTED and XUNDL datasets.
Start tkn-root
, compile and execute this macro :
tkn-root
_____ _ _ | Documentation: https://tkn.in2p3.fr/
(_ _) | \ | | | Source: https://gitlab.in2p3.fr/tkn/tkn-lib
| |_ _| \| | |
| | |/ / | | Version 1.0
| | <| |\ | |
|_|_|\_\_| \_| | Database: TkN_ensdf_221101_xundl_210701_v1.0.db
tkn [0] .L list_BE2_WU.C+
tkn [1] list_BE2_WU()
10Be [ENSDF] 3.4e+03 E2 2+ (3368.0) --> 0+ (0.0) BE2W = 8.00 (0.76 ) Weisskopf
10Be [XUNDL] 3370.00 E2 2+ (3370.0) --> 0+ (0.0) BE2W = 0.000718848 (0.000023441) Weisskopf [converted]
12Be [ENSDF] 2109.00 E2 2+ (2109.0) --> 0+ (0.0) BE2W = 8.5 (1.7 ) Weisskopf
10C [ENSDF] 3353.60 E2 2+ (3353.7) --> 0+ (0.0) BE2W = 9.5 (1.5 ) Weisskopf
10C [XUNDL] 3354.00 E2 2+ (3354.0) --> 0+ (0.0) BE2W = 0.000687593 (0.000023441) Weisskopf [converted]
12C [ENSDF] 4438.94 E2 2+ (4439.8) --> 0+ (0.0) BE2W = 4.65 (0.26 ) Weisskopf
14C [ENSDF] 7010.00 [E2] 2+ (7012.0) --> 0+ (0.0) BE2W = 1.8 (0.3 ) Weisskopf
16C [XUNDL] 1766.00 E2 2+ (1766.0) --> 0+ (0.0) BE2W = 1.08 (0.30 ) Weisskopf
16C [XUNDL] 1758.00 [E2] 2+ (1758.0) --> 0+ (0.0) BE2W = 1.73 (0.30 ) Weisskopf
20C [ENSDF] 1618.00 E2 2+ (1618.0) --> 0+ (0.0) BE2W = 0.000232561 (-0.000062016 ; +0.000099226) Weisskopf [converted]
16O [ENSDF] 6915.50 [E2] 2+ (6917.1) --> 0+ (0.0) BE2W = 3.1 (0.1 ) Weisskopf
18O [ENSDF] 1982.00 E2 2+ (1982.1) --> 0+ (0.0) BE2W = 3.32 (0.09 ) Weisskopf
20O [ENSDF] 1673.60 [E2] 2+ (1673.7) --> 0+ (0.0) BE2W = 1.80 (0.07 ) Weisskopf
22O [ENSDF] 3199.00 E2 2+ (3199.0) --> 0+ (0.0) BE2W = 1.2 (0.5 ) Weisskopf
18Ne [ENSDF] 1887.00 E2 2+ (1887.3) --> 0+ (0.0) BE2W = 17.7 (1.8 ) Weisskopf
20Ne [ENSDF] 1633.60 [E2] 2+ (1633.7) --> 0+ (0.0) BE2W = 20.3 (1.0 ) Weisskopf
[...]
It also produces the following plot:
Source code :
#include "TH2F.h"
#include "TStyle.h"
#include "tkmanager.h"
#include "tknuclear_chart.h"
void list_BE2_WU()
{
glog.set_warnings(false);
nn =
new tknuclear_chart(
"B(E2) (in Weisskopf unit)",tknuclear_chart::kEven,0,
true);
std::cout << "*-----------------------------------------*" << std::endl;
std::cout << "* List of known B(E2) in Weisskopf unit *" << std::endl;
std::cout << "*-----------------------------------------*" << std::endl;
cout << left << setw(7) << "Nuc" << "Data " << setw(15) << "E gamma (keV)" << setw(6) << "mult" << setw(28) << "E from -> E to (keV)" << "Transition probability" << endl;
for(const auto &nuc : gmanager->get_nuclei([](auto nuc) {return (nuc->get_z()%2==0 && nuc->get_n()%2==0);})) {
for(const auto &dataset: nuc->get_level_scheme()->get_datasets()) {
bool xundl = dataset.second->get_name().contains("XUNDL");
bool adopted = dataset.second->get_name().contains("ADOPTED");
if(!(adopted || xundl)) continue;
auto lev_scheme = nuc->get_level_scheme();
lev_scheme->select_dataset(dataset.first);
auto gamma = lev_scheme->get_decay<
tkgammadecay>(
"2+1->0+1",
false);
if(!gamma) continue;
if(BE2W<=0||std::isnan(BE2W)) continue;
cout << setw(6) << nuc->get_symbol();
if(xundl) cout << " [XUNDL] ";
else cout << " [ENSDF] ";
cout << setw(15) << setprecision(2) << gamma->get_energy();
cout << setw(6) <<gamma->get_multipolarity();
tkstring transname = tkstring::Form(
"%-4s (%-6.1f) --> %s (%2.1f)",
gamma->get_level_from()->get_spin_parity()->get_jpi_str().data(),
gamma->get_level_from()->get_energy(),
gamma->get_level_to()->get_spin_parity_str().data(),
gamma->get_level_to()->get_energy());
cout << setw(28) << transname << " :" << BE2W;
cout<<endl;
if(adopted) nn->
set_value(nuc->get_z(),nuc->get_n(),BE2W);
}
}
}
Stores information on a gamma-ray decay.
double get_trans_prob(bool _elec, int _L, bool _WU)
returns the gamma gamma transition probability value (ex: BE2 in Weiksopf units, get_trans_prob(1,...
nuclear chart plot with ROOT
void draw(bool _update_only=false)
draw the tknucleus chart
void save_as(const char *file_name)
save the nuclear chart in the file file_name
void set_value(int _zz, int _nn, double _val)
set the bin value for a given nucleus
std::string with usefull tricks from TString (ROOT) and KVString (KaliVeda) and more....