00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #include "globals.hh"
00034
00035 #include "G4AblaDataDefs.hh"
00036 #include "G4InclDataDefs.hh"
00037
00042 class G4Abla {
00043
00044 public:
00048 G4Abla();
00049
00057 G4Abla(G4Hazard *aHazard, G4Volant *aVolant, G4VarNtp *aVarntp);
00058
00064 G4Abla(G4Hazard *hazard, G4Volant *volant);
00065
00069 ~G4Abla();
00070
00074 void setVerboseLevel(G4int level);
00075
00090 void breakItUp(G4double nucleusA, G4double nucleusZ, G4double nucleusMass, G4double excitationEnergy,
00091 G4double angularMomentum, G4double recoilEnergy, G4double momX, G4double momY, G4double momZ,
00092 G4int eventnumber);
00093
00094
00095 public:
00100 void initEvapora();
00101
00114 void qrot(G4double z, G4double a, G4double bet, G4double sig, G4double u, G4double *qr);
00115
00120 void mglw(G4double a, G4double z, G4double *el);
00121
00125 void mglms(G4double a, G4double z, G4int refopt4, G4double *el);
00126
00130
00131
00135
00136
00140 void evapora(G4double zprf, G4double aprf, G4double ee, G4double jprf,
00141 G4double *zf_par, G4double *af_par, G4double *mtota_par,
00142 G4double *pleva_par, G4double *pxeva_par, G4double *pyeva_par,
00143 G4int *ff_par, G4int *inttype_par, G4int *inum_par);
00144
00148 void direct(G4double zprf,G4double a, G4double ee, G4double jprf,
00149 G4double *probp_par, G4double *probn_par, G4double *proba_par,
00150 G4double *probf_par, G4double *ptotl_par, G4double *sn_par, G4double *sbp_par, G4double *sba_par, G4double *ecn_par,
00151 G4double *ecp_par,G4double *eca_par, G4double *bp_par, G4double *ba_par, G4int inttype, G4int inum, G4int itest);
00152
00156 void densniv(G4double a, G4double z, G4double ee, G4double esous, G4double *dens, G4double bshell, G4double bs, G4double bk,
00157 G4double *temp, G4int optshp, G4int optcol, G4double defbet);
00158
00165 G4double bfms67(G4double zms, G4double ams);
00166
00174 void lpoly(G4double x, G4int n, G4double pl[]);
00175
00182 G4double eflmac(G4int ia, G4int iz, G4int flag, G4int optshp);
00183
00188 void appariem(G4double a, G4double z, G4double *del);
00189
00194 void parite(G4double n, G4double *par);
00195
00200 G4double tau(G4double bet, G4double homega, G4double ef, G4double t);
00201
00206 G4double cram(G4double bet, G4double homega);
00207
00213 G4double bipol(int iflag, G4double y);
00214
00224 void barfit(G4int iz, G4int ia, G4int il, G4double *sbfis, G4double *segs, G4double *selmax);
00225
00229 G4double expohaz(G4int k, G4double T);
00230
00234 G4double fd(G4double E);
00235
00239 G4double f(G4double E);
00240
00244 G4double fmaxhaz(G4double T);
00245
00249 G4double pace2(G4double a, G4double z);
00250
00254 void guet(G4double *x_par, G4double *z_par, G4double *find_par);
00255
00256
00257 public:
00261 G4double spdef(G4int a, G4int z, G4int optxfis);
00262
00266 G4double fissility(G4int a, G4int z, G4int optxfis);
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277 void even_odd(G4double r_origin,G4double r_even_odd,G4int &i_out);
00278 G4double umass(G4double z,G4double n,G4double beta);
00279 G4double ecoul(G4double z1,G4double n1,G4double beta1,G4double z2,G4double n2,G4double beta2,G4double d);
00280 void fissionDistri(G4double &a,G4double &z,G4double &e,
00281 G4double &a1,G4double &z1,G4double &e1,G4double &v1,
00282 G4double &a2,G4double &z2,G4double &e2,G4double &v2);
00283 void standardRandom(G4double *rndm, G4long *seed);
00284 G4double haz(G4int k);
00285 G4double gausshaz(int k, double xmoy, double sig);
00286
00287
00288 public:
00289
00290 void lorab(G4double gam, G4double eta, G4double ein, G4double pin[],
00291 G4double *eout, G4double pout[]);
00292
00293 void translab(G4double gamrem, G4double etrem, G4double csrem[4], G4int nopart, G4int ndec);
00294 void translabpf(G4double masse1, G4double t1, G4double p1, G4double ctet1,
00295 G4double phi1, G4double gamrem, G4double etrem, G4double R[][4],
00296 G4double *plab1, G4double *gam1, G4double *eta1, G4double csdir[]);
00297
00298 void rotab(G4double R[4][4], G4double pin[4], G4double pout[4]);
00299
00300
00301 G4int min(G4int a, G4int b);
00302 G4double min(G4double a, G4double b);
00303 G4int max(G4int a, G4int b);
00304 G4double max(G4double a, G4double b);
00305
00306 G4int nint(G4double number);
00307 G4int secnds(G4int x);
00308 G4int mod(G4int a, G4int b);
00309 G4double dmod(G4double a, G4double b);
00310 G4double dint(G4double a);
00311 G4int idint(G4double a);
00312 G4int idnint(G4double value);
00313 G4double utilabs(G4double a);
00314 G4double dmin1(G4double a, G4double b, G4double c);
00315
00316 private:
00317 G4int verboseLevel;
00318 G4int ilast;
00319
00320 G4Pace *pace;
00321 G4Hazard *hazard;
00322 G4Ald *ald;
00323 G4Ablamain *ablamain;
00324 G4Emdpar *emdpar;
00325 G4Eenuc *eenuc;
00326 G4Ec2sub *ec2sub;
00327 G4Ecld *ecld;
00328 G4Fb *fb;
00329 G4Fiss *fiss;
00330 G4Opt *opt;
00331 G4Volant *volant;
00332 G4VarNtp *varntp;
00333 };