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);
137 for (
G4long i = 0; i < NumberOfFissions; i++) {
144 FissionEvents.push_back(
nullptr);
148 return FissionEvents;
237 return (
A + Z * 1000) * 10 +
M;
286 if (!IsSameCause && IsValidCause) {
296 switch (WhichCause) {
298 CauseString =
"SPONTANEOUS";
301 CauseString =
"NEUTRON_INDUCED";
304 CauseString =
"PROTON_INDUCED";
307 CauseString =
"GAMMA_INDUCED";
317 G4cout <<
" -- Already set to use " << CauseString
318 <<
" as the fission cause. Yield data class will not be reconstructed." <<
G4endl;
321 G4cout <<
" -- Yield data class not yet constructed. " << CauseString
322 <<
" will be applied when it is constructed." <<
G4endl;
334 G4cout <<
" -- Fission cause set to " << CauseString <<
"." <<
G4endl;
353 std::ostringstream EnergyString;
374 G4cout <<
" -- Cannot set a non-zero energy for spontaneous fission" <<
G4endl;
380 G4cout <<
" -- Yield data class not yet constructed. " << EnergyString.str()
381 <<
" will be applied when it is constructed." <<
G4endl;
391 G4cout <<
" -- Incident neutron energy set to " << EnergyString.str() <<
"." <<
G4endl;
404 if (!IsSameIsotope) {
416 <<
" already in use. Yield data class will not be reconstructed." <<
G4endl;
422 G4cout <<
" -- Yield data class not yet constructed. The isotope will be set to "
442 G4bool IsValidMetaState = (WhichMetaState >= G4FFGEnumerations::MetaStateFirst
443 && WhichMetaState <= G4FFGEnumerations::MetaStateLast);
446 if (!IsSameMetaState && IsValidMetaState) {
455 MetaName =
"GROUND_STATE";
471 std::ostringstream Temp;
472 if (IsValidMetaState) {
473 if (IsSameMetaState &&
YieldData_ !=
nullptr) {
474 G4cout <<
" -- Already set to use " << MetaName
475 <<
" as the metastable state. Yield data class will not be reconstructed"
479 G4cout <<
" -- Yield data class not yet constructed. " << MetaName
480 <<
" will be applied when it is constructed." <<
G4endl;
492 G4cout <<
" -- Metastable state set to " << MetaName <<
"." <<
G4endl;
499void G4FissionFragmentGenerator ::G4SetSamplingScheme(
504 G4bool IsValidScheme = (NewScheme >= G4FFGEnumerations::FissionSamplingSchemeFirst
505 && NewScheme <= G4FFGEnumerations::FissionSamplingSchemeLast);
506 G4bool IsSameScheme = (NewScheme == SamplingScheme_);
508 if (!IsSameScheme && IsValidScheme) {
509 SamplingScheme_ = NewScheme;
510 IsReconstructionNeeded_ =
TRUE;
515 switch (SamplingScheme_) {
517 SchemeString =
"NORMAL";
521 SchemeString =
"LIGHT_FRAGMENT";
525 SchemeString =
"UNSUPPORTED";
534 if (IsSameScheme && YieldData_ !=
nullptr) {
535 G4cout <<
" -- Already set to use " << SchemeString
536 <<
" as the sampling scheme. Yield data class will not be reconstructed."
539 else if (YieldData_ ==
nullptr) {
540 G4cout <<
" -- Yield data class not yet constructed. " << SchemeString
541 <<
" will be applied when it is constructed." <<
G4endl;
553 G4cout <<
" -- Sampling scheme set to " << SchemeString <<
"." <<
G4endl;
568 if (!IsSameYieldType && IsValidYieldType) {
577 YieldString =
"INDEPENDENT";
581 YieldString =
"SPONTANEOUS";
585 YieldString =
"UNSUPPORTED";
593 if (IsValidYieldType) {
594 if (IsSameYieldType &&
YieldData_ !=
nullptr) {
597 G4cout <<
" -- Yield data class not yet constructed. Yield type " << YieldString
598 <<
" will be applied when it is constructed." <<
G4endl;
610 G4cout <<
" -- Yield type set to " << YieldString <<
G4endl;
641 G4cout <<
" -- Old yield data class deleted." <<
G4endl;
664 G4cout <<
" -- Yield data class constructed with defined values." <<
G4endl;
667 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()
void G4SetEnergy(G4double WhatIncidentEnergy)
G4Ions * G4GetFissionProduct()
void G4SetAlphaProduction(G4double WhatAlphaProduction)
void G4SetVerbosity(G4int WhatVerbosity)
G4DynamicParticleVector * G4GetFission()
void G4SetTernaryProbability(G4double TernaryProbability)
const G4ParticleDefinition * GetDefinition() const
static G4Neutron * Neutron()