32 #define ABLAXX_IN_GEANT4_MODE 1
44 #ifdef ABLAXX_IN_GEANT4_MODE
50 #ifndef ABLAXX_IN_GEANT4_MODE
62 if(verboseLevel > 0) {
63 fissionModel->about();
111 G4double alrem = 0.0, berem = 0.0, garem = 0.0;
118 for(
G4int init_i = 0; init_i < 4; init_i++) {
119 csdir1[init_i] = 0.0;
120 csdir2[init_i] = 0.0;
122 pfis_rem[init_i] = 0.0;
123 pf1_rem[init_i] = 0.0;
124 for(
G4int init_j = 0; init_j < 4; init_j++) {
125 R[init_i][init_j] = 0.0;
129 G4double plab1 = 0.0, gam1 = 0.0, eta1 = 0.0;
130 G4double plab2 = 0.0, gam2 = 0.0, eta2 = 0.0;
137 G4int mempaw = 0, memiv = 0;
159 G4int lma_pf1 = 0, lmi_pf1 = 0;
160 G4int lma_pf2 = 0, lmi_pf2 = 0;
163 G4double cst = 0.0, sst = 0.0, csf = 0.0, ssf = 0.0;
165 G4double zf = 0.0, af = 0.0, mtota = 0.0, pleva = 0.0, pxeva = 0.0, pyeva = 0.0;
167 G4int inum = eventnumber;
191 G4double pcorem = std::sqrt(std::pow(momX,2) + std::pow(momY,2) + std::pow(momZ,2));
193 alrem = pxrem/pcorem;
194 berem = pyrem/pcorem;
195 garem = pzrem/pcorem;
220 if(esrem >= 1.0e-3) {
221 evapora(zprf,aprf,&ee,jprf, &zf, &af, &mtota, &pleva, &pxeva, &pyeva, &ff, &inttype, &inum);
238 trem = double(erecrem);
239 remmass =
pace2(aprf,zprf) + aprf*uma - zprf*melec;
243 G4double gamrem = (remmass + trem)/remmass;
244 G4double etrem = std::sqrt(trem*(trem + 2.0*remmass))/remmass;
249 remmass =
pace2(aprf,zprf) + aprf*uma - zprf*melec+double(esrem);
252 mglms(aprf,zprf,0,&el);
253 remmass = zprf*fmp + (aprf-zprf)*fmn + el +
double(esrem);
254 gamrem = std::sqrt(std::pow(pcorem,2) + std::pow(remmass,2))/remmass;
255 etrem = pcorem/remmass;
272 bil_e = bil_e + std::sqrt(std::pow(
volant->
pcv[iloc],2) + std::pow(masse,2));
283 translab(gamrem,etrem,csrem,nopart,ndec);
299 fissionModel->
doFission(af,zf,ee,aff1,zff1,eff1,v1,aff2,zff2,eff2,v2);
301 G4int na_f = int(std::floor(af + 0.5));
302 G4int nz_f = int(std::floor(zf + 0.5));
323 G4double massef = zf*fmp + (af - zf)*fmn + el + ee + ef;
324 mglms(
double(aff1),
double(zff1),0,&el);
325 G4double masse1 = zff1*fmp + (aff1-zff1)*fmn + el + eff1;
326 mglms(aff2,zff2,0,&el);
327 G4double masse2 = zff2*fmp + (aff2 - zff2)*fmn + el + eff2;
329 G4double b = massef - masse1 - masse2;
333 G4double t1 = b*(b + 2.0*masse2)/(2.0*massef);
334 G4double p1 = std::sqrt(t1*(t1 + 2.0*masse1));
338 ctet1 = 2.0*rndm - 1.0;
340 phi1 = rndm*2.0*3.141592654;
343 G4double peva = std::pow(pxeva,2) + std::pow(pyeva,2) + std::pow(pleva,2);
344 G4double gamfis = std::sqrt(std::pow(massef,2) + peva)/massef;
345 peva = std::sqrt(peva);
353 sitet = std::sqrt(std::pow(pxeva,2)+std::pow(pyeva,2))/peva;
357 G4double siphi = pyeva/(sitet*peva);
358 G4double csphi = pxeva/(sitet*peva);
360 R[1][1] = cstet*csphi;
362 R[1][3] = sitet*csphi;
363 R[2][1] = cstet*siphi;
365 R[2][3] = sitet*siphi;
383 if((zff1 <= 0.0) || (aff1 <= 0.0) || (aff1 < zff1)) {
390 epf1_in = double(eff1);
396 G4double zf1 = 0.0, af1 = 0.0, malpha1 = 0.0, ffpleva1 = 0.0, ffpxeva1 = 0.0, ffpyeva1 = 0.0;
397 G4int ff1 = 0, ftype1 = 0;
398 evapora(zff1, aff1, &epf1_out, 0.0, &zf1, &af1, &malpha1, &ffpleva1,
399 &ffpxeva1, &ffpyeva1, &ff1, &ftype1, &inum);
411 peva = std::sqrt(std::pow(ffpxeva1,2) + std::pow(ffpyeva1,2) + std::pow(ffpleva1,2));
433 bil1_e = bil1_e + std::sqrt(std::pow(
volant->
pcv[iloc],2) + std::pow(masse,2));
441 translabpf(masse1,t1,p1,ctet1,phi1,gamfis,etfis,R,&plab1,&gam1,&eta1,csdir1);
445 translab(gam1,eta1,csdir1,nopart,nbpevap+1);
448 lmi_pf1 = nopart + nbpevap + 1;
455 if((zff2 <= 0.0) || (aff2 <= 0.0) || (aff2 <= zff2)) {
468 G4double zf2 = 0.0, af2 = 0.0, malpha2 = 0.0, ffpleva2 = 0.0, ffpxeva2 = 0.0, ffpyeva2 = 0.0;
469 G4int ff2 = 0, ftype2 = 0;
470 evapora(zff2,aff2,&epf2_out,0.0,&zf2,&af2,&malpha2,&ffpleva2,
471 &ffpxeva2,&ffpyeva2,&ff2,&ftype2,&inum);
476 peva = std::sqrt(std::pow(ffpxeva2,2) + std::pow(ffpyeva2,2) + std::pow(ffpleva2,2));
498 bil2_e = bil2_e + std::sqrt(std::pow(
volant->
pcv[iloc],2) + std::pow(masse,2));
509 phi2 = std::fmod(phi1+3.141592654,6.283185308);
510 p2 = std::sqrt(t2*(t2+2.0*masse2));
515 translabpf(masse2,t2,p2,ctet2,phi2,gamfis,etfis,R,&plab2,&gam2,&eta2,csdir2);
520 translab(gam2,eta2,csdir2,nopart,nbpevap+1);
521 lmi_pf2 = nopart + nbpevap + 1;
528 for(
G4int iloc = 1; iloc <= 3; iloc++) {
529 pfis_rem[iloc] = 0.0;
532 lorab(gamfis,etfis,massef,pfis_rem,&efis_rem,pfis_trav);
533 rotab(R,pfis_trav,pfis_rem);
535 stet1 = std::sqrt(1.0 - std::pow(ctet1,2));
536 pf1_rem[1] = p1*stet1*std::cos(phi1);
537 pf1_rem[2] = p1*stet1*std::sin(phi1);
538 pf1_rem[3] = p1*ctet1;
540 lorab(gamfis,etfis,masse1+t1,pf1_rem,&e1_rem,pfis_trav);
541 rotab(R,pfis_trav,pf1_rem);
543 stet2 = std::sqrt(1.0 - std::pow(ctet2,2));
547 pf2_rem[1] = p2*stet2*std::cos(phi2);
548 pf2_rem[2] = p2*stet2*std::sin(phi2);
549 pf2_rem[3] = p2*ctet2;
550 lorab(gamfis,etfis,masse2+t2,pf2_rem,&e2_rem,pfis_trav);
551 rotab(R,pfis_trav,pf2_rem);
553 bil_e = remmass - efis_rem - bil_e;
554 bil_px = bil_px + pfis_rem[1];
555 bil_py = bil_py + pfis_rem[2];
556 bil_pz = bil_pz + pfis_rem[3];
564 if((lma_pf1-lmi_pf1) != 0) {
565 G4double bil_e_pf1 = e1_rem - epf1_out;
569 for(
G4int ipf1 = lmi_pf1; ipf1 <= lma_pf1; ipf1++) {
576 bil_px_pf1 = bil_px_pf1 -
varntp->
plab[ipf1]*sst*csf;
577 bil_py_pf1 = bil_py_pf1 -
varntp->
plab[ipf1]*sst*ssf;
578 bil_pz_pf1 = bil_pz_pf1 -
varntp->
plab[ipf1]*cst;
582 if((lma_pf2-lmi_pf2) != 0) {
583 G4double bil_e_pf2 = e2_rem - epf2_out;
587 for(
G4int ipf2 = lmi_pf2; ipf2 <= lma_pf2; ipf2++) {
594 bil_px_pf2 = bil_px_pf2 -
varntp->
plab[ipf2]*sst*csf;
595 bil_py_pf2 = bil_py_pf2 -
varntp->
plab[ipf2]*sst*ssf;
596 bil_pz_pf2 = bil_pz_pf2 -
varntp->
plab[ipf2]*cst;
603 translab(gamrem,etrem,csrem,mempaw,memiv);
623 G4double peva = std::sqrt(std::pow(pxeva,2)+std::pow(pyeva,2)+std::pow(pleva,2));
639 trem = double(erecrem);
661 e_evapo = e_evapo + std::sqrt(std::pow(
volant->
pcv[j],2) + std::pow(fmcv,2));
670 G4double gamrem = std::sqrt(std::pow(pcorem,2)+std::pow(remmass,2))/remmass;
674 translab(gamrem,etrem,csrem,nopart,1);
864 #ifdef ABLAXX_IN_GEANT4_MODE
869 if(dataInterface->
readData() ==
true) {
878 for(
int z = 0;
z < 99;
z++) {
879 for(
int n = 0;
n < 154;
n++) {
889 for(
int z = 0;
z < 500;
z++) {
890 for(
int a = 0;
a < 500;
a++) {
895 delete dataInterface;
902 G4double ponq = 0.0, dn = 0.0,
n = 0.0, dz = 0.0;
904 if(((std::fabs(bet)-1.15) < 0) || ((std::fabs(bet)-1.15) == 0)) {
908 if((std::fabs(bet)-1.15) > 0) {
914 dz = std::fabs(z - 82.0);
916 dn = std::fabs(
n-126.e0);
919 dn = std::fabs(
n - 82.0);
922 bet = 0.022 + 0.003*dn + 0.005*dz;
924 sig = 25.0*std::pow(bet,2) * sig;
927 ponq = (u - ucr)/dcr;
935 (*qr) = 1.0/(1.0 + std::exp(ponq)) * (sig - 1.0) + 1.0;
949 G4double xv = 0.0, xs = 0.0, xc = 0.0, xa = 0.0;
951 if ((a <= 0.01) || (z < 0.01)) {
956 xs = 17.23*std::pow(a,(2.0/3.0));
959 xc = 0.7*z*(z-1.0)*std::pow((a-1.0),(-1.e0/3.e0));
966 xa = 23.6*(std::pow((a-2.0*z),2)/
a);
994 if ( (a1 <= 0) || (z1 <= 0) || ((a1-z1) <= 0) ) {
1003 (*el) =
eflmac(a1,z1,0,refopt4);
1025 G4double x = 0.0, v = 0.0, dx = 0.0;
1027 const G4int alpha2Size = 37;
1029 G4double alpha2[alpha2Size] = {0.0, 2.5464e0, 2.4944e0, 2.4410e0, 2.3915e0, 2.3482e0,
1030 2.3014e0, 2.2479e0, 2.1982e0, 2.1432e0, 2.0807e0, 2.0142e0, 1.9419e0,
1031 1.8714e0, 1.8010e0, 1.7272e0, 1.6473e0, 1.5601e0, 1.4526e0, 1.3164e0,
1032 1.1391e0, 0.9662e0, 0.8295e0, 0.7231e0, 0.6360e0, 0.5615e0, 0.4953e0,
1033 0.4354e0, 0.3799e0, 0.3274e0, 0.2779e0, 0.2298e0, 0.1827e0, 0.1373e0,
1034 0.0901e0, 0.0430e0, 0.0000e0};
1047 v = (x - 0.3)/dx + 1.0;
1058 return(alpha2[index] + (alpha2[index+1] - alpha2[index]) / dx * ( x - (0.3e0 + dx*(index-1))));
1073 G4double aa = 0.0, zz = 0.0, i = 0.0;
1078 i = double(a-2*z) / aa;
1082 fissilityResult = std::pow(zz,2) / aa /50.8830e0 / (1.0e0 - 1.7826e0 * std::pow(i,2));
1087 fissilityResult = std::pow(zz,2) / aa * std::pow((49.22e0*(1.e0 - 0.3803e0*std::pow(i,2) - 20.489e0*std::pow(i,4))),(-1));
1092 fissilityResult = std::pow(zz,2) / aa /(48.e0*(1.e0 - 17.22e0*std::pow(i,4)));
1095 return fissilityResult;
1110 G4int ff = (*ff_par);
1111 G4int inttype = (*inttype_par);
1112 G4int inum = (*inum_par);
1207 static G4ThreadLocal G4double epsiln = 0.0, probp = 0.0, probn = 0.0, proba = 0.0, ptotl = 0.0, e = 0.0;
1209 G4double ecn = 0.0, ecp = 0.0,eca = 0.0,
bp = 0.0, ba = 0.0;
1247 direct(zf,af,ee,jprf,&probp,&probn,&proba,&probf,&ptotl,
1248 &sn,&sbp,&sba,&ecn,&ecp,&eca,&
bp,&ba,inttype,inum,itest);
1276 barfit(k,k+j,il,&sbfis,&segs,&selmax);
1289 if ((sortie == 1) || (ptotl == 0.e0)) {
1290 e =
dmin1(sn,sbp,sba);
1303 else if (sbp == e) {
1307 else if (sba == e) {
1340 pc = std::sqrt(std::pow((1.0 + (eca+ba)/3.72834
e3),2) - 1.0) * 3.72834e3;
1349 else if (x < proba+probp) {
1357 pc = std::sqrt(std::pow((1.0 + (ecp +
bp)/9.3827
e2),2) - 1.0) * 9.3827e2;
1365 else if (x < proba+probp+probn) {
1373 pc = std::sqrt(std::pow((1.0 + (ecn)/9.3956
e2),2) - 1.0) * 9.3956e2;
1420 mtota = mtota + malpha;
1424 ctet1 = 2.0*rnd - 1.0;
1426 phi1 = rnd*2.0*3.141592654;
1427 stet1 = std::sqrt(1.0 - std::pow(ctet1,2));
1433 pleva = pleva - pc * ctet1;
1437 if ((af < 2.5) || (ff == 1)) {
1446 (*mtota_par) = mtota;
1447 (*pleva_par) = pleva;
1448 (*pxeva_par) = pxeva;
1449 (*pyeva_par) = pyeva;
1451 (*inttype_par) = inttype;
1639 mglw(a-1.0,zprf,&ma1z);
1640 mglw(a-1.0,zprf-1.0,&ma1z1);
1641 mglw(a-4.0,zprf-2.0,&ma4z2);
1647 sa = ma4z2 - maz - 28.29688;
1656 bp = 1.44*(zprf - 1.0)/(2.1*std::pow((a - 1.0),(1.0/3.0)) + 0.0);
1667 ba = 2.88*(zprf - 2.0)/(2.2*std::pow((a - 4.0),(1.0/3.0)) + 0.0);
1683 barfit(k,k+j,il,&sbfis,&segs,&selmax);
1691 fb->
efa[j][k] = double(sbfis);
1701 if (
fb->
efa[j][k] < 0.0) {
1705 fb->
efa[j][k] = 0.0;
1757 densniv(a,zprf,ee,ef,&densf,bshell,bs,bk,&temp,
int(
fiss->
optshp),
int(
fiss->
optcol),defbet);
1766 densniv(a-1.0,zprf-1.0e0,ee,sbp,&densp, bshell,1.e0,1.e0,&temp,
int(
fiss->
optshp),
int(
fiss->
optcol),defbet);
1768 if (imaxwell == 1) {
1783 ecp=std::sqrt(rnd)*(eer-sbp);
1786 if((ecp+sbp) > eer) {
1809 densniv(a-1.0,zprf,ee,sn,&densn,bshell, 1.e0,1.e0,&temp,
int(
fiss->
optshp),
int(
fiss->
optcol),defbet);
1812 if (imaxwell == 1) {
1832 ecn = std::sqrt(rnd)*(eer-sn);
1835 if((ecn+sn) > eer) {
1856 if ((in >= 3) && (iz >= 3)) {
1858 defbet = 1.5 * (
ecld->
alpha[in-2][iz-2]);
1868 densniv(a-4.0,zprf-2.0e0,ee,sba,&densa,bshell,1.e0,1.e0,&temp,
int(
fiss->
optshp),
int(
fiss->
optcol),defbet);
1874 if (imaxwell == 1) {
1888 eca=std::sqrt(rnd)*(eer-sba);
1891 if((eca+sba) > eer) {
1925 if ((a < 50.e0) || (ee > edyn)) {
1934 densniv(a,zprf,ee,0.0e0,&densg,bshell,1.e0,1.e0,&temp,
int(
fiss->
optshp),
int(
fiss->
optcol),defbet);
1936 if ( densg > 0.e0) {
1939 gp = (std::pow(a,(2.0/3.0))/
fiss->
akap)*densp/densg/pi*std::pow(pt,2);
1940 gn = (std::pow(a,(2.0/3.0))/
fiss->
akap)*densn/densg/pi*std::pow(nt,2);
1941 ga = (std::pow(a,(2.0/3.0))/
fiss->
akap)*densa/densg/pi*2.0*std::pow(at,2);
1942 gf = densf/densg/pi/2.0*ft;
1954 gsum = ga + gp + gn;
1991 ra = densa*2.0/densn*std::pow((at/nt),2);
1997 rn = densn/densp*std::pow((nt/pt),2);
1998 ra = densa*2.0/densp*std::pow((at/pt),2);
2011 else if (sbf > 0.0e0) {
2026 wfex = (tauc - tsum)/ts1;
2032 wf = std::exp( -wfex);
2048 dconst = 12.0/std::sqrt(a);
2053 dconst = dconst*parc;
2058 if ((ee <= 17.e0) && (
fiss->
optles == 1) && (iz >= 90) && (in >= 134)) {
2060 gngf = std::pow(a,(2.0/3.0))*tconst/10.0*std::exp((ef-sn+dconst)/tconst);
2084 denomi = rp+rn+ra+rf;
2101 probp = probp * (wf + (1.e0-wf)/(1.e0-probf));
2102 probn = probn * (wf + (1.e0-wf)/(1.e0-probf));
2103 proba = proba * (wf + (1.e0-wf)/(1.e0-probf));
2106 ptotl = probp+probn+proba+probf;
2112 (*probp_par) = probp;
2113 (*probn_par) = probn;
2114 (*proba_par) = proba;
2115 (*probf_par) = probf;
2116 (*ptotl_par) = ptotl;
2202 G4double pi6 = std::pow(3.1415926535,2) / 6.0;
2207 pa = (
ald->
av)*a + (
ald->
as)*std::pow(a,(2.e0/3.e0)) + (
ald->
ak)*std::pow(a,(1.e0/3.e0));
2210 pa = (
ald->
av)*a + (
ald->
as)*bs*std::pow(a,(2.e0/3.e0)) + (
ald->
ak)*bk*std::pow(a,(1.e0/3.e0));
2213 fp = 0.01377937231e0 * std::pow(a,(5.e0/3.e0)) * (1.e0 + defbet/3.e0);
2223 if (esous > 1.0e30) {
2246 deltpp = -0.25e0* std::pow((delta0/std::sqrt(a)),2) * pa /pi6 + 2.e0*delta0/std::sqrt(a);
2250 e = e - delta0/std::sqrt(a);
2254 e = e - 2.0*delta0/std::sqrt(a);
2270 ponfe = -2.5*pa*e*std::pow(a,(-4.0/3.0));
2272 if (ponfe < -700.0) {
2275 fe = 1.0 - std::exp(ponfe);
2278 he = 1.0 - std::pow((1.0 - e/ecr),2);
2286 ecor = e + deltau*fe + deltpp*he;
2297 y1 = std::sqrt(pa*ecor);
2298 for(
int j = 0; j < 5; j++) {
2299 y2 = pa*ecor*(1.e0-std::exp(-y1));
2305 (*dens) = std::exp(y0*ecor)/ (std::pow((std::pow(ecor,3)*y0),0.5)*std::pow((1.0-0.5*y0*ecor*std::exp(-y1)),0.5))* std::exp(y1)*(1.0-std::exp(-y1))*0.1477045;
2308 y11 = std::sqrt(pa*ecor1);
2309 for(
int j = 0; j < 7; j++) {
2310 y21 = pa*ecor1*(1.0-std::exp(-y11));
2311 y11 = std::sqrt(y21);
2315 (*dens) = (*dens)*std::pow((y01/y0),1.5);
2316 (*temp) = (*temp)*std::pow((y01/y0),1.5);
2320 ponniv = 2.0*std::sqrt(pa*ecor);
2321 if (ponniv > 700.0) {
2326 (*dens) = std::pow(pa,(-0.25e0))*std::pow(ecor,(-1.25e0))*std::exp(ponniv) * 0.1477045e0;
2327 (*temp) = std::sqrt(ecor/pa);
2336 qrot(z,a,defbet,sig,ecor,&qr);
2342 (*dens) = (*dens) * qr;
2357 G4double nms = 0.0, ims = 0.0, ksims = 0.0, xms = 0.0, ums = 0.0;
2360 ims = (nms-zms)/ams;
2361 ksims= 50.15e0 * (1.- 1.78 * std::pow(ims,2));
2362 xms = std::pow(zms,2) / (ams * ksims);
2363 ums = 0.368e0-5.057e0*xms+8.93e0*std::pow(xms,2)-8.71*std::pow(xms,3);
2364 return(0.7322e0*std::pow(zms,2)/std::pow(ams,(0.333333e0))*std::pow(10.e0,ums));
2380 for(
int i = 2; i <
n; i++) {
2381 pl[i] = ((2*double(i+1) - 3.0)*x*pl[i-1] - (double(i+1) - 2.0)*pl[i-2])/(
double(i+1)-1.0);
2407 G4double z = 0.0,
n = 0.0,
a = 0.0, av = 0.0, as = 0.0;
2409 G4double ff = 0.0, ca = 0.0, w = 0.0, dp = 0.0, dn = 0.0, dpn = 0.0, efl = 0.0;
2410 G4double rmac = 0.0, bs = 0.0, h = 0.0,
r0 = 0.0, kf = 0.0, ks = 0.0;
2411 G4double kv = 0.0, rp = 0.0, ay = 0.0, aden = 0.0, x0 = 0.0, y0 = 0.0;
2412 G4double esq = 0.0, ael = 0.0, i = 0.0;
2472 dn = rmac*bs/std::pow(
n,(1.0/3.0));
2473 dp = rmac*bs/std::pow(z,(1.0/3.0));
2474 dpn = h/bs/std::pow(
a,(2.0/3.0));
2476 c1 = 3.0/5.0*esq/
r0;
2477 c4 = 5.0/4.0*std::pow((3.0/(2.0*pi)),(2.0/3.0)) *
c1;
2478 kf = std::pow((9.0*pi*z/(4.0*
a)),(1.0/3.0))/
r0;
2480 ff = -1.0/8.0*rp*rp*esq/std::pow(
r0,3) * (145.0/48.0 - 327.0/2880.0*std::pow(kf,2) * std::pow(rp,2) + 1527.0/1209600.0*std::pow(kf,4) * std::pow(rp,4));
2483 x0 =
r0 * std::pow(
a,(1.0/3.0)) / ay;
2484 y0 =
r0 * std::pow(
a,(1.0/3.0)) / aden;
2486 b1 = 1.0 - 3.0/(std::pow(x0,2)) + (1.0 + x0) * (2.0 + 3.0/x0 + 3.0/std::pow(x0,2)) * std::exp(-2.0*x0);
2488 b3 = 1.0 - 5.0/std::pow(y0,2) * (1.0 - 15.0/(8.0*y0) + 21.0/(8.0 * std::pow(y0,3))
2489 - 3.0/4.0 * (1.0 + 9.0/(2.0*y0) + 7.0/std::pow(y0,2)
2490 + 7.0/(2.0 * std::pow(y0,3))) * std::exp(-2.0*y0));
2494 efl = -1.0 * av*(1.0 - kv*i*i)*
a + as*(1.0 - ks*i*i)*
b1 * std::pow(
a,(2.0/3.0)) + a0
2495 +
c1*z*z*
b3/std::pow(
a,(1.0/3.0)) -
c4*std::pow(z,(4.0/3.0))/std::pow(
a,(1.e0/3.e0))
2496 + ff*std::pow(z,2)/
a -ca*(
n-
z) - ael * std::pow(z,(2.39e0));
2498 if ((in == iz) && (
mod(in,2) == 1) && (
mod(iz,2) == 1)) {
2509 if ((
mod(in,2) == 1) && (
mod(iz,2) == 1)) {
2512 if (
mod(in,2) == 1) {
2515 if (
mod(iz,2) == 1) {
2522 eflmacResult = (0.5*(dn + dp) - 0.5*dpn);
2528 return eflmacResult;
2538 double para = 0.0, parz = 0.0;
2553 (*del) = -12.0/std::sqrt(a);
2556 (*del) = 12.0/std::sqrt(a);
2568 G4double n1 = 0.0, n2 = 0.0, n3 = 0.0;
2605 if (bet/(std::sqrt(2.0)*10.0*(homega/6.582122)) <= 1.0) {
2606 tauResult = std::log(10.0*ef/t)/(bet*1.0e21);
2609 tauResult = std::log(10.0*ef/t)/ (2.0*std::pow((10.0*homega/6.582122),2))*(bet*1.0e-21);
2621 G4double rel = bet/(20.0*homega/6.582122);
2622 G4double cramResult = std::sqrt(1.0 + std::pow(rel,2)) - rel;
2625 if (cramResult > 1.0) {
2647 const int bsbkSize = 54;
2649 G4double bk[bsbkSize] = {0.0, 1.00000,1.00087,1.00352,1.00799,1.01433,1.02265,1.03306,
2650 1.04576,1.06099,1.07910,1.10056,1.12603,1.15651,1.19348,
2651 1.23915,1.29590,1.35951,1.41013,1.44103,1.46026,1.47339,
2652 1.48308,1.49068,1.49692,1.50226,1.50694,1.51114,1.51502,
2653 1.51864,1.52208,1.52539,1.52861,1.53177,1.53490,1.53803,
2654 1.54117,1.54473,1.54762,1.55096,1.55440,1.55798,1.56173,
2655 1.56567,1.56980,1.57413,1.57860,1.58301,1.58688,1.58688,
2656 1.58688,1.58740,1.58740, 0.0};
2658 G4double bs[bsbkSize] = {0.0, 1.00000,1.00086,1.00338,1.00750,1.01319,
2659 1.02044,1.02927,1.03974,
2660 1.05195,1.06604,1.08224,1.10085,1.12229,1.14717,1.17623,1.20963,
2661 1.24296,1.26532,1.27619,1.28126,1.28362,1.28458,1.28477,1.28450,
2662 1.28394,1.28320,1.28235,1.28141,1.28042,1.27941,1.27837,1.27732,
2663 1.27627,1.27522,1.27418,1.27314,1.27210,1.27108,1.27006,1.26906,
2664 1.26806,1.26707,1.26610,1.26514,1.26418,1.26325,1.26233,1.26147,
2665 1.26147,1.26147,1.25992,1.25992, 0.0};
2667 i =
idint(y/(2.0e-02)) + 1;
2669 if((i + 1) >= bsbkSize) {
2677 bipolResult = bs[i] + (bs[i+1] - bs[i])/2.0e-02 * (y - 2.0e-02*(i - 1));
2680 bipolResult = bk[i] + (bk[i+1] - bk[i])/2.0e-02 * (y - 2.0e-02*(i - 1));
2756 for(
G4int init_i = 0; init_i < 7; init_i++) {
2760 for(
G4int init_i = 0; init_i < 10; init_i++) {
2764 G4double a = 0.0,
z = 0.0, amin = 0.0, amax = 0.0, amin2 = 0.0;
2765 G4double amax2 = 0.0, aa = 0.0, zz = 0.0, bfis = 0.0;
2766 G4double bfis0 = 0.0, ell = 0.0, el = 0.0, egs = 0.0, el80 = 0.0, el20 = 0.0;
2767 G4double elmax = 0.0, sel80 = 0.0, sel20 = 0.0, x = 0.0, y = 0.0, q = 0.0, qa = 0.0, qb = 0.0;
2770 G4int i = 0, j = 0, k = 0,
m = 0;
2773 G4double emncof[4][5] = {{-9.01100e+2,-1.40818e+3, 2.77000e+3,-7.06695e+2, 8.89867e+2},
2774 {1.35355e+4,-2.03847e+4, 1.09384e+4,-4.86297e+3,-6.18603e+2},
2775 {-3.26367e+3, 1.62447e+3, 1.36856e+3, 1.31731e+3, 1.53372e+2},
2776 {7.48863e+3,-1.21581e+4, 5.50281e+3,-1.33630e+3, 5.05367e-2}};
2778 G4double elmcof[4][5] = {{1.84542e+3,-5.64002e+3, 5.66730e+3,-3.15150e+3, 9.54160e+2},
2779 {-2.24577e+3, 8.56133e+3,-9.67348e+3, 5.81744e+3,-1.86997e+3},
2780 {2.79772e+3,-8.73073e+3, 9.19706e+3,-4.91900e+3, 1.37283e+3},
2781 {-3.01866e+1, 1.41161e+3,-2.85919e+3, 2.13016e+3,-6.49072e+2}};
2783 G4double emxcof[4][6] = {{9.43596e4,-2.241997e5,2.223237e5,-1.324408e5,4.68922e4,-8.83568e3},
2784 {-1.655827e5,4.062365e5,-4.236128e5,2.66837e5,-9.93242e4,1.90644e4},
2785 {1.705447e5,-4.032e5,3.970312e5,-2.313704e5,7.81147e4,-1.322775e4},
2786 {-9.274555e4,2.278093e5,-2.422225e5,1.55431e5,-5.78742e4,9.97505e3}};
2788 G4double elzcof[7][7] = {{5.11819909e+5,-1.30303186e+6, 1.90119870e+6,-1.20628242e+6, 5.68208488e+5, 5.48346483e+4,-2.45883052e+4},
2789 {-1.13269453e+6, 2.97764590e+6,-4.54326326e+6, 3.00464870e+6, -1.44989274e+6,-1.02026610e+5, 6.27959815e+4},
2790 {1.37543304e+6,-3.65808988e+6, 5.47798999e+6,-3.78109283e+6, 1.84131765e+6, 1.53669695e+4,-6.96817834e+4},
2791 {-8.56559835e+5, 2.48872266e+6,-4.07349128e+6, 3.12835899e+6, -1.62394090e+6, 1.19797378e+5, 4.25737058e+4},
2792 {3.28723311e+5,-1.09892175e+6, 2.03997269e+6,-1.77185718e+6, 9.96051545e+5,-1.53305699e+5,-1.12982954e+4},
2793 {4.15850238e+4, 7.29653408e+4,-4.93776346e+5, 6.01254680e+5, -4.01308292e+5, 9.65968391e+4,-3.49596027e+3},
2794 {-1.82751044e+5, 3.91386300e+5,-3.03639248e+5, 1.15782417e+5, -4.24399280e+3,-6.11477247e+3, 3.66982647e+2}};
2796 const G4int sizex = 5;
2797 const G4int sizey = 6;
2798 const G4int sizez = 4;
2800 G4double egscof[sizey][sizey][sizez];
2802 G4double egs1[sizey][sizex] = {{1.927813e5, 7.666859e5, 6.628436e5, 1.586504e5,-7.786476e3},
2803 {-4.499687e5,-1.784644e6,-1.546968e6,-4.020658e5,-3.929522e3},
2804 {4.667741e5, 1.849838e6, 1.641313e6, 5.229787e5, 5.928137e4},
2805 {-3.017927e5,-1.206483e6,-1.124685e6,-4.478641e5,-8.682323e4},
2806 {1.226517e5, 5.015667e5, 5.032605e5, 2.404477e5, 5.603301e4},
2807 {-1.752824e4,-7.411621e4,-7.989019e4,-4.175486e4,-1.024194e4}};
2809 G4double egs2[sizey][sizex] = {{-6.459162e5,-2.903581e6,-3.048551e6,-1.004411e6,-6.558220e4},
2810 {1.469853e6, 6.564615e6, 6.843078e6, 2.280839e6, 1.802023e5},
2811 {-1.435116e6,-6.322470e6,-6.531834e6,-2.298744e6,-2.639612e5},
2812 {8.665296e5, 3.769159e6, 3.899685e6, 1.520520e6, 2.498728e5},
2813 {-3.302885e5,-1.429313e6,-1.512075e6,-6.744828e5,-1.398771e5},
2814 {4.958167e4, 2.178202e5, 2.400617e5, 1.167815e5, 2.663901e4}};
2816 G4double egs3[sizey][sizex] = {{3.117030e5, 1.195474e6, 9.036289e5, 6.876190e4,-6.814556e4},
2817 {-7.394913e5,-2.826468e6,-2.152757e6,-2.459553e5, 1.101414e5},
2818 {7.918994e5, 3.030439e6, 2.412611e6, 5.228065e5, 8.542465e3},
2819 {-5.421004e5,-2.102672e6,-1.813959e6,-6.251700e5,-1.184348e5},
2820 {2.370771e5, 9.459043e5, 9.026235e5, 4.116799e5, 1.001348e5},
2821 {-4.227664e4,-1.738756e5,-1.795906e5,-9.292141e4,-2.397528e4}};
2823 G4double egs4[sizey][sizex] = {{-1.072763e5,-5.973532e5,-6.151814e5, 7.371898e4, 1.255490e5},
2824 {2.298769e5, 1.265001e6, 1.252798e6,-2.306276e5,-2.845824e5},
2825 {-2.093664e5,-1.100874e6,-1.009313e6, 2.705945e5, 2.506562e5},
2826 {1.274613e5, 6.190307e5, 5.262822e5,-1.336039e5,-1.115865e5},
2827 {-5.715764e4,-2.560989e5,-2.228781e5,-3.222789e3, 1.575670e4},
2828 {1.189447e4, 5.161815e4, 4.870290e4, 1.266808e4, 2.069603e3}};
2830 for(i = 0; i < sizey; i++) {
2831 for(j = 0; j < sizex; j++) {
2836 egscof[i][j][0] = egs1[i][j];
2837 egscof[i][j][1] = egs2[i][j];
2838 egscof[i][j][2] = egs3[i][j];
2839 egscof[i][j][3] = egs4[i][j];
2844 if (iz < 19 || iz > 111) {
2848 if(iz > 102 && il > 0) {
2855 amin= 1.2e0*
z + 0.01e0*
z*
z;
2856 amax= 5.8e0*z - 0.024e0*z*
z;
2858 if(a < amin || a > amax) {
2870 for(i = 0; i < 7; i++) {
2871 for(j = 0; j < 7; j++) {
2872 bfis0=bfis0+elzcof[j][i]*pz[i]*pa[j];
2885 amin2 = 1.4e0*z + 0.009e0*z*
z;
2886 amax2 = 20.e0 + 3.0e0*
z;
2888 if((a < amin2-5.e0 || a > amax2+10.e0) && il > 0) {
2898 for(i = 0; i < 4; i++) {
2899 for(j = 0; j < 5; j++) {
2902 el80 = el80 + elmcof[i][j]*pz[j]*pa[i];
2903 el20 = el20 + emncof[i][j]*pz[j]*pa[i];
2914 for(i = 0; i < 4; i++) {
2915 for(j = 0; j < 6; j++) {
2918 elmax = elmax + emxcof[i][j]*pz[j]*pa[i];
2929 x = sel20/(*selmax);
2930 y = sel80/(*selmax);
2934 q = 0.2/(std::pow(sel20,2)*std::pow(sel80,2)*(sel20-sel80));
2935 qa = q*(4.0*std::pow(sel80,3) - std::pow(sel20,3));
2936 qb = -q*(4.0*std::pow(sel80,2) - std::pow(sel20,2));
2937 bfis = bfis*(1.0 + qa*std::pow(el,2) + qb*std::pow(el,3));
2941 aj = (-20.0*std::pow(x,5) + 25.e0*std::pow(x,4) - 4.0)*std::pow((y-1.0),2)*y*y;
2942 ak = (-20.0*std::pow(y,5) + 25.0*std::pow(y,4) - 1.0) * std::pow((x-1.0),2)*x*x;
2943 q = 0.2/(std::pow((y-x)*((1.0-x)*(1.0-y)*x*y),2));
2944 qa = q*(aj*y - ak*x);
2945 qb = -q*(aj*(2.0*y + 1.0) - ak*(2.0*x + 1.0));
2947 a1 = 4.0*std::pow(z,5) - 5.0*std::pow(z,4) + 1.0;
2948 a2 = qa*(2.e0*z + 1.e0);
2949 bfis=bfis*(
a1 + (z - 1.e0)*(
a2 + qb*z)*z*z*(z - 1.e0));
2956 if(el > (*selmax)) {
2962 if(el > (*selmax)) {
2966 for(k = 0; k < 4; k++) {
2967 for(l = 0; l < 6; l++) {
2968 for(
m = 0;
m < 5;
m++) {
2970 egs = egs + egscof[l][
m][k]*pz[l]*pa[k]*pl[2*
m];
3016 return (-1.0*T*std::log(
haz(k)));
3023 return (E*std::exp(-E));
3029 return (1.0 - (E + 1.0) * std::exp(-E));
3040 const int pSize = 101;
3058 for(i = 1; i <= 99; i++) {
3060 x1 = x - (
f(x) - double(i)/100.0)/
fd(x);
3062 if (std::fabs(
f(x) -
double(i)/100.0) < 1e-5) {
3087 x = (p[i] - p[i-1])*(y*100 - i) + p[i];
3104 if(ii <= 0 || jj < 0) {
3115 fpace2=fpace2/1000.;
3117 if(
pace->
dm[ii][jj] == 0.) {
3122 guet(&a, &z, &fpace2);
3123 fpace2=fpace2-ii*931.5;
3124 fpace2=fpace2/1000.;
3143 const G4int qrows = 50;
3144 const G4int qcols = 70;
3146 for(
G4int init_i = 0; init_i < qrows; init_i++) {
3147 for(
G4int init_j = 0; init_j < qcols; init_j++) {
3148 q[init_i][init_j] = 0.0;
3189 G4double aux=1.+(9.*xjj/4./qq/x13);
3191 G4double ee4=avol*xx+asur*(std::pow(xx,.666))+ac*x13+azer;
3192 G4double tota = ee1 + ee2 + ee3 + ee4;
3193 find = 939.55*xneu+938.77*zz - tota;
3231 G4double avv = 0.0, zvv = 0.0, enerj = 0.0, plab = 0.0, tetlab = 0.0, philab = 0.0;
3232 G4double sitet = std::sqrt(std::pow(csrem[1],2)+std::pow(csrem[2],2));
3233 G4double cstet = 0.0, siphi = 0.0, csphi = 0.0;
3235 for(
G4int init_i = 0; init_i < 4; init_i++) {
3236 for(
G4int init_j = 0; init_j < 4; init_j++) {
3237 R[init_i][init_j] = 0.0;
3240 if(sitet > 1.0e-6) {
3242 siphi = csrem[2]/sitet;
3243 csphi = csrem[1]/sitet;
3245 R[1][1] = cstet*csphi;
3247 R[1][3] = sitet*csphi;
3248 R[2][1] = cstet*siphi;
3250 R[2][3] = sitet*siphi;
3274 for(
G4int init_i = 0; init_i < 4; init_i++) {
3275 plabi[init_i] = 0.0;
3276 plabf[init_i] = 0.0;
3281 #ifdef USE_LEGACY_CODE
3295 #ifdef USE_LEGACY_CODE
3304 #ifdef USE_LEGACY_CODE
3318 er = std::sqrt(std::pow(
volant->
pcv[i],2) + std::pow(masse,2));
3323 ptrav2 = std::pow(plabi[1],2) + std::pow(plabi[2],2) + std::pow(plabi[3],2);
3324 #ifdef USE_LEGACY_CODE
3327 plab = std::sqrt(ptrav2);
3329 #ifdef USE_LEGACY_CODE
3330 if(std::abs(
varntp->
plab[intp] - 122.009) < 1.0e-3) {
3345 #ifdef USE_LEGACY_CODE
3346 varntp->
enerj[intp] = std::sqrt(ptrav2 + std::pow(masse,2)) - masse;
3348 enerj = std::sqrt(ptrav2 + std::pow(masse,2)) - masse;
3351 for(
G4int j = 1; j <= 3; j++) {
3353 for(
G4int k = 1; k <= 3; k++) {
3355 plabf[j] = plabf[j] + R[j][k]*plabi[k];
3359 #ifdef USE_LEGACY_CODE
3364 ptrav2 = std::sqrt(std::pow(plabf[1],2) + std::pow(plabf[2],2) + std::pow(plabf[3],2));
3365 if(ptrav2 >= 1.0e-6) {
3376 #ifdef USE_LEGACY_CODE
3379 if(plab >= 1.0e-6) {
3381 #ifdef USE_LEGACY_CODE
3384 bidon = plabf[3]/plab;
3392 #ifdef USE_LEGACY_CODE
3399 tetlab = std::acos(bidon);
3400 sitet = std::sin(tetlab);
3401 philab = std::atan2(plabf[2],plabf[1]);
3402 tetlab = tetlab*57.2957795;
3403 philab = philab*57.2957795;
3407 #ifdef USE_LEGACY_CODE
3416 #ifndef USE_LEGACY_CODE
3447 G4double sitet = std::sqrt(1.0 - std::pow(ctet1,2));
3451 for(
G4int init_i = 0; init_i < 4; init_i++) {
3452 plabi[init_i] = 0.0;
3453 plabf[init_i] = 0.0;
3457 plabi[1] = p1*sitet*std::cos(phi1);
3458 plabi[2] = p1*sitet*std::sin(phi1);
3459 plabi[3] = er*etrem + gamrem*p1*ctet1;
3462 for(
G4int j = 1; j <= 3; j++) {
3464 for(
G4int k = 1; k <= 3; k++) {
3465 plabf[j] = plabf[j] + R[j][k]*plabi[k];
3471 (*plab1) = std::pow(plabf[1],2) + std::pow(plabf[2],2) + std::pow(plabf[3],2);
3472 (*gam1) = std::sqrt(std::pow(masse1,2) + (*plab1))/masse1;
3473 (*plab1) = std::sqrt((*plab1));
3474 (*eta1) = (*plab1)/masse1;
3476 if((*plab1) <= 1.0e-6) {
3482 for(
G4int i = 1; i <= 3; i++) {
3483 csdir[i] = plabf[i]/(*plab1);
3500 (*eout) = gam*ein + eta*pin[3];
3501 pout[3] = eta*ein + gam*pin[3];
3511 for(
G4int i = 1; i <= 3; i++) {
3513 for(
G4int j = 1; j <= 3; j++) {
3514 pout[i] = pout[i] + R[i][j]*pin[j];
3522 const G4int pSize = 110;
3542 ix = int(y * 100 + 43543000);
3543 if(
mod(ix,2) == 0) {
3554 for(
G4int iRandom = 0; iRandom < pSize; iRandom++) {
3560 if(nTries > 100)
break;
3561 }
while(p[iRandom] <= 0.0 || p[iRandom] >= 1.0);
3568 if(nTries > 100)
break;
3569 }
while(a <= 0.0 || a >= 1.0);
3581 if(nTries > 100)
break;
3582 }
while(a <= 0.0 || a >= 1.0);
3635 fractpart = std::modf(number, &intpart);
3640 if(fractpart < 0.5) {
3641 return int(std::floor(number));
3644 return int(std::ceil(number));
3648 if(fractpart < -0.5) {
3649 return int(std::floor(number));
3652 return int(std::ceil(number));
3656 return int(std::floor(number));
3665 mylocaltime = localtime(&mytime);
3668 return(mylocaltime->tm_hour*60*60 + mylocaltime->tm_min*60 + mylocaltime->tm_sec);
3690 value = double(std::ceil(a));
3693 value = double(std::floor(a));
3704 value = int(std::ceil(a));
3707 value = int(std::floor(a));
3715 if(value > 0.0)
return (
int (std::ceil(value)));
3716 else return (
int (std::floor(value)));
3721 if(a < b && a < c) {
3724 if(b < a && b < c) {
3727 if(c < a && c < b) {
void parite(G4double n, G4double *par)
PROCEDURE FOR CALCULATING THE PARITY OF THE NUMBER N.
G4double eflmac(G4int ia, G4int iz, G4int flag, G4int optshp)
This function will calculate the liquid-drop nuclear mass for spheri configuration according to the p...
void setVerboseLevel(G4int level)
Set verbosity level.
The INCL configuration object.
static c2_factory< G4double > c2
G4Abla(G4Volant *aVolant, G4VarNtp *aVarntp)
This constructor is used by standalone test driver and the Geant4 interface.
void lorab(G4double gam, G4double eta, G4double ein, G4double pin[], G4double *eout, G4double pout[])
Read ABLA data from files.
G4int nint(G4double number)
G4double dm[PACESIZEROWS][PACESIZECOLS]
G4double utilabs(G4double a)
G4double haz(G4int k)
Random numbers.
G4double plab[VARNTPSIZE]
Momentum.
void setVerboseLevel(G4int level)
void translabpf(G4double masse1, G4double t1, G4double p1, G4double ctet1, G4double phi1, G4double gamrem, G4double etrem, G4double R[][4], G4double *plab1, G4double *gam1, G4double *eta1, G4double csdir[])
void mglms(G4double a, G4double z, G4int refopt4, G4double *el)
Mglms.
G4bool copied[VOLANTSIZE]
G4double fmaxhaz(G4double T)
tirage aleatoire dans une maxwellienne
void lpoly(G4double x, G4int n, G4double pl[])
This subroutine calculates the ordinary legendre polynomials of order 0 to n-1 of argument x and stor...
G4int avv[VARNTPSIZE]
A (-1 for pions).
G4double fissility(int a, int z, int optxfis)
Calculation of fissility parameter.
G4double cram(G4double bet, G4double homega)
KRAMERS FAKTOR - REDUCTION OF THE FISSION PROBABILITY INDEPENDENT OF EXCITATION ENERGY.
G4double getVgsld(G4int A, G4int Z)
Get the value of Vgsld.
void dump()
Dump debugging output.
G4double getAlpha(G4int A, G4int Z)
G4double vgsld[ECLDROWS][ECLDCOLS]
Difference between deformed ground state and ldm value.
void direct(G4double zprf, G4double a, G4double ee, G4double jprf, G4double *probp_par, G4double *probn_par, G4double *proba_par, G4double *probf_par, G4double *ptotl_par, G4double *sn_par, G4double *sbp_par, G4double *sba_par, G4double *ecn_par, G4double *ecp_par, G4double *eca_par, G4double *bp_par, G4double *ba_par, G4int, G4int inum, G4int itest)
Calculation of particle emission probabilities.
G4double ecnz[EC2SUBROWS][EC2SUBCOLS]
G4double enerj[VARNTPSIZE]
Kinetic energy.
void mglw(G4double a, G4double z, G4double *el)
Model de la goutte liquide de c.
G4int mod(G4int a, G4int b)
void evapora(G4double zprf, G4double aprf, G4double *ee_par, G4double jprf, G4double *zf_par, G4double *af_par, G4double *mtota_par, G4double *pleva_par, G4double *pxeva_par, G4double *pyeva_par, G4int *ff_par, G4int *inttype_par, G4int *inum_par)
Main evaporation routine.
void densniv(G4double a, G4double z, G4double ee, G4double esous, G4double *dens, G4double bshell, G4double bs, G4double bk, G4double *temp, G4int optshp, G4int optcol, G4double defbet)
Level density parameters.
G4double spdef(G4int a, G4int z, G4int optxfis)
G4int izfis
Z of fiss nucleus.
void breakItUp(G4int nucleusA, G4int nucleusZ, G4double nucleusMass, G4double excitationEnergy, G4double angularMomentum, G4double recoilEnergy, G4double momX, G4double momY, G4double momZ, G4int eventnumber)
Main interface to the de-excitation code.
Evaporation and fission output data.
Shell corrections and deformations.
G4double zpcv[VOLANTSIZE]
G4double alpha[ECLDROWS][ECLDCOLS]
Alpha ground state deformation (this is not beta2!) beta2 = std::sqrt(5/(4pi)) * alpha.
G4int idnint(G4double value)
G4double tetlab[VARNTPSIZE]
Theta angle.
G4int itypcasc[VARNTPSIZE]
emitted in cascade (0) or evaporation (1).
~G4Abla()
Basic destructor.
G4double bipol(int iflag, G4double y)
CALCULATION OF THE SURFACE BS OR CURVATURE BK OF A NUCLEUS RELATIVE TO THE SPHERICAL CONFIGURATION BA...
void translab(G4double gamrem, G4double etrem, G4double csrem[4], G4int nopart, G4int ndec)
G4int kfis
Fission 1/0=Y/N.
G4int ntrack
Number of particles.
G4double efa[FBCOLS][FBROWS]
G4double dmin1(G4double a, G4double b, G4double c)
void initEvapora()
Initialize ABLA evaporation code.
G4double pace2(G4double a, G4double z)
G4double ecgnz[ECLDROWS][ECLDCOLS]
Ground state shell correction frldm for a spherical ground state.
G4int max(G4int a, G4int b)
G4double tau(G4double bet, G4double homega, G4double ef, G4double t)
RISE TIME IN WHICH THE FISSION WIDTH HAS REACHED 90 PERCENT OF ITS FINAL VALUE.
G4double ecfnz[ECLDROWS][ECLDCOLS]
Shell correction for the saddle point (now: == 0).
bool readData()
Read all data from files.
G4double bfms67(G4double zms, G4double ams)
This subroutine calculates the fission barriers of the liquid-drop model of Myers and Swiatecki (1967...
void clear()
Clear and initialize all variables and arrays.
G4double philab[VARNTPSIZE]
Phi angle.
G4double f(G4double E)
FONCTION INTEGRALE DE FD(E)
void guet(G4double *x_par, G4double *z_par, G4double *find_par)
G4int iafis
A of fiss nucleus.
G4AblaFissionBase * fissionModel
void addParticle(G4double A, G4double Z, G4double E, G4double P, G4double theta, G4double phi)
Add a particle to the INCL/ABLA final output.
G4double expohaz(G4int k, G4double T)
TIRAGE ALEATOIRE DANS UNE EXPONENTIELLLE : Y=EXP(-X/T)
G4double getEcnz(G4int A, G4int Z)
Get the value of Alpha.
virtual void doFission(G4double &A, G4double &Z, G4double &E, G4double &A1, G4double &Z1, G4double &E1, G4double &K1, G4double &A2, G4double &Z2, G4double &E2, G4double &K2)=0
G4double estfis
Excit energy at fis.
void barfit(G4int iz, G4int ia, G4int il, G4double *sbfis, G4double *segs, G4double *selmax)
THIS SUBROUTINE RETURNS THE BARRIER HEIGHT BFIS, THE GROUND-STATE ENERGY SEGS, IN MEV...
void appariem(G4double a, G4double z, G4double *del)
Procedure for calculating the pairing correction to the binding energy of a specific nucleus...
void qrot(G4double z, G4double a, G4double bet, G4double sig, G4double u, G4double *qr)
Coefficient of collective enhancement including damping Input: z,a,bet,sig,u Output: qr - collective ...
G4int min(G4int a, G4int b)
void rotab(G4double R[4][4], G4double pin[4], G4double pout[4])
G4double dint(G4double a)
G4double getPace2(G4int A, G4int Z)
Get the value of Pace2.
G4double fd(G4double E)
DISTRIBUTION DE MAXWELL.