Import Geant4 10.5.0 source tree

This commit is contained in:
Gabriele Cosmo
2018-12-07 15:15:39 +01:00
parent 6aa23be517
commit db49709b53
11370 changed files with 187480 additions and 160142 deletions
@@ -93,6 +93,8 @@ namespace G4INCL {
G4bool isParticle1Spectator;
G4bool isParticle2Spectator;
G4bool isElastic;
G4bool isStrangeProduction;
INCL_DECLARE_ALLOCATION_POOL(BinaryCollisionAvatar)
};
@@ -178,7 +178,7 @@ namespace G4INCL {
}
nucleus->setMomentum(pBalance);
const G4double remnantMass = ParticleTable::getTableMass(nucleus->getA(),nucleus->getZ()) + nucleus->getExcitationEnergy();
const G4double remnantMass = ParticleTable::getTableMass(nucleus->getA(),nucleus->getZ(),nucleus->getS()) + nucleus->getExcitationEnergy();
const G4double pRem2 = pBalance.mag2();
const G4double recoilEnergy = pRem2/
(std::sqrt(pRem2+remnantMass*remnantMass) + remnantMass);
@@ -238,7 +238,7 @@ namespace G4INCL {
ThreeVector theIncomingMomentum;
/// \brief List of final-state particles.
ParticleList outgoingParticles;
// \brief Reference to the EventInfo object
/// \brief Reference to the EventInfo object
EventInfo const &theEventInfo;
/// \brief Initial CM momenta of the outgoing particles
std::list<ThreeVector> particleCMMomenta;
@@ -261,7 +261,7 @@ namespace G4INCL {
}
nucleus->setMomentum(remnantMomentum);
const G4double remnantMass = ParticleTable::getTableMass(nucleus->getA(),nucleus->getZ()) + nucleus->getExcitationEnergy();
const G4double remnantMass = ParticleTable::getTableMass(nucleus->getA(),nucleus->getZ(),nucleus->getS()) + nucleus->getExcitationEnergy();
const G4double pRem2 = remnantMomentum.mag2();
const G4double recoilEnergy = pRem2/
(std::sqrt(pRem2+remnantMass*remnantMass) + remnantMass);
@@ -71,7 +71,9 @@ namespace G4INCL {
TwoProtonDecay,
TwoNeutronDecay,
ProtonUnbound,
NeutronUnbound
NeutronUnbound,
LambdaUnbound,
LambdaDecay
};
/** \brief Table for cluster decays
@@ -84,7 +86,7 @@ namespace G4INCL {
* Unphysical nuclides (A<Z) are marked as stable, but should never be
* produced by INCL. If you find them in the output, something is fishy.
*/
extern G4ThreadLocal ClusterDecayType clusterDecayMode[ParticleTable::clusterTableZSize][ParticleTable::clusterTableASize];
extern G4ThreadLocal ClusterDecayType clusterDecayMode[ParticleTable::clusterTableSSize][ParticleTable::clusterTableZSize][ParticleTable::clusterTableASize];
}
@@ -65,6 +65,7 @@ namespace G4INCL {
Particle *particle;
G4bool isTargetSpectator;
G4int Z;
G4int S;
ThreeVector position;
ThreeVector momentum;
G4double energy;
@@ -74,6 +75,7 @@ namespace G4INCL {
particle(NULL),
isTargetSpectator(false),
Z(0),
S(0),
energy(0.),
potentialEnergy(0.)
{}
@@ -82,6 +84,7 @@ namespace G4INCL {
particle(p),
isTargetSpectator(particle->isTargetSpectator()),
Z(particle->getZ()),
S(particle->getS()),
position(particle->getPosition()),
momentum(particle->getMomentum()),
energy(particle->getEnergy()),
@@ -96,10 +99,12 @@ namespace G4INCL {
theNucleus(NULL),
selectedA(0),
selectedZ(0),
selectedS(0),
sqtot(0.),
cascadingEnergyPool(0.),
protonMass(ParticleTable::getRealMass(Proton)),
neutronMass(ParticleTable::getRealMass(Neutron)),
lambdaMass(ParticleTable::getRealMass(Lambda)),
runningMaxClusterAlgorithmMass(theConfig->getClusterMaxMass()),
nConsideredMax(0),
nConsidered(0),
@@ -143,7 +148,7 @@ namespace G4INCL {
virtual G4bool clusterCanEscape(Nucleus const * const, Cluster const * const);
private:
void findClusterStartingFrom(const G4int oldA, const G4int oldZ);
void findClusterStartingFrom(const G4int oldA, const G4int oldZ, const G4int oldS);
G4double getPhaseSpace(const G4int oldA, ConsideredPartner const &p);
Nucleus *theNucleus;
@@ -160,7 +165,7 @@ namespace G4INCL {
#error Unrecognized INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON. Allowed values are: Set, HashMask, None.
#endif
G4int selectedA, selectedZ;
G4int selectedA, selectedZ, selectedS;
G4double sqtot;
G4int clusterZMaxAll, clusterNMaxAll;
@@ -185,6 +190,7 @@ namespace G4INCL {
const G4double protonMass;
const G4double neutronMass;
const G4double lambdaMass;
G4int runningMaxClusterAlgorithmMass;
@@ -53,7 +53,7 @@ namespace G4INCL {
class NuclearDensity {
public:
NuclearDensity(const G4int A, const G4int Z, InterpolationTable const * const rpCorrelationTableProton, InterpolationTable const * const rpCorrelationTableNeutron);
NuclearDensity(const G4int A, const G4int Z, const G4int S, InterpolationTable const * const rpCorrelationTableProton, InterpolationTable const * const rpCorrelationTableNeutron, InterpolationTable const * const rpCorrelationTableLambda);
~NuclearDensity();
/// \brief Copy constructor
@@ -106,6 +106,9 @@ namespace G4INCL {
/// \brief Get the charge number.
G4int getZ() const { return theZ; }
/// \brief Get the strange number.
G4int getS() const { return theS; }
G4double getProtonNuclearRadius() const { return theProtonNuclearRadius; }
void setProtonNuclearRadius(const G4double r) { theProtonNuclearRadius = r; }
@@ -114,7 +117,7 @@ namespace G4INCL {
/** \brief Initialize the transmission radius. */
void initializeTransmissionRadii();
G4int theA, theZ;
G4int theA, theZ, theS;
G4double theMaximumRadius;
/// \brief Represents INCL4.5's R0 variable
G4double theProtonNuclearRadius;
@@ -54,7 +54,7 @@ namespace G4INCL {
InterpolationTable *createPCDFTable(const ParticleType t, const G4int A, const G4int Z);
NuclearDensity const *createDensity(const G4int A, const G4int Z);
NuclearDensity const *createDensity(const G4int A, const G4int Z, const G4int S);
void addRPCorrelationToCache(const G4int A, const G4int Z, const ParticleType t, InterpolationTable * const table);
@@ -142,6 +142,10 @@ namespace G4INCL {
case PiMinus:
case KPlus:
case KMinus:
case KZero:
case KZeroBar:
case KShort:
case KLong:
case SigmaPlus:
case SigmaZero:
case SigmaMinus:
@@ -149,7 +153,8 @@ namespace G4INCL {
break;
case Composite:
S += (*i)->getZ() * thePotential->getSeparationEnergy(Proton)
+ ((*i)->getA() - (*i)->getZ()) * thePotential->getSeparationEnergy(Neutron);
+ ((*i)->getA() + (*i)->getS() - (*i)->getZ()) * thePotential->getSeparationEnergy(Neutron)
- (*i)->getS() * thePotential->getSeparationEnergy(Lambda);
break;
default:
break;
@@ -209,7 +214,7 @@ namespace G4INCL {
/** \brief Force the phase-space decay of the Nucleus.
*
* Only applied if Z==0 or Z==A.
* Only applied if Z==0 or N==0.
*
* \return true if the nucleus was forced to decay.
*/
@@ -487,6 +492,7 @@ namespace G4INCL {
/// \brief The number of entering kaons
G4int theNkaonplusInitial;
G4int theNkaonminusInitial;
G4double initialInternalEnergy;
ThreeVector incomingAngularMomentum, incomingMomentum;
ThreeVector initialCenterOfMass;
@@ -227,7 +227,7 @@ namespace G4INCL {
/// \brief Shuffle the list of stored projectile components
ParticleList shuffleStoredComponents() {
ParticleList pL = getStoredComponents();
std::random_shuffle(pL.begin(), pL.end(), Random::getAdapter());
std::shuffle(pL.begin(), pL.end(), Random::getAdapter());
return pL;
}