Geant4 11.2.2
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 void deExcite(const G4Fragment &target, G4CollisionOutput &output)
virtual G4bool explosion(const G4Fragment &target) const
void printCollisionOutput(std::ostream &os=G4cout) const
const std::vector< G4InuclElementaryParticle > & getOutgoingParticles() const
const G4Fragment & getRecoilFragment(G4int index=0) const
void add(const G4CollisionOutput &right)
void addOutgoingParticles(const std::vector< G4InuclElementaryParticle > &particles)
virtual void deExcite(const G4Fragment &target, G4CollisionOutput &output)
virtual void deExcite(const G4Fragment &target, G4CollisionOutput &output)

◆ 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)
virtual void setVerboseLevel(G4int verbose)

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