Geant4-11
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
G4FissionFragmentGenerator Class Reference

#include <G4FissionFragmentGenerator.hh>

Public Member Functions

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

Static Public Member Functions

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

Protected Member Functions

void Initialize (void)
 

Protected Attributes

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

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() [1/2]

G4FissionFragmentGenerator::G4FissionFragmentGenerator ( void  )

Default constructor

Definition at line 54 of file G4FissionFragmentGenerator.cc.

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

References Initialize(), G4FFGDefaultValues::Verbosity, and Verbosity_.

◆ G4FissionFragmentGenerator() [2/2]

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 64 of file G4FissionFragmentGenerator.cc.

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

References Initialize(), and Verbosity_.

◆ ~G4FissionFragmentGenerator()

G4FissionFragmentGenerator::~G4FissionFragmentGenerator ( )

Default deconstructor

Definition at line 759 of file G4FissionFragmentGenerator.cc.

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

References G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, and YieldData_.

Member Function Documentation

◆ G4GenerateFission() [1/3]

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 114 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}
std::vector< G4DynamicParticle * > G4DynamicParticleVector
G4DynamicParticleVector * G4GenerateFission(void)

References G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, and G4GenerateFission().

◆ G4GenerateFission() [2/3]

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 127 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:87
#define TRUE
Definition: Globals.hh:27
G4DynamicParticleVector * G4GetFission(void)
const G4ParticleDefinition * GetDefinition() const
static G4Neutron * Neutron()
Definition: G4Neutron.cc:103

References G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, G4FissionProductYieldDist::G4GetFission(), G4HadProjectile::GetDefinition(), IsReconstructionNeeded_, G4Neutron::Neutron(), TRUE, and YieldData_.

◆ G4GenerateFission() [3/3]

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 97 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
static const G4double ThermalNeutronEnergy

References G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, G4GenerateFission(), G4Neutron::Neutron(), and G4FFGDefaultValues::ThermalNeutronEnergy.

Referenced by G4GenerateFission().

◆ G4GenerateFissionProduct()

G4Ions * G4FissionFragmentGenerator::G4GenerateFissionProduct ( void  )

Returns a randomly sampled fission product

Definition at line 161 of file G4FissionFragmentGenerator.cc.

163{
165
167 {
168 // TODO Eliminate potential need for restructuring during run phase
169 //InitializeFissionProductYieldClass();
170 }
171
173
175 return Product;
176}
Definition: G4Ions.hh:52

References G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, G4FissionProductYieldDist::G4GetFissionProduct(), IsReconstructionNeeded_, TRUE, and YieldData_.

◆ G4GetAlphaProduction()

G4double G4FissionFragmentGenerator::G4GetAlphaProduction ( void  )

Returns the production rate of alpha particles for fission events

Definition at line 178 of file G4FissionFragmentGenerator.cc.

References AlphaProduction_, G4FFG_FUNCTIONENTER__, and G4FFG_FUNCTIONLEAVE__.

◆ G4GetCause()

G4FFGEnumerations::FissionCause G4FissionFragmentGenerator::G4GetCause ( void  )

Returns the FissionCause of the fission event.

Definition at line 196 of file G4FissionFragmentGenerator.cc.

198{
200
202 return Cause_;
203}
G4FFGEnumerations::FissionCause Cause_

References Cause_, G4FFG_FUNCTIONENTER__, and G4FFG_FUNCTIONLEAVE__.

◆ G4GetIncidentEnergy()

G4double G4FissionFragmentGenerator::G4GetIncidentEnergy ( void  )

Returns the energy of the fission inducing particle.

Definition at line 205 of file G4FissionFragmentGenerator.cc.

References G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, and IncidentEnergy_.

◆ G4GetIsotope()

G4int G4FissionFragmentGenerator::G4GetIsotope ( void  )

Returns the code of the fission isotope in ZZZAAA format.

Definition at line 214 of file G4FissionFragmentGenerator.cc.

References G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, and Isotope_.

◆ G4GetMetaState()

G4FFGEnumerations::MetaState G4FissionFragmentGenerator::G4GetMetaState ( void  )

Returns the MetaState of the fission isotope.

Definition at line 223 of file G4FissionFragmentGenerator.cc.

225{
227
229 return MetaState_;
230}
G4FFGEnumerations::MetaState MetaState_

References G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, and MetaState_.

◆ G4GetSamplingScheme()

G4FFGEnumerations::FissionSamplingScheme G4FissionFragmentGenerator::G4GetSamplingScheme ( void  )

Returns the FissionSamplingScheme that is currently in use.

Definition at line 232 of file G4FissionFragmentGenerator.cc.

234{
236
238 return SamplingScheme_;
239}
G4FFGEnumerations::FissionSamplingScheme SamplingScheme_

References G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, and SamplingScheme_.

◆ G4GetTernaryProbability()

G4double G4FissionFragmentGenerator::G4GetTernaryProbability ( void  )

Returns the probability of ternary fission

Definition at line 187 of file G4FissionFragmentGenerator.cc.

References G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, and TernaryProbability_.

◆ G4GetYieldType()

G4FFGEnumerations::YieldType G4FissionFragmentGenerator::G4GetYieldType ( void  )

Returns the yield type that is currently in use

Definition at line 241 of file G4FissionFragmentGenerator.cc.

243{
245
247 return YieldType_;
248}
G4FFGEnumerations::YieldType YieldType_

References G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, and YieldType_.

◆ G4MakeIsotopeCode()

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 250 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}
#define M(row, col)
const G4int Z[17]
const G4double A[17]

References A, M, and Z.

Referenced by G4WendtFissionFragmentGenerator::ApplyYourself(), and G4WendtFissionFragmentGenerator::InitializeANucleus().

◆ G4SetAlphaProduction()

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 261 of file G4FissionFragmentGenerator.cc.

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

References AlphaProduction_, G4cout, G4endl, G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, G4FFG_LOCATION__, G4FFG_SPACING__, G4FissionProductYieldDist::G4SetAlphaProduction(), G4FFGEnumerations::UPDATES, Verbosity_, and YieldData_.

◆ G4SetCause()

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 305 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}
bool G4bool
Definition: G4Types.hh:86

References Cause_, G4cout, G4endl, G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, G4FFG_LOCATION__, G4FFG_SPACING__, G4FFGEnumerations::GAMMA_INDUCED, IncidentEnergy_, IsReconstructionNeeded_, G4FFGEnumerations::NEUTRON_INDUCED, G4FFGEnumerations::PROTON_INDUCED, G4FFGEnumerations::SILENT, G4FFGEnumerations::SPONTANEOUS, TRUE, G4FFGEnumerations::UPDATES, Verbosity_, G4FFGEnumerations::WARNING, and YieldData_.

Referenced by G4WendtFissionFragmentGenerator::InitializeANucleus().

◆ G4SetIncidentEnergy()

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 376 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}
static constexpr double keV
Definition: G4SIunits.hh:202
static constexpr double eV
Definition: G4SIunits.hh:201
static constexpr double GeV
Definition: G4SIunits.hh:203
static constexpr double MeV
Definition: G4SIunits.hh:200
void G4SetEnergy(G4double WhatIncidentEnergy)

References Cause_, G4FFGEnumerations::ENERGY_INFO, eV, G4cout, G4endl, G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, G4FFG_LOCATION__, G4FFG_SPACING__, G4FissionProductYieldDist::G4SetEnergy(), GeV, IncidentEnergy_, keV, MeV, G4FFGEnumerations::SILENT, G4FFGEnumerations::SPONTANEOUS, G4FFGEnumerations::UPDATES, Verbosity_, G4FFGEnumerations::WARNING, and YieldData_.

Referenced by G4WendtFissionFragmentGenerator::InitializeANucleus().

◆ G4SetIsotope()

void G4FissionFragmentGenerator::G4SetIsotope ( G4int  WhichIsotope)

Sets the fission isotope

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

Definition at line 439 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}

References G4cout, G4endl, G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, G4FFG_LOCATION__, G4FFG_SPACING__, Isotope_, IsReconstructionNeeded_, G4FFGEnumerations::SILENT, TRUE, G4FFGEnumerations::UPDATES, Verbosity_, G4FFGEnumerations::WARNING, and YieldData_.

Referenced by G4WendtFissionFragmentGenerator::InitializeANucleus().

◆ G4SetMetaState()

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 483 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}
static const G4int MetaStateLast
static const G4int MetaStateFirst

References G4cout, G4endl, G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, G4FFG_LOCATION__, G4FFG_SPACING__, G4FFGEnumerations::GROUND_STATE, IsReconstructionNeeded_, G4FFGEnumerations::META_1, G4FFGEnumerations::META_2, MetaState_, G4FFGEnumerations::MetaStateFirst, G4FFGEnumerations::MetaStateLast, G4FFGEnumerations::SILENT, TRUE, G4FFGEnumerations::UPDATES, Verbosity_, G4FFGEnumerations::WARNING, and YieldData_.

Referenced by G4WendtFissionFragmentGenerator::InitializeANucleus().

◆ G4SetSamplingScheme()

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 550 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}
static const G4int FissionSamplingSchemeFirst
static const G4int FissionSamplingSchemeLast

References G4FFGEnumerations::FissionSamplingSchemeFirst, G4FFGEnumerations::FissionSamplingSchemeLast, G4cout, G4endl, G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, G4FFG_LOCATION__, G4FFG_SPACING__, IsReconstructionNeeded_, G4FFGEnumerations::LIGHT_FRAGMENT, G4FFGEnumerations::NORMAL, SamplingScheme_, G4FFGEnumerations::SILENT, TRUE, G4FFGEnumerations::UPDATES, Verbosity_, G4FFGEnumerations::WARNING, and YieldData_.

Referenced by G4WendtFissionFragmentGenerator::InitializeANucleus().

◆ G4SetTernaryProbability()

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 283 of file G4FissionFragmentGenerator.cc.

285{
287
288 TernaryProbability_ = WhatTernaryProbability;
289 if(YieldData_ != NULL)
290 {
292 }
293
295 {
298
299 G4cout << " -- Ternary fission probability set to " << TernaryProbability_ << G4endl;
300 }
301
303}
void G4SetTernaryProbability(G4double TernaryProbability)

References G4cout, G4endl, G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, G4FFG_LOCATION__, G4FFG_SPACING__, G4FissionProductYieldDist::G4SetTernaryProbability(), TernaryProbability_, G4FFGEnumerations::UPDATES, Verbosity_, and YieldData_.

◆ G4SetVerbosity()

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 682 of file G4FissionFragmentGenerator.cc.

684{
686
688
689 if(YieldData_ != NULL)
690 {
692 }
693
695}
void G4SetVerbosity(G4int WhatVerbosity)

References G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, G4FissionProductYieldDist::G4SetVerbosity(), Verbosity_, and YieldData_.

◆ G4SetYieldType()

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 616 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}

References G4FFGEnumerations::CUMULATIVE, G4cout, G4endl, G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, G4FFG_LOCATION__, G4FFG_SPACING__, G4FFGEnumerations::INDEPENDENT, IsReconstructionNeeded_, G4FFGEnumerations::SILENT, G4FFGEnumerations::SPONTANEOUS, TRUE, G4FFGEnumerations::UPDATES, Verbosity_, G4FFGEnumerations::WARNING, YieldData_, and YieldType_.

Referenced by G4WendtFissionFragmentGenerator::InitializeANucleus().

◆ Initialize()

void G4FissionFragmentGenerator::Initialize ( void  )
protected

Initialize is a common function called by all constructors.

Definition at line 74 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 G4FFGEnumerations::MetaState MetaState
static const G4double TernaryProbability
static const G4FFGEnumerations::FissionCause FissionCause
static const G4double AlphaProduction
static const G4int Isotope
static const G4FFGEnumerations::FissionSamplingScheme SamplingScheme
static const G4FFGEnumerations::YieldType YieldType

References G4FFGDefaultValues::AlphaProduction, AlphaProduction_, Cause_, G4FFGDefaultValues::FissionCause, G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, IncidentEnergy_, G4FFGDefaultValues::Isotope, Isotope_, IsReconstructionNeeded_, G4FFGDefaultValues::MetaState, MetaState_, G4FFGDefaultValues::SamplingScheme, SamplingScheme_, G4FFGDefaultValues::TernaryProbability, TernaryProbability_, G4FFGDefaultValues::ThermalNeutronEnergy, TRUE, YieldData_, G4FFGDefaultValues::YieldType, and YieldType_.

Referenced by G4FissionFragmentGenerator().

◆ InitializeFissionProductYieldClass()

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

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

Definition at line 697 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 {
721 Cause_,
724 dataStream);
725 } else
726 {
729 Cause_,
732 dataStream);
733 }
734
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}
#define FALSE
Definition: Globals.hh:23

References AlphaProduction_, Cause_, FALSE, G4cout, G4endl, G4FFG_FUNCTIONENTER__, G4FFG_FUNCTIONLEAVE__, G4FFG_LOCATION__, G4FFG_SPACING__, G4FissionProductYieldDist::G4SetAlphaProduction(), G4FissionProductYieldDist::G4SetTernaryProbability(), Isotope_, IsReconstructionNeeded_, MetaState_, G4FFGEnumerations::NORMAL, SamplingScheme_, TernaryProbability_, G4FFGEnumerations::UPDATES, Verbosity_, YieldData_, and YieldType_.

Referenced by G4WendtFissionFragmentGenerator::InitializeANucleus().

Field Documentation

◆ AlphaProduction_

G4double G4FissionFragmentGenerator::AlphaProduction_
protected

Controls whether alpha particles are emitted, and how many

Definition at line 261 of file G4FissionFragmentGenerator.hh.

Referenced by G4GetAlphaProduction(), G4SetAlphaProduction(), Initialize(), and InitializeFissionProductYieldClass().

◆ Cause_

G4FFGEnumerations::FissionCause G4FissionFragmentGenerator::Cause_
protected

The cause of fission: SPONTANEOUS or N_INDUCED.

Definition at line 253 of file G4FissionFragmentGenerator.hh.

Referenced by G4GetCause(), G4SetCause(), G4SetIncidentEnergy(), Initialize(), and InitializeFissionProductYieldClass().

◆ IncidentEnergy_

G4double G4FissionFragmentGenerator::IncidentEnergy_
protected

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

Definition at line 255 of file G4FissionFragmentGenerator.hh.

Referenced by G4GetIncidentEnergy(), G4SetCause(), G4SetIncidentEnergy(), and Initialize().

◆ Isotope_

G4int G4FissionFragmentGenerator::Isotope_
protected

Number in ZZZAAA format of the isotope that G4FissionFragmentGenerator references

Definition at line 246 of file G4FissionFragmentGenerator.hh.

Referenced by G4GetIsotope(), G4SetIsotope(), Initialize(), and InitializeFissionProductYieldClass().

◆ IsReconstructionNeeded_

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.

Referenced by G4GenerateFission(), G4GenerateFissionProduct(), G4SetCause(), G4SetIsotope(), G4SetMetaState(), G4SetSamplingScheme(), G4SetYieldType(), Initialize(), and InitializeFissionProductYieldClass().

◆ MetaState_

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.

Referenced by G4GetMetaState(), G4SetMetaState(), Initialize(), and InitializeFissionProductYieldClass().

◆ SamplingScheme_

G4FFGEnumerations::FissionSamplingScheme G4FissionFragmentGenerator::SamplingScheme_
protected

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

Definition at line 274 of file G4FissionFragmentGenerator.hh.

Referenced by G4GetSamplingScheme(), G4SetSamplingScheme(), Initialize(), and InitializeFissionProductYieldClass().

◆ TernaryProbability_

G4double G4FissionFragmentGenerator::TernaryProbability_
protected

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

Definition at line 259 of file G4FissionFragmentGenerator.hh.

Referenced by G4GetTernaryProbability(), G4SetTernaryProbability(), Initialize(), and InitializeFissionProductYieldClass().

◆ Verbosity_

G4int G4FissionFragmentGenerator::Verbosity_
protected

◆ YieldData_

G4FissionProductYieldDist* G4FissionFragmentGenerator::YieldData_
protected

◆ YieldType_

G4FFGEnumerations::YieldType G4FissionFragmentGenerator::YieldType_
protected

The type of yield to be used: INDEPENDET or CUMULATIVE

Definition at line 257 of file G4FissionFragmentGenerator.hh.

Referenced by G4GetYieldType(), G4SetYieldType(), Initialize(), and InitializeFissionProductYieldClass().


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