Import Geant4 10.5.0 source tree
This commit is contained in:
+2
@@ -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];
|
||||
|
||||
}
|
||||
|
||||
|
||||
+8
-2
@@ -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;
|
||||
|
||||
|
||||
+5
-2
@@ -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;
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
+1
-1
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user