![]() |
ENSDF++ 1.1
An easy, fast and simple way to run querys towards the ENSDF database, written in C++.
|
Estimates the half life for alpha decay using Geiger Nutall. More...
#include <HalfLifeEstimator.h>
Public Member Functions | |
HalfLifeEstimator () | |
Constructor. | |
double | estimateHalfLife (double QValueInMeV, unsigned short int A, unsigned short int Z) |
Estimates the half life, returns a value in seconds. Estimation through alpha decay, of course. |
Estimates the half life for alpha decay using Geiger Nutall.
Definition at line 55 of file HalfLifeEstimator.h.
double HalfLifeEstimator::estimateHalfLife | ( | double | QValueInMeV, |
unsigned short int | A, | ||
unsigned short int | Z | ||
) |
Estimates the half life, returns a value in seconds. Estimation through alpha decay, of course.
QValueInMeV | QValue in MeV |
A | Atomic mass |
Z | Atomic number (charge) |
Definition at line 9 of file HalfLifeEstimator.cpp.
References ELEMENTARYCHARGE, HBAR, HEMASS, KKONST, ONEU, ONEUKG, and SPEEDOFLIGHT.
Referenced by main().
{ //cout << "ehl:" << QValueInMeV << " " << A << " " << " " << Z << " " << endl; double MassInMeV = ONEU*HEMASS; double MassInKg = HEMASS*ONEUKG; double separation = 1.25*(pow((double)4,(double)1/3)+pow((double)(A-4),(double)1/3)); //cout << "separation:" << separation << endl; double barrierHeight = 2*(Z-2)*1.44/separation; //cout << "mass:" << MassInMeV << endl; //cout << "brh:" << barrierHeight << endl; double dropDistance = barrierHeight/QValueInMeV; //double barrierWidth = dropDistance - separation; //cout << MassInMeV << endl; double velocity = sqrt(2 * QValueInMeV * pow(SPEEDOFLIGHT,2) / MassInMeV); //cout << "velo:" << velocity << endl; double frequency = velocity / (2 * separation * 1E-15); //cout << "freq:" << frequency << endl; double x = QValueInMeV / barrierHeight; //cout << "x:" << x << endl; //cout << "massinkg:" << MassInKg << endl; double G = sqrt(2*MassInKg/(pow(HBAR,2)*(QValueInMeV*MEVTOJ)))*2*(Z-2)*KKONST*pow(ELEMENTARYCHARGE,2)*(acos(sqrt(x))-sqrt(x*(1-x))); //cout << "G:" << G << endl; double P = exp(-2*G); //cout << "P:" << P << endl; double l = frequency*P; //cout << "l:" << l << endl; double Thalf=log(2)/l; //cout << "Thalf:" << Thalf << endl; return Thalf; }