00001 #ifndef yrast_
00002 #define yrast_
00003 #include <iostream>
00004 #include <fstream>
00005 #include "CMass.h"
00006 using namespace std;
00007
00019 class CYrast
00020 {
00021 private:
00022
00023 CYrast();
00024 static CYrast *fInstance;
00025 static double const pi;
00026
00027 static float const x1h[11][6];
00028 static float const x2h[11][6];
00029 static float const x3h[20][10];
00030 static float const x1b[11][6];
00031 static float const x2b[11][6];
00032 static float const x3b[20][10];
00033
00034 static double const emncof[4][5];
00035 static double const elmcof[4][5];
00036 static double const emxcof[5][7];
00037 static double const elzcof[7][7];
00038 static double const egscof[5][7][5];
00039 static double const aizroc[5][6];
00040 static double const ai70c[5][6];
00041 static double const ai95c[5][6];
00042 static double const aimaxc[5][6];
00043 static double const ai952c[5][6];
00044 static double const aimax2c[5][6];
00045 static double const aimax3c[4][4];
00046 static double const aimax4c[4][4];
00047 static double const bizroc[4][6];
00048 static double const bi70c[4][6];
00049 static double const bi95c[4][6];
00050 static double const bimaxc[4][6];
00051 static double const b[8][5][5];
00052 void lpoly(double,int,double*);
00053
00054 double A;
00055 double Z;
00056 double zz;
00057 double amin;
00058 double amax;
00059 double pa[7];
00060 double pz[7];
00061
00062 float c[6][8][2][11][2];
00063 float cubic(float,float,float,float,float,float);
00064
00065 static bool first;
00066 int Narray;
00067 static float const hbarc;
00068 static float const alfinv;
00069 static float const srznw;
00070 static float const aknw;
00071 static float const bb;
00072 static float const um;
00073 static float const elm;
00074 static float const spdlt;
00075 static float const asnw;
00076 static float const kx[8];
00077 static float const ky[6];
00078 static float const ka[11];
00079 static float const r0;
00080 static float const sep;
00081 static bool bForceSierk;
00082 static double addBar;
00083
00084 float sadArray[300];
00085 float sadArrayZA[300];
00086 CMass * mass;
00087 static float const deltaJ;
00088 static float const kRotate;
00089 int iZ;
00090 int iA;
00091 float fJ;
00092 public:
00093 static CYrast *instance();
00094 double Jmax;
00095 float getYrast(int,int,float);
00096 float getYrastModel(int,int,float);
00097 float getYrastRLDM(int,int,float);
00098 float getYrastSierk(float);
00099 float getJmaxSierk(int,int);
00100 float getBarrierFissionSierk(float);
00101 float getSymmetricSaddleEnergy(int,int,float);
00102 float getBarrierFissionRLDM(int,int,float);
00103 float getBsSierk(float);
00104 static void forceSierk(bool=1);
00105 static void printParameters();
00106 void prepareAsyBarrier(int, int, float);
00107 void printAsyBarrier();
00108 float getSaddlePointEnergy(int,int);
00109 float getSaddlePointEnergy(float);
00110 float getMomentOfInertiaSierk(float);
00111 float WignerEnergy(int iZ, int iA);
00112
00113 float momInertiaMin;
00114 float momInertiaMid;
00115 float momInertiaMax;
00116
00117
00118
00119 };
00120 #endif