What does it do?¶
The library consists of three parts:
NME
: Calculates Nuclear Matrix Elements in a spherical harmonic oscillator basis.BSG
: Produces both positron (electron) and (anti)neutrino spectra resulting from allowed nuclear beta decayBSGUI
: A Qt-based graphical user interface to theBSG
library with connection to databases
Each subsequent item in that list depends on those before it, but not those after it.
The structure can be summarized in the following flowchart
Flowchart describing the general structure of the libraries, their required inputs and outputs. The dotted arrow from BSG
to NME
signifies the possible connection between the two libraries when matrix elements are not provided by the user or proper single-particle wave functions are used in the corrections sensitive to the weak charge distribution.
As an example and for user-friendliness, the package comes with a trivial executable for both C++ libraries.
Example code¶
Both the NME
and BSG
libraries are trivially implemented into C++ code. The executable delivered with the package for the BSG
library is implemented as
#include "Generator.h"
#include "OptionContainer.h"
int main(int argc, char** argv) {
//Singleton class giving access to program input options
OptionContainer::GetInstance(argc, argv);
//Macro shorthand for OptionContainer::GetInstance()->OptExists(#a)
//Input is the only requirement for the program to function
if (OptExists(input)) {
//The spectrum generator object
Generator* gen = new Generator();
//Output is printed to file
gen->CalculateSpectrum();
delete gen;
}
return 0;
}
In its most basic usage, no more steps are needed.
Example output¶
After completion of the calculations, three output files are generated. The first of these carries the .nme
extension, and details results of the nuclear wave functions used to calculate the matrix elements. The other two contain the raw spectra (carrying a .raw
extension) and the general results file as .txt
. An excerpt of the latter is shown here for the ground state to ground state transition of 67Cu to 67Zn
Transition from 67Cu [-3/2] (0 keV) to 67Zn [-5/2] (0 keV)
Q Value: 561.7 keV Effective endpoint energy: 561.693 keV
Process: B- Type: Gamow-Teller
Partial halflife: 1.11294e+06 s
Calculated log ft value: 6.24694
Mean energy: 183.122 keV
Matrix Element Summary
------------------------------
b/Ac (weak magnetism) : 2.72211
d/Ac (induced tensor) : -1.37881
AM121/AM101 : -0.306603
Spectral corrections
------------------------------
Phase space : true
Fermi function : true
....
Spectrum calculated from 0 keV to 561.693 keV with step size 0.1 keV
W [m_ec2] E [keV] dN_e/dW dN_v/dW
1.000000 0.000000 0.000000 0.000000
1.000196 0.100000 0.000000 0.000000
1.000391 0.200000 0.715832 0.000000
1.000587 0.300000 1.960272 0.000001
....
Plotting the resulting spectrum for two different settings of which corrections to include in the calculation one obtains .. PL It would be good to have an example how to use the graphial interface here, which command did you type to get that?
GUI Example¶
The graphical user interface connects to the BSG
executable, and pulls information from several locally-stored databases. Chiefly among these is the ENSDF library, which allows the user to simply select the transition after which all known parameters are already included.
.. PL Again, it would be good to have an example how to use the graphial interface here, which command did you type to get that?
An example of the GUI is use for the 67Cu transition above is shown below