Import Geant4 9.4.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 16:25:56 +02:00
parent 74cad5e589
commit 89a9605df1
4440 changed files with 379508 additions and 189225 deletions
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4Incl.hh,v 1.15 2009/11/18 10:43:14 kaitanie Exp $
// $Id: G4Incl.hh,v 1.19 2010/11/13 00:08:36 kaitanie Exp $
// Translation of INCL4.2/ABLA V3
// Pekka Kaitaniemi, HIP (translation)
// Christelle Schmidt, IPNL (fission code)
@@ -38,6 +38,8 @@
#include "G4InclDataDefs.hh"
#include "G4Abla.hh"
#include <fstream>
#include "G4VInclLogger.hh"
#include "G4InclInput.hh"
using namespace std;
/**
@@ -62,7 +64,7 @@ public:
* @param mat a pointer to G4Mat structure.
* @param varntp a pointer to G4VarNtp structure.
*/
G4Incl(G4Hazard *hazard, G4Calincl *calincl, G4Ws *ws, G4Mat *mat, G4VarNtp *varntp);
G4Incl(G4Hazard *hazard, G4InclInput *calincl, G4Ws *ws, G4Mat *mat, G4VarNtp *varntp);
/**
* Constructor for private unit testing purposes.
@@ -85,6 +87,19 @@ public:
void dumpBl2(std::ofstream& dumpOut); // Dump the contents of G4Bl2.
void dumpBl3(std::ofstream& dumpOut); // Dump the contents of G4Bl3.
/**
* Set Fermi break-up use flag.
*/
void setUseFermiBreakUp(G4bool useIt);
/**
* Set projectile spectator use flag.
*
* Select whether or not to produce so-called spectator nucleus from
* the projectile nucleons that do not hit the target.
*/
void setUseProjectileSpectators(G4bool useIt);
/**
* Set verbosity level.
*/
@@ -100,7 +115,7 @@ public:
void setSaxwData(G4Saxw *newSaxw);
void setSpl2Data(G4Spl2 *newSpl2);
void setMatData(G4Mat *newMat);
void setCalinclData(G4Calincl *newCalincl);
void setInput(G4InclInput *newCalincl);
void setLightNucData(G4LightNuc *newLightNuc);
void setLightGausNucData(G4LightGausNuc *newLightGausNuc);
void setBl1Data(G4Bl1 *newBl1);
@@ -114,16 +129,26 @@ public:
void setBl10Data(G4Bl10 *newBl10);
void setKindData(G4Kind *newKind);
/**
* Register the logger.
*/
void registerLogger(G4VInclLogger *aLogger) {
if(aLogger != 0) {
theLogger = aLogger;
abla->registerLogger(aLogger);
}
}
public:
/**
* Process one event with INCL4 only.
*/
void processEventIncl();
void processEventIncl(G4InclInput *input);
/**
* Process one event with INCL4 and built-in ABLA evaporation and fission.
*/
void processEventInclAbla(G4int eventnumber);
void processEventInclAbla(G4InclInput *input, G4int eventnumber);
public: // Methods used to initialize INCL
/**
@@ -279,7 +304,12 @@ public: // Main INCL routines
*/
void pnu(G4int *ibert_p, G4int *nopart_p, G4int *izrem_p, G4int *iarem_p, G4double *esrem_p,
G4double *erecrem_p, G4double *alrem_p, G4double *berem_p, G4double *garem_p,
G4double *bimpact_p, G4int *l_p);
G4double *bimpact_p, G4int *l_p, G4double *xjrem, G4double *yjrem, G4double *zjrem);
//C projection de JREM sur Z:
// MREM=ANINT(ZJREM/197.328)
// IF (MREM.GT.JREM) MREM=JREM
// IF (MREM.LT.-JREM) MREM=-JREM
/**
* Single nucleon-nucleon collision.
@@ -459,7 +489,16 @@ public: // Main INCL routines
* @param v0
* @return a double value
*/
G4double transmissionProb(G4double E, G4double iz, G4double izn, G4double r, G4double v0);
// G4double transmissionProb(G4double E, G4double iz, G4double izn, G4double r, G4double v0);
// G4double transmissionProb(G4double E, G4int iz, G4int izn, G4double r, G4double v0)
G4double transmissionProb(G4double E, G4int iz, G4int ia, G4int izn, G4double r, G4double v0);
// G4double transmissionProb(G4double E, G4int iz, G4int ia, G4int izn,G4double R, G4double v0);
// G4double transmissionProb(G4double E, G4double iz, G4double izn, G4double r, G4double v0);
void projo_spec(G4int ia1, G4int ips,
G4double fmpinc, G4double pinc, G4double tlab);
void ordered(G4double t, G4int nb);
/**
*
@@ -535,7 +574,7 @@ public: // Main INCL routines
* Nuclear radius
* @param A mass number (double parameter)
*/
G4double radius(G4double A);
G4double radius(G4int A);
/** Parametrisation de la section efficace de réaction calculée par incl4.1
* iprojo=1 proton incident, iprojo=2, neutron incident).
@@ -636,8 +675,23 @@ public: // Utilities
G4double amax1(G4double a, G4double b);
G4double w(G4double a, G4double b, G4double c, G4double d);
G4int idnint(G4double a);
void print_log_start_step();
void print_log_end_step();
void print_log_entry(G4int iavatars, G4int iselected, G4int iparticles, G4int imin);
void print_avatars();
void print_one_avatar(G4int index);
void print_one_particle(G4int index);
void print_three_vector(G4double x, G4double y, G4double z);
void print_map();
private:
/*
* (Re)Initialize INCL internal variables
*/
void clearState();
/**
* Random seeds for INCL4 internal random number generators.
*/
@@ -675,9 +729,9 @@ public: // Utilities
G4LightNuc *light_nuc;
/**
* G4Calincl
* INCL input data structure
*/
G4Calincl *calincl;
G4InclInput *calincl;
/**
* G4Mat
@@ -734,6 +788,11 @@ public: // Utilities
*/
G4Kind *kindstruct;
/**
* Projectile properties.
*/
G4Bev *bev;
/**
*
*/
@@ -809,15 +868,40 @@ public: // Utilities
*/
G4int densFunction;
/**
* Use fermi break-up?
*/
G4bool useFermiBreakup;
/**
* Projectile spectator nucleus support?
*/
G4bool useProjSpect;
/**
* Type of the particle at index i.
*
* The extension to large composite projectiles the value is
* negative for projectile spectators. Otherwise the particle types
* are given in exactly the same way as in G4Calincl::f[6].
* @see G4Calincl::f
*/
G4int kind[300]; //= (*kind_p);
G4double ep[300]; // = (*ep_p);
G4double alpha[300]; // = (*alpha_p);
G4double beta[300]; // = (*beta_p);
G4double gam[300]; // = (*gam_p);
G4VBe *be;
G4InclProjSpect *ps;
G4InclFermi *fermi;
G4QuadvectProjo *qvp;
G4Volant *volant;
G4Abla *abla;
G4InclRandomInterface *randomGenerator;
G4VInclLogger *theLogger;
G4int inside_step; // Flag to determine whether we are inside or outside a simulation step
};
#endif