Import Geant4 11.3.0.beta source tree
This commit is contained in:
@@ -24,28 +24,20 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// ABLAXX statistical de-excitation model
|
||||
// Jose Luis Rodriguez, GSI (translation from ABLA07 and contact person)
|
||||
// Jose Luis Rodriguez, UDC (translation from ABLA07 and contact person)
|
||||
// Pekka Kaitaniemi, HIP (initial translation of ablav3p)
|
||||
// Aleksandra Kelic, GSI (ABLA07 code)
|
||||
// Davide Mancusi, CEA (contact person INCL)
|
||||
// Aatos Heikkinen, HIP (project coordination)
|
||||
//
|
||||
#define ABLAXX_IN_GEANT4_MODE 1
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "globals.hh"
|
||||
#include <memory>
|
||||
|
||||
#ifndef G4Abla_hh
|
||||
#define G4Abla_hh 1
|
||||
|
||||
#ifdef ABLAXX_IN_GEANT4_MODE
|
||||
#include "globals.hh"
|
||||
#else
|
||||
#include "G4INCLGeant4Compat.hh"
|
||||
#include "G4INCLConfig.hh"
|
||||
#endif
|
||||
|
||||
#include "G4AblaRandom.hh"
|
||||
#include "G4AblaDataDefs.hh"
|
||||
#include "G4AblaRandom.hh"
|
||||
|
||||
/**
|
||||
* Class containing ABLA++ de-excitation code.
|
||||
@@ -55,22 +47,20 @@ class G4Abla {
|
||||
|
||||
public:
|
||||
/**
|
||||
* This constructor is used by standalone test driver and the Geant4 interface.
|
||||
* This constructor is used by standalone test driver and the Geant4
|
||||
* interface.
|
||||
*
|
||||
* @param aHazard random seeds
|
||||
* @param aVolant data structure for ABLA output
|
||||
* @param aVarNtp data structure for transfering ABLA output to Geant4 interface
|
||||
* @param aVarNtp data structure for transfering ABLA output to Geant4
|
||||
* interface
|
||||
*/
|
||||
#ifdef ABLAXX_IN_GEANT4_MODE
|
||||
G4Abla(G4Volant *aVolant, G4VarNtp *aVarntp);
|
||||
#else
|
||||
G4Abla(G4INCL::Config *config, G4Volant *aVolant, G4VarNtp *aVarntp);
|
||||
#endif
|
||||
G4Abla(G4VarNtp *aVarntp);
|
||||
|
||||
/**
|
||||
* Basic destructor.
|
||||
*/
|
||||
~G4Abla();
|
||||
~G4Abla() = default;
|
||||
|
||||
/// \brief Dummy copy constructor
|
||||
G4Abla(G4Abla const &other);
|
||||
@@ -83,26 +73,23 @@ public:
|
||||
*/
|
||||
void setVerboseLevel(G4int level);
|
||||
|
||||
/**
|
||||
* Get the internal output data structure pointer.
|
||||
*/
|
||||
G4Volant* getVolant() {
|
||||
return volant;
|
||||
}
|
||||
|
||||
/**
|
||||
* Main interface to the de-excitation code.
|
||||
*
|
||||
* @param nucleusA mass number of the nucleus
|
||||
* @param nucleusZ charge number of the nucleus
|
||||
* @param excitationEnergy excitation energy of the nucleus
|
||||
* @param angularMomentum angular momentum of the nucleus (produced as output by INCL4)
|
||||
* @param angularMomentum angular momentum of the nucleus (produced as output
|
||||
* by INCL4)
|
||||
* @param momX momentum x-component
|
||||
* @param momY momentum y-component
|
||||
* @param momZ momentum z-component
|
||||
* @param eventnumber number of the event
|
||||
*/
|
||||
void DeexcitationAblaxx(G4int nucleusA, G4int nucleusZ, G4double excitationEnergy, G4double angularMomentum, G4double momX, G4double momY, G4double momZ, G4int eventnumber);
|
||||
void DeexcitationAblaxx(G4int nucleusA, G4int nucleusZ,
|
||||
G4double excitationEnergy, G4double angularMomentum,
|
||||
G4double momX, G4double momY, G4double momZ,
|
||||
G4int eventnumber);
|
||||
|
||||
/**
|
||||
* Main interface to the de-excitation code for hyper-nuclei.
|
||||
@@ -110,14 +97,18 @@ public:
|
||||
* @param nucleusA mass number of the nucleus
|
||||
* @param nucleusZ charge number of the nucleus
|
||||
* @param excitationEnergy excitation energy of the nucleus
|
||||
* @param angularMomentum angular momentum of the nucleus (produced as output by INCL)
|
||||
* @param angularMomentum angular momentum of the nucleus (produced as output
|
||||
* by INCL)
|
||||
* @param momX momentum x-component
|
||||
* @param momY momentum y-component
|
||||
* @param momZ momentum z-component
|
||||
* @param eventnumber number of the event
|
||||
* @param nucleusS is the strange number
|
||||
*/
|
||||
void DeexcitationAblaxx(G4int nucleusA, G4int nucleusZ, G4double excitationEnergy, G4double angularMomentum, G4double momX, G4double momY, G4double momZ, G4int eventnumber, G4int nucleusS);
|
||||
void DeexcitationAblaxx(G4int nucleusA, G4int nucleusZ,
|
||||
G4double excitationEnergy, G4double angularMomentum,
|
||||
G4double momX, G4double momY, G4double momZ,
|
||||
G4int eventnumber, G4int nucleusS);
|
||||
|
||||
// Evaporation
|
||||
public:
|
||||
@@ -135,18 +126,19 @@ public:
|
||||
void SetParametersG4(G4int z, G4int a);
|
||||
|
||||
/**
|
||||
* Coefficient of collective enhancement including damping
|
||||
* Input: z,a,bet,sig,u
|
||||
* Output: qr - collective enhancement factor
|
||||
* See junghans et al., nucl. phys. a 629 (1998) 635
|
||||
* Coefficient of collective enhancement including damping
|
||||
* Input: z,a,bet,sig,u
|
||||
* Output: qr - collective enhancement factor
|
||||
* See junghans et al., nucl. phys. a 629 (1998) 635
|
||||
* @param z charge number
|
||||
* @param a mass number
|
||||
* @param bet beta deformation
|
||||
* @param sig perpendicular spin cut-off factor
|
||||
* @param u Energy
|
||||
* @return Coefficient of collective enhancement
|
||||
* @return Coefficient of collective enhancement
|
||||
*/
|
||||
void qrot(G4double z, G4double a, G4double bet, G4double sig, G4double u, G4double *qr);
|
||||
void qrot(G4double z, G4double a, G4double bet, G4double sig, G4double u,
|
||||
G4double *qr);
|
||||
|
||||
/**
|
||||
* Model de la goutte liquide de c. f. weizsacker.
|
||||
@@ -167,202 +159,263 @@ public:
|
||||
/**
|
||||
* Calculation of fissility parameter
|
||||
*/
|
||||
G4double fissility(G4int a, G4int z, G4int ny, G4double sn, G4double slam, G4int optxfis);
|
||||
G4double fissility(G4int a, G4int z, G4int ny, G4double sn, G4double slam,
|
||||
G4int optxfis);
|
||||
|
||||
/**
|
||||
* Main evaporation routine.
|
||||
*/
|
||||
void evapora(G4double zprf, G4double aprf, G4double *ee_par, G4double jprf,
|
||||
G4double *zf_par, G4double *af_par, G4double *mtota_par,
|
||||
G4double *vleva_par, G4double *vxeva_par, G4double *vyeva_par,
|
||||
G4int *ff_par, G4int *fimf_par, G4double *fzimf, G4double *faimf, G4double *tkeimf_par,G4double *jprfout,G4int *inttype_par, G4int *inum_par,G4double EV_TEMP[200][6],G4int *iev_tab_temp_par, G4int *nblam0);
|
||||
|
||||
void evapora(G4double zprf, G4double aprf, G4double *ee_par, G4double jprf,
|
||||
G4double *zf_par, G4double *af_par, G4double *mtota_par,
|
||||
G4double *vleva_par, G4double *vxeva_par, G4double *vyeva_par,
|
||||
G4int *ff_par, G4int *fimf_par, G4double *fzimf, G4double *faimf,
|
||||
G4double *tkeimf_par, G4double *jprfout, G4int *inttype_par,
|
||||
G4int *inum_par, G4double EV_TEMP[indexpart][6],
|
||||
G4int *iev_tab_temp_par, G4int *nblam0);
|
||||
|
||||
/**
|
||||
* Calculation of particle emission probabilities.
|
||||
*/
|
||||
void direct(G4double zprf, G4double a, G4double ee, G4double jprf, G4double *probp_par, G4double *probd_par, G4double *probt_par, G4double *probn_par, G4double *probhe_par, G4double *proba_par, G4double *probg_par,G4double *probimf_par,G4double *probf_par,G4double *problamb0_par, G4double *ptotl_par, G4double *sn_par, G4double *sbp_par, G4double *sbd_par, G4double *sbt_par, G4double *sbhe_par, G4double *sba_par,G4double *slamb0_par, G4double *ecn_par, G4double *ecp_par, G4double *ecd_par, G4double *ect_par,G4double *eche_par,G4double *eca_par, G4double *ecg_par, G4double *eclamb0_par, G4double *bp_par, G4double *bd_par, G4double *bt_par, G4double *bhe_par, G4double *ba_par,G4double *sp_par,G4double *sd_par,G4double *st_par,G4double *she_par,G4double *sa_par, G4double *ef_par,G4double *ts1_par, G4int, G4int inum, G4int itest, G4int *sortie, G4double *tcn,G4double *jprfn_par, G4double *jprfp_par, G4double *jprfd_par, G4double *jprft_par, G4double *jprfhe_par, G4double *jprfa_par, G4double *jprflamb0_par, G4double *tsum_par, G4int NbLam0);
|
||||
|
||||
void direct(G4double zprf, G4double a, G4double ee, G4double jprf,
|
||||
G4double *probp_par, G4double *probd_par, G4double *probt_par,
|
||||
G4double *probn_par, G4double *probhe_par, G4double *proba_par,
|
||||
G4double *probg_par, G4double *probimf_par, G4double *probf_par,
|
||||
G4double *problamb0_par, G4double *ptotl_par, G4double *sn_par,
|
||||
G4double *sbp_par, G4double *sbd_par, G4double *sbt_par,
|
||||
G4double *sbhe_par, G4double *sba_par, G4double *slamb0_par,
|
||||
G4double *ecn_par, G4double *ecp_par, G4double *ecd_par,
|
||||
G4double *ect_par, G4double *eche_par, G4double *eca_par,
|
||||
G4double *ecg_par, G4double *eclamb0_par, G4double *bp_par,
|
||||
G4double *bd_par, G4double *bt_par, G4double *bhe_par,
|
||||
G4double *ba_par, G4double *sp_par, G4double *sd_par,
|
||||
G4double *st_par, G4double *she_par, G4double *sa_par,
|
||||
G4double *ef_par, G4double *ts1_par, G4int, G4int inum,
|
||||
G4int itest, G4int *sortie, G4double *tcn, G4double *jprfn_par,
|
||||
G4double *jprfp_par, G4double *jprfd_par, G4double *jprft_par,
|
||||
G4double *jprfhe_par, G4double *jprfa_par,
|
||||
G4double *jprflamb0_par, G4double *tsum_par, G4int NbLam0);
|
||||
|
||||
/**
|
||||
* Calculation of fission and the particle emission probabilities after fission.
|
||||
* Calculation of fission and the particle emission probabilities after
|
||||
* fission.
|
||||
*/
|
||||
void fission(G4double AF,G4double ZF,G4double EE,G4double JPRF,
|
||||
G4double *VX1_FISSION,G4double *VY1_FISSION,G4double *VZ1_FISSION,
|
||||
G4double *VX2_FISSION,G4double *VY2_FISSION,G4double *VZ2_FISSION,
|
||||
G4int *ZFP1,G4int *AFP1,G4int *SFP1,G4int *ZFP2,G4int *AFP2,G4int *SFP2,G4int *imode,
|
||||
G4double *VX_EVA_SC, G4double *VY_EVA_SC, G4double *VZ_EVA_SC,
|
||||
G4double EV_TEMP[200][6],G4int *IEV_TAB_FIS,G4int *NbLam0);
|
||||
|
||||
void fission(G4double AF, G4double ZF, G4double EE, G4double JPRF,
|
||||
G4double *VX1_FISSION, G4double *VY1_FISSION,
|
||||
G4double *VZ1_FISSION, G4double *VX2_FISSION,
|
||||
G4double *VY2_FISSION, G4double *VZ2_FISSION, G4int *ZFP1,
|
||||
G4int *AFP1, G4int *SFP1, G4int *ZFP2, G4int *AFP2, G4int *SFP2,
|
||||
G4int *imode, G4double *VX_EVA_SC, G4double *VY_EVA_SC,
|
||||
G4double *VZ_EVA_SC, G4double EV_TEMP[indexpart][6],
|
||||
G4int *IEV_TAB_FIS, G4int *NbLam0);
|
||||
|
||||
/**
|
||||
* Calculation of lorentz's boost
|
||||
*/
|
||||
void lorentz_boost(G4double VXRIN,G4double VYRIN,G4double VZRIN,G4double VXIN,G4double VYIN,G4double VZIN,G4double *VXOUT,G4double *VYOUT,G4double *VZOUT);
|
||||
void lorentz_boost(G4double VXRIN, G4double VYRIN, G4double VZRIN,
|
||||
G4double VXIN, G4double VYIN, G4double VZIN,
|
||||
G4double *VXOUT, G4double *VYOUT, G4double *VZOUT);
|
||||
|
||||
/**
|
||||
* Calculation of unstable nuclei
|
||||
*/
|
||||
void unstable_nuclei(G4int AFP,G4int ZFP,G4int *AFPNEW,G4int *ZFPNEW,G4int &IOUNSTABLE,G4double VX,G4double VY,G4double VZ,G4double *VP1X,G4double *VP1Y,G4double *VP1Z,G4double BU_TAB_TEMP[200][6],G4int *ILOOP);
|
||||
void unstable_nuclei(G4int AFP, G4int ZFP, G4int *AFPNEW, G4int *ZFPNEW,
|
||||
G4int &IOUNSTABLE, G4double VX, G4double VY, G4double VZ,
|
||||
G4double *VP1X, G4double *VP1Y, G4double *VP1Z,
|
||||
G4double BU_TAB_TEMP[indexpart][6], G4int *ILOOP);
|
||||
|
||||
/**
|
||||
* Calculation of unstable nuclei tke
|
||||
*/
|
||||
void unstable_tke(G4double AIN,G4double ZIN,G4double ANEW,G4double ZNEW,G4double VXIN,G4double VYIN,G4double VZIN,G4double *V1X,G4double *V1Y,G4double *V1Z,G4double *V2X,G4double *V2Y,G4double *V2Z);
|
||||
void unstable_tke(G4double AIN, G4double ZIN, G4double ANEW, G4double ZNEW,
|
||||
G4double VXIN, G4double VYIN, G4double VZIN, G4double *V1X,
|
||||
G4double *V1Y, G4double *V1Z, G4double *V2X, G4double *V2Y,
|
||||
G4double *V2Z);
|
||||
|
||||
/**
|
||||
* Calculation of tke for breakup fragments
|
||||
*/
|
||||
void tke_bu(G4double Z,G4double A,G4double ZALL,G4double AAL,G4double *VX,G4double *VY,G4double *VZ);
|
||||
void tke_bu(G4double Z, G4double A, G4double ZALL, G4double AAL, G4double *VX,
|
||||
G4double *VY, G4double *VZ);
|
||||
|
||||
/**
|
||||
* Calculation of the angular momentum of breakup fragments
|
||||
* according to Goldhaber model
|
||||
*/
|
||||
void AMOMENT(G4double AABRA,G4double APRF,G4int IMULTIFR,G4double *PX,G4double *PY,G4double *PZ);
|
||||
void AMOMENT(G4double AABRA, G4double APRF, G4int IMULTIFR, G4double *PX,
|
||||
G4double *PY, G4double *PZ);
|
||||
|
||||
/**
|
||||
* Calculation of particle emission barriers.
|
||||
*/
|
||||
void barrs(G4int Z1,G4int A1,G4int Z2,G4int A2,G4double *sBARR,G4double *sOMEGA);
|
||||
void barrs(G4int Z1, G4int A1, G4int Z2, G4int A2, G4double *sBARR,
|
||||
G4double *sOMEGA);
|
||||
|
||||
/**
|
||||
* Calculation of particle emission between the saddle and scission point.
|
||||
*/
|
||||
void evap_postsaddle(G4double A, G4double Z, G4double E_scission_pre, G4double *E_scission_post, G4double *A_scission, G4double *Z_scission,
|
||||
G4double &vx_eva,G4double &vy_eva,G4double &vz_eva,G4int *NbLam0_par);
|
||||
void evap_postsaddle(G4double A, G4double Z, G4double E_scission_pre,
|
||||
G4double *E_scission_post, G4double *A_scission,
|
||||
G4double *Z_scission, G4double &vx_eva, G4double &vy_eva,
|
||||
G4double &vz_eva, G4int *NbLam0_par);
|
||||
|
||||
/**
|
||||
* Calculation of imfs.
|
||||
*/
|
||||
void imf(G4double ACN,G4double ZCN,G4double TEMP,G4double EE,G4double *ZIMF,G4double *AIMF,G4double *BIMF,G4double *SBIMF,G4double *TIMF,G4double JPRF);
|
||||
void imf(G4double ACN, G4double ZCN, G4double TEMP, G4double EE,
|
||||
G4double *ZIMF, G4double *AIMF, G4double *BIMF, G4double *SBIMF,
|
||||
G4double *TIMF, G4double JPRF);
|
||||
|
||||
/**
|
||||
* Calculation of omega at saddle point.
|
||||
*/
|
||||
void fomega_sp(G4double AF,G4double Y,G4double *MFCD,G4double *sOMEGA,G4double *sHOMEGA);
|
||||
void fomega_sp(G4double AF, G4double Y, G4double *MFCD, G4double *sOMEGA,
|
||||
G4double *sHOMEGA);
|
||||
|
||||
/**
|
||||
* Calculation of omega at ground state.
|
||||
*/
|
||||
void fomega_gs(G4double AF,G4double ZF,G4double *K1,G4double *sOMEGA,G4double *sHOMEGA);
|
||||
void fomega_gs(G4double AF, G4double ZF, G4double *K1, G4double *sOMEGA,
|
||||
G4double *sHOMEGA);
|
||||
|
||||
/**
|
||||
* Calculation of tunnelling effect in fission.
|
||||
*/
|
||||
G4double tunnelling(G4double A,G4double ZPRF,G4double Y,G4double EE,G4double EF,G4double TEMP,G4double DENSG,G4double DENSF,G4double ENH_FACT);
|
||||
G4double tunnelling(G4double A, G4double ZPRF, G4double Y, G4double EE,
|
||||
G4double EF, G4double TEMP, G4double DENSG,
|
||||
G4double DENSF, G4double ENH_FACT);
|
||||
|
||||
/**
|
||||
* Calculation of fission width at the saddle point according to B&W.
|
||||
*/
|
||||
void fission_width(G4double ZPRF,G4double A,G4double EE,G4double BS,G4double BK,G4double EF,G4double Y,G4double *GF,G4double *TEMP,G4double JPR,G4int IEROT,G4int FF_ALLOWED,G4int OPTCOL,G4int OPTSHP,G4double DENSG);
|
||||
void fission_width(G4double ZPRF, G4double A, G4double EE, G4double BS,
|
||||
G4double BK, G4double EF, G4double Y, G4double *GF,
|
||||
G4double *TEMP, G4double JPR, G4int IEROT,
|
||||
G4int FF_ALLOWED, G4int OPTCOL, G4int OPTSHP,
|
||||
G4double DENSG);
|
||||
|
||||
/**
|
||||
* Calculation of unbound nuclei.
|
||||
*/
|
||||
void unbound(G4double SN,G4double SP,G4double SD,G4double ST,G4double SHE,G4double SA,G4double BP,G4double BD,G4double BT,G4double BHE,G4double BA,G4double *PROBF,G4double *PROBN,G4double *PROBP,G4double *PROBD,G4double *PROBT,G4double *PROBHE,G4double *PROBA,G4double *PROBIMF,G4double *PROBG,G4double *ECN,G4double *ECP,G4double *ECD,G4double *ECT,G4double *ECHE,G4double *ECA);
|
||||
void unbound(G4double SN, G4double SP, G4double SD, G4double ST, G4double SHE,
|
||||
G4double SA, G4double BP, G4double BD, G4double BT, G4double BHE,
|
||||
G4double BA, G4double *PROBF, G4double *PROBN, G4double *PROBP,
|
||||
G4double *PROBD, G4double *PROBT, G4double *PROBHE,
|
||||
G4double *PROBA, G4double *PROBIMF, G4double *PROBG,
|
||||
G4double *ECN, G4double *ECP, G4double *ECD, G4double *ECT,
|
||||
G4double *ECHE, G4double *ECA);
|
||||
|
||||
/**
|
||||
* Calculation of the fission distribution.
|
||||
*/
|
||||
void fissionDistri(G4double &a,G4double &z,G4double &e,
|
||||
G4double &a1,G4double &z1,G4double &e1,G4double &v1,
|
||||
G4double &a2,G4double &z2,G4double &e2,G4double &v2,
|
||||
G4double &vx_eva_sc,G4double &vy_eva_sc,
|
||||
G4double &vz_eva_sc,G4int *NbLam0_par);
|
||||
void fissionDistri(G4double &a, G4double &z, G4double &e, G4double &a1,
|
||||
G4double &z1, G4double &e1, G4double &v1, G4double &a2,
|
||||
G4double &z2, G4double &e2, G4double &v2,
|
||||
G4double &vx_eva_sc, G4double &vy_eva_sc,
|
||||
G4double &vz_eva_sc, G4int *NbLam0_par);
|
||||
|
||||
/**
|
||||
* Calculation of even-odd effects in fission.
|
||||
*/
|
||||
void even_odd(G4double r_origin,G4double r_even_odd,G4int &i_out);
|
||||
void even_odd(G4double r_origin, G4double r_even_odd, G4int &i_out);
|
||||
|
||||
/**
|
||||
* Functions for the fission model.
|
||||
*/
|
||||
G4double umass(G4double z,G4double n,G4double beta);
|
||||
G4double ecoul(G4double z1,G4double n1,G4double beta1,G4double z2,G4double n2,G4double beta2,G4double d);
|
||||
G4double Uwash(G4double E, G4double Ecrit,G4double Freduction,G4double gamma);
|
||||
G4double frldm(G4double z,G4double n,G4double beta);
|
||||
G4double eflmac_profi(G4double a,G4double z);
|
||||
G4double umass(G4double z, G4double n, G4double beta);
|
||||
G4double ecoul(G4double z1, G4double n1, G4double beta1, G4double z2,
|
||||
G4double n2, G4double beta2, G4double d);
|
||||
G4double Uwash(G4double E, G4double Ecrit, G4double Freduction,
|
||||
G4double gamma);
|
||||
G4double frldm(G4double z, G4double n, G4double beta);
|
||||
G4double eflmac_profi(G4double a, G4double z);
|
||||
G4double gausshaz(G4int k, G4double xmoy, G4double sig);
|
||||
G4double haz(G4int k);
|
||||
|
||||
/**
|
||||
* Level density parameters.
|
||||
*/
|
||||
void densniv(G4double a, G4double z, G4double ee, G4double ef, G4double *dens, G4double bshell, G4double bs, G4double bk,
|
||||
G4double *temp, G4int optshp, G4int optcol, G4double defbet, G4double *ecor, G4double jprf, G4int ifis,G4double *qr);
|
||||
void densniv(G4double a, G4double z, G4double ee, G4double ef, G4double *dens,
|
||||
G4double bshell, G4double bs, G4double bk, G4double *temp,
|
||||
G4int optshp, G4int optcol, G4double defbet, G4double *ecor,
|
||||
G4double jprf, G4int ifis, G4double *qr);
|
||||
|
||||
/**
|
||||
* Calculation of the fission probability modified by transient time effects.
|
||||
*/
|
||||
void part_fiss(G4double BET,G4double GP,G4double GF,G4double Y,G4double TAUF,G4double TS1,G4double TSUM,G4int *CHOICE,G4double ZF,G4double AF,G4double FT,G4double *T_LAPSE,G4double *GF_LOC);
|
||||
void part_fiss(G4double BET, G4double GP, G4double GF, G4double Y,
|
||||
G4double TAUF, G4double TS1, G4double TSUM, G4int *CHOICE,
|
||||
G4double ZF, G4double AF, G4double FT, G4double *T_LAPSE,
|
||||
G4double *GF_LOC);
|
||||
|
||||
G4double func_trans(G4double TIME,G4double ZF,G4double AF,G4double BET,G4double Y,G4double FT,G4double T_0);
|
||||
G4double func_trans(G4double TIME, G4double ZF, G4double AF, G4double BET,
|
||||
G4double Y, G4double FT, G4double T_0);
|
||||
|
||||
/**
|
||||
* This subroutine calculates the ordinary legendre polynomials of
|
||||
* order 0 to n-1 of argument x and stores them in the vector pl.
|
||||
* They are calculated by recursion relation from the first two
|
||||
* polynomials.
|
||||
* Written by A.J.Sierk LANL t-9 February, 1984
|
||||
* This subroutine calculates the ordinary legendre polynomials of
|
||||
* order 0 to n-1 of argument x and stores them in the vector pl.
|
||||
* They are calculated by recursion relation from the first two
|
||||
* polynomials.
|
||||
* Written by A.J.Sierk LANL t-9 February, 1984
|
||||
*/
|
||||
void lpoly(G4double x, G4int n, G4double pl[]);
|
||||
|
||||
/**
|
||||
* This function will calculate the liquid-drop nuclear mass for spheri
|
||||
* configuration according to the preprint NUCLEAR GROUND-STATE
|
||||
* configuration according to the preprint NUCLEAR GROUND-STATE
|
||||
* MASSES and DEFORMATIONS by P. Mo"ller et al. from August 16, 1993 p.
|
||||
* All constants are taken from this publication for consistency.
|
||||
* All constants are taken from this publication for consistency.
|
||||
*/
|
||||
G4double eflmac(G4int ia, G4int iz, G4int flag, G4int optshp);
|
||||
|
||||
/**
|
||||
* Procedure for calculating the pairing correction to the binding
|
||||
* Procedure for calculating the pairing correction to the binding
|
||||
* energy of a specific nucleus.
|
||||
*/
|
||||
void appariem(G4double a, G4double z, G4double *del);
|
||||
|
||||
/**
|
||||
* PROCEDURE FOR CALCULATING THE PARITY OF THE NUMBER N.
|
||||
* RETURNS -1 IF N IS ODD AND +1 IF N IS EVEN
|
||||
* PROCEDURE FOR CALCULATING THE PARITY OF THE NUMBER N.
|
||||
* RETURNS -1 IF N IS ODD AND +1 IF N IS EVEN
|
||||
*/
|
||||
void parite(G4double n, G4double *par);
|
||||
|
||||
/**
|
||||
* RISE TIME IN WHICH THE FISSION WIDTH HAS REACHED
|
||||
* RISE TIME IN WHICH THE FISSION WIDTH HAS REACHED
|
||||
* 90 PERCENT OF ITS FINAL VALUE
|
||||
*/
|
||||
G4double tau(G4double bet, G4double homega, G4double ef, G4double t);
|
||||
|
||||
/**
|
||||
* KRAMERS FAKTOR - REDUCTION OF THE FISSION PROBABILITY
|
||||
* INDEPENDENT OF EXCITATION ENERGY
|
||||
* KRAMERS FAKTOR - REDUCTION OF THE FISSION PROBABILITY
|
||||
* INDEPENDENT OF EXCITATION ENERGY
|
||||
*/
|
||||
G4double cram(G4double bet, G4double homega);
|
||||
|
||||
/**
|
||||
* CALCULATION OF THE SURFACE BS OR CURVATURE BK OF A NUCLEUS
|
||||
* RELATIVE TO THE SPHERICAL CONFIGURATION
|
||||
* BASED ON MYERS, DROPLET MODEL FOR ARBITRARY SHAPES
|
||||
* CALCULATION OF THE SURFACE BS OR CURVATURE BK OF A NUCLEUS
|
||||
* RELATIVE TO THE SPHERICAL CONFIGURATION
|
||||
* BASED ON MYERS, DROPLET MODEL FOR ARBITRARY SHAPES
|
||||
*/
|
||||
G4double bipol(G4int iflag, G4double y);
|
||||
|
||||
/**
|
||||
* THIS SUBROUTINE RETURNS THE BARRIER HEIGHT BFIS, THE
|
||||
* GROUND-STATE ENERGY SEGS, IN MEV, AND THE ANGULAR MOMENTUM
|
||||
* AT WHICH THE FISSION BARRIER DISAPPEARS, LMAX, IN UNITS OF
|
||||
* H-BAR, WHEN CALLED WITH INTEGER AGUMENTS IZ, THE ATOMIC
|
||||
* NUMBER, IA, THE ATOMIC MASS NUMBER, AND IL, THE ANGULAR
|
||||
* MOMENTUM IN UNITS OF H-BAR. (PLANCK'S CONSTANT DIVIDED BY
|
||||
* 2*PI).
|
||||
* THIS SUBROUTINE RETURNS THE BARRIER HEIGHT BFIS, THE
|
||||
* GROUND-STATE ENERGY SEGS, IN MEV, AND THE ANGULAR MOMENTUM
|
||||
* AT WHICH THE FISSION BARRIER DISAPPEARS, LMAX, IN UNITS OF
|
||||
* H-BAR, WHEN CALLED WITH INTEGER AGUMENTS IZ, THE ATOMIC
|
||||
* NUMBER, IA, THE ATOMIC MASS NUMBER, AND IL, THE ANGULAR
|
||||
* MOMENTUM IN UNITS OF H-BAR. (PLANCK'S CONSTANT DIVIDED BY
|
||||
* 2*PI).
|
||||
*/
|
||||
void barfit(G4int iz, G4int ia, G4int il, G4double *sbfis, G4double *segs, G4double *selmax);
|
||||
void barfit(G4int iz, G4int ia, G4int il, G4double *sbfis, G4double *segs,
|
||||
G4double *selmax);
|
||||
|
||||
/**
|
||||
* Calculation of decay widths for light particles.
|
||||
*/
|
||||
G4double width(G4double AMOTHER,G4double ZMOTHER,G4double APART,G4double ZPART,G4double TEMP,G4double B1,G4double SB1,G4double EXC);
|
||||
G4double width(G4double AMOTHER, G4double ZMOTHER, G4double APART,
|
||||
G4double ZPART, G4double TEMP, G4double B1, G4double SB1,
|
||||
G4double EXC);
|
||||
|
||||
/**
|
||||
* Calculation of penetration factors for light charged particles.
|
||||
@@ -372,12 +425,13 @@ void unbound(G4double SN,G4double SP,G4double SD,G4double ST,G4double SHE,G4dou
|
||||
/**
|
||||
* Calculation of mean value of orbital angular momentum.
|
||||
*/
|
||||
void lorb(G4double AMOTHER,G4double ADAUGHTER,G4double LMOTHER,G4double EEFINAL,G4double *LORBITAL,G4double *SIGMA_LORBITAL);
|
||||
void lorb(G4double AMOTHER, G4double ADAUGHTER, G4double LMOTHER,
|
||||
G4double EEFINAL, G4double *LORBITAL, G4double *SIGMA_LORBITAL);
|
||||
|
||||
/**
|
||||
* Calculation of BS and BK for the nuclear-level density.
|
||||
*/
|
||||
void bsbkbc(G4double A,G4double Z,G4double *BS,G4double *BK,G4double *BC);
|
||||
void bsbkbc(G4double A, G4double Z, G4double *BS, G4double *BK, G4double *BC);
|
||||
|
||||
/**
|
||||
* Special functions used for the emission of particles.
|
||||
@@ -386,9 +440,9 @@ void unbound(G4double SN,G4double SP,G4double SD,G4double ST,G4double SHE,G4dou
|
||||
|
||||
G4double gammp(G4double a, G4double x);
|
||||
|
||||
void gcf(G4double *gammcf,G4double a,G4double x,G4double gln);
|
||||
void gcf(G4double *gammcf, G4double a, G4double x, G4double gln);
|
||||
|
||||
void gser(G4double *gamser,G4double a,G4double x,G4double gln);
|
||||
void gser(G4double *gamser, G4double a, G4double x, G4double gln);
|
||||
|
||||
G4double fvmaxhaz(G4double T);
|
||||
|
||||
@@ -401,7 +455,7 @@ void unbound(G4double SN,G4double SP,G4double SD,G4double ST,G4double SHE,G4dou
|
||||
|
||||
/**
|
||||
* LOGARITHM OF THE GAMM FUNCTION
|
||||
*/
|
||||
*/
|
||||
G4double gammln(G4double xx);
|
||||
|
||||
/**
|
||||
@@ -428,12 +482,7 @@ void unbound(G4double SN,G4double SP,G4double SD,G4double ST,G4double SHE,G4dou
|
||||
* Random generator according to the
|
||||
powerfunction y = x**(lambda) in the range from xmin to xmax
|
||||
*/
|
||||
G4int IPOWERLIMHAZ(G4double lambda,G4int xmin,G4int xmax);
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
G4double pace2(G4double a, G4double z);
|
||||
G4int IPOWERLIMHAZ(G4double lambda, G4int xmin, G4int xmax);
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -448,7 +497,7 @@ void unbound(G4double SN,G4double SP,G4double SD,G4double ST,G4double SHE,G4dou
|
||||
/**
|
||||
* Fill the data array for INCL
|
||||
*/
|
||||
void FillData(G4int IMULTBU,G4int IEV_TAB);
|
||||
void FillData(G4int IMULTBU, G4int IEV_TAB);
|
||||
|
||||
/**
|
||||
* Separation energies of lambda
|
||||
@@ -458,9 +507,9 @@ void unbound(G4double SN,G4double SP,G4double SD,G4double ST,G4double SHE,G4dou
|
||||
/**
|
||||
* Separation energies of for other particles for hypernuclei
|
||||
*/
|
||||
G4double getdeltabinding(G4double a,G4int nblamb);
|
||||
G4double getdeltabinding(G4double a, G4int nblamb);
|
||||
G4double gethyperbinding(G4double A, G4double Z, G4int ny);
|
||||
|
||||
|
||||
public:
|
||||
// Utils
|
||||
G4int min(G4int a, G4int b);
|
||||
@@ -478,33 +527,22 @@ public:
|
||||
G4int idnint(G4double value);
|
||||
G4double utilabs(G4double a);
|
||||
G4double dmin1(G4double a, G4double b, G4double c);
|
||||
G4Ec2sub* getFrldmTable() {
|
||||
return ec2sub;
|
||||
}
|
||||
|
||||
private:
|
||||
G4int verboseLevel;
|
||||
G4int ilast;
|
||||
G4double T_freeze_out_in;
|
||||
G4int IEV_TAB_SSC;
|
||||
G4double BU_TAB[200][12],EV_TAB[200][6],EV_TAB_SSC[200][6];
|
||||
G4double BU_TAB[indexpart][12], EV_TAB[indexpart][6], EV_TAB_SSC[indexpart][6];
|
||||
G4int gammaemission;
|
||||
G4double T_freeze_out;
|
||||
G4Pace *pace;
|
||||
G4Ald *ald;
|
||||
G4Eenuc *eenuc;
|
||||
G4Ec2sub *ec2sub;
|
||||
G4Ecld *ecld;
|
||||
G4Mexp *masses;
|
||||
G4Fb *fb;
|
||||
G4Fiss *fiss;
|
||||
G4Opt *opt;
|
||||
G4Volant *volant;
|
||||
std::unique_ptr<G4Ald> ald;
|
||||
std::unique_ptr<G4Ec2sub> ec2sub;
|
||||
std::unique_ptr<G4Ecld> ecld;
|
||||
std::unique_ptr<G4Mexp> masses;
|
||||
std::unique_ptr<G4Fb> fb;
|
||||
std::unique_ptr<G4Fiss> fiss;
|
||||
std::unique_ptr<G4Opt> opt;
|
||||
G4VarNtp *varntp;
|
||||
G4int Ainit,Zinit,Sinit;
|
||||
#ifndef ABLAXX_IN_GEANT4_MODE
|
||||
G4INCL::Config *theConfig;
|
||||
#endif
|
||||
G4int Ainit, Zinit, Sinit;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -24,161 +24,108 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// ABLAXX statistical de-excitation model
|
||||
// Jose Luis Rodriguez, GSI (translation from ABLA07 and contact person)
|
||||
// Jose Luis Rodriguez, UDC (translation from ABLA07 and contact person)
|
||||
// Pekka Kaitaniemi, HIP (initial translation of ablav3p)
|
||||
// Aleksandra Kelic, GSI (ABLA07 code)
|
||||
// Davide Mancusi, CEA (contact person INCL)
|
||||
// Aatos Heikkinen, HIP (project coordination)
|
||||
//
|
||||
#define ABLAXX_IN_GEANT4_MODE 1
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
// Data structures needed by ABLA evaporation code.
|
||||
|
||||
#ifndef G4AblaDataDefs_hh
|
||||
#define G4AblaDataDefs_hh 1
|
||||
|
||||
#ifdef ABLAXX_IN_GEANT4_MODE
|
||||
#include "globals.hh"
|
||||
#else
|
||||
#include "G4INCLGeant4Compat.hh"
|
||||
#endif
|
||||
|
||||
#include <cmath>
|
||||
#include <vector>
|
||||
|
||||
// ABLA
|
||||
|
||||
class G4Nevent {
|
||||
public:
|
||||
G4Nevent() {};
|
||||
~G4Nevent() {};
|
||||
|
||||
G4int ii;
|
||||
};
|
||||
constexpr const G4int nrows = 180;
|
||||
constexpr const G4int zcols = 122;
|
||||
|
||||
// ABLA
|
||||
#define PACESIZEROWS 500
|
||||
#define PACESIZECOLS 500
|
||||
/**
|
||||
* Masses.
|
||||
*/
|
||||
constexpr const G4int lpcols = 13;
|
||||
constexpr const G4int lprows = 154;
|
||||
|
||||
class G4Pace {
|
||||
constexpr const G4int nrowsbeta = 251;
|
||||
constexpr const G4int zcolsbeta = 137;
|
||||
|
||||
public:
|
||||
G4Pace() {};
|
||||
constexpr const G4int indexpart = 300;
|
||||
|
||||
~G4Pace() {};
|
||||
|
||||
G4double dm[PACESIZEROWS][PACESIZECOLS];
|
||||
};
|
||||
|
||||
#define MASSIZEROWS 154
|
||||
#define MASSIZECOLS 13
|
||||
// Data structures needed by ABLA evaporation code
|
||||
|
||||
class G4Mexp {
|
||||
|
||||
public:
|
||||
G4Mexp() {};
|
||||
G4Mexp(){};
|
||||
|
||||
~G4Mexp() {};
|
||||
|
||||
G4double massexp[MASSIZEROWS][MASSIZECOLS];
|
||||
G4double bind[MASSIZEROWS][MASSIZECOLS];
|
||||
G4int mexpiop[MASSIZEROWS][MASSIZECOLS];
|
||||
virtual ~G4Mexp() = default;
|
||||
|
||||
G4double massexp[lprows][lpcols] = {{0.}};
|
||||
G4double bind[lprows][lpcols] = {{0.}};
|
||||
G4int mexpiop[lprows][lpcols] = {{0}};
|
||||
};
|
||||
|
||||
#define EC2SUBROWS 154
|
||||
#define EC2SUBCOLS 99
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
class G4Ec2sub {
|
||||
public:
|
||||
G4Ec2sub() {};
|
||||
G4Ec2sub(){};
|
||||
|
||||
~G4Ec2sub() {};
|
||||
virtual ~G4Ec2sub() = default;
|
||||
|
||||
G4double ecnz[EC2SUBROWS][EC2SUBCOLS];
|
||||
|
||||
/**
|
||||
* Dump the contents of the ecnz data table.
|
||||
*/
|
||||
void dump() {
|
||||
for(G4int i = 0; i < EC2SUBROWS; i++) {
|
||||
for(G4int j = 0; j < EC2SUBCOLS; j++) {
|
||||
//G4cout << ecnz[i][j] << " ";
|
||||
}
|
||||
// G4cout << G4endl;
|
||||
}
|
||||
}
|
||||
G4double ecnz[nrows][zcols] = {{0.}};
|
||||
};
|
||||
|
||||
class G4Ald {
|
||||
public:
|
||||
/**
|
||||
*
|
||||
*/
|
||||
G4Ald()
|
||||
:av(0.0), as(0.0), ak(0.0), optafan(0.0)
|
||||
{};
|
||||
~G4Ald() {};
|
||||
|
||||
G4double av,as,ak,optafan;
|
||||
G4Ald() : av(0.0), as(0.0), ak(0.0), optafan(0.0){};
|
||||
|
||||
virtual ~G4Ald() = default;
|
||||
|
||||
G4double av, as, ak, optafan = 0.;
|
||||
};
|
||||
|
||||
#define ECLDROWS 154
|
||||
#define ECLDCOLS 99
|
||||
|
||||
#define ECLDROWSbeta 251
|
||||
#define ECLDCOLSbeta 137
|
||||
/**
|
||||
* Shell corrections and deformations.
|
||||
*/
|
||||
**/
|
||||
|
||||
class G4Ecld {
|
||||
|
||||
public:
|
||||
G4Ecld() {};
|
||||
~G4Ecld() {};
|
||||
G4Ecld(){};
|
||||
virtual ~G4Ecld() = default;
|
||||
|
||||
/**
|
||||
* Ground state shell correction frldm for a spherical ground state.
|
||||
*/
|
||||
G4double ecgnz[ECLDROWS][ECLDCOLS];
|
||||
G4double ecgnz[nrows][zcols] = {{0.}};
|
||||
|
||||
/**
|
||||
* Shell correction for the saddle point (now: == 0).
|
||||
*/
|
||||
G4double ecfnz[ECLDROWS][ECLDCOLS];
|
||||
G4double ecfnz[nrows][zcols] = {{0.}};
|
||||
|
||||
/**
|
||||
* Difference between deformed ground state and ldm value.
|
||||
*/
|
||||
G4double vgsld[ECLDROWS][ECLDCOLS];
|
||||
G4double vgsld[nrows][zcols] = {{0.}};
|
||||
|
||||
/**
|
||||
* Alpha ground state deformation (this is not beta2!)
|
||||
* beta2 = std::sqrt(5/(4pi)) * alpha
|
||||
* Alpha ground state deformation (this is not beta2!)
|
||||
* beta2 = std::sqrt(5/(4pi)) * alpha
|
||||
*/
|
||||
G4double alpha[ECLDROWS][ECLDCOLS];
|
||||
G4double alpha[nrows][zcols] = {{0.}};
|
||||
|
||||
/**
|
||||
* RMS function for lcp emission barriers
|
||||
*/
|
||||
G4double rms[ECLDROWS][ECLDCOLS];
|
||||
G4double rms[nrows][zcols] = {{0.}};
|
||||
|
||||
/**
|
||||
* Beta2 deformations
|
||||
*/
|
||||
G4double beta2[ECLDROWSbeta][ECLDCOLSbeta];
|
||||
G4double beta2[nrowsbeta][zcolsbeta] = {{0.}};
|
||||
|
||||
/**
|
||||
* Beta4 deformations
|
||||
*/
|
||||
G4double beta4[ECLDROWSbeta][ECLDCOLSbeta];
|
||||
G4double beta4[nrowsbeta][zcolsbeta] = {{0.}};
|
||||
};
|
||||
|
||||
class G4Fiss {
|
||||
@@ -188,29 +135,26 @@ class G4Fiss {
|
||||
|
||||
public:
|
||||
G4Fiss()
|
||||
:bet(0.0), ifis(0.0), ucr(0.0), dcr(0.0), optshp(0), optxfis(0), optct(0), optcol(0),
|
||||
at(0), zt(0)
|
||||
{};
|
||||
~G4Fiss() {};
|
||||
|
||||
G4double bet,ifis,ucr,dcr;
|
||||
G4int optshp, optxfis,optct,optcol,at,zt;
|
||||
: bet(0.0), bethyp(0.0), ifis(0.0), ucr(0.0), dcr(0.0), optshp(0), optxfis(0),
|
||||
optct(0), optcol(0), at(0), zt(0){};
|
||||
|
||||
virtual ~G4Fiss() = default;
|
||||
|
||||
G4double bet, bethyp, ifis, ucr, dcr;
|
||||
G4int optshp, optxfis, optct, optcol, at, zt;
|
||||
};
|
||||
|
||||
#define FBROWS 101
|
||||
#define FBCOLS 161
|
||||
/**
|
||||
* Fission barriers.
|
||||
*/
|
||||
|
||||
|
||||
class G4Fb {
|
||||
|
||||
|
||||
public:
|
||||
G4Fb() {};
|
||||
~G4Fb() {;}
|
||||
|
||||
// G4double efa[FBROWS][FBCOLS];
|
||||
G4double efa[FBCOLS][FBROWS];
|
||||
G4Fb(){};
|
||||
virtual ~G4Fb() = default;
|
||||
|
||||
G4double efa[nrows][zcols] = {{0.}};
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -220,370 +164,32 @@ public:
|
||||
class G4Opt {
|
||||
|
||||
public:
|
||||
G4Opt()
|
||||
:optemd(0), optcha(0), optshpimf(0), optimfallowed(0), nblan0(0)
|
||||
{};
|
||||
~G4Opt() {};
|
||||
G4Opt() : optemd(0), optcha(0), optshpimf(0), optimfallowed(0), nblan0(0){};
|
||||
|
||||
G4int optemd,optcha,optshpimf,optimfallowed,nblan0;
|
||||
virtual ~G4Opt() = default;
|
||||
|
||||
G4int optemd, optcha, optshpimf, optimfallowed, nblan0;
|
||||
};
|
||||
|
||||
#define EENUCSIZE 2002
|
||||
#define XHESIZE 50
|
||||
class G4Eenuc {
|
||||
public:
|
||||
G4Eenuc() {
|
||||
for(G4int i = 0; i < EENUCSIZE; ++i) {
|
||||
she[i] = 0.0;
|
||||
}
|
||||
for(G4int i = 0; i < XHESIZE; ++i) {
|
||||
for(G4int j = 0; j < EENUCSIZE; ++j) {
|
||||
xhe[i][j] = 0.0;
|
||||
}
|
||||
}
|
||||
};
|
||||
~G4Eenuc() {};
|
||||
|
||||
G4double she[EENUCSIZE],xhe[XHESIZE][EENUCSIZE];
|
||||
};
|
||||
|
||||
//#define VOLANTSIZE 200
|
||||
#define VOLANTSIZE 301
|
||||
/**
|
||||
* Evaporation and fission output data.
|
||||
*/
|
||||
|
||||
class G4Volant {
|
||||
|
||||
public:
|
||||
G4Volant()
|
||||
{
|
||||
clear();
|
||||
}
|
||||
|
||||
~G4Volant() {};
|
||||
|
||||
void clear()
|
||||
{
|
||||
for(G4int i = 0; i < VOLANTSIZE; i++) {
|
||||
copied[i] = false;
|
||||
acv[i] = 0;
|
||||
zpcv[i] = 0;
|
||||
pcv[i] = 0;
|
||||
xcv[i] = 0;
|
||||
ycv[i] = 0;
|
||||
zcv[i] = 0;
|
||||
iv = 0;
|
||||
}
|
||||
}
|
||||
|
||||
G4double getTotalMass()
|
||||
{
|
||||
G4double total = 0.0;
|
||||
for(G4int i = 0; i <= iv; i++) {
|
||||
total += acv[i];
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
void dump()
|
||||
{
|
||||
/*
|
||||
G4double totA = 0.0, totZ = 0.0, totP = 0.0;
|
||||
// G4cout <<"i \t ACV \t ZPCV \t PCV" << G4endl;
|
||||
for(G4int i = 0; i <= iv; i++) {
|
||||
if(i == 0 && acv[i] != 0) {
|
||||
// G4cout <<"G4Volant: Particle stored at index " << i << G4endl;
|
||||
}
|
||||
totA += acv[i];
|
||||
totZ += zpcv[i];
|
||||
totP += pcv[i];
|
||||
// G4cout << "volant" << i << "\t" << acv[i] << " \t " << zpcv[i] << " \t " << pcv[i] << G4endl;
|
||||
}
|
||||
// G4cout <<"Particle count index (iv) = " << iv << G4endl;
|
||||
// G4cout <<"ABLA Total: A = " << totA << " Z = " << totZ << " momentum = " << totP << G4endl;
|
||||
*/
|
||||
}
|
||||
|
||||
G4double acv[VOLANTSIZE],zpcv[VOLANTSIZE],pcv[VOLANTSIZE],xcv[VOLANTSIZE];
|
||||
G4double ycv[VOLANTSIZE],zcv[VOLANTSIZE];
|
||||
G4bool copied[VOLANTSIZE];
|
||||
G4int iv;
|
||||
};
|
||||
|
||||
#define VARNTPSIZE 301
|
||||
class G4VarNtp {
|
||||
public:
|
||||
G4VarNtp() {
|
||||
clear();
|
||||
};
|
||||
G4VarNtp() { clear(); };
|
||||
|
||||
~G4VarNtp() {};
|
||||
virtual ~G4VarNtp() = default;
|
||||
|
||||
/**
|
||||
* Clear and initialize all variables and arrays.
|
||||
*/
|
||||
void clear() {
|
||||
particleIndex = 0;
|
||||
projType = 0;
|
||||
projEnergy = 0.0;
|
||||
targetA = 0;
|
||||
targetZ = 0;
|
||||
masp = 0.0; mzsp = 0.0; exsp = 0.0; mrem = 0.0;
|
||||
// To be deleted?
|
||||
spectatorA = 0;
|
||||
spectatorZ = 0;
|
||||
spectatorEx = 0.0;
|
||||
spectatorM = 0.0;
|
||||
spectatorT = 0.0;
|
||||
spectatorP1 = 0.0;
|
||||
spectatorP2 = 0.0;
|
||||
spectatorP3 = 0.0;
|
||||
massini = 0;
|
||||
mzini = 0;
|
||||
exini = 0;
|
||||
pcorem = 0;
|
||||
mcorem = 0;
|
||||
pxrem = 0;
|
||||
pyrem = 0;
|
||||
pzrem = 0;
|
||||
erecrem = 0;
|
||||
mulncasc = 0;
|
||||
mulnevap = 0;
|
||||
mulntot = 0;
|
||||
bimpact = 0.0;
|
||||
jremn = 0;
|
||||
kfis = 0;
|
||||
estfis = 0;
|
||||
izfis = 0;
|
||||
iafis = 0;
|
||||
ntrack = 0;
|
||||
needsFermiBreakup = false;
|
||||
for(G4int i = 0; i < VARNTPSIZE; i++) {
|
||||
itypcasc[i] = 0;
|
||||
avv[i] = 0;
|
||||
zvv[i] = 0;
|
||||
svv[i] = 0;
|
||||
enerj[i] = 0.0;
|
||||
pxlab[i] = 0.0;
|
||||
pylab[i] = 0.0;
|
||||
pzlab[i] = 0.0;
|
||||
full[i] = false;
|
||||
}
|
||||
kfis = 0;
|
||||
itypcasc.clear();
|
||||
avv.clear();
|
||||
zvv.clear();
|
||||
svv.clear();
|
||||
enerj.clear();
|
||||
pxlab.clear();
|
||||
pylab.clear();
|
||||
pzlab.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a particle to the INCL/ABLA final output.
|
||||
*/
|
||||
void addParticle(G4double A, G4double Z, G4double E, G4double P, G4double theta, G4double phi) {
|
||||
if(full[particleIndex]) {
|
||||
// G4cout <<"A = " << Z << " Z = " << Z << G4endl;
|
||||
} else {
|
||||
avv[particleIndex] = (int) A;
|
||||
zvv[particleIndex] = (int) Z;
|
||||
enerj[particleIndex] = E;
|
||||
plab[particleIndex] = P;
|
||||
tetlab[particleIndex] = theta;
|
||||
philab[particleIndex] = phi;
|
||||
full[particleIndex] = true;
|
||||
ntrack = particleIndex + 1;
|
||||
particleIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Baryon number conservation check.
|
||||
*/
|
||||
G4int getTotalBaryonNumber() {
|
||||
G4int baryonNumber = 0;
|
||||
for(G4int i = 0; i < ntrack; i++) {
|
||||
if(avv[i] > 0) {
|
||||
baryonNumber += avv[i];
|
||||
}
|
||||
}
|
||||
return baryonNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return total energy.
|
||||
*/
|
||||
G4double getTotalEnergy() {
|
||||
G4double energy = 0.0;
|
||||
for(G4int i = 0; i < ntrack; i++) {
|
||||
energy += std::sqrt(std::pow(plab[i], 2) + std::pow(getMass(i), 2)); // E^2 = p^2 + m^2
|
||||
}
|
||||
|
||||
return energy;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return total three momentum.
|
||||
*/
|
||||
G4double getTotalThreeMomentum() {
|
||||
G4double momentum = 0;
|
||||
for(G4int i = 0; i < ntrack; i++) {
|
||||
momentum += plab[i];
|
||||
}
|
||||
return momentum;
|
||||
}
|
||||
|
||||
G4double getMomentumSum() {
|
||||
G4double momentum = 0;
|
||||
for(G4int i = 0; i < ntrack; i++) {
|
||||
momentum += plab[i];
|
||||
}
|
||||
return momentum;
|
||||
}
|
||||
|
||||
G4double getMass(G4int particle) {
|
||||
const G4double protonMass = 938.272;
|
||||
const G4double neutronMass = 939.565;
|
||||
const G4double pionMass = 139.57;
|
||||
|
||||
G4double mass = 0.0;
|
||||
if(avv[particle] == 1 && zvv[particle] == 1) mass = protonMass;
|
||||
if(avv[particle] == 1 && zvv[particle] == 0) mass = neutronMass;
|
||||
if(avv[particle] == -1) mass = pionMass;
|
||||
if(avv[particle] > 1)
|
||||
mass = avv[particle] * protonMass + zvv[particle] * neutronMass;
|
||||
return mass;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dump debugging output.
|
||||
*/
|
||||
void dump()
|
||||
{
|
||||
/*
|
||||
G4int nProton = 0, nNeutron = 0;
|
||||
G4int nPiPlus = 0, nPiZero = 0, nPiMinus = 0;
|
||||
G4int nH2 = 0, nHe3 = 0, nAlpha = 0;
|
||||
G4int nGamma=0;
|
||||
G4int nFragments = 0;
|
||||
G4int nParticles = 0;
|
||||
for(G4int i = 0; i < ntrack; i++) {
|
||||
nParticles++;
|
||||
if(avv[i] == 1 && zvv[i] == 1) nProton++; // Count multiplicities
|
||||
if(avv[i] == 1 && zvv[i] == 0) nNeutron++;
|
||||
if(avv[i] == 0 && zvv[i] == 0) nGamma++;
|
||||
if(avv[i] == -1 && zvv[i] == 1) nPiPlus++;
|
||||
if(avv[i] == -1 && zvv[i] == 0) nPiZero++;
|
||||
if(avv[i] == -1 && zvv[i] == -1) nPiMinus++;
|
||||
if(avv[i] == 2 && zvv[i] == 1) nH2++;
|
||||
if(avv[i] == 3 && zvv[i] == 2) nHe3++;
|
||||
if(avv[i] == 4 && zvv[i] == 2) nAlpha++;
|
||||
if( zvv[i] > 2) nFragments++;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Projectile type.
|
||||
*/
|
||||
G4int projType;
|
||||
|
||||
/**
|
||||
* Projectile energy.
|
||||
*/
|
||||
G4double projEnergy;
|
||||
|
||||
/**
|
||||
* Target mass number.
|
||||
*/
|
||||
G4int targetA;
|
||||
|
||||
/**
|
||||
* Target charge number.
|
||||
*/
|
||||
G4int targetZ;
|
||||
|
||||
/**
|
||||
* Projectile spectator A, Z, Eex;
|
||||
*/
|
||||
G4double masp, mzsp, exsp, mrem;
|
||||
|
||||
/**
|
||||
* Spectator nucleus mass number for light ion projectile support.
|
||||
*/
|
||||
G4int spectatorA;
|
||||
|
||||
/**
|
||||
* Spectator nucleus charge number for light ion projectile support.
|
||||
*/
|
||||
G4int spectatorZ;
|
||||
|
||||
/**
|
||||
* Spectator nucleus excitation energy for light ion projectile support.
|
||||
*/
|
||||
G4double spectatorEx;
|
||||
|
||||
/**
|
||||
* Spectator nucleus mass.
|
||||
*/
|
||||
G4double spectatorM;
|
||||
|
||||
/**
|
||||
* Spectator nucleus kinetic energy.
|
||||
*/
|
||||
G4double spectatorT;
|
||||
|
||||
/**
|
||||
* Spectator nucleus momentum x-component.
|
||||
*/
|
||||
G4double spectatorP1;
|
||||
|
||||
/**
|
||||
* Spectator nucleus momentum y-component.
|
||||
*/
|
||||
G4double spectatorP2;
|
||||
|
||||
/**
|
||||
* Spectator nucleus momentum z-component.
|
||||
*/
|
||||
G4double spectatorP3;
|
||||
|
||||
/**
|
||||
* A of the remnant.
|
||||
*/
|
||||
G4double massini;
|
||||
|
||||
/**
|
||||
* Z of the remnant.
|
||||
*/
|
||||
G4double mzini;
|
||||
|
||||
/**
|
||||
* Excitation energy.
|
||||
*/
|
||||
G4double exini;
|
||||
|
||||
G4double pcorem, mcorem, pxrem, pyrem, pzrem, erecrem;
|
||||
|
||||
/**
|
||||
* Cascade n multip.
|
||||
*/
|
||||
G4int mulncasc;
|
||||
|
||||
/**
|
||||
* Evaporation n multip.
|
||||
*/
|
||||
G4int mulnevap;
|
||||
|
||||
/**
|
||||
* Total n multip.
|
||||
*/
|
||||
G4int mulntot;
|
||||
|
||||
/**
|
||||
* Impact parameter.
|
||||
*/
|
||||
G4double bimpact;
|
||||
|
||||
/**
|
||||
* Remnant Intrinsic Spin.
|
||||
*/
|
||||
G4int jremn;
|
||||
|
||||
/**
|
||||
* Fission 1/0=Y/N.
|
||||
*/
|
||||
@@ -609,13 +215,6 @@ public:
|
||||
*/
|
||||
G4int ntrack;
|
||||
|
||||
/**
|
||||
* The state of the index:
|
||||
* true = reserved
|
||||
* false = free
|
||||
*/
|
||||
G4bool full[VARNTPSIZE];
|
||||
|
||||
/**
|
||||
* Does this nucleus require Fermi break-up treatment? Only
|
||||
* applicable when used together with Geant4.
|
||||
@@ -627,49 +226,44 @@ public:
|
||||
/**
|
||||
* emitted in cascade (0) or evaporation (1).
|
||||
*/
|
||||
G4int itypcasc[VARNTPSIZE];
|
||||
std::vector<G4int> itypcasc;
|
||||
|
||||
|
||||
/**
|
||||
* A (-1 for pions).
|
||||
*/
|
||||
G4int avv[VARNTPSIZE];
|
||||
std::vector<G4int> avv;
|
||||
|
||||
/**
|
||||
* Z
|
||||
*/
|
||||
G4int zvv[VARNTPSIZE];
|
||||
std::vector<G4int> zvv;
|
||||
|
||||
/**
|
||||
* S (-1 for lambda_0).
|
||||
*/
|
||||
G4int svv[VARNTPSIZE];
|
||||
std::vector<G4int> svv;
|
||||
|
||||
/**
|
||||
* Kinetic energy.
|
||||
*/
|
||||
G4double enerj[VARNTPSIZE];
|
||||
std::vector<G4double> enerj;
|
||||
|
||||
/**
|
||||
* Momentum.
|
||||
*/
|
||||
G4double plab[VARNTPSIZE];
|
||||
G4double pxlab[VARNTPSIZE];
|
||||
G4double pylab[VARNTPSIZE];
|
||||
G4double pzlab[VARNTPSIZE];
|
||||
std::vector<G4double> plab;
|
||||
std::vector<G4double> pxlab;
|
||||
std::vector<G4double> pylab;
|
||||
std::vector<G4double> pzlab;
|
||||
|
||||
/**
|
||||
* Theta angle.
|
||||
*/
|
||||
G4double tetlab[VARNTPSIZE];
|
||||
std::vector<G4double> tetlab;
|
||||
|
||||
/**
|
||||
* Phi angle.
|
||||
*/
|
||||
G4double philab[VARNTPSIZE];
|
||||
std::vector<G4double> philab;
|
||||
|
||||
private:
|
||||
G4int particleIndex;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -24,20 +24,17 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// ABLAXX statistical de-excitation model
|
||||
// Jose Luis Rodriguez, GSI (translation from ABLA07 and contact person)
|
||||
// Jose Luis Rodriguez, UDC (translation from ABLA07 and contact person)
|
||||
// Pekka Kaitaniemi, HIP (initial translation of ablav3p)
|
||||
// Aleksandra Kelic, GSI (ABLA07 code)
|
||||
// Davide Mancusi, CEA (contact person INCL)
|
||||
// Aatos Heikkinen, HIP (project coordination)
|
||||
//
|
||||
#define ABLAXX_IN_GEANT4_MODE 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#ifndef G4AblaDataFile_hh
|
||||
#define G4AblaDataFile_hh 1
|
||||
#pragma once
|
||||
|
||||
#include "G4AblaVirtualData.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
/**
|
||||
* Read ABLA data from files.
|
||||
@@ -45,23 +42,14 @@
|
||||
class G4AblaDataFile : public G4AblaVirtualData {
|
||||
|
||||
public:
|
||||
#ifdef ABLAXX_IN_GEANT4_MODE
|
||||
G4AblaDataFile();
|
||||
#else
|
||||
G4AblaDataFile(G4INCL::Config *);
|
||||
#endif
|
||||
~G4AblaDataFile();
|
||||
virtual ~G4AblaDataFile() = default;
|
||||
|
||||
/**
|
||||
* Read all data from files.
|
||||
*/
|
||||
bool readData();
|
||||
G4bool readData();
|
||||
|
||||
private:
|
||||
G4int verboseLevel;
|
||||
#ifndef ABLAXX_IN_GEANT4_MODE
|
||||
G4INCL::Config *theConfig;
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -24,63 +24,59 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// ABLAXX statistical de-excitation model
|
||||
// Jose Luis Rodriguez, GSI (translation from ABLA07 and contact person)
|
||||
// Jose Luis Rodriguez, UDC (translation from ABLA07 and contact person)
|
||||
// Pekka Kaitaniemi, HIP (initial translation of ablav3p)
|
||||
// Aleksandra Kelic, GSI (ABLA07 code)
|
||||
// Davide Mancusi, CEA (contact person INCL)
|
||||
// Aatos Heikkinen, HIP (project coordination)
|
||||
//
|
||||
|
||||
#ifndef G4AblaInterface_hh
|
||||
#define G4AblaInterface_hh 1
|
||||
#pragma once
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4VPreCompoundModel.hh"
|
||||
#include "G4ReactionProduct.hh"
|
||||
#include "G4Abla.hh"
|
||||
#include "G4Fragment.hh"
|
||||
#include "G4HadFinalState.hh"
|
||||
#include "G4HadProjectile.hh"
|
||||
#include "G4Nucleus.hh"
|
||||
#include "G4Abla.hh"
|
||||
#include "G4ReactionProduct.hh"
|
||||
#include "G4VPreCompoundModel.hh"
|
||||
|
||||
class G4ExcitationHandler;
|
||||
class G4HadFinalState;
|
||||
|
||||
class G4AblaInterface : public G4VPreCompoundModel
|
||||
{
|
||||
public:
|
||||
G4AblaInterface(G4ExcitationHandler* ptr = nullptr);
|
||||
class G4AblaInterface : public G4VPreCompoundModel {
|
||||
public:
|
||||
G4AblaInterface(G4ExcitationHandler *ptr = nullptr);
|
||||
virtual ~G4AblaInterface();
|
||||
|
||||
virtual G4ReactionProductVector* DeExcite(G4Fragment& aFragment);
|
||||
virtual G4ReactionProductVector *DeExcite(G4Fragment &aFragment);
|
||||
|
||||
virtual G4HadFinalState* ApplyYourself(G4HadProjectile const&, G4Nucleus&) final;
|
||||
virtual G4HadFinalState *ApplyYourself(G4HadProjectile const &,
|
||||
G4Nucleus &) final;
|
||||
|
||||
virtual void BuildPhysicsTable(const G4ParticleDefinition&) final;
|
||||
virtual void BuildPhysicsTable(const G4ParticleDefinition &) final;
|
||||
|
||||
virtual void InitialiseModel() final;
|
||||
|
||||
virtual void ModelDescription(std::ostream& outFile) const;
|
||||
virtual void ModelDescription(std::ostream &outFile) const;
|
||||
|
||||
virtual void DeExciteModelDescription(std::ostream& outFile) const;
|
||||
virtual void DeExciteModelDescription(std::ostream &outFile) const;
|
||||
|
||||
private:
|
||||
private:
|
||||
G4HadFinalState applyYourselfResult;
|
||||
G4VarNtp* ablaResult;
|
||||
G4Volant* volant;
|
||||
G4Abla* theABLAModel;
|
||||
G4VarNtp *ablaResult;
|
||||
G4Abla *theABLAModel;
|
||||
G4long eventNumber;
|
||||
G4int secID; // Creator model ID for the secondaries created by ABLA
|
||||
G4int secID; // Creator model ID for the secondaries created by ABLA
|
||||
|
||||
G4bool isInitialised;
|
||||
|
||||
/// \brief Convert an Abla particle to a G4DynamicParticle
|
||||
G4ReactionProduct* toG4Particle(G4int A, G4int Z, G4int S, G4double kinE,
|
||||
G4double px, G4double py, G4double pz) const;
|
||||
G4ReactionProduct *toG4Particle(G4int A, G4int Z, G4int S, G4double kinE,
|
||||
G4double px, G4double py, G4double pz) const;
|
||||
|
||||
/// \brief Convert A, Z and S to a G4ParticleDefinition
|
||||
G4ParticleDefinition* toG4ParticleDefinition(G4int A, G4int Z, G4int S) const;
|
||||
G4ParticleDefinition *toG4ParticleDefinition(G4int A, G4int Z, G4int S) const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -24,21 +24,17 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// ABLAXX statistical de-excitation model
|
||||
// Jose Luis Rodriguez, GSI (translation from ABLA07 and contact person)
|
||||
// Jose Luis Rodriguez, UDC (translation from ABLA07 and contact person)
|
||||
// Pekka Kaitaniemi, HIP (initial translation of ablav3p)
|
||||
// Aleksandra Kelic, GSI (ABLA07 code)
|
||||
// Davide Mancusi, CEA (contact person INCL)
|
||||
// Aatos Heikkinen, HIP (project coordination)
|
||||
//
|
||||
#define ABLAXX_IN_GEANT4_MODE 1
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#ifndef G4ABLARANDOM_HH
|
||||
#define G4ABLARANDOM_HH
|
||||
|
||||
namespace G4AblaRandom {
|
||||
double flat();
|
||||
G4double flat();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -24,27 +24,17 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// ABLAXX statistical de-excitation model
|
||||
// Jose Luis Rodriguez, GSI (translation from ABLA07 and contact person)
|
||||
// Jose Luis Rodriguez, UDC (translation from ABLA07 and contact person)
|
||||
// Pekka Kaitaniemi, HIP (initial translation of ablav3p)
|
||||
// Aleksandra Kelic, GSI (ABLA07 code)
|
||||
// Davide Mancusi, CEA (contact person INCL)
|
||||
// Aatos Heikkinen, HIP (project coordination)
|
||||
//
|
||||
#define ABLAXX_IN_GEANT4_MODE 1
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#ifndef G4AblaVirtualData_hh
|
||||
#define G4AblaVirtualData_hh 1
|
||||
|
||||
#ifdef ABLAXX_IN_GEANT4_MODE
|
||||
#include "globals.hh"
|
||||
#else
|
||||
#include "G4INCLGeant4Compat.hh"
|
||||
#include "G4INCLConfig.hh"
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* An interface to data used by ABLA. This interface allows
|
||||
* us to abstract the actual source of data. Currently the data is
|
||||
@@ -54,16 +44,12 @@
|
||||
|
||||
class G4AblaVirtualData {
|
||||
protected:
|
||||
|
||||
/**
|
||||
* Constructor, destructor
|
||||
*/
|
||||
#ifdef ABLAXX_IN_GEANT4_MODE
|
||||
G4AblaVirtualData();
|
||||
#else
|
||||
G4AblaVirtualData(G4INCL::Config *);
|
||||
#endif
|
||||
virtual ~G4AblaVirtualData();
|
||||
|
||||
virtual ~G4AblaVirtualData() = default;
|
||||
|
||||
public:
|
||||
/**
|
||||
@@ -81,11 +67,6 @@ public:
|
||||
*/
|
||||
G4bool setVgsld(G4int A, G4int Z, G4double value);
|
||||
|
||||
/**
|
||||
* Set the value of Pace2.
|
||||
*/
|
||||
G4bool setPace2(G4int A, G4int Z, G4double value);
|
||||
|
||||
/**
|
||||
* Set the value of RMS.
|
||||
*/
|
||||
@@ -111,7 +92,6 @@ public:
|
||||
*/
|
||||
G4bool setBeta4(G4int A, G4int Z, G4double value);
|
||||
|
||||
|
||||
/**
|
||||
* Get the value of Alpha.
|
||||
*/
|
||||
@@ -127,12 +107,7 @@ public:
|
||||
*/
|
||||
G4double getVgsld(G4int A, G4int Z);
|
||||
|
||||
/**
|
||||
* Get the value of Pace2.
|
||||
*/
|
||||
G4double getPace2(G4int A, G4int Z);
|
||||
|
||||
/**
|
||||
/*
|
||||
* Get the value of RMS.
|
||||
*/
|
||||
G4double getRms(G4int A, G4int Z);
|
||||
@@ -157,40 +132,21 @@ public:
|
||||
*/
|
||||
G4double getBeta4(G4int A, G4int Z);
|
||||
|
||||
G4int getAlphaRows();
|
||||
G4int getAlphaCols();
|
||||
|
||||
G4int getPaceRows();
|
||||
G4int getPaceCols();
|
||||
|
||||
virtual G4bool readData() = 0;
|
||||
|
||||
|
||||
private:
|
||||
static const G4int sRows = 180;
|
||||
static const G4int sCols = 122;
|
||||
|
||||
static const G4int alphaRows = 154;
|
||||
static const G4int alphaCols = 99;
|
||||
|
||||
static const G4int paceRows = 500;
|
||||
static const G4int paceCols = 500;
|
||||
|
||||
static const G4int rmsRows = 154;
|
||||
static const G4int rmsCols = 99;
|
||||
|
||||
static const G4int betaRows = 251;
|
||||
static const G4int betaRows = sCols + sRows;
|
||||
static const G4int betaCols = 137;
|
||||
|
||||
static const G4int massRows = 154;
|
||||
static const G4int massCols = 13;
|
||||
|
||||
G4double alpha[alphaRows][alphaCols];
|
||||
G4double ecnz[alphaRows][alphaCols];
|
||||
G4double vgsld[alphaRows][alphaCols];
|
||||
G4double pace2[paceRows][paceCols];
|
||||
G4double rms[rmsRows][rmsCols];
|
||||
G4double mexp[massRows][massCols];
|
||||
G4int mexpid[massRows][massCols];
|
||||
G4double alpha[sRows][sCols];
|
||||
G4double ecnz[sRows][sCols];
|
||||
G4double vgsld[sRows][sCols];
|
||||
G4double rms[sRows][sCols];
|
||||
G4double mexp[sRows][sCols];
|
||||
G4int mexpid[sRows][sCols];
|
||||
G4double beta2[betaRows][betaCols];
|
||||
G4double beta4[betaRows][betaCols];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user