Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes
G4CascadeDeexciteBase Class Reference

#include <G4CascadeDeexciteBase.hh>

Inheritance diagram for G4CascadeDeexciteBase:
G4VCascadeDeexcitation G4VCascadeCollider G4BigBanger G4CascadeDeexcitation G4EquilibriumEvaporator G4EvaporationInuclCollider G4Fissioner G4NonEquilibriumEvaporator G4PreCompoundDeexcitation

Public Member Functions

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

Protected Member Functions

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 char *name)
 

Protected Attributes

G4CascadeCheckBalancebalance
 
G4int A
 
G4int Z
 
G4LorentzVector PEX
 
G4double EEXS
 
G4Fragment aFragment
 
- Protected Attributes inherited from G4VCascadeCollider
const char * theName
 
G4int verboseLevel
 

Detailed Description

Definition at line 45 of file G4CascadeDeexciteBase.hh.

Constructor & Destructor Documentation

G4CascadeDeexciteBase::G4CascadeDeexciteBase ( const char *  name)
G4CascadeDeexciteBase::~G4CascadeDeexciteBase ( )
virtual

Definition at line 55 of file G4CascadeDeexciteBase.cc.

References balance.

55  {
56  delete balance;
57 }
G4CascadeCheckBalance * balance

Member Function Documentation

G4bool G4CascadeDeexciteBase::explosion ( const G4Fragment target) const
protectedvirtual

Definition at line 110 of file G4CascadeDeexciteBase.cc.

References G4Fragment::GetA_asInt(), G4Fragment::GetExcitationEnergy(), and G4Fragment::GetZ_asInt().

Referenced by G4CascadeDeexcitation::deExcite(), and G4PreCompoundDeexcitation::deExcite().

110  {
111  return explosion(fragment.GetA_asInt(), fragment.GetZ_asInt(),
112  fragment.GetExcitationEnergy()); // in MeV
113 }
virtual G4bool explosion(const G4Fragment &target) const
G4bool G4CascadeDeexciteBase::explosion ( G4int  A,
G4int  Z,
G4double  excitation 
) const
protectedvirtual

Definition at line 115 of file G4CascadeDeexciteBase.cc.

References G4InuclSpecialFunctions::bindingEnergy(), G4cout, G4endl, G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

116  {
117  if (verboseLevel) G4cout << " >>> " << theName << "::explosion ?" << G4endl;
118 
119  const G4int a_cut = 20;
120  const G4double be_cut = 3.0;
121 
122  // Neutron balls, or small fragments with high excitations can explode
123  return ((fragA <= a_cut || fragZ==0) &&
124  (excitation >= be_cut * bindingEnergy(fragA,fragZ))
125  );
126 }
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4double bindingEnergy(G4int A, G4int Z)
void G4CascadeDeexciteBase::getTargetData ( const G4Fragment target)
protected

Definition at line 67 of file G4CascadeDeexciteBase.cc.

References A, EEXS, G4Fragment::GetA_asInt(), G4Fragment::GetExcitationEnergy(), G4Fragment::GetMomentum(), G4Fragment::GetZ_asInt(), python.hepunit::GeV, PEX, and Z.

Referenced by G4NonEquilibriumEvaporator::deExcite(), G4BigBanger::deExcite(), and G4EquilibriumEvaporator::deExcite().

67  {
68  A = target.GetA_asInt();
69  Z = target.GetZ_asInt();
70  PEX = target.GetMomentum()/GeV; // Convert from G4 to Bertini units
71  EEXS = target.GetExcitationEnergy();
72 }
G4int GetA_asInt() const
Definition: G4Fragment.hh:238
const G4LorentzVector & GetMomentum() const
Definition: G4Fragment.hh:271
G4int GetZ_asInt() const
Definition: G4Fragment.hh:243
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:255
const G4Fragment & G4CascadeDeexciteBase::makeFragment ( G4LorentzVector  mom,
G4int  A,
G4int  Z,
G4double  EX = 0. 
)
protected

Definition at line 87 of file G4CascadeDeexciteBase.cc.

References aFragment, G4cout, G4endl, G4InuclNuclei::getNucleiMass(), python.hepunit::GeV, G4Fragment::SetMomentum(), G4Fragment::SetNumberOfExcitedParticle(), G4Fragment::SetNumberOfHoles(), CLHEP::HepLorentzVector::setVectM(), G4Fragment::SetZandA_asInt(), G4VCascadeCollider::theName, CLHEP::HepLorentzVector::vect(), and G4VCascadeCollider::verboseLevel.

Referenced by G4NonEquilibriumEvaporator::deExcite(), G4EquilibriumEvaporator::deExcite(), and makeFragment().

88  {
89  if (verboseLevel>2) {
90  G4cout << " >>> " << theName << "::makeFragment " << mom << " " << fragA
91  << " " << fragZ << " " << EX << G4endl;
92  }
93 
94  // Adjust four-momentum so that mass is nucleus + excitation
95  G4double mass =
96  G4InuclNuclei::getNucleiMass(fragA,fragZ) + EX/GeV;
97  mom.setVectM(mom.vect(), mass);
98 
99  // Overwrite previous fragment contents, zeroing out excitons
100  aFragment.SetZandA_asInt(fragZ, fragA);
101  aFragment.SetMomentum(mom*GeV); // Bertini uses GeV!
104 
105  return aFragment;
106 }
void SetNumberOfHoles(G4int valueTot, G4int valueP=0)
Definition: G4Fragment.hh:355
void setVectM(const Hep3Vector &spatial, double mass)
void SetNumberOfExcitedParticle(G4int valueTot, G4int valueP)
Definition: G4Fragment.hh:336
Hep3Vector vect() const
G4GLOB_DLL std::ostream G4cout
void SetMomentum(const G4LorentzVector &value)
Definition: G4Fragment.hh:276
G4double getNucleiMass() const
void SetZandA_asInt(G4int Znew, G4int Anew)
Definition: G4Fragment.hh:248
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
const G4Fragment & G4CascadeDeexciteBase::makeFragment ( G4int  A,
G4int  Z,
G4double  EX = 0. 
)
protected

Definition at line 82 of file G4CascadeDeexciteBase.cc.

References makeFragment().

82  {
83  return makeFragment(zero, fragA, fragZ, EX);
84 }
const G4Fragment & makeFragment(G4LorentzVector mom, G4int A, G4int Z, G4double EX=0.)
void G4CascadeDeexciteBase::setVerboseLevel ( G4int  verbose = 0)
virtual
G4bool G4CascadeDeexciteBase::validateOutput ( const G4Fragment target,
G4CollisionOutput output 
)
protectedvirtual

Definition at line 131 of file G4CascadeDeexciteBase.cc.

References balance, G4CascadeCheckBalance::collide(), G4cout, G4endl, G4CascadeCheckBalance::okay(), G4VCascadeCollider::setVerboseLevel(), G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

Referenced by G4NonEquilibriumEvaporator::deExcite(), G4BigBanger::deExcite(), and G4EquilibriumEvaporator::deExcite().

132  {
133  if (!balance) return true; // Skip checks unless requested
134 
135  if (verboseLevel > 1)
136  G4cout << " >>> " << theName << "::validateOutput" << G4endl;
137 
139  balance->collide(target, output);
140  return balance->okay(); // Returns false if violations
141 }
void collide(G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &output)
virtual void setVerboseLevel(G4int verbose=0)
G4GLOB_DLL std::ostream G4cout
G4CascadeCheckBalance * balance
#define G4endl
Definition: G4ios.hh:61
G4bool G4CascadeDeexciteBase::validateOutput ( const G4Fragment target,
const std::vector< G4InuclElementaryParticle > &  particles 
)
protectedvirtual

Definition at line 143 of file G4CascadeDeexciteBase.cc.

References balance, G4CascadeCheckBalance::collide(), G4cout, G4endl, G4CascadeCheckBalance::okay(), G4VCascadeCollider::setVerboseLevel(), G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

144  {
145  if (!balance) return true; // Skip checks unless requested
146 
147  if (verboseLevel > 1)
148  G4cout << " >>> " << theName << "::validateOutput" << G4endl;
149 
151  balance->collide(target, particles);
152  return balance->okay(); // Returns false if violations
153 }
void collide(G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &output)
virtual void setVerboseLevel(G4int verbose=0)
G4GLOB_DLL std::ostream G4cout
G4CascadeCheckBalance * balance
#define G4endl
Definition: G4ios.hh:61
G4bool G4CascadeDeexciteBase::validateOutput ( const G4Fragment target,
const std::vector< G4InuclNuclei > &  fragments 
)
protectedvirtual

Definition at line 155 of file G4CascadeDeexciteBase.cc.

References balance, G4CascadeCheckBalance::collide(), G4cout, G4endl, G4CascadeCheckBalance::okay(), G4VCascadeCollider::setVerboseLevel(), G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

156  {
157  if (!balance) return true; // Skip checks unless requested
158 
159  if (verboseLevel > 1)
160  G4cout << " >>> " << theName << "::validateOutput" << G4endl;
161 
163  balance->collide(target, fragments);
164  return balance->okay(); // Returns false if violations
165 }
void collide(G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &output)
virtual void setVerboseLevel(G4int verbose=0)
G4GLOB_DLL std::ostream G4cout
G4CascadeCheckBalance * balance
#define G4endl
Definition: G4ios.hh:61

Field Documentation

G4int G4CascadeDeexciteBase::A
protected
G4Fragment G4CascadeDeexciteBase::aFragment
protected

Definition at line 83 of file G4CascadeDeexciteBase.hh.

Referenced by makeFragment().

G4CascadeCheckBalance* G4CascadeDeexciteBase::balance
protected
G4double G4CascadeDeexciteBase::EEXS
protected
G4LorentzVector G4CascadeDeexciteBase::PEX
protected
G4int G4CascadeDeexciteBase::Z
protected

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