Import Geant4 9.4.0 source tree
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user