Import Geant4 11.2.1 source tree

This commit is contained in:
Gabriele Cosmo
2024-02-16 14:58:45 +01:00
parent 860a2b92bf
commit dda54bbdcf
331 changed files with 48457 additions and 50699 deletions
@@ -164,8 +164,11 @@ void G4ParticleHPFFFissionFS::GetAFissionFragment(G4double energy, G4int& fragZ,
G4double rand = G4UniformRand();
// G4cout << rand << G4endl;
std::map<G4double, std::map<G4int, G4double>*>* mEnergyFSPData =
FissionProductYieldData.find(454)->second;
auto ptr = FissionProductYieldData.find(454);
if (ptr == FissionProductYieldData.end())
return;
auto mEnergyFSPData = ptr->second;
// It is not clear that the treatment of the scheme 2 on two-dimensional interpolation.
// So, here just use the closest energy point array of yield data.
@@ -108,8 +108,9 @@ G4DynamicParticleVector* G4ParticleHPFSFissionFS::ApplyYourself(G4int nPrompt, G
G4double eKinetic = boosted.GetKineticEnergy();
// Build neutrons
auto theNeutrons = new G4ReactionProduct[nPrompt + nDelayed];
std::vector<G4ReactionProduct> theNeutrons;
for (i = 0; i < nPrompt + nDelayed; ++i) {
theNeutrons.emplace_back();
theNeutrons[i].SetDefinition(G4Neutron::Neutron());
}
@@ -140,8 +141,6 @@ G4DynamicParticleVector* G4ParticleHPFSFissionFS::ApplyYourself(G4int nPrompt, G
dp->SetMomentum(theNeutrons[i].GetMomentum());
aResult->push_back(dp);
}
delete[] theNeutrons;
return aResult;
}
@@ -108,8 +108,9 @@ G4DynamicParticleVector* G4ParticleHPFissionBaseFS::ApplyYourself(G4int nPrompt)
G4double eKinetic = boosted.GetKineticEnergy();
// Build neutrons
auto theNeutrons = new G4ReactionProduct[nPrompt];
std::vector<G4ReactionProduct> theNeutrons;
for (i = 0; i < nPrompt; i++) {
theNeutrons.emplace_back();
theNeutrons[i].SetDefinition(G4Neutron::Neutron());
}
@@ -132,7 +133,6 @@ G4DynamicParticleVector* G4ParticleHPFissionBaseFS::ApplyYourself(G4int nPrompt)
it->SetMomentum(theNeutrons[i].GetMomentum());
aResult->push_back(it);
}
delete[] theNeutrons;
// return the result
return aResult;
@@ -251,6 +251,7 @@ G4HadFinalState* G4ParticleHPFissionFS::ApplyYourself(const G4HadProjectile& the
G4int fragA_M = 0;
// System is traget rest!
theFF.GetAFissionFragment(eKinetic, fragA_Z, fragA_A, fragA_M);
if (0 == fragA_A) { return theResult.Get(); }
G4int fragB_Z = (G4int)theBaseZ - fragA_Z;
G4int fragB_A = (G4int)theBaseA - fragA_A - Prompt;