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

#include <G4CascadeDeexcitation.hh>

Inheritance diagram for G4CascadeDeexcitation:
Collaboration 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 49 of file G4CascadeDeexcitation.hh.

Constructor & Destructor Documentation

G4CascadeDeexcitation::G4CascadeDeexcitation ( )

Definition at line 47 of file G4CascadeDeexcitation.cc.

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

Definition at line 53 of file G4CascadeDeexcitation.cc.

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

Member Function Documentation

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

Implements G4VCascadeDeexcitation.

Definition at line 69 of file G4CascadeDeexcitation.cc.

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

Here is the call graph for this function:

void G4CascadeDeexcitation::setVerboseLevel ( G4int  verbose)
virtual

Reimplemented from G4CascadeDeexciteBase.

Definition at line 59 of file G4CascadeDeexcitation.cc.

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

Here is the call graph for this function:


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