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

#include <G4FissionFragmentGenerator.hh>

Public Member Functions

 G4FissionFragmentGenerator ()
 G4FissionFragmentGenerator (G4int Verbosity)
G4DynamicParticleVectorG4GenerateFission ()
G4DynamicParticleVectorG4GenerateFission (const G4HadProjectile &Projectile)
const std::vector< G4DynamicParticleVector * > G4GenerateFission (G4long NumberOfFissions, const G4HadProjectile &Projectile)
G4IonsG4GenerateFissionProduct ()
G4double G4GetAlphaProduction ()
G4double G4GetTernaryProbability ()
G4FFGEnumerations::FissionCause G4GetCause ()
G4double G4GetIncidentEnergy ()
G4int G4GetIsotope ()
G4FFGEnumerations::MetaState G4GetMetaState ()
G4FFGEnumerations::FissionSamplingScheme G4GetSamplingScheme ()
G4FFGEnumerations::YieldType G4GetYieldType ()
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 ()

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 53 of file G4FissionFragmentGenerator.hh.

Constructor & Destructor Documentation

◆ G4FissionFragmentGenerator() [1/2]

G4FissionFragmentGenerator::G4FissionFragmentGenerator ( )

Default constructor

Definition at line 53 of file G4FissionFragmentGenerator.cc.

54{
55 // Set the default verbosity
56 Verbosity_ = G4FFGDefaultValues::Verbosity;
57
58 // Initialize the class
59 Initialize();
60}

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

63{
64 // Set the verbosity
66
67 // Initialize the class
68 Initialize();
69}

◆ ~G4FissionFragmentGenerator()

G4FissionFragmentGenerator::~G4FissionFragmentGenerator ( )

Default deconstructor

Definition at line 679 of file G4FissionFragmentGenerator.cc.

680{
682
683 delete YieldData_;
684
686}
#define G4FFG_FUNCTIONLEAVE__
#define G4FFG_FUNCTIONENTER__
G4FissionProductYieldDist * YieldData_

Member Function Documentation

◆ G4GenerateFission() [1/3]

G4DynamicParticleVector * G4FissionFragmentGenerator::G4GenerateFission ( )

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

94{
96
97 const G4HadProjectile Projectile(G4DynamicParticle(G4Neutron::Neutron(), G4ThreeVector(0, 0, 0),
98 G4FFGDefaultValues::ThermalNeutronEnergy));
99
100 // Call the overloaded function and generate 1 fission
101 std::vector<G4DynamicParticleVector*> FissionEvent = G4GenerateFission(1, Projectile);
102 G4DynamicParticleVector* Container = FissionEvent[0];
103
105 return Container;
106}
std::vector< G4DynamicParticle * > G4DynamicParticleVector
CLHEP::Hep3Vector G4ThreeVector
G4DynamicParticleVector * G4GenerateFission()
static G4Neutron * Neutron()
Definition G4Neutron.cc:101

Referenced by G4GenerateFission(), and G4GenerateFission().

◆ G4GenerateFission() [2/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 109 of file G4FissionFragmentGenerator.cc.

110{
112
113 // Call the overloaded function and generate 1 fission
114 std::vector<G4DynamicParticleVector*> FissionEvent = G4GenerateFission(1, Projectile);
115 G4DynamicParticleVector* const Container = FissionEvent[0];
116
118 return Container;
119}

◆ G4GenerateFission() [3/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 122 of file G4FissionFragmentGenerator.cc.

124{
126
127 // TK Modified 131107
128 // std::vector< G4DynamicParticleVector* > FissionEvents(NumberOfFissions);
129 std::vector<G4DynamicParticleVector*> FissionEvents(0);
130
131 if (Projectile.GetDefinition() == G4Neutron::Neutron()) {
132 if (static_cast<int>(IsReconstructionNeeded_) == TRUE) {
133 // TODO Eliminate potential need for restructuring during run phase
134 // InitializeFissionProductYieldClass();
135 }
136
137 if (nullptr != YieldData_) {
138 for (G4long i = 0; i < NumberOfFissions; i++) {
139 FissionEvents.push_back(YieldData_->G4GetFission());
140 // FIXME Use particle momentum in balance equation
141 // FissionEvents.push_back(YieldData_->G4GetFission(Projectile.Get4Momentum()));
142 }
143 }
144 }
145 else {
146 FissionEvents.push_back(nullptr);
147 }
148
150 return FissionEvents;
151}
long G4long
Definition G4Types.hh:87
const G4ParticleDefinition * GetDefinition() const
#define TRUE
Definition globals.hh:41

◆ G4GenerateFissionProduct()

G4Ions * G4FissionFragmentGenerator::G4GenerateFissionProduct ( )

Returns a randomly sampled fission product

Definition at line 153 of file G4FissionFragmentGenerator.cc.

154{
156
157 if (static_cast<int>(IsReconstructionNeeded_) == TRUE) {
158 // TODO Eliminate potential need for restructuring during run phase
159 // InitializeFissionProductYieldClass();
160 }
161
162 G4Ions* Product = YieldData_->G4GetFissionProduct();
163
165 return Product;
166}

◆ G4GetAlphaProduction()

G4double G4FissionFragmentGenerator::G4GetAlphaProduction ( )

Returns the production rate of alpha particles for fission events

Definition at line 168 of file G4FissionFragmentGenerator.cc.

◆ G4GetCause()

G4FFGEnumerations::FissionCause G4FissionFragmentGenerator::G4GetCause ( )

Returns the FissionCause of the fission event.

Definition at line 184 of file G4FissionFragmentGenerator.cc.

185{
187
189 return Cause_;
190}
G4FFGEnumerations::FissionCause Cause_

◆ G4GetIncidentEnergy()

G4double G4FissionFragmentGenerator::G4GetIncidentEnergy ( )

Returns the energy of the fission inducing particle.

Definition at line 192 of file G4FissionFragmentGenerator.cc.

◆ G4GetIsotope()

G4int G4FissionFragmentGenerator::G4GetIsotope ( )

Returns the code of the fission isotope in ZZZAAA format.

Definition at line 200 of file G4FissionFragmentGenerator.cc.

◆ G4GetMetaState()

G4FFGEnumerations::MetaState G4FissionFragmentGenerator::G4GetMetaState ( )

Returns the MetaState of the fission isotope.

Definition at line 208 of file G4FissionFragmentGenerator.cc.

209{
211
213 return MetaState_;
214}
G4FFGEnumerations::MetaState MetaState_

◆ G4GetSamplingScheme()

G4FFGEnumerations::FissionSamplingScheme G4FissionFragmentGenerator::G4GetSamplingScheme ( )

Returns the FissionSamplingScheme that is currently in use.

Definition at line 216 of file G4FissionFragmentGenerator.cc.

217{
219
221 return SamplingScheme_;
222}
G4FFGEnumerations::FissionSamplingScheme SamplingScheme_

◆ G4GetTernaryProbability()

G4double G4FissionFragmentGenerator::G4GetTernaryProbability ( )

Returns the probability of ternary fission

Definition at line 176 of file G4FissionFragmentGenerator.cc.

◆ G4GetYieldType()

G4FFGEnumerations::YieldType G4FissionFragmentGenerator::G4GetYieldType ( )

Returns the yield type that is currently in use

Definition at line 224 of file G4FissionFragmentGenerator.cc.

225{
227
229 return YieldType_;
230}
G4FFGEnumerations::YieldType 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 232 of file G4FissionFragmentGenerator.cc.

233{
234 // Sanity check;
235 A %= 1000;
236 Z %= 1000;
237 M %= 10;
238
239 return (A + Z * 1000) * 10 + M;
240}
#define M(row, col)
const G4double A[17]

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

243{
245
246 AlphaProduction_ = WhatAlphaProduction;
247 if (YieldData_ != nullptr) {
248 YieldData_->G4SetAlphaProduction(AlphaProduction_);
249 }
250
254
255 G4cout << " -- Alpha production set to " << AlphaProduction_ << G4endl;
256 }
257
259}
#define G4FFG_LOCATION__
#define G4FFG_SPACING__
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout

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

281{
283
284 G4bool IsValidCause = (WhichCause == G4FFGEnumerations::SPONTANEOUS
285 || WhichCause == G4FFGEnumerations::NEUTRON_INDUCED);
286 G4bool IsSameCause = (Cause_ == WhichCause);
287
288 if (!IsSameCause && IsValidCause) {
289 Cause_ = WhichCause;
291 IncidentEnergy_ = 0;
292 }
294 }
295
297 G4String CauseString;
298 switch (WhichCause) {
300 CauseString = "SPONTANEOUS";
301 break;
303 CauseString = "NEUTRON_INDUCED";
304 break;
306 CauseString = "PROTON_INDUCED";
307 break;
309 CauseString = "GAMMA_INDUCED";
310 break;
311 }
312
316
317 if (IsValidCause) {
318 if (IsSameCause && YieldData_ != nullptr) {
319 G4cout << " -- Already set to use " << CauseString
320 << " as the fission cause. Yield data class will not be reconstructed." << G4endl;
321 }
322 else if (YieldData_ == nullptr) {
323 G4cout << " -- Yield data class not yet constructed. " << CauseString
324 << " will be applied when it is constructed." << G4endl;
325 }
326 }
327 else {
328 G4cout << " -- Invalid cause of fission" << G4endl;
329 }
330 }
331
332 if (((Verbosity_ & G4FFGEnumerations::UPDATES) != 0) && IsValidCause) {
335
336 G4cout << " -- Fission cause set to " << CauseString << "." << G4endl;
337 }
338 }
339
341}
bool G4bool
Definition G4Types.hh:86

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

344{
346
348 IncidentEnergy_ = WhatIncidentEnergy;
349 if (YieldData_ != nullptr) {
350 YieldData_->G4SetEnergy(IncidentEnergy_);
351 }
352 }
353
355 std::ostringstream EnergyString;
356 if (IncidentEnergy_ / GeV > 1) {
357 EnergyString << IncidentEnergy_ / GeV << " GeV";
358 }
359 else if (IncidentEnergy_ / MeV > 1) {
360 EnergyString << IncidentEnergy_ / MeV << " MeV";
361 }
362 else if (IncidentEnergy_ / keV > 1) {
363 EnergyString << IncidentEnergy_ / keV << " keV";
364 }
365 else {
366 EnergyString << IncidentEnergy_ / eV << " eV";
367 }
368
371 {
375
376 G4cout << " -- Cannot set a non-zero energy for spontaneous fission" << G4endl;
377 }
378 else if (YieldData_ == nullptr) {
381
382 G4cout << " -- Yield data class not yet constructed. " << EnergyString.str()
383 << " will be applied when it is constructed." << G4endl;
384 }
385 }
386
389 {
392
393 G4cout << " -- Incident neutron energy set to " << EnergyString.str() << "." << G4endl;
394 }
395 }
396
398}

◆ G4SetIsotope()

void G4FissionFragmentGenerator::G4SetIsotope ( G4int WhichIsotope)

Sets the fission isotope

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

Definition at line 400 of file G4FissionFragmentGenerator.cc.

401{
403
404 G4bool IsSameIsotope = (Isotope_ == WhichIsotope);
405
406 if (!IsSameIsotope) {
407 Isotope_ = WhichIsotope;
409 }
410
413 if (IsSameIsotope && YieldData_ != nullptr) {
416
417 G4cout << " -- Isotope " << Isotope_
418 << " already in use. Yield data class will not be reconstructed." << G4endl;
419 }
420 else if (YieldData_ == nullptr) {
423
424 G4cout << " -- Yield data class not yet constructed. The isotope will be set to "
425 << Isotope_ << " when it is constructed." << G4endl;
426 }
427 }
428
432
433 G4cout << " -- Isotope set to " << Isotope_ << "." << G4endl;
434 }
435 }
436
438}

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

441{
443
444 G4bool IsValidMetaState = (WhichMetaState >= G4FFGEnumerations::MetaStateFirst
445 && WhichMetaState <= G4FFGEnumerations::MetaStateLast);
446 G4bool IsSameMetaState = (MetaState_ == WhichMetaState);
447
448 if (!IsSameMetaState && IsValidMetaState) {
449 MetaState_ = WhichMetaState;
451 }
452
454 G4String MetaName;
455 switch (MetaState_) {
457 MetaName = "GROUND_STATE";
458 break;
459
461 MetaName = "META_1";
462 break;
463
465 MetaName = "META_2";
466 break;
467 }
468
472
473 std::ostringstream Temp;
474 if (IsValidMetaState) {
475 if (IsSameMetaState && YieldData_ != nullptr) {
476 G4cout << " -- Already set to use " << MetaName
477 << " as the metastable state. Yield data class will not be reconstructed"
478 << G4endl;
479 }
480 else if (YieldData_ == nullptr) {
481 G4cout << " -- Yield data class not yet constructed. " << MetaName
482 << " will be applied when it is constructed." << G4endl;
483 }
484 }
485 else {
486 G4cout << " -- Invalid metastable state." << G4endl;
487 }
488 }
489
490 if (((Verbosity_ & G4FFGEnumerations::UPDATES) != 0) && IsValidMetaState) {
493
494 G4cout << " -- Metastable state set to " << MetaName << "." << G4endl;
495 }
496 }
497
499}

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

503{
505
506 G4bool IsValidScheme = (NewScheme >= G4FFGEnumerations::FissionSamplingSchemeFirst
507 && NewScheme <= G4FFGEnumerations::FissionSamplingSchemeLast);
508 G4bool IsSameScheme = (NewScheme == SamplingScheme_);
509
510 if (!IsSameScheme && IsValidScheme) {
511 SamplingScheme_ = NewScheme;
513 }
514
516 G4String SchemeString;
517 switch (SamplingScheme_) {
519 SchemeString = "NORMAL";
520 break;
521
523 SchemeString = "LIGHT_FRAGMENT";
524 break;
525
526 default:
527 SchemeString = "UNSUPPORTED";
528 break;
529 }
530
534
535 if (IsValidScheme) {
536 if (IsSameScheme && YieldData_ != nullptr) {
537 G4cout << " -- Already set to use " << SchemeString
538 << " as the sampling scheme. Yield data class will not be reconstructed."
539 << G4endl;
540 }
541 else if (YieldData_ == nullptr) {
542 G4cout << " -- Yield data class not yet constructed. " << SchemeString
543 << " will be applied when it is constructed." << G4endl;
544 }
545 }
546 else {
547 G4cout << " -- Invalid sampling scheme." << G4endl;
548 }
549 }
550
551 if (((Verbosity_ & G4FFGEnumerations::UPDATES) != 0) && IsValidScheme) {
554
555 G4cout << " -- Sampling scheme set to " << SchemeString << "." << G4endl;
556 }
557 }
558
560}

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

262{
264
265 TernaryProbability_ = WhatTernaryProbability;
266 if (YieldData_ != nullptr) {
267 YieldData_->G4SetTernaryProbability(TernaryProbability_);
268 }
269
273
274 G4cout << " -- Ternary fission probability set to " << TernaryProbability_ << G4endl;
275 }
276
278}

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

620{
622
624
625 if (YieldData_ != nullptr) {
626 YieldData_->G4SetVerbosity(Verbosity_);
627 }
628
630}

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

563{
565
566 G4bool IsValidYieldType = (WhichYieldType == G4FFGEnumerations::INDEPENDENT
567 || WhichYieldType == G4FFGEnumerations::CUMULATIVE);
568 G4bool IsSameYieldType = (YieldType_ == WhichYieldType);
569
570 if (!IsSameYieldType && IsValidYieldType) {
571 YieldType_ = WhichYieldType;
573 }
574
576 G4String YieldString;
577 switch ((int)YieldType_) {
579 YieldString = "INDEPENDENT";
580 break;
581
583 YieldString = "SPONTANEOUS";
584 break;
585
586 default:
587 YieldString = "UNSUPPORTED";
588 break;
589 }
590
594
595 if (IsValidYieldType) {
596 if (IsSameYieldType && YieldData_ != nullptr) {
597 }
598 else if (YieldData_ == nullptr) {
599 G4cout << " -- Yield data class not yet constructed. Yield type " << YieldString
600 << " will be applied when it is constructed." << G4endl;
601 }
602 }
603 else {
604 G4cout << " -- Invalid yield type." << G4endl;
605 }
606 }
607
608 if (((Verbosity_ & G4FFGEnumerations::UPDATES) != 0) && IsValidYieldType) {
611
612 G4cout << " -- Yield type set to " << YieldString << G4endl;
613 }
614 }
615
617}

◆ Initialize()

void G4FissionFragmentGenerator::Initialize ( )
protected

Initialize is a common function called by all constructors.

Definition at line 71 of file G4FissionFragmentGenerator.cc.

72{
74
75 // Initialize the class descriptor variables to the default values. These
76 // will be used unless the user redefines them.
77 Isotope_ = G4FFGDefaultValues::Isotope;
78 MetaState_ = G4FFGDefaultValues::MetaState;
79 Cause_ = G4FFGDefaultValues::FissionCause;
80 IncidentEnergy_ = G4FFGDefaultValues::ThermalNeutronEnergy;
81 YieldType_ = G4FFGDefaultValues::YieldType;
82 TernaryProbability_ = G4FFGDefaultValues::TernaryProbability;
83 AlphaProduction_ = G4FFGDefaultValues::AlphaProduction;
84 SamplingScheme_ = G4FFGDefaultValues::SamplingScheme;
85
86 // No data class has been created yet
87 YieldData_ = nullptr;
89
91}

Referenced by G4FissionFragmentGenerator(), and 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 632 of file G4FissionFragmentGenerator.cc.

633{
635
636 if (YieldData_ != nullptr) {
637 delete YieldData_;
638
642
643 G4cout << " -- Old yield data class deleted." << G4endl;
644 }
645 }
646
647 try {
649 YieldData_ = new G4FPYNormalFragmentDist(Isotope_, MetaState_, Cause_, YieldType_, Verbosity_,
650 dataStream);
651 }
652 else {
653 YieldData_ = new G4FPYBiasedLightFragmentDist(Isotope_, MetaState_, Cause_, YieldType_,
654 Verbosity_, dataStream);
655 }
656
657 if (AlphaProduction_ != 0 && TernaryProbability_ != 0) {
658 YieldData_->G4SetTernaryProbability(TernaryProbability_);
659 YieldData_->G4SetAlphaProduction(AlphaProduction_);
660 }
661
665
666 G4cout << " -- Yield data class constructed with defined values." << G4endl;
667 }
668 }
669 catch (std::exception& e) {
670 YieldData_ = nullptr;
671 }
672
674
676 return YieldData_ != nullptr;
677}
#define FALSE
Definition globals.hh:38

Member Data Documentation

◆ AlphaProduction_

G4double G4FissionFragmentGenerator::AlphaProduction_
protected

Controls whether alpha particles are emitted, and how many

Definition at line 263 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 255 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 257 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 248 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 268 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 253 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 276 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 261 of file G4FissionFragmentGenerator.hh.

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

◆ Verbosity_

◆ YieldData_

◆ YieldType_

G4FFGEnumerations::YieldType G4FissionFragmentGenerator::YieldType_
protected

The type of yield to be used: INDEPENDET or CUMULATIVE

Definition at line 259 of file G4FissionFragmentGenerator.hh.

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


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