Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4CascadeDeexciteBase Class Reference

#include <G4CascadeDeexciteBase.hh>

Inheritance diagram for G4CascadeDeexciteBase:
Collaboration diagram for G4CascadeDeexciteBase:

Public Member Functions

 G4CascadeDeexciteBase (const char *name)
 
virtual ~G4CascadeDeexciteBase ()
 
virtual void setVerboseLevel (G4int verbose=0)
 
- Public Member Functions inherited from G4VCascadeDeexcitation
 G4VCascadeDeexcitation (const G4String &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 G4String &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 G4String &name)
 

Protected Attributes

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 45 of file G4CascadeDeexciteBase.hh.

Constructor & Destructor Documentation

G4CascadeDeexciteBase::G4CascadeDeexciteBase ( const char *  name)

Definition at line 49 of file G4CascadeDeexciteBase.cc.

Here is the call graph for this function:

G4CascadeDeexciteBase::~G4CascadeDeexciteBase ( )
virtual

Definition at line 55 of file G4CascadeDeexciteBase.cc.

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.

110  {
111  return explosion(fragment.GetA_asInt(), fragment.GetZ_asInt(),
112  fragment.GetExcitationEnergy()); // in MeV
113 }
virtual G4bool explosion(const G4Fragment &target) const

Here is the call graph for this function:

Here is the caller graph for this function:

G4bool G4CascadeDeexciteBase::explosion ( G4int  A,
G4int  Z,
G4double  excitation 
) const
protectedvirtual

Definition at line 115 of file G4CascadeDeexciteBase.cc.

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)

Here is the call graph for this function:

void G4CascadeDeexciteBase::getTargetData ( const G4Fragment target)
protected

Definition at line 67 of file G4CascadeDeexciteBase.cc.

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:266
const G4LorentzVector & GetMomentum() const
Definition: G4Fragment.hh:307
static constexpr double GeV
Definition: G4SIunits.hh:217
G4int GetZ_asInt() const
Definition: G4Fragment.hh:271
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:283

Here is the call graph for this function:

Here is the caller graph for this function:

const G4Fragment & G4CascadeDeexciteBase::makeFragment ( G4LorentzVector  mom,
G4int  A,
G4int  Z,
G4double  EX = 0. 
)
protected

Definition at line 87 of file G4CascadeDeexciteBase.cc.

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:375
void setVectM(const Hep3Vector &spatial, double mass)
void SetNumberOfExcitedParticle(G4int valueTot, G4int valueP)
Definition: G4Fragment.hh:356
Hep3Vector vect() const
G4GLOB_DLL std::ostream G4cout
void SetMomentum(const G4LorentzVector &value)
Definition: G4Fragment.hh:312
G4double getNucleiMass() const
void SetZandA_asInt(G4int Znew, G4int Anew)
Definition: G4Fragment.hh:276
static constexpr double GeV
Definition: G4SIunits.hh:217
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

Here is the caller graph for this function:

const G4Fragment & G4CascadeDeexciteBase::makeFragment ( G4int  A,
G4int  Z,
G4double  EX = 0. 
)
protected

Definition at line 82 of file G4CascadeDeexciteBase.cc.

82  {
83  return makeFragment(zero, fragA, fragZ, EX);
84 }
const G4Fragment & makeFragment(G4LorentzVector mom, G4int A, G4int Z, G4double EX=0.)

Here is the call graph for this function:

void G4CascadeDeexciteBase::setVerboseLevel ( G4int  verbose = 0)
virtual

Reimplemented from G4VCascadeCollider.

Reimplemented in G4EquilibriumEvaporator, G4PreCompoundDeexcitation, and G4CascadeDeexcitation.

Definition at line 59 of file G4CascadeDeexciteBase.cc.

59  {
61  if (balance) balance->setVerboseLevel(verbose);
62 }
virtual void setVerboseLevel(G4int verbose=0)
G4CascadeCheckBalance * balance

Here is the call graph for this function:

Here is the caller graph for this function:

G4bool G4CascadeDeexciteBase::validateOutput ( const G4Fragment target,
G4CollisionOutput output 
)
protectedvirtual

Definition at line 131 of file G4CascadeDeexciteBase.cc.

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

Here is the call graph for this function:

Here is the caller graph for this function:

G4bool G4CascadeDeexciteBase::validateOutput ( const G4Fragment target,
const std::vector< G4InuclElementaryParticle > &  particles 
)
protectedvirtual

Definition at line 143 of file G4CascadeDeexciteBase.cc.

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

Here is the call graph for this function:

G4bool G4CascadeDeexciteBase::validateOutput ( const G4Fragment target,
const std::vector< G4InuclNuclei > &  fragments 
)
protectedvirtual

Definition at line 155 of file G4CascadeDeexciteBase.cc.

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

Here is the call graph for this function:

Member Data Documentation

G4int G4CascadeDeexciteBase::A
protected

Definition at line 74 of file G4CascadeDeexciteBase.hh.

G4Fragment G4CascadeDeexciteBase::aFragment
protected

Definition at line 83 of file G4CascadeDeexciteBase.hh.

G4CascadeCheckBalance* G4CascadeDeexciteBase::balance
protected

Definition at line 58 of file G4CascadeDeexciteBase.hh.

G4double G4CascadeDeexciteBase::EEXS
protected

Definition at line 77 of file G4CascadeDeexciteBase.hh.

G4LorentzVector G4CascadeDeexciteBase::PEX
protected

Definition at line 76 of file G4CascadeDeexciteBase.hh.

G4int G4CascadeDeexciteBase::Z
protected

Definition at line 75 of file G4CascadeDeexciteBase.hh.


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