102 std::vector< G4DynamicParticleVector* > FissionEvent =
G4GenerateFission(1, Projectile);
115 std::vector< G4DynamicParticleVector* > FissionEvent =
G4GenerateFission(1, Projectile);
131 std::vector< G4DynamicParticleVector* > FissionEvents(0);
141 for(
G4long i = 0; i < NumberOfFissions; i++)
149 FissionEvents.push_back(NULL);
153 return FissionEvents;
253 return (A + Z * 1000) * 10 + M;
272 G4cout <<
" -- Alpha production set to " << AlphaProduction_ <<
G4endl;
294 G4cout <<
" -- Ternary fission probability set to " << TernaryProbability_ <<
G4endl;
309 if(!IsSameCause && IsValidCause)
325 CauseString =
"SPONTANEOUS";
328 CauseString =
"NEUTRON_INDUCED";
331 CauseString =
"PROTON_INDUCED";
334 CauseString =
"GAMMA_INDUCED";
347 G4cout <<
" -- Already set to use " << CauseString <<
" as the fission cause. Yield data class will not be reconstructed." <<
G4endl;
350 G4cout <<
" -- Yield data class not yet constructed. " << CauseString <<
" will be applied when it is constructed." <<
G4endl;
364 G4cout <<
" -- Fission cause set to " << CauseString <<
"." <<
G4endl;
387 std::ostringstream EnergyString;
410 G4cout <<
" -- Cannot set a non-zero energy for spontaneous fission" <<
G4endl;
416 G4cout <<
" -- Yield data class not yet constructed. " << EnergyString.str() <<
" will be applied when it is constructed." <<
G4endl;
427 G4cout <<
" -- Incident neutron energy set to " << EnergyString.str() <<
"." <<
G4endl;
456 G4cout <<
" -- Isotope " <<
Isotope_ <<
" already in use. Yield data class will not be reconstructed." <<
G4endl;
462 G4cout <<
" -- Yield data class not yet constructed. The isotope will be set to " <<
Isotope_ <<
" when it is constructed." <<
G4endl;
487 if(!IsSameMetaState && IsValidMetaState)
499 MetaName =
"GROUND_STATE";
516 std::ostringstream Temp;
521 G4cout <<
" -- Already set to use " << MetaName <<
" as the metastable state. Yield data class will not be reconstructed" <<
G4endl;
524 G4cout <<
" -- Yield data class not yet constructed. " << MetaName <<
" will be applied when it is constructed." <<
G4endl;
538 G4cout <<
" -- Metastable state set to " << MetaName <<
"." <<
G4endl;
552 G4bool IsSameScheme = (NewScheme == SamplingScheme_);
554 if(!IsSameScheme && IsValidScheme)
556 SamplingScheme_ = NewScheme;
557 IsReconstructionNeeded_ =
TRUE;
563 switch(SamplingScheme_)
566 SchemeString =
"NORMAL";
570 SchemeString =
"LIGHT_FRAGMENT";
574 SchemeString =
"UNSUPPORTED";
585 if(IsSameScheme && YieldData_ != NULL)
587 G4cout <<
" -- Already set to use " << SchemeString <<
" as the sampling scheme. Yield data class will not be reconstructed." <<
G4endl;
588 }
else if(YieldData_ == NULL)
590 G4cout <<
" -- Yield data class not yet constructed. " << SchemeString <<
" will be applied when it is constructed." <<
G4endl;
604 G4cout <<
" -- Sampling scheme set to " << SchemeString <<
"." <<
G4endl;
620 if(!IsSameYieldType && IsValidYieldType)
632 YieldString =
"INDEPENDENT";
636 YieldString =
"SPONTANEOUS";
640 YieldString =
"UNSUPPORTED";
656 G4cout <<
" -- Yield data class not yet constructed. Yield type " << YieldString <<
" will be applied when it is constructed." <<
G4endl;
670 G4cout <<
" -- Yield type set to " << YieldString <<
G4endl;
706 G4cout <<
" -- Old yield data class deleted." <<
G4endl;
741 G4cout <<
" -- Yield data class constructed with defined values." <<
G4endl;
743 }
catch (std::exception& e)
static const G4double AlphaProduction
Default alpha production in a ternary fission.
G4FFGEnumerations::MetaState MetaState_
MetaState information of the isotope that G4FissionFragmentGenerator references A value of 0 refers...
G4DynamicParticleVector * G4GenerateFission(const G4HadProjectile &Projectile)
Generates a single fission event.
MetaState
ENDF format provides for 3 isomers - 1 ground state and 2 meta states.
G4bool IsReconstructionNeeded_
If Isotope_, MetaState_, Cause_, or IncidentEnergy_ are changed in the middle of a run then the class...
G4double IncidentEnergy_
Kinetic energy, if any, of the incident particle in GeV.
void G4SetSamplingScheme(G4FFGEnumerations::FissionSamplingScheme NewScheme)
Set the sampling scheme.
void Initialize(void)
Initialize is a common function called by all constructors.
G4FPYBiasedLightFragmentDist is an inherited class of G4FissionProductYield that only samples the 'li...
CLHEP::Hep3Vector G4ThreeVector
static const G4FFGEnumerations::FissionSamplingScheme SamplingScheme
Default sampling scheme.
G4int G4GetIsotope(void)
Returns the code of the fission isotope in ZZZAAA format.
void G4SetTernaryProbability(G4double TernaryProbability)
Sets the probability of ternary fission.
#define G4FFG_LOCATION__
G4FFG_LOCATION__ outputs the current location in the code.
G4FFGEnumerations::MetaState G4GetMetaState(void)
Returns the MetaState of the fission isotope.
void G4SetYieldType(G4FFGEnumerations::YieldType WhichYieldType)
Sets the ENDF yield type to be used for the data.
void G4SetMetaState(G4FFGEnumerations::MetaState WhichMetaState)
Sets the metastable state of the fission isotope.
G4int Isotope_
Number in ZZZAAA format of the isotope that G4FissionFragmentGenerator references.
G4DynamicParticleVector * G4GenerateFission(void)
Generates a single fission event.
G4DynamicParticleVector * G4GetFission(void)
Generates a fission event using default sampling and returns the pointer to that fission event...
G4FissionProductYieldDist * YieldData_
Pointer to G4FissionProductYieldDist class that holds all the probabilistic yield data...
void G4SetAlphaProduction(G4double WhatAlphaProduction)
Set the alpha production behavior for fission event generation.
YieldType
The two types of fission data available.
static const G4int MetaStateLast
The last value of MetaState.
void G4SetVerbosity(G4int WhatVerbosity)
Sets the verbosity levels.
static G4int G4MakeIsotopeCode(G4int Z, G4int A, G4int M)
Converts the Z, A and M of an isotope into an integer representation.
FissionCause
Causes of fission.
Verbosity
These are the verbosity levels.
void G4SetVerbosity(G4int WhatVerbosity)
Sets the verbosity levels.
G4Ions * G4GenerateFissionProduct(void)
Returns a randomly sampled fission product.
bool InitializeFissionProductYieldClass(std::istringstream &dataFile)
Initializes a new G4FPY...Dist class based on the class descriptor variables of G4FissionFragmentGene...
static const G4int MetaStateFirst
The first value of MetaState.
G4GLOB_DLL std::ostream G4cout
G4double TernaryProbability_
Sets the ternary fission probability.
double A(double temperature)
const G4ParticleDefinition * GetDefinition() const
static const G4double TernaryProbability
Default probabilility of a ternary fission.
std::vector< G4DynamicParticle * > G4DynamicParticleVector
void G4SetIsotope(G4int WhichIsotope)
Sets the fission isotope.
void G4SetEnergy(G4double WhatIncidentEnergy)
Sets the energy of the incident particle.
G4FFGEnumerations::YieldType YieldType_
The type of yield to be used: INDEPENDET or CUMULATIVE.
static G4Neutron * Neutron()
G4FFGEnumerations::YieldType G4GetYieldType(void)
Returns the yield type that is currently in use.
static const G4int FissionSamplingSchemeFirst
The first value of FissionSamplingScheme.
static const G4int Isotope
Default Isotope.
void G4SetAlphaProduction(G4double WhatAlphaProduction)
Sets the number of alpha particles produced in fission.
void G4SetCause(G4FFGEnumerations::FissionCause WhichCause)
Sets the cause of fission event.
G4double AlphaProduction_
Controls whether alpha particles are emitted, and how many.
void G4SetIncidentEnergy(G4double WhatIncidentEnergy)
Sets the incident energy, if any, of the particle that cause fission.
G4FFGEnumerations::FissionSamplingScheme SamplingScheme_
The sampling scheme that is used: NORMAL, LIGHT_FRAGMENT, or WENDT.
static const G4FFGEnumerations::MetaState MetaState
Default meta state.
FissionSamplingScheme
The possible fission sampling methods.
#define G4FFG_FUNCTIONLEAVE__
G4FFGEnumerations::FissionCause G4GetCause(void)
Returns the FissionCause of the fission event.
#define G4FFG_SPACING__
G4FFG_SPACING__ indents the debug messages according to the debugging depth.
static const G4FFGEnumerations::YieldType YieldType
Default yield type.
G4double G4GetIncidentEnergy(void)
Returns the energy of the fission inducing particle.
G4double G4GetTernaryProbability(void)
Returns the probability of ternary fission.
void G4SetTernaryProbability(G4double WhatTernaryProbability)
Sets the probability of ternary fission.
G4int Verbosity_
Verbosity level.
static const G4double ThermalNeutronEnergy
The energy of thermal neutrons.
G4FFGEnumerations::FissionSamplingScheme G4GetSamplingScheme(void)
Returns the FissionSamplingScheme that is currently in use.
G4Ions * G4GetFissionProduct(void)
Selects a fission fragment at random from the probability tree and returns the G4Ions pointer...
G4FPYNormalFragmentDist is an inherited class of G4FissionProductYield that samples fission fragments...
#define G4FFG_FUNCTIONENTER__
G4double G4GetAlphaProduction(void)
Returns the production rate of alpha particles for fission events.
static const G4FFGEnumerations::Verbosity Verbosity
Verbosity for the entire package.
static const G4FFGEnumerations::FissionCause FissionCause
Default fission cause.
G4FissionFragmentGenerator(void)
Default constructor.
G4FFGEnumerations::FissionCause Cause_
The cause of fission: SPONTANEOUS or N_INDUCED.
~G4FissionFragmentGenerator()
Default deconstructor.
static const G4int FissionSamplingSchemeLast
The last value of FissionSamplingScheme.