Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4VPreCompoundFragment Class Referenceabstract

#include <G4VPreCompoundFragment.hh>

+ Inheritance diagram for G4VPreCompoundFragment:

Public Member Functions

 G4VPreCompoundFragment (const G4ParticleDefinition *, G4VCoulombBarrier *aCoulombBarrier)
 
virtual ~G4VPreCompoundFragment ()
 
void Initialize (const G4Fragment &aFragment)
 
virtual G4double CalcEmissionProbability (const G4Fragment &aFragment)=0
 
virtual G4double GetKineticEnergy (const G4Fragment &aFragment)=0
 
G4ReactionProductGetReactionProduct () const
 
G4int GetA () const
 
G4int GetZ () const
 
G4int GetRestA () const
 
G4int GetRestZ () const
 
G4double ResidualA13 () const
 
G4double GetCoulombBarrier () const
 
G4double GetBindingEnergy () const
 
G4double GetMaximalKineticEnergy () const
 
G4double GetEnergyThreshold () const
 
G4double GetEmissionProbability () const
 
G4double GetNuclearMass () const
 
G4double GetRestNuclearMass () const
 
G4double GetReducedMass () const
 
const G4LorentzVectorGetMomentum () const
 
void SetMomentum (const G4LorentzVector &value)
 
const G4String GetName () const
 
void SetOPTxs (G4int)
 
void UseSICB (G4bool)
 

Protected Member Functions

G4bool IsItPossible (const G4Fragment &aFragment) const
 

Protected Attributes

G4PreCompoundParameterstheParameters
 
G4Powg4pow
 
G4double theEmissionProbability
 
G4double theCoulombBarrier
 
G4int OPTxs
 
G4bool useSICB
 

Friends

std::ostream & operator<< (std::ostream &, const G4VPreCompoundFragment *)
 
std::ostream & operator<< (std::ostream &, const G4VPreCompoundFragment &)
 

Detailed Description

Definition at line 54 of file G4VPreCompoundFragment.hh.

Constructor & Destructor Documentation

◆ G4VPreCompoundFragment()

G4VPreCompoundFragment::G4VPreCompoundFragment ( const G4ParticleDefinition part,
G4VCoulombBarrier aCoulombBarrier 
)

Definition at line 39 of file G4VPreCompoundFragment.cc.

41 : particle(part), theCoulombBarrierPtr(aCoulombBarrier),
42 theRestNucleusA(0),theRestNucleusZ(0),theBindingEnergy(0.0),
43 theMaximalKineticEnergy(-MeV),theRestNucleusMass(0.0),
44 theReducedMass(0.0),theMomentum(0.,0.,0.,0.),
46 OPTxs(3),useSICB(false)
47{
48 theA = particle->GetBaryonNumber();
49 theZ = G4int(particle->GetPDGCharge()/eplus + 0.1);
50 theMass = particle->GetPDGMass();
53 theRestNucleusA13 = 0;
54}
int G4int
Definition: G4Types.hh:66
G4double GetPDGCharge() const
static G4Pow * GetInstance()
Definition: G4Pow.cc:50
static G4PreCompoundParameters * GetAddress()
G4PreCompoundParameters * theParameters

Referenced by G4VPreCompoundFragment().

◆ ~G4VPreCompoundFragment()

G4VPreCompoundFragment::~G4VPreCompoundFragment ( )
virtual

Definition at line 56 of file G4VPreCompoundFragment.cc.

57{}

Member Function Documentation

◆ CalcEmissionProbability()

virtual G4double G4VPreCompoundFragment::CalcEmissionProbability ( const G4Fragment aFragment)
pure virtual

Implemented in G4HETCFragment, and G4PreCompoundFragment.

◆ GetA()

◆ GetBindingEnergy()

G4double G4VPreCompoundFragment::GetBindingEnergy ( ) const
inline

◆ GetCoulombBarrier()

◆ GetEmissionProbability()

G4double G4VPreCompoundFragment::GetEmissionProbability ( ) const
inline

◆ GetEnergyThreshold()

G4double G4VPreCompoundFragment::GetEnergyThreshold ( ) const
inline

◆ GetKineticEnergy()

virtual G4double G4VPreCompoundFragment::GetKineticEnergy ( const G4Fragment aFragment)
pure virtual

◆ GetMaximalKineticEnergy()

◆ GetMomentum()

const G4LorentzVector & G4VPreCompoundFragment::GetMomentum ( ) const
inline

◆ GetName()

const G4String G4VPreCompoundFragment::GetName ( ) const
inline

◆ GetNuclearMass()

G4double G4VPreCompoundFragment::GetNuclearMass ( ) const
inline

◆ GetReactionProduct()

G4ReactionProduct * G4VPreCompoundFragment::GetReactionProduct ( ) const
inline

◆ GetReducedMass()

G4double G4VPreCompoundFragment::GetReducedMass ( ) const
inline

◆ GetRestA()

◆ GetRestNuclearMass()

G4double G4VPreCompoundFragment::GetRestNuclearMass ( ) const
inline

◆ GetRestZ()

◆ GetZ()

◆ Initialize()

void G4VPreCompoundFragment::Initialize ( const G4Fragment aFragment)

Definition at line 77 of file G4VPreCompoundFragment.cc.

78{
79 theRestNucleusA = aFragment.GetA_asInt() - theA;
80 theRestNucleusZ = aFragment.GetZ_asInt() - theZ;
81
82 if ((theRestNucleusA < theRestNucleusZ) ||
83 (theRestNucleusA < theA) ||
84 (theRestNucleusZ < theZ))
85 {
86 // In order to be sure that emission probability will be 0.
87 theMaximalKineticEnergy = 0.0;
88 return;
89 }
90
91 theRestNucleusA13 = g4pow->Z13(theRestNucleusA);
92
93 // Calculate Coulomb barrier
94 theCoulombBarrier = theCoulombBarrierPtr->
95 GetCoulombBarrier(theRestNucleusA,theRestNucleusZ,
96 aFragment.GetExcitationEnergy());
97
98 // Calculate masses
99 theRestNucleusMass =
100 G4NucleiProperties::GetNuclearMass(theRestNucleusA, theRestNucleusZ);
101 theReducedMass = theRestNucleusMass*theMass/(theRestNucleusMass + theMass);
102
103 // Compute Binding Energies for fragments
104 // needed to separate a fragment from the nucleus
105 theBindingEnergy =
106 theRestNucleusMass + theMass - aFragment.GetGroundStateMass();
107
108 // Compute Maximal Kinetic Energy which can be carried by fragments
109 // after separation - the true assimptotic value
110 G4double Ecm = aFragment.GetMomentum().m();
111 theMaximalKineticEnergy =
112 ((Ecm-theRestNucleusMass)*(Ecm+theRestNucleusMass) + theMass*theMass)/(2.0*Ecm)-theMass;
113}
double G4double
Definition: G4Types.hh:64
G4double GetGroundStateMass() const
Definition: G4Fragment.hh:240
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:235
const G4LorentzVector & GetMomentum() const
Definition: G4Fragment.hh:251
G4int GetZ_asInt() const
Definition: G4Fragment.hh:223
G4int GetA_asInt() const
Definition: G4Fragment.hh:218
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double Z13(G4int Z)
Definition: G4Pow.hh:110
G4double GetCoulombBarrier() const

◆ IsItPossible()

G4bool G4VPreCompoundFragment::IsItPossible ( const G4Fragment aFragment) const
inlineprotected

◆ ResidualA13()

◆ SetMomentum()

void G4VPreCompoundFragment::SetMomentum ( const G4LorentzVector value)
inline

◆ SetOPTxs()

void G4VPreCompoundFragment::SetOPTxs ( G4int  )
inline

◆ UseSICB()

void G4VPreCompoundFragment::UseSICB ( G4bool  )
inline

Friends And Related Function Documentation

◆ operator<< [1/2]

std::ostream & operator<< ( std::ostream &  out,
const G4VPreCompoundFragment theFragment 
)
friend

Definition at line 59 of file G4VPreCompoundFragment.cc.

61{
62 out << &theFragment;
63 return out;
64}

◆ operator<< [2/2]

std::ostream & operator<< ( std::ostream &  out,
const G4VPreCompoundFragment theFragment 
)
friend

Definition at line 66 of file G4VPreCompoundFragment.cc.

68{
69 out
70 << "PreCompoundModel Emitted Fragment: Z= " << theFragment->GetZ()
71 << " A= " << theFragment->GetA()
72 << " Mass(GeV)= " << theFragment->GetNuclearMass()/CLHEP::GeV;
73 return out;
74}
G4double GetNuclearMass() const

Member Data Documentation

◆ g4pow

◆ OPTxs

◆ theCoulombBarrier

◆ theEmissionProbability

G4double G4VPreCompoundFragment::theEmissionProbability
protected

◆ theParameters

◆ useSICB


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