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

#include <G4CascadeDeexcitation.hh>

Inheritance diagram for G4CascadeDeexcitation:

Public Member Functions

 G4CascadeDeexcitation ()
virtual ~G4CascadeDeexcitation ()
virtual void setVerboseLevel (G4int verbose)
virtual void deExcite (const G4Fragment &fragment, G4CollisionOutput &globalOutput)
Public Member Functions inherited from G4CascadeDeexciteBase
 G4CascadeDeexciteBase (const char *name)
virtual ~G4CascadeDeexciteBase ()
Public Member Functions inherited from G4VCascadeDeexcitation
 G4VCascadeDeexcitation (const G4String &name)
virtual ~G4VCascadeDeexcitation ()
virtual void collide (G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &globalOutput)
Public Member Functions inherited from G4VCascadeCollider
 G4VCascadeCollider (const G4String &name, G4int verbose=0)
virtual ~G4VCascadeCollider ()

Additional Inherited Members

Protected Member Functions inherited from G4CascadeDeexciteBase
virtual G4bool explosion (const G4Fragment &target) const
virtual G4bool explosion (G4int A, G4int Z, G4double excitation) const
virtual G4bool validateOutput (const G4Fragment &target, G4CollisionOutput &output)
virtual G4bool validateOutput (const G4Fragment &target, const std::vector< G4InuclElementaryParticle > &particles)
virtual G4bool validateOutput (const G4Fragment &target, const std::vector< G4InuclNuclei > &fragments)
void getTargetData (const G4Fragment &target)
const G4FragmentmakeFragment (G4LorentzVector mom, G4int A, G4int Z, G4double EX=0.)
const G4FragmentmakeFragment (G4int A, G4int Z, G4double EX=0.)
Protected Member Functions inherited from G4VCascadeCollider
virtual void setName (const G4String &name)
Protected Attributes inherited from G4CascadeDeexciteBase
G4CascadeCheckBalancebalance
G4int A
G4int Z
G4LorentzVector PEX
G4double EEXS
G4Fragment aFragment
Protected Attributes inherited from G4VCascadeCollider
G4String theName
G4int verboseLevel

Detailed Description

Definition at line 48 of file G4CascadeDeexcitation.hh.

Constructor & Destructor Documentation

◆ G4CascadeDeexcitation()

G4CascadeDeexcitation::G4CascadeDeexcitation ( )

Definition at line 46 of file G4CascadeDeexcitation.cc.

47 : G4CascadeDeexciteBase("G4CascadeDeexcitation"),
48 theBigBanger(new G4BigBanger),
49 theNonEquilibriumEvaporator(new G4NonEquilibriumEvaporator),
50 theEquilibriumEvaporator(new G4EquilibriumEvaporator) {}
G4CascadeDeexciteBase(const char *name)

◆ ~G4CascadeDeexcitation()

G4CascadeDeexcitation::~G4CascadeDeexcitation ( )
virtual

Definition at line 52 of file G4CascadeDeexcitation.cc.

52 {
53 delete theBigBanger;
54 delete theNonEquilibriumEvaporator;
55 delete theEquilibriumEvaporator;
56}

Member Function Documentation

◆ deExcite()

void G4CascadeDeexcitation::deExcite ( const G4Fragment & fragment,
G4CollisionOutput & globalOutput )
virtual

Implements G4VCascadeDeexcitation.

Definition at line 68 of file G4CascadeDeexcitation.cc.

69 {
70 if (verboseLevel) {
71 G4cout << " >>> G4CascadeDeexcitation::deExcite" << G4endl;
72 }
73
74 if (verboseLevel > 1) G4cout << fragment << G4endl;
75
76 // Check if fragment should be broken up
77 if (explosion(fragment)) {
78 if (verboseLevel > 1) G4cout << " big bang after cascade " << G4endl;
79
80 // Add result of explosion directly to output and exit
81 theBigBanger->deExcite(fragment, globalOutput);
82 return;
83 }
84
85 // Fragment is unstable nucleus
86 tempOutput.reset();
87 theNonEquilibriumEvaporator->deExcite(fragment, tempOutput);
88
89 if (verboseLevel > 1) {
90 G4cout << " After NonEquilibriumEvaporator " << G4endl;
91 tempOutput.printCollisionOutput(G4cout);
92 }
93
94 // Copy evaporated particles (not nuclear fragment) to output
95 globalOutput.addOutgoingParticles(tempOutput.getOutgoingParticles());
96
97 // Use nuclear fragment left from non-equilibrium for next step
98 // NOTE: Must make a copy before reset occurs below
99 G4Fragment newfrag = tempOutput.getRecoilFragment();
100
101 tempOutput.reset();
102 theEquilibriumEvaporator->deExcite(newfrag, tempOutput);
103
104 if (verboseLevel > 1) {
105 G4cout << " After EquilibriumEvaporator " << G4endl;
106 tempOutput.printCollisionOutput(G4cout);
107 }
108
109 globalOutput.add(tempOutput); // Evaporated particles and nucleus
110}
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
virtual G4bool explosion(const G4Fragment &target) const
void add(const G4CollisionOutput &right)
void addOutgoingParticles(const std::vector< G4InuclElementaryParticle > &particles)

◆ setVerboseLevel()

void G4CascadeDeexcitation::setVerboseLevel ( G4int verbose)
virtual

Reimplemented from G4CascadeDeexciteBase.

Definition at line 58 of file G4CascadeDeexcitation.cc.

58 {
60 theBigBanger->setVerboseLevel(verbose);
61 theNonEquilibriumEvaporator->setVerboseLevel(verbose);
62 theEquilibriumEvaporator->setVerboseLevel(verbose);
63}
virtual void setVerboseLevel(G4int verbose=0)

Referenced by G4InuclCollider::useCascadeDeexcitation().


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