Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4FPYBiasedLightFragmentDist Class Reference

#include <G4FPYBiasedLightFragmentDist.hh>

Inheritance diagram for G4FPYBiasedLightFragmentDist:
Collaboration 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)
 
virtual ~G4FPYBiasedLightFragmentDist (void)
 
- 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 (void)
 
G4IonsG4GetFissionProduct (void)
 
void G4SetAlphaProduction (G4double WhatAlphaProduction)
 
void G4SetEnergy (G4double WhatIncidentEnergy)
 
void G4SetTernaryProbability (G4double TernaryProbability)
 
void G4SetVerbosity (G4int WhatVerbosity)
 
virtual ~G4FissionProductYieldDist (void)
 

Protected Member Functions

void Initialize (void)
 
virtual G4IonsGetFissionProduct (void)
 
- Protected Member Functions inherited from G4FissionProductYieldDist
void CheckAlphaSanity (void)
 
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 (void)
 
G4String MakeFileName (G4int Isotope, G4FFGEnumerations::MetaState MetaState)
 
G4DynamicParticleMakeG4DynamicParticle (G4ReactionProduct *)
 
G4String MakeIsotopeName (G4int Isotope, G4FFGEnumerations::MetaState MetaState)
 
virtual void MakeTrees (void)
 
virtual void ReadProbabilities (void)
 
void Renormalize (ProbabilityBranch *Branch)
 
void SampleAlphaEnergies (std::vector< G4ReactionProduct * > *Alphas)
 
void SampleGammaEnergies (std::vector< G4ReactionProduct * > *Gammas)
 
void SampleNeutronEnergies (std::vector< G4ReactionProduct * > *Neutrons)
 
void SetNubar (void)
 
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 58 of file G4FPYBiasedLightFragmentDist.hh.

Constructor & Destructor Documentation

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 43 of file G4FPYBiasedLightFragmentDist.cc.

48 : G4FissionProductYieldDist( WhichIsotope,
49  WhichMetaState,
50  WhichCause,
51  WhichYieldType,
52  dataStream)
53 {
54  // Initialize the class
55  Initialize();
56 }
G4FissionProductYieldDist(G4int WhichIsotope, G4FFGEnumerations::MetaState WhichMetaState, G4FFGEnumerations::FissionCause WhichCause, G4FFGEnumerations::YieldType WhichYieldType, std::istringstream &dataStream)

Here is the call graph for this function:

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 59 of file G4FPYBiasedLightFragmentDist.cc.

65 : G4FissionProductYieldDist( WhichIsotope,
66  WhichMetaState,
67  WhichCause,
68  WhichYieldType,
69  Verbosity,
70  dataStream )
71 {
72  // Initialize the class
73  Initialize();
74 }
G4FissionProductYieldDist(G4int WhichIsotope, G4FFGEnumerations::MetaState WhichMetaState, G4FFGEnumerations::FissionCause WhichCause, G4FFGEnumerations::YieldType WhichYieldType, std::istringstream &dataStream)

Here is the call graph for this function:

G4FPYBiasedLightFragmentDist::~G4FPYBiasedLightFragmentDist ( void  )
virtual

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

Definition at line 130 of file G4FPYBiasedLightFragmentDist.cc.

131 {
133 
134  // Empty - all the data elements to be deconstructed are removed by
135  // ~G4FissionProductYieldDist()
137 }
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__

Member Function Documentation

G4Ions * G4FPYBiasedLightFragmentDist::GetFissionProduct ( void  )
protectedvirtual

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 88 of file G4FPYBiasedLightFragmentDist.cc.

89 {
91 
92  G4Ions* Particle;
93  G4bool IsHeavy;
94  G4bool IsNotFeasable;
95  G4int Counter;
96 
97  Counter = 0;
98  do
99  {
100  // If we have sampled too many times then we may need to do something else
101  if(Counter == 1000)
102  {
103  Particle = NULL;
104  break;
105  }
106 
107  // Generate a (0, 1] random number, then find the corresponding particle
109 
110  // If the daughter is heavier than half of the original nucleus weight
111  // or not physically feasable then set the flags to sample again
112  IsHeavy = (Particle->GetAtomicMass() > HalfWeight_);
113  IsNotFeasable = (Particle->GetAtomicMass() > RemainingA_ + 1
114  || Particle->GetAtomicNumber() > RemainingZ_ + 1);
115 
116  Counter++;
117  } while (IsHeavy || IsNotFeasable); // Loop checking, 11.05.2015, T. Koi
118 
119  // Something went wrong, so figure out how to fix it
120  if(Particle == NULL)
121  {
123  }
124 
125  // Return the G4ParticleDefintion pointer to the random light fragment
127  return Particle;
128 }
G4double G4SampleUniform(void)
G4Ions * FindParticle(G4double RandomParticle)
int G4int
Definition: G4Types.hh:78
Definition: G4Ions.hh:51
bool G4bool
Definition: G4Types.hh:79
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__

Here is the call graph for this function:

void G4FPYBiasedLightFragmentDist::Initialize ( void  )
protected

Initialize is a common function called by all constructors.

Definition at line 77 of file G4FPYBiasedLightFragmentDist.cc.

78 {
80 
81  // Initialize the half-weight for fission product sampling
82  HalfWeight_ = (G4int)floor((Isotope_ % 1000) / 2.0);
83 
85 }
int G4int
Definition: G4Types.hh:78
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__

Here is the caller graph for this function:

Member Data Documentation

G4int G4FPYBiasedLightFragmentDist::HalfWeight_
protected

Defines the half-weight of the fission isotope

Definition at line 100 of file G4FPYBiasedLightFragmentDist.hh.


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