77 Isotope_ = G4FFGDefaultValues::Isotope;
79 Cause_ = G4FFGDefaultValues::FissionCause;
98 G4FFGDefaultValues::ThermalNeutronEnergy));
101 std::vector<G4DynamicParticleVector*> FissionEvent =
G4GenerateFission(1, Projectile);
114 std::vector<G4DynamicParticleVector*> FissionEvent =
G4GenerateFission(1, Projectile);
121const std::vector<G4DynamicParticleVector*>
129 std::vector<G4DynamicParticleVector*> FissionEvents(0);
138 for (
G4long i = 0; i < NumberOfFissions; i++) {
139 FissionEvents.push_back(
YieldData_->G4GetFission());
146 FissionEvents.push_back(
nullptr);
150 return FissionEvents;
239 return (
A + Z * 1000) * 10 +
M;
288 if (!IsSameCause && IsValidCause) {
298 switch (WhichCause) {
300 CauseString =
"SPONTANEOUS";
303 CauseString =
"NEUTRON_INDUCED";
306 CauseString =
"PROTON_INDUCED";
309 CauseString =
"GAMMA_INDUCED";
319 G4cout <<
" -- Already set to use " << CauseString
320 <<
" as the fission cause. Yield data class will not be reconstructed." <<
G4endl;
323 G4cout <<
" -- Yield data class not yet constructed. " << CauseString
324 <<
" will be applied when it is constructed." <<
G4endl;
336 G4cout <<
" -- Fission cause set to " << CauseString <<
"." <<
G4endl;
355 std::ostringstream EnergyString;
376 G4cout <<
" -- Cannot set a non-zero energy for spontaneous fission" <<
G4endl;
382 G4cout <<
" -- Yield data class not yet constructed. " << EnergyString.str()
383 <<
" will be applied when it is constructed." <<
G4endl;
393 G4cout <<
" -- Incident neutron energy set to " << EnergyString.str() <<
"." <<
G4endl;
406 if (!IsSameIsotope) {
418 <<
" already in use. Yield data class will not be reconstructed." <<
G4endl;
424 G4cout <<
" -- Yield data class not yet constructed. The isotope will be set to "
444 G4bool IsValidMetaState = (WhichMetaState >= G4FFGEnumerations::MetaStateFirst
445 && WhichMetaState <= G4FFGEnumerations::MetaStateLast);
448 if (!IsSameMetaState && IsValidMetaState) {
457 MetaName =
"GROUND_STATE";
473 std::ostringstream Temp;
474 if (IsValidMetaState) {
475 if (IsSameMetaState &&
YieldData_ !=
nullptr) {
476 G4cout <<
" -- Already set to use " << MetaName
477 <<
" as the metastable state. Yield data class will not be reconstructed"
481 G4cout <<
" -- Yield data class not yet constructed. " << MetaName
482 <<
" will be applied when it is constructed." <<
G4endl;
494 G4cout <<
" -- Metastable state set to " << MetaName <<
"." <<
G4endl;
501void G4FissionFragmentGenerator ::G4SetSamplingScheme(
506 G4bool IsValidScheme = (NewScheme >= G4FFGEnumerations::FissionSamplingSchemeFirst
507 && NewScheme <= G4FFGEnumerations::FissionSamplingSchemeLast);
510 if (!IsSameScheme && IsValidScheme) {
519 SchemeString =
"NORMAL";
523 SchemeString =
"LIGHT_FRAGMENT";
527 SchemeString =
"UNSUPPORTED";
537 G4cout <<
" -- Already set to use " << SchemeString
538 <<
" as the sampling scheme. Yield data class will not be reconstructed."
542 G4cout <<
" -- Yield data class not yet constructed. " << SchemeString
543 <<
" will be applied when it is constructed." <<
G4endl;
555 G4cout <<
" -- Sampling scheme set to " << SchemeString <<
"." <<
G4endl;
570 if (!IsSameYieldType && IsValidYieldType) {
579 YieldString =
"INDEPENDENT";
583 YieldString =
"SPONTANEOUS";
587 YieldString =
"UNSUPPORTED";
595 if (IsValidYieldType) {
596 if (IsSameYieldType &&
YieldData_ !=
nullptr) {
599 G4cout <<
" -- Yield data class not yet constructed. Yield type " << YieldString
600 <<
" will be applied when it is constructed." <<
G4endl;
612 G4cout <<
" -- Yield type set to " << YieldString <<
G4endl;
643 G4cout <<
" -- Old yield data class deleted." <<
G4endl;
666 G4cout <<
" -- Yield data class constructed with defined values." <<
G4endl;
669 catch (std::exception& e) {
std::vector< G4DynamicParticle * > G4DynamicParticleVector
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__
CLHEP::Hep3Vector G4ThreeVector
G4GLOB_DLL std::ostream G4cout
G4FissionFragmentGenerator()
G4FFGEnumerations::MetaState MetaState_
G4double G4GetAlphaProduction()
G4Ions * G4GenerateFissionProduct()
bool InitializeFissionProductYieldClass(std::istringstream &dataFile)
G4FFGEnumerations::YieldType YieldType_
void G4SetYieldType(G4FFGEnumerations::YieldType WhichYieldType)
G4FFGEnumerations::MetaState G4GetMetaState()
G4FissionProductYieldDist * YieldData_
G4double TernaryProbability_
G4double G4GetIncidentEnergy()
G4FFGEnumerations::FissionCause Cause_
void G4SetMetaState(G4FFGEnumerations::MetaState WhichMetaState)
G4bool IsReconstructionNeeded_
G4double AlphaProduction_
void G4SetAlphaProduction(G4double WhatAlphaProduction)
G4FFGEnumerations::FissionSamplingScheme SamplingScheme_
G4FFGEnumerations::YieldType G4GetYieldType()
G4FFGEnumerations::FissionCause G4GetCause()
static G4int G4MakeIsotopeCode(G4int Z, G4int A, G4int M)
~G4FissionFragmentGenerator()
G4FFGEnumerations::FissionSamplingScheme G4GetSamplingScheme()
void G4SetCause(G4FFGEnumerations::FissionCause WhichCause)
void G4SetTernaryProbability(G4double WhatTernaryProbability)
void G4SetIsotope(G4int WhichIsotope)
void G4SetIncidentEnergy(G4double WhatIncidentEnergy)
G4double G4GetTernaryProbability()
void G4SetVerbosity(G4int WhatVerbosity)
G4DynamicParticleVector * G4GenerateFission()
const G4ParticleDefinition * GetDefinition() const
static G4Neutron * Neutron()