Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4FPYBiasedLightFragmentDist Class Reference

#include <G4FPYBiasedLightFragmentDist.hh>

+ Inheritance diagram for G4FPYBiasedLightFragmentDist:

Public Member Functions

 G4FPYBiasedLightFragmentDist (G4int WhichIsotope, G4FFGEnumerations::MetaState WhichMetaState, G4FFGEnumerations::FissionCause WhichCause, G4FFGEnumerations::YieldType WhichYieldType, std::istringstream &dataStream)
 
 G4FPYBiasedLightFragmentDist (G4int WhichIsotope, G4FFGEnumerations::MetaState WhichMetaState, G4FFGEnumerations::FissionCause WhichCause, G4FFGEnumerations::YieldType WhichYieldType, G4int Verbosity, std::istringstream &dataStream)
 
 ~G4FPYBiasedLightFragmentDist () override
 
- Public Member Functions inherited from G4FissionProductYieldDist
 G4FissionProductYieldDist (G4int WhichIsotope, G4FFGEnumerations::MetaState WhichMetaState, G4FFGEnumerations::FissionCause WhichCause, G4FFGEnumerations::YieldType WhichYieldType, std::istringstream &dataStream)
 
 G4FissionProductYieldDist (G4int WhichIsotope, G4FFGEnumerations::MetaState WhichMetaState, G4FFGEnumerations::FissionCause WhichCause, G4FFGEnumerations::YieldType WhichYieldType, G4int Verbosity, std::istringstream &dataStream)
 
G4DynamicParticleVectorG4GetFission ()
 
G4IonsG4GetFissionProduct ()
 
void G4SetAlphaProduction (G4double WhatAlphaProduction)
 
void G4SetEnergy (G4double WhatIncidentEnergy)
 
void G4SetTernaryProbability (G4double TernaryProbability)
 
void G4SetVerbosity (G4int WhatVerbosity)
 
virtual ~G4FissionProductYieldDist ()
 

Protected Member Functions

void Initialize ()
 
G4IonsGetFissionProduct () override
 
- Protected Member Functions inherited from G4FissionProductYieldDist
void CheckAlphaSanity ()
 
G4IonsFindParticle (G4double RandomParticle)
 
G4IonsFindParticleExtrapolation (G4double RandomParticle, G4bool LowerEnergyGroupExists)
 
G4IonsFindParticleInterpolation (G4double RandomParticle, G4int LowerEnergyGroup)
 
G4IonsFindParticleBranchSearch (ProbabilityBranch *Branch, G4double RandomParticle, G4int EnergyGroup1, G4int EnergyGroup2)
 
virtual void GenerateAlphas (std::vector< G4ReactionProduct * > *Alphas)
 
virtual void GenerateNeutrons (std::vector< G4ReactionProduct * > *Neutrons)
 
G4IonsGetParticleDefinition (G4int Product, G4FFGEnumerations::MetaState MetaState)
 
G4String MakeDirectoryName ()
 
G4String MakeFileName (G4int Isotope, G4FFGEnumerations::MetaState MetaState)
 
G4DynamicParticleMakeG4DynamicParticle (G4ReactionProduct *)
 
G4String MakeIsotopeName (G4int Isotope, G4FFGEnumerations::MetaState MetaState)
 
virtual void MakeTrees ()
 
virtual void ReadProbabilities ()
 
void Renormalize (ProbabilityBranch *Branch)
 
void SampleAlphaEnergies (std::vector< G4ReactionProduct * > *Alphas)
 
void SampleGammaEnergies (std::vector< G4ReactionProduct * > *Gammas)
 
void SampleNeutronEnergies (std::vector< G4ReactionProduct * > *Neutrons)
 
void SetNubar ()
 
virtual void SortProbability (G4ENDFYieldDataContainer *YieldData)
 
void BurnTree (ProbabilityBranch *Branch)
 

Protected Attributes

G4int HalfWeight_
 
- Protected Attributes inherited from G4FissionProductYieldDist
const G4int Isotope_
 
const G4FFGEnumerations::MetaState MetaState_
 
const G4FFGEnumerations::FissionCause Cause_
 
const G4FFGEnumerations::YieldType YieldType_
 
G4ENDFTapeReadENDFData_
 
G4IonsAlphaDefinition_
 
G4double AlphaProduction_
 
G4double TernaryProbability_
 
G4GammaGammaDefinition_
 
G4double IncidentEnergy_
 
G4double MeanGammaEnergy_
 
G4IonsNeutronDefinition_
 
G4double Nubar_
 
G4double NubarWidth_
 
G4int RemainingZ_
 
G4int RemainingA_
 
G4double RemainingEnergy_
 
G4int Verbosity_
 
ProbabilityTreeTrees_
 
G4IonsSmallestZ_
 
G4IonsSmallestA_
 
G4IonsLargestZ_
 
G4IonsLargestA_
 
G4int YieldEnergyGroups_
 
G4doubleYieldEnergies_
 
G4doubleMaintainNormalizedData_
 
G4doubleDataTotal_
 
G4int TreeCount_
 
G4int BranchCount_
 
G4IonTableIonTable_
 
G4ParticleHPNamesElementNames_
 
G4FPYSamplingOpsRandomEngine_
 

Detailed Description

G4FPYBiasedLightFragmentDist is an inherited class of G4FissionProductYield that only samples the 'light' fission fragments, defined by A < 115

  • This inherited class of G4FissionProductYield samples only the lighter fission fragments, defined by A < 115
  • This biasing was implemented because of an artifact that is introduced due to random sampling of fission fragments. Typically small fission fragments (neutrons, alphas, gammas) are sampled after the first fragment is sampled. If a heavy fragment (A >= 115) is sampled first then the resulting lighter fission fragment, after all the other particles have been removed from the available mass, will most likely land far off the neutron drip line.
  • This implementation reduces the probability that such an improbable nucleus will be created by first sampling the lighter fission fragment and allowing the heavy fission fragment, which has a lot more flexibility for varying neutron populations, to make up the slack.

Definition at line 57 of file G4FPYBiasedLightFragmentDist.hh.

Constructor & Destructor Documentation

◆ G4FPYBiasedLightFragmentDist() [1/2]

G4FPYBiasedLightFragmentDist::G4FPYBiasedLightFragmentDist ( G4int WhichIsotope,
G4FFGEnumerations::MetaState WhichMetaState,
G4FFGEnumerations::FissionCause WhichCause,
G4FFGEnumerations::YieldType WhichYieldType,
std::istringstream & dataStream )

Default constructor

  • Usage:
    • WhichIsotope: Isotope number of the element in ZZZAAA form
    • WhichMetaState: GROUND_STATE, META_1, or META_2
    • WhichCause: SPONTANEOUS or N_INDUCED
    • WhichYieldType: INDEPENDENT or CUMULATIVE
  • Notes:

Definition at line 42 of file G4FPYBiasedLightFragmentDist.cc.

46 : G4FissionProductYieldDist(WhichIsotope, WhichMetaState, WhichCause, WhichYieldType, dataStream)
47{
48 // Initialize the class
49 Initialize();
50}
G4FissionProductYieldDist(G4int WhichIsotope, G4FFGEnumerations::MetaState WhichMetaState, G4FFGEnumerations::FissionCause WhichCause, G4FFGEnumerations::YieldType WhichYieldType, std::istringstream &dataStream)

◆ G4FPYBiasedLightFragmentDist() [2/2]

G4FPYBiasedLightFragmentDist::G4FPYBiasedLightFragmentDist ( G4int WhichIsotope,
G4FFGEnumerations::MetaState WhichMetaState,
G4FFGEnumerations::FissionCause WhichCause,
G4FFGEnumerations::YieldType WhichYieldType,
G4int Verbosity,
std::istringstream & dataStream )

Overloaded constructor

  • Usage:
    • WhichIsotope: Isotope number of the element in ZZZAAA form
    • WhichMetaState: GROUND_STATE, META_1, or META_2
    • WhichCause: SPONTANEOUS or N_INDUCED
    • WhichYieldType: INDEPENDENT or CUMULATIVE
    • Verbosity: Verbosity level
  • Notes:

Definition at line 52 of file G4FPYBiasedLightFragmentDist.cc.

56 : G4FissionProductYieldDist(WhichIsotope, WhichMetaState, WhichCause, WhichYieldType, Verbosity,
57 dataStream)
58{
59 // Initialize the class
60 Initialize();
61}

◆ ~G4FPYBiasedLightFragmentDist()

G4FPYBiasedLightFragmentDist::~G4FPYBiasedLightFragmentDist ( )
override

Default deconstructor. It is a virtual function since G4FPYBiasedLightFragmentDist inherits from G4FissionProductYieldDist

Definition at line 112 of file G4FPYBiasedLightFragmentDist.cc.

113{
115
116 // Empty - all the data elements to be deconstructed are removed by
117 // ~G4FissionProductYieldDist()
119}
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__

Member Function Documentation

◆ GetFissionProduct()

G4Ions * G4FPYBiasedLightFragmentDist::GetFissionProduct ( )
overrideprotectedvirtual

Selects a fission product from the probability tree, limited by the number of nucleons available to the system

Todo
Figure out what to do if a suitable particle is not found in 1000 iterations

Implements G4FissionProductYieldDist.

Definition at line 73 of file G4FPYBiasedLightFragmentDist.cc.

74{
76
77 G4Ions* Particle;
78 G4bool IsHeavy;
79 G4bool IsNotFeasable;
81
82 Counter = 0;
83 do {
84 // If we have sampled too many times then we may need to do something else
85 if (Counter == 1000) {
86 Particle = nullptr;
87 break;
88 }
89
90 // Generate a (0, 1] random number, then find the corresponding particle
92
93 // If the daughter is heavier than half of the original nucleus weight
94 // or not physically feasable then set the flags to sample again
95 IsHeavy = (Particle->GetAtomicMass() > HalfWeight_);
96 IsNotFeasable = (Particle->GetAtomicMass() > RemainingA_ + 1
97 || Particle->GetAtomicNumber() > RemainingZ_ + 1);
98
99 Counter++;
100 } while (IsHeavy || IsNotFeasable); // Loop checking, 11.05.2015, T. Koi
101
102 // Something went wrong, so figure out how to fix it
103 if (Particle == nullptr) {
104 /// \todo Figure out what to do if a suitable particle is not found in 1000 iterations
105 }
106
107 // Return the G4ParticleDefintion pointer to the random light fragment
109 return Particle;
110}
bool G4bool
Definition G4Types.hh:86
int G4int
Definition G4Types.hh:85
G4Ions * FindParticle(G4double RandomParticle)

◆ Initialize()

void G4FPYBiasedLightFragmentDist::Initialize ( )
protected

Initialize is a common function called by all constructors.

Definition at line 63 of file G4FPYBiasedLightFragmentDist.cc.

64{
66
67 // Initialize the half-weight for fission product sampling
68 HalfWeight_ = (G4int)floor((Isotope_ % 1000) / 2.0);
69
71}

Referenced by G4FPYBiasedLightFragmentDist(), and G4FPYBiasedLightFragmentDist().

Member Data Documentation

◆ HalfWeight_

G4int G4FPYBiasedLightFragmentDist::HalfWeight_
protected

Defines the half-weight of the fission isotope

Definition at line 96 of file G4FPYBiasedLightFragmentDist.hh.

Referenced by GetFissionProduct(), and Initialize().


The documentation for this class was generated from the following files: