Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4FissionFragmentGenerator Class Reference

#include <G4FissionFragmentGenerator.hh>

Collaboration diagram for G4FissionFragmentGenerator:

Public Member Functions

 G4FissionFragmentGenerator (void)
 
 G4FissionFragmentGenerator (G4int Verbosity)
 
G4DynamicParticleVectorG4GenerateFission (void)
 
G4DynamicParticleVectorG4GenerateFission (const G4HadProjectile &Projectile)
 
const std::vector
< G4DynamicParticleVector * > 
G4GenerateFission (G4long NumberOfFissions, const G4HadProjectile &Projectile)
 
G4IonsG4GenerateFissionProduct (void)
 
G4double G4GetAlphaProduction (void)
 
G4double G4GetTernaryProbability (void)
 
G4FFGEnumerations::FissionCause G4GetCause (void)
 
G4double G4GetIncidentEnergy (void)
 
G4int G4GetIsotope (void)
 
G4FFGEnumerations::MetaState G4GetMetaState (void)
 
G4FFGEnumerations::FissionSamplingScheme G4GetSamplingScheme (void)
 
G4FFGEnumerations::YieldType G4GetYieldType (void)
 
bool InitializeFissionProductYieldClass (std::istringstream &dataFile)
 
void G4SetAlphaProduction (G4double WhatAlphaProduction)
 
void G4SetTernaryProbability (G4double WhatTernaryProbability)
 
void G4SetCause (G4FFGEnumerations::FissionCause WhichCause)
 
void G4SetIncidentEnergy (G4double WhatIncidentEnergy)
 
void G4SetIsotope (G4int WhichIsotope)
 
void G4SetMetaState (G4FFGEnumerations::MetaState WhichMetaState)
 
void G4SetSamplingScheme (G4FFGEnumerations::FissionSamplingScheme NewScheme)
 
void G4SetYieldType (G4FFGEnumerations::YieldType WhichYieldType)
 
void G4SetVerbosity (G4int WhatVerbosity)
 
 ~G4FissionFragmentGenerator ()
 

Static Public Member Functions

static G4int G4MakeIsotopeCode (G4int Z, G4int A, G4int M)
 

Protected Member Functions

void Initialize (void)
 

Protected Attributes

G4int Isotope_
 
G4FFGEnumerations::MetaState MetaState_
 
G4FFGEnumerations::FissionCause Cause_
 
G4double IncidentEnergy_
 
G4FFGEnumerations::YieldType YieldType_
 
G4double TernaryProbability_
 
G4double AlphaProduction_
 
G4bool IsReconstructionNeeded_
 
G4int Verbosity_
 
G4FFGEnumerations::FissionSamplingScheme SamplingScheme_
 
G4FissionProductYieldDistYieldData_
 

Detailed Description

G4FissionFragmentGenerator is the front end class to be used by the user for handling all fission event generation.

This class is intended to be instantiated for one type of fission event for as specific isotope/isomer, fission type, and incident neutron energy. For this reason no functions exist to change or modify these values once the class in constructed. A new class must be created by the user for each type of fission event, if such functionality is desired.

Definition at line 54 of file G4FissionFragmentGenerator.hh.

Constructor & Destructor Documentation

G4FissionFragmentGenerator::G4FissionFragmentGenerator ( void  )

Default constructor

Definition at line 55 of file G4FissionFragmentGenerator.cc.

56 {
57  // Set the default verbosity
59 
60  // Initialize the class
61  Initialize();
62 }
static const G4FFGEnumerations::Verbosity Verbosity

Here is the call graph for this function:

G4FissionFragmentGenerator::G4FissionFragmentGenerator ( G4int  Verbosity)

Overloaded constructor

  • Usage:
    • Verbosity: Verbosity level
  • Notes:
    • Refer to the documentation for the default constructor for setting up the operating parameters.

Definition at line 65 of file G4FissionFragmentGenerator.cc.

66 {
67  // Set the verbosity
69 
70  // Initialize the class
71  Initialize();
72 }

Here is the call graph for this function:

G4FissionFragmentGenerator::~G4FissionFragmentGenerator ( )

Default deconstructor

Definition at line 760 of file G4FissionFragmentGenerator.cc.

761 {
763 
764  delete YieldData_;
765 
767 }
G4FissionProductYieldDist * YieldData_
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__

Member Function Documentation

G4DynamicParticleVector * G4FissionFragmentGenerator::G4GenerateFission ( void  )

Generates a single fission event

  • Usage: No arguments required
  • Notes:
    • Generates a single fission event by calling the overloaded function and passing an argument of '1'

Definition at line 98 of file G4FissionFragmentGenerator.cc.

99 {
101 
103  G4ThreeVector(0, 0, 0),
105 
106  // Call the overloaded function and generate 1 fission
107  std::vector< G4DynamicParticleVector* > FissionEvent = G4GenerateFission(1, Projectile);
108  G4DynamicParticleVector* Container = FissionEvent[0];
109 
111  return Container;
112 }
CLHEP::Hep3Vector G4ThreeVector
G4DynamicParticleVector * G4GenerateFission(void)
std::vector< G4DynamicParticle * > G4DynamicParticleVector
static G4Neutron * Neutron()
Definition: G4Neutron.cc:104
#define G4FFG_FUNCTIONLEAVE__
static const G4double ThermalNeutronEnergy
#define G4FFG_FUNCTIONENTER__

Here is the call graph for this function:

Here is the caller graph for this function:

G4DynamicParticleVector * G4FissionFragmentGenerator::G4GenerateFission ( const G4HadProjectile Projectile)

Generates a single fission event

  • Usage: -Projectile: G4HadProjectile of the fission-inducing particle
  • Notes:
    • Generates a single fission event by calling the overloaded function and passing an argument of '1'

Definition at line 115 of file G4FissionFragmentGenerator.cc.

116 {
118 
119  // Call the overloaded function and generate 1 fission
120  std::vector< G4DynamicParticleVector* > FissionEvent = G4GenerateFission(1, Projectile);
121  G4DynamicParticleVector* const Container = FissionEvent[0];
122 
124  return Container;
125 }
G4DynamicParticleVector * G4GenerateFission(void)
std::vector< G4DynamicParticle * > G4DynamicParticleVector
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__

Here is the call graph for this function:

const std::vector< G4DynamicParticleVector * > G4FissionFragmentGenerator::G4GenerateFission ( G4long  NumberOfFissions,
const G4HadProjectile Projectile 
)

Generates NumberOfFissions fission events

  • Usage: -NumberOfFissions: The number of fission events to generate
  • Notes:
    • Generates NumberOfFissions fission events

Definition at line 128 of file G4FissionFragmentGenerator.cc.

130 {
132 
133 
134  //TK Modified 131107
135  //std::vector< G4DynamicParticleVector* > FissionEvents(NumberOfFissions);
136  std::vector< G4DynamicParticleVector* > FissionEvents(0);
137 
138  if(Projectile.GetDefinition() == G4Neutron::Neutron())
139  {
141  {
142  // TODO Eliminate potential need for restructuring during run phase
143  //InitializeFissionProductYieldClass();
144  }
145 
146  for(G4long i = 0; i < NumberOfFissions; i++)
147  {
148  FissionEvents.push_back(YieldData_->G4GetFission());
149  // FIXME Use particle momentum in balance equation
150  // FissionEvents.push_back(YieldData_->G4GetFission(Projectile.Get4Momentum()));
151  }
152  } else
153  {
154  FissionEvents.push_back(NULL);
155  }
156 
158  return FissionEvents;
159 }
long G4long
Definition: G4Types.hh:80
G4DynamicParticleVector * G4GetFission(void)
G4FissionProductYieldDist * YieldData_
const G4ParticleDefinition * GetDefinition() const
#define TRUE
Definition: globals.hh:55
static G4Neutron * Neutron()
Definition: G4Neutron.cc:104
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__

Here is the call graph for this function:

G4Ions * G4FissionFragmentGenerator::G4GenerateFissionProduct ( void  )

Returns a randomly sampled fission product

Definition at line 162 of file G4FissionFragmentGenerator.cc.

163 {
165 
167  {
168  // TODO Eliminate potential need for restructuring during run phase
169  //InitializeFissionProductYieldClass();
170  }
171 
172  G4Ions* Product = YieldData_->G4GetFissionProduct();
173 
175  return Product;
176 }
G4FissionProductYieldDist * YieldData_
Definition: G4Ions.hh:51
#define TRUE
Definition: globals.hh:55
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__

Here is the call graph for this function:

G4double G4FissionFragmentGenerator::G4GetAlphaProduction ( void  )

Returns the production rate of alpha particles for fission events

Definition at line 179 of file G4FissionFragmentGenerator.cc.

180 {
182 
184  return AlphaProduction_;
185 }
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__
G4FFGEnumerations::FissionCause G4FissionFragmentGenerator::G4GetCause ( void  )

Returns the FissionCause of the fission event.

Definition at line 197 of file G4FissionFragmentGenerator.cc.

198 {
200 
202  return Cause_;
203 }
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__
G4FFGEnumerations::FissionCause Cause_
G4double G4FissionFragmentGenerator::G4GetIncidentEnergy ( void  )

Returns the energy of the fission inducing particle.

Definition at line 206 of file G4FissionFragmentGenerator.cc.

207 {
209 
211  return IncidentEnergy_;
212 }
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__
G4int G4FissionFragmentGenerator::G4GetIsotope ( void  )

Returns the code of the fission isotope in ZZZAAA format.

Definition at line 215 of file G4FissionFragmentGenerator.cc.

216 {
218 
220  return Isotope_;
221 }
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__
G4FFGEnumerations::MetaState G4FissionFragmentGenerator::G4GetMetaState ( void  )

Returns the MetaState of the fission isotope.

Definition at line 224 of file G4FissionFragmentGenerator.cc.

225 {
227 
229  return MetaState_;
230 }
G4FFGEnumerations::MetaState MetaState_
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__
G4FFGEnumerations::FissionSamplingScheme G4FissionFragmentGenerator::G4GetSamplingScheme ( void  )

Returns the FissionSamplingScheme that is currently in use.

Definition at line 233 of file G4FissionFragmentGenerator.cc.

234 {
236 
238  return SamplingScheme_;
239 }
G4FFGEnumerations::FissionSamplingScheme SamplingScheme_
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__
G4double G4FissionFragmentGenerator::G4GetTernaryProbability ( void  )

Returns the probability of ternary fission

Definition at line 188 of file G4FissionFragmentGenerator.cc.

189 {
191 
193  return TernaryProbability_;
194 }
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__
G4FFGEnumerations::YieldType G4FissionFragmentGenerator::G4GetYieldType ( void  )

Returns the yield type that is currently in use

Definition at line 242 of file G4FissionFragmentGenerator.cc.

243 {
245 
247  return YieldType_;
248 }
G4FFGEnumerations::YieldType YieldType_
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__
G4int G4FissionFragmentGenerator::G4MakeIsotopeCode ( G4int  Z,
G4int  A,
G4int  M 
)
static

Converts the Z, A and M of an isotope into an integer representation

Definition at line 251 of file G4FissionFragmentGenerator.cc.

252 {
253  // Sanity check;
254  A %= 1000;
255  Z %= 1000;
256  M %= 10;
257 
258  return (A + Z * 1000) * 10 + M;
259 }
double A(double temperature)

Here is the caller graph for this function:

void G4FissionFragmentGenerator::G4SetAlphaProduction ( G4double  WhatAlphaProduction)

Sets the number of alpha particles produced in fission.

  • Usage:
    • if AlphaProduction is negative then alpha particles are sampled on a Gaussian with a mean of abs(AlphaProduction).
  • Notes:
    • The maximum number of alpha particles that may be created is physically limited by the nucleons present in the parent nucleus. Setting the AlphaProduction too high will have unpredictable results on the sampling of the fission products.

Definition at line 262 of file G4FissionFragmentGenerator.cc.

263 {
265 
266  AlphaProduction_ = WhatAlphaProduction;
267  if(YieldData_ != NULL)
268  {
269  YieldData_->G4SetAlphaProduction(AlphaProduction_);
270  }
271 
273  {
276 
277  G4cout << " -- Alpha production set to " << AlphaProduction_ << G4endl;
278  }
279 
281 }
#define G4FFG_LOCATION__
G4FissionProductYieldDist * YieldData_
void G4SetAlphaProduction(G4double WhatAlphaProduction)
G4GLOB_DLL std::ostream G4cout
#define G4FFG_FUNCTIONLEAVE__
#define G4endl
Definition: G4ios.hh:61
#define G4FFG_SPACING__
#define G4FFG_FUNCTIONENTER__

Here is the call graph for this function:

void G4FissionFragmentGenerator::G4SetCause ( G4FFGEnumerations::FissionCause  WhichCause)

Sets the cause of fission event.

  • Usage:
    • WhichCause: SPONTANEOUS, N_INDUCED, P_INDUCED, or G_INDUCED
  • Notes:

Definition at line 306 of file G4FissionFragmentGenerator.cc.

307 {
309 
310  G4bool IsValidCause = (WhichCause == G4FFGEnumerations::SPONTANEOUS
311  || WhichCause == G4FFGEnumerations::NEUTRON_INDUCED );
312  G4bool IsSameCause = (Cause_ == WhichCause);
313 
314  if(!IsSameCause && IsValidCause)
315  {
316  Cause_ = WhichCause;
318  {
319  IncidentEnergy_ = 0;
320  }
322  }
323 
325  {
326  G4String CauseString;
327  switch(WhichCause)
328  {
330  CauseString = "SPONTANEOUS";
331  break;
333  CauseString = "NEUTRON_INDUCED";
334  break;
336  CauseString = "PROTON_INDUCED";
337  break;
339  CauseString = "GAMMA_INDUCED";
340  break;
341  }
342 
344  {
347 
348  if(IsValidCause)
349  {
350  if(IsSameCause && YieldData_ != NULL)
351  {
352  G4cout << " -- Already set to use " << CauseString << " as the fission cause. Yield data class will not be reconstructed." << G4endl;
353  } else if(YieldData_ == NULL)
354  {
355  G4cout << " -- Yield data class not yet constructed. " << CauseString << " will be applied when it is constructed." << G4endl;
356  }
357  } else
358  {
359  G4cout << " -- Invalid cause of fission" << G4endl;
360  }
361  }
362 
364  && IsValidCause)
365  {
368 
369  G4cout << " -- Fission cause set to " << CauseString << "." << G4endl;
370  }
371  }
372 
374 }
#define G4FFG_LOCATION__
G4FissionProductYieldDist * YieldData_
G4GLOB_DLL std::ostream G4cout
bool G4bool
Definition: G4Types.hh:79
#define TRUE
Definition: globals.hh:55
#define G4FFG_FUNCTIONLEAVE__
#define G4endl
Definition: G4ios.hh:61
#define G4FFG_SPACING__
#define G4FFG_FUNCTIONENTER__
G4FFGEnumerations::FissionCause Cause_

Here is the caller graph for this function:

void G4FissionFragmentGenerator::G4SetIncidentEnergy ( G4double  WhatIncidentEnergy)

Sets the incident energy, if any, of the particle that cause fission.

  • Usage:
    • WhatIncidentEnergy: Kinetic energy of the particle with units applied;
  • Notes:

Definition at line 377 of file G4FissionFragmentGenerator.cc.

378 {
380 
382  {
383  IncidentEnergy_ = WhatIncidentEnergy;
384  if(YieldData_ != NULL)
385  {
387  }
388  }
389 
391  {
392  std::ostringstream EnergyString;
393  if(IncidentEnergy_ / GeV > 1)
394  {
395  EnergyString << IncidentEnergy_ / GeV << " GeV";
396  } else if(IncidentEnergy_ / MeV > 1)
397  {
398  EnergyString << IncidentEnergy_ / MeV << " MeV";
399  } else if(IncidentEnergy_ / keV > 1)
400  {
401  EnergyString << IncidentEnergy_ / keV << " keV";
402  } else
403  {
404  EnergyString << IncidentEnergy_ / eV << " eV";
405  }
406 
409  {
411  {
414 
415  G4cout << " -- Cannot set a non-zero energy for spontaneous fission" << G4endl;
416  } else if(YieldData_ == NULL)
417  {
420 
421  G4cout << " -- Yield data class not yet constructed. " << EnergyString.str() << " will be applied when it is constructed." << G4endl;
422 
423  }
424  }
425 
428  {
431 
432  G4cout << " -- Incident neutron energy set to " << EnergyString.str() << "." << G4endl;
433  }
434  }
435 
437 }
#define G4FFG_LOCATION__
G4FissionProductYieldDist * YieldData_
G4GLOB_DLL std::ostream G4cout
static constexpr double eV
Definition: G4SIunits.hh:215
void G4SetEnergy(G4double WhatIncidentEnergy)
static constexpr double GeV
Definition: G4SIunits.hh:217
#define G4FFG_FUNCTIONLEAVE__
#define G4endl
Definition: G4ios.hh:61
static constexpr double MeV
Definition: G4SIunits.hh:214
#define G4FFG_SPACING__
static constexpr double keV
Definition: G4SIunits.hh:216
#define G4FFG_FUNCTIONENTER__
G4FFGEnumerations::FissionCause Cause_

Here is the call graph for this function:

Here is the caller graph for this function:

void G4FissionFragmentGenerator::G4SetIsotope ( G4int  WhichIsotope)

Sets the fission isotope

  • Usage:
    • WhichIsotope: Code of the isotope in ZZZAAA format
  • Notes:

Definition at line 440 of file G4FissionFragmentGenerator.cc.

441 {
443 
444  G4bool IsSameIsotope = (Isotope_ == WhichIsotope);
445 
446  if(!IsSameIsotope)
447  {
448  Isotope_ = WhichIsotope;
450  }
451 
453  {
455  {
456  if(IsSameIsotope && YieldData_ != NULL)
457  {
460 
461  G4cout << " -- Isotope " << Isotope_ << " already in use. Yield data class will not be reconstructed." << G4endl;
462  } else if(YieldData_ == NULL)
463  {
466 
467  G4cout << " -- Yield data class not yet constructed. The isotope will be set to " << Isotope_ << " when it is constructed." << G4endl;
468  }
469  }
470 
472  {
475 
476  G4cout << " -- Isotope set to " << Isotope_ << "." << G4endl;
477  }
478  }
479 
481 }
#define G4FFG_LOCATION__
G4FissionProductYieldDist * YieldData_
G4GLOB_DLL std::ostream G4cout
bool G4bool
Definition: G4Types.hh:79
#define TRUE
Definition: globals.hh:55
#define G4FFG_FUNCTIONLEAVE__
#define G4endl
Definition: G4ios.hh:61
#define G4FFG_SPACING__
#define G4FFG_FUNCTIONENTER__

Here is the caller graph for this function:

void G4FissionFragmentGenerator::G4SetMetaState ( G4FFGEnumerations::MetaState  WhichMetaState)

Sets the metastable state of the fission isotope.

  • Usage:
    • WhichMetaState: GROUND_STATE, META_1, or META_2
  • Notes:

Definition at line 484 of file G4FissionFragmentGenerator.cc.

485 {
487 
488  G4bool IsValidMetaState = (WhichMetaState >= G4FFGEnumerations::MetaStateFirst
489  && WhichMetaState <= G4FFGEnumerations::MetaStateLast);
490  G4bool IsSameMetaState = (MetaState_ == WhichMetaState);
491 
492  if(!IsSameMetaState && IsValidMetaState)
493  {
494  MetaState_ = WhichMetaState;
496  }
497 
499  {
500  G4String MetaName;
501  switch(MetaState_)
502  {
504  MetaName = "GROUND_STATE";
505  break;
506 
508  MetaName = "META_1";
509  break;
510 
512  MetaName = "META_2";
513  break;
514  }
515 
517  {
520 
521  std::ostringstream Temp;
522  if(IsValidMetaState)
523  {
524  if(IsSameMetaState && YieldData_ != NULL)
525  {
526  G4cout << " -- Already set to use " << MetaName << " as the metastable state. Yield data class will not be reconstructed" << G4endl;
527  } else if(YieldData_ == NULL)
528  {
529  G4cout << " -- Yield data class not yet constructed. " << MetaName << " will be applied when it is constructed." << G4endl;
530  }
531  } else
532  {
533  G4cout << " -- Invalid metastable state." << G4endl;
534  }
535  }
536 
538  && IsValidMetaState)
539  {
542 
543  G4cout << " -- Metastable state set to " << MetaName << "." << G4endl;
544  }
545  }
546 
548 }
G4FFGEnumerations::MetaState MetaState_
#define G4FFG_LOCATION__
G4FissionProductYieldDist * YieldData_
static const G4int MetaStateLast
static const G4int MetaStateFirst
G4GLOB_DLL std::ostream G4cout
bool G4bool
Definition: G4Types.hh:79
#define TRUE
Definition: globals.hh:55
#define G4FFG_FUNCTIONLEAVE__
#define G4endl
Definition: G4ios.hh:61
#define G4FFG_SPACING__
#define G4FFG_FUNCTIONENTER__

Here is the caller graph for this function:

void G4FissionFragmentGenerator::G4SetSamplingScheme ( G4FFGEnumerations::FissionSamplingScheme  NewScheme)

Set the sampling scheme.

  • Usage:
    • NewScheme: The G4FissionSamplingScheme value for the sampling scheme to use.
  • Notes:
    • NORMAL: Sets the parameters of this class to sample fission events without any biasing.
    • LIGHT_FRAGMENT: Sets the parameters of this class to bias the fragment generation by always selecting a light fragment (A < 115) first.
    • WENDT: Sets the parameters of this class to sample fission events according to the Wendt sampling scheme. Please refer to the code documentation for G4FPYWendtSamplingDist for a more detailed explanation.

Definition at line 551 of file G4FissionFragmentGenerator.cc.

552 {
554 
555  G4bool IsValidScheme = (NewScheme >= G4FFGEnumerations::FissionSamplingSchemeFirst
557  G4bool IsSameScheme = (NewScheme == SamplingScheme_);
558 
559  if(!IsSameScheme && IsValidScheme)
560  {
561  SamplingScheme_ = NewScheme;
563  }
564 
566  {
567  G4String SchemeString;
568  switch(SamplingScheme_)
569  {
571  SchemeString = "NORMAL";
572  break;
573 
575  SchemeString = "LIGHT_FRAGMENT";
576  break;
577 
578  default:
579  SchemeString = "UNSUPPORTED";
580  break;
581  }
582 
584  {
587 
588  if(IsValidScheme)
589  {
590  if(IsSameScheme && YieldData_ != NULL)
591  {
592  G4cout << " -- Already set to use " << SchemeString << " as the sampling scheme. Yield data class will not be reconstructed." << G4endl;
593  } else if(YieldData_ == NULL)
594  {
595  G4cout << " -- Yield data class not yet constructed. " << SchemeString << " will be applied when it is constructed." << G4endl;
596  }
597  } else
598  {
599  G4cout << " -- Invalid sampling scheme." << G4endl;
600  }
601  }
602 
604  && IsValidScheme)
605  {
608 
609  G4cout << " -- Sampling scheme set to " << SchemeString << "." << G4endl;
610  }
611  }
612 
614 }
#define G4FFG_LOCATION__
G4FissionProductYieldDist * YieldData_
G4GLOB_DLL std::ostream G4cout
bool G4bool
Definition: G4Types.hh:79
#define TRUE
Definition: globals.hh:55
static const G4int FissionSamplingSchemeFirst
G4FFGEnumerations::FissionSamplingScheme SamplingScheme_
#define G4FFG_FUNCTIONLEAVE__
#define G4endl
Definition: G4ios.hh:61
#define G4FFG_SPACING__
#define G4FFG_FUNCTIONENTER__
static const G4int FissionSamplingSchemeLast

Here is the caller graph for this function:

void G4FissionFragmentGenerator::G4SetTernaryProbability ( G4double  WhatTernaryProbability)

Sets the probability of ternary fission

  • Usage:
    • WhatAlphaProductionProbability: Probability of generating alpha particles for a fission event. 1 = 100% chance of alpha production
  • Notes:

Definition at line 284 of file G4FissionFragmentGenerator.cc.

285 {
287 
288  TernaryProbability_ = WhatTernaryProbability;
289  if(YieldData_ != NULL)
290  {
291  YieldData_->G4SetTernaryProbability(TernaryProbability_);
292  }
293 
295  {
298 
299  G4cout << " -- Ternary fission probability set to " << TernaryProbability_ << G4endl;
300  }
301 
303 }
void G4SetTernaryProbability(G4double TernaryProbability)
#define G4FFG_LOCATION__
G4FissionProductYieldDist * YieldData_
G4GLOB_DLL std::ostream G4cout
#define G4FFG_FUNCTIONLEAVE__
#define G4endl
Definition: G4ios.hh:61
#define G4FFG_SPACING__
#define G4FFG_FUNCTIONENTER__

Here is the call graph for this function:

void G4FissionFragmentGenerator::G4SetVerbosity ( G4int  WhatVerbosity)

Sets the verbosity levels

  • Usage:
    • WhichVerbosity: Combination of levels
  • Notes:
    • SILENT: All verbose output is repressed
    • UPDATES: Only high-level internal changes are reported
    • DAUGHTER_INFO: Displays information about daughter product sampling
    • NEUTRON_INFO: Displays information about neutron sampling
    • GAMMA_INFO: Displays information about gamma sampling
    • ALPHA_INFO: Displays information about alpha sampling
    • MOMENTUM_INFO: Displays information about momentum balancing
    • EXTRAPOLATION_INTERPOLATION_INFO: Displays information about any data extrapolation or interpolation that occurs
    • DEBUG: Reports program flow as it steps through functions
    • PRINT_ALL: Displays any and all output

Definition at line 683 of file G4FissionFragmentGenerator.cc.

684 {
686 
688 
689  if(YieldData_ != NULL)
690  {
691  YieldData_->G4SetVerbosity(Verbosity_);
692  }
693 
695 }
G4FissionProductYieldDist * YieldData_
void G4SetVerbosity(G4int WhatVerbosity)
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__

Here is the call graph for this function:

void G4FissionFragmentGenerator::G4SetYieldType ( G4FFGEnumerations::YieldType  WhichYieldType)

Sets the ENDF yield type to be used for the data

  • Usage:
    • WhichYieldType: INDEPENDENT or COMULATIVE
  • Notes:

Definition at line 617 of file G4FissionFragmentGenerator.cc.

618 {
620 
621  G4bool IsValidYieldType = (WhichYieldType == G4FFGEnumerations::INDEPENDENT
622  ||WhichYieldType == G4FFGEnumerations::CUMULATIVE);
623  G4bool IsSameYieldType = (YieldType_ == WhichYieldType);
624 
625  if(!IsSameYieldType && IsValidYieldType)
626  {
627  YieldType_ = WhichYieldType;
629  }
630 
632  {
633  G4String YieldString;
634  switch((int)YieldType_)
635  {
637  YieldString = "INDEPENDENT";
638  break;
639 
641  YieldString = "SPONTANEOUS";
642  break;
643 
644  default:
645  YieldString = "UNSUPPORTED";
646  break;
647  }
648 
650  {
653 
654  if(IsValidYieldType)
655  {
656 
657  if(IsSameYieldType && YieldData_ != NULL)
658  {
659  } else if(YieldData_ == NULL)
660  {
661  G4cout << " -- Yield data class not yet constructed. Yield type " << YieldString << " will be applied when it is constructed." << G4endl;
662  }
663  } else
664  {
665  G4cout << " -- Invalid yield type." << G4endl;
666  }
667  }
668 
670  && IsValidYieldType)
671  {
674 
675  G4cout << " -- Yield type set to " << YieldString << G4endl;
676  }
677  }
678 
680 }
#define G4FFG_LOCATION__
G4FissionProductYieldDist * YieldData_
G4GLOB_DLL std::ostream G4cout
bool G4bool
Definition: G4Types.hh:79
#define TRUE
Definition: globals.hh:55
G4FFGEnumerations::YieldType YieldType_
#define G4FFG_FUNCTIONLEAVE__
#define G4endl
Definition: G4ios.hh:61
#define G4FFG_SPACING__
#define G4FFG_FUNCTIONENTER__

Here is the caller graph for this function:

void G4FissionFragmentGenerator::Initialize ( void  )
protected

Initialize is a common function called by all constructors.

Definition at line 75 of file G4FissionFragmentGenerator.cc.

76 {
78 
79  // Initialize the class descriptor variables to the default values. These
80  // will be used unless the user redefines them.
89 
90  // No data class has been created yet
91  YieldData_ = NULL;
93 
95 }
static const G4double AlphaProduction
G4FFGEnumerations::MetaState MetaState_
static const G4FFGEnumerations::FissionSamplingScheme SamplingScheme
G4FissionProductYieldDist * YieldData_
static const G4double TernaryProbability
#define TRUE
Definition: globals.hh:55
G4FFGEnumerations::YieldType YieldType_
static const G4int Isotope
G4FFGEnumerations::FissionSamplingScheme SamplingScheme_
static const G4FFGEnumerations::MetaState MetaState
#define G4FFG_FUNCTIONLEAVE__
static const G4FFGEnumerations::YieldType YieldType
static const G4double ThermalNeutronEnergy
#define G4FFG_FUNCTIONENTER__
static const G4FFGEnumerations::FissionCause FissionCause
G4FFGEnumerations::FissionCause Cause_

Here is the caller graph for this function:

bool G4FissionFragmentGenerator::InitializeFissionProductYieldClass ( std::istringstream &  dataFile)

Initializes a new G4FPY...Dist class based on the class descriptor variables of G4FissionFragmentGenerator.

Definition at line 698 of file G4FissionFragmentGenerator.cc.

699 {
701 
702  if(YieldData_ != NULL)
703  {
704  delete YieldData_;
705 
707  {
710 
711  G4cout << " -- Old yield data class deleted." << G4endl;
712  }
713  }
714 
715  try
716  {
718  {
720  MetaState_,
721  Cause_,
722  YieldType_,
723  Verbosity_,
724  dataStream);
725  } else
726  {
728  MetaState_,
729  Cause_,
730  YieldType_,
731  Verbosity_,
732  dataStream);
733  }
734 
735  if(AlphaProduction_ != 0 && TernaryProbability_ != 0)
736  {
739  }
740 
742  {
745 
746  G4cout << " -- Yield data class constructed with defined values." << G4endl;
747  }
748  } catch (std::exception& e)
749  {
750  YieldData_ = NULL;
751  }
752 
754 
756  return YieldData_;
757 }
G4FFGEnumerations::MetaState MetaState_
void G4SetTernaryProbability(G4double TernaryProbability)
#define G4FFG_LOCATION__
G4FissionProductYieldDist * YieldData_
void G4SetAlphaProduction(G4double WhatAlphaProduction)
G4GLOB_DLL std::ostream G4cout
#define FALSE
Definition: globals.hh:52
G4FFGEnumerations::YieldType YieldType_
G4FFGEnumerations::FissionSamplingScheme SamplingScheme_
#define G4FFG_FUNCTIONLEAVE__
#define G4endl
Definition: G4ios.hh:61
#define G4FFG_SPACING__
#define G4FFG_FUNCTIONENTER__
G4FFGEnumerations::FissionCause Cause_

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

G4double G4FissionFragmentGenerator::AlphaProduction_
protected

Controls whether alpha particles are emitted, and how many

Definition at line 261 of file G4FissionFragmentGenerator.hh.

G4FFGEnumerations::FissionCause G4FissionFragmentGenerator::Cause_
protected

The cause of fission: SPONTANEOUS or N_INDUCED.

Definition at line 253 of file G4FissionFragmentGenerator.hh.

G4double G4FissionFragmentGenerator::IncidentEnergy_
protected

Kinetic energy, if any, of the incident particle in GeV.

Definition at line 255 of file G4FissionFragmentGenerator.hh.

G4int G4FissionFragmentGenerator::Isotope_
protected

Number in ZZZAAA format of the isotope that G4FissionFragmentGenerator references

Definition at line 246 of file G4FissionFragmentGenerator.hh.

G4bool G4FissionFragmentGenerator::IsReconstructionNeeded_
protected

If Isotope_, MetaState_, Cause_, or IncidentEnergy_ are changed in the middle of a run then the class pointed at by YieldData_ will need to be reconstructed

Definition at line 266 of file G4FissionFragmentGenerator.hh.

G4FFGEnumerations::MetaState G4FissionFragmentGenerator::MetaState_
protected

MetaState information of the isotope that G4FissionFragmentGenerator references
A value of 0 refers to the ground state

Definition at line 251 of file G4FissionFragmentGenerator.hh.

G4FFGEnumerations::FissionSamplingScheme G4FissionFragmentGenerator::SamplingScheme_
protected

The sampling scheme that is used: NORMAL, LIGHT_FRAGMENT, or WENDT.

Definition at line 274 of file G4FissionFragmentGenerator.hh.

G4double G4FissionFragmentGenerator::TernaryProbability_
protected

Sets the ternary fission probability. Valid ranges are [0, 1]

Definition at line 259 of file G4FissionFragmentGenerator.hh.

G4int G4FissionFragmentGenerator::Verbosity_
protected

Verbosity level

Definition at line 268 of file G4FissionFragmentGenerator.hh.

G4FissionProductYieldDist* G4FissionFragmentGenerator::YieldData_
protected

Pointer to G4FissionProductYieldDist class that holds all the probabilistic yield data

Definition at line 278 of file G4FissionFragmentGenerator.hh.

G4FFGEnumerations::YieldType G4FissionFragmentGenerator::YieldType_
protected

The type of yield to be used: INDEPENDET or CUMULATIVE

Definition at line 257 of file G4FissionFragmentGenerator.hh.


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