70 std::map<const G4int, G4FissionFragmentGenerator*>::iterator fissionGenerator;
73 for (
unsigned int M = 0;
M < 10; ++
M) {
75 fissionGenerator = fissionIsotopes.find(isotope);
77 if (fissionGenerator != fissionIsotopes.end()) {
79 if (fissionGenerator->second !=
nullptr) {
80 finalParticles = fissionGenerator->second->G4GenerateFission(projectile);
87 if (finalParticles !=
nullptr) {
90 for (
auto& finalParticle : *finalParticles) {
91 finalState->AddSecondary(finalParticle, secID);
97 if (finalState !=
nullptr) finalState->SetStatusChange(
stopAndKill);
110 std::pair<std::map<const G4int, G4FissionFragmentGenerator*>::iterator,
bool> newIsotope;
116 if (newIsotope.second || newIsotope.first->second == NULL) {
125 std::istringstream dataStream(std::ios::in);
145 newIsotope.first->second = fissionGenerator;
164 fissionGenerator->G4SetIsotope(isotope);
165 fissionGenerator->G4SetMetaState(metaState);
168 fissionGenerator->G4SetIncidentEnergy(G4FFGDefaultValues::ThermalNeutronEnergy);
176 if (!fissionGenerator->InitializeFissionProductYieldClass(dataStream)) {
178 delete fissionGenerator;
180 fissionIsotopes.erase(newIsotope.first);
std::vector< G4DynamicParticle * > G4DynamicParticleVector
const G4String & GetName() const
void GetDataStream(const G4String &, std::istringstream &iss)
static G4ParticleHPManager * GetInstance()