Geant4-11
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
G4HETCChargedFragment Class Referenceabstract

#include <G4HETCChargedFragment.hh>

Inheritance diagram for G4HETCChargedFragment:
G4HETCFragment G4VPreCompoundFragment G4HETCAlpha G4HETCDeuteron G4HETCHe3 G4HETCProton G4HETCTriton

Public Member Functions

G4double CalcEmissionProbability (const G4Fragment &aFragment)
 
 G4HETCChargedFragment (const G4ParticleDefinition *, G4VCoulombBarrier *aCoulombBarrier)
 
G4int GetA () const
 
G4double GetBindingEnergy () const
 
G4double GetEmissionProbability () const
 
G4double GetEnergyThreshold () const
 
const G4LorentzVector & GetMomentum () const
 
G4double GetNuclearMass () const
 
G4ReactionProduct * GetReactionProduct () const
 
G4int GetRestA () const
 
G4double GetRestNuclearMass () const
 
G4int GetRestZ () const
 
G4int GetZ () const
 
void Initialize (const G4Fragment &aFragment)
 
G4bool IsItPossible (const G4Fragment &aFragment) const
 
G4bool operator!= (const G4VPreCompoundFragment &right) const =delete
 
G4bool operator== (const G4VPreCompoundFragment &right) const =delete
 
virtual G4double SampleKineticEnergy (const G4Fragment &aFragment)
 
void SetMomentum (const G4LorentzVector &value)
 
void SetOPTxs (G4int)
 
void UseSICB (G4bool)
 
virtual ~G4HETCChargedFragment ()
 

Protected Member Functions

G4double BetaRand (G4int N, G4int L) const
 
virtual G4double GetAlpha () const =0
 
virtual G4double GetBeta () const =0
 
virtual G4double GetSpinFactor () const =0
 
virtual G4double K (const G4Fragment &aFragment)=0
 

Protected Attributes

G4NuclearLevelData * fNucData
 
G4Pow * g4calc
 
G4int OPTxs
 
G4int theA
 
G4double theBindingEnergy
 
G4double theCoulombBarrier
 
G4double theEmissionProbability
 
G4int theFragA
 
G4int theFragZ
 
G4double theMass
 
G4double theMaxKinEnergy
 
G4double theMinKinEnergy
 
G4DeexPrecoParameters * theParameters
 
G4double theReducedMass
 
G4int theResA
 
G4double theResA13
 
G4double theResMass
 
G4int theResZ
 
G4int theZ
 
G4bool useSICB
 

Private Member Functions

 G4HETCChargedFragment ()
 
 G4HETCChargedFragment (const G4HETCChargedFragment &right)
 
G4double IntegrateEmissionProbability (G4double &Low, G4double &Up, const G4Fragment &aFragment)
 
G4bool operator!= (const G4HETCChargedFragment &right) const
 
const G4HETCChargedFragment & operator= (const G4HETCChargedFragment &right)
 
G4bool operator== (const G4HETCChargedFragment &right) const
 

Private Attributes

const G4ParticleDefinition * particle
 
G4double r2norm
 
G4VCoulombBarrier * theCoulombBarrierPtr
 
G4LorentzVector theMomentum
 

Detailed Description

Definition at line 34 of file G4HETCChargedFragment.hh.

Constructor & Destructor Documentation

◆ G4HETCChargedFragment() [1/3]

G4HETCChargedFragment::G4HETCChargedFragment ( const G4ParticleDefinition *  pd,
G4VCoulombBarrier *  aCoulombBarrier 
)

Definition at line 39 of file G4HETCChargedFragment.cc.

41 : G4HETCFragment(pd, aCoulombBarrier)
42{}

◆ ~G4HETCChargedFragment()

G4HETCChargedFragment::~G4HETCChargedFragment ( )
virtual

Definition at line 44 of file G4HETCChargedFragment.cc.

45{}

◆ G4HETCChargedFragment() [2/3]

G4HETCChargedFragment::G4HETCChargedFragment ( )
private

◆ G4HETCChargedFragment() [3/3]

G4HETCChargedFragment::G4HETCChargedFragment ( const G4HETCChargedFragment &  right)
private

Member Function Documentation

◆ BetaRand()

G4double G4HETCFragment::BetaRand ( G4int  N,
G4int  L 
) const
inlineprotectedinherited

Definition at line 78 of file G4HETCFragment.hh.

79{
82
83 return Y1/(Y1+Y2);
84}
static constexpr double L
Definition: G4SIunits.hh:104
double G4double
Definition: G4Types.hh:83
ThreeVector shoot(const G4int Ap, const G4int Af)

References L, and G4INCL::DeJongSpin::shoot().

Referenced by SampleKineticEnergy(), and G4HETCNeutron::SampleKineticEnergy().

◆ CalcEmissionProbability()

G4double G4HETCFragment::CalcEmissionProbability ( const G4Fragment &  aFragment)
virtualinherited

Implements G4VPreCompoundFragment.

Definition at line 50 of file G4HETCFragment.cc.

52{
53 if (GetEnergyThreshold() <= 0.0)
54 {
56 return 0.0;
57 }
58 // Coulomb barrier is the lower limit
59 // of integration over kinetic energy
62
64}
G4double IntegrateEmissionProbability(G4double &Low, G4double &Up, const G4Fragment &aFragment)
G4double GetEnergyThreshold() const

References G4VPreCompoundFragment::GetEnergyThreshold(), G4HETCFragment::IntegrateEmissionProbability(), G4VPreCompoundFragment::theCoulombBarrier, G4VPreCompoundFragment::theEmissionProbability, and G4VPreCompoundFragment::theMaxKinEnergy.

◆ GetA()

G4int G4VPreCompoundFragment::GetA ( ) const
inlineinherited

◆ GetAlpha()

virtual G4double G4HETCFragment::GetAlpha ( ) const
protectedpure virtualinherited

◆ GetBeta()

virtual G4double G4HETCFragment::GetBeta ( ) const
protectedpure virtualinherited

◆ GetBindingEnergy()

G4double G4VPreCompoundFragment::GetBindingEnergy ( ) const
inlineinherited

◆ GetEmissionProbability()

G4double G4VPreCompoundFragment::GetEmissionProbability ( ) const
inlineinherited

◆ GetEnergyThreshold()

G4double G4VPreCompoundFragment::GetEnergyThreshold ( ) const
inlineinherited

◆ GetMomentum()

const G4LorentzVector & G4VPreCompoundFragment::GetMomentum ( ) const
inlineinherited

◆ GetNuclearMass()

G4double G4VPreCompoundFragment::GetNuclearMass ( ) const
inlineinherited

◆ GetReactionProduct()

G4ReactionProduct * G4VPreCompoundFragment::GetReactionProduct ( ) const
inlineinherited

◆ GetRestA()

G4int G4VPreCompoundFragment::GetRestA ( ) const
inlineinherited

◆ GetRestNuclearMass()

G4double G4VPreCompoundFragment::GetRestNuclearMass ( ) const
inlineinherited

◆ GetRestZ()

G4int G4VPreCompoundFragment::GetRestZ ( ) const
inlineinherited

◆ GetSpinFactor()

virtual G4double G4HETCFragment::GetSpinFactor ( ) const
protectedpure virtualinherited

◆ GetZ()

G4int G4VPreCompoundFragment::GetZ ( ) const
inlineinherited

◆ Initialize()

void G4VPreCompoundFragment::Initialize ( const G4Fragment &  aFragment)
inherited

Definition at line 79 of file G4VPreCompoundFragment.cc.

80{
81 theFragA = aFragment.GetA_asInt();
82 theFragZ = aFragment.GetZ_asInt();
85
87 if ((theResA < theResZ) || (theResA < theA) || (theResZ < theZ)) {
88 return;
89 }
90
93 GetCoulombBarrier(theResA,theResZ,aFragment.GetExcitationEnergy());
94
96
97 // Calculate masses
100
101 // Compute Binding Energies for fragments
102 // needed to separate a fragment from the nucleus
104
105 // Compute Maximal Kinetic Energy which can be carried by fragments
106 // after separation - the true assimptotic value
107 G4double Ecm = aFragment.GetMomentum().m();
108 G4double twoEcm = Ecm + Ecm;
110 /twoEcm - theMass,0.0);
111 theMinKinEnergy = (elim == 0.0) ? 0.0 :
112 std::max(((theMass+elim)*(twoEcm-theMass-elim) +
113 theMass*theMass)/twoEcm - theMass,0.0);
114}
G4double GetGroundStateMass() const
Definition: G4Fragment.hh:304
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:299
const G4LorentzVector & GetMomentum() const
Definition: G4Fragment.hh:323
G4int GetZ_asInt() const
Definition: G4Fragment.hh:276
G4int GetA_asInt() const
Definition: G4Fragment.hh:271
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double Z13(G4int Z) const
Definition: G4Pow.hh:123
G4VCoulombBarrier * theCoulombBarrierPtr
T max(const T t1, const T t2)
brief Return the largest of the two arguments

References G4VPreCompoundFragment::g4calc, G4Fragment::GetA_asInt(), G4Fragment::GetExcitationEnergy(), G4Fragment::GetGroundStateMass(), G4Fragment::GetMomentum(), G4NucleiProperties::GetNuclearMass(), G4Fragment::GetZ_asInt(), CLHEP::HepLorentzVector::m(), G4INCL::Math::max(), G4VPreCompoundFragment::OPTxs, G4VPreCompoundFragment::theA, G4VPreCompoundFragment::theBindingEnergy, G4VPreCompoundFragment::theCoulombBarrier, G4VPreCompoundFragment::theCoulombBarrierPtr, G4VPreCompoundFragment::theFragA, G4VPreCompoundFragment::theFragZ, G4VPreCompoundFragment::theMass, G4VPreCompoundFragment::theMaxKinEnergy, G4VPreCompoundFragment::theMinKinEnergy, G4VPreCompoundFragment::theReducedMass, G4VPreCompoundFragment::theResA, G4VPreCompoundFragment::theResA13, G4VPreCompoundFragment::theResMass, G4VPreCompoundFragment::theResZ, G4VPreCompoundFragment::theZ, and G4Pow::Z13().

◆ IntegrateEmissionProbability()

G4double G4HETCFragment::IntegrateEmissionProbability ( G4double &  Low,
G4double &  Up,
const G4Fragment &  aFragment 
)
privateinherited

Definition at line 66 of file G4HETCFragment.cc.

69{
70 G4double U = aFragment.GetExcitationEnergy();
71
72 G4int P = aFragment.GetNumberOfParticles();
73 G4int H = aFragment.GetNumberOfHoles();
74 G4int N = P + H;
75 G4int Pb = P - theA;
76 G4int Nb = Pb + H;
77 if (Nb <= 0.0) { return 0.0; }
78
81
82 G4double A = G4double(P*P+H*H+P-3*H)/(4.0*ga);
83 G4double Ab = G4double(Pb*Pb+H*H+Pb-3*H)/(4.0*gb);
84 U = std::max(U-A,0.0);
85 if (U <= 0.0) { return 0.0; }
86
87 G4int Pf = P;
88 G4int Hf = H;
89 G4int Nf = N-1;
90 for (G4int i = 1; i < theA; ++i)
91 {
92 Pf *= (P-i);
93 Hf *= (H-i);
94 Nf *= (N-1-i);
95 }
96
97 G4double X = std::max(Up - Ab + GetBeta(),0.0);
98 G4double Y = std::max(Up - Ab - Low, 0.0);
99
101 *g4calc->Z23(theResA)*Pf*Hf*Nf*K(aFragment)*(X/Nb - Y/(Nb+1))
102 *U*g4calc->powN(gb*Y,Nb)/g4calc->powN(ga*U,N);
103
104 return Probability;
105}
G4double Y(G4double density)
static constexpr double pi2
Definition: G4SIunits.hh:58
int G4int
Definition: G4Types.hh:85
const G4double A[17]
G4int GetNumberOfParticles() const
Definition: G4Fragment.hh:361
G4int GetNumberOfHoles() const
Definition: G4Fragment.hh:381
virtual G4double GetSpinFactor() const =0
virtual G4double K(const G4Fragment &aFragment)=0
virtual G4double GetAlpha() const =0
virtual G4double GetBeta() const =0
G4double GetLevelDensity(G4int Z, G4int A, G4double U)
G4double powN(G4double x, G4int n) const
Definition: G4Pow.cc:166
G4double Z23(G4int Z) const
Definition: G4Pow.hh:125
G4NuclearLevelData * fNucData
const G4double Pf
Fermi momentum [MeV/c].
static double P[]

References A, G4VPreCompoundFragment::fNucData, G4VPreCompoundFragment::g4calc, G4HETCFragment::GetAlpha(), G4HETCFragment::GetBeta(), G4Fragment::GetExcitationEnergy(), G4NuclearLevelData::GetLevelDensity(), G4Fragment::GetNumberOfHoles(), G4Fragment::GetNumberOfParticles(), G4HETCFragment::GetSpinFactor(), G4HETCFragment::K(), G4INCL::Math::max(), P, G4INCL::PhysicalConstants::Pf, pi2, G4Pow::powN(), G4HETCFragment::r2norm, G4VPreCompoundFragment::theA, G4VPreCompoundFragment::theFragA, G4VPreCompoundFragment::theFragZ, G4VPreCompoundFragment::theReducedMass, G4VPreCompoundFragment::theResA, G4VPreCompoundFragment::theResZ, Y(), and G4Pow::Z23().

Referenced by G4HETCFragment::CalcEmissionProbability().

◆ IsItPossible()

G4bool G4VPreCompoundFragment::IsItPossible ( const G4Fragment &  aFragment) const
inlineinherited

◆ K()

virtual G4double G4HETCFragment::K ( const G4Fragment &  aFragment)
protectedpure virtualinherited

◆ operator!=() [1/2]

G4bool G4HETCChargedFragment::operator!= ( const G4HETCChargedFragment &  right) const
private

◆ operator!=() [2/2]

G4bool G4VPreCompoundFragment::operator!= ( const G4VPreCompoundFragment &  right) const
deleteinherited

◆ operator=()

const G4HETCChargedFragment & G4HETCChargedFragment::operator= ( const G4HETCChargedFragment &  right)
private

◆ operator==() [1/2]

G4bool G4HETCChargedFragment::operator== ( const G4HETCChargedFragment &  right) const
private

◆ operator==() [2/2]

G4bool G4VPreCompoundFragment::operator== ( const G4VPreCompoundFragment &  right) const
deleteinherited

◆ SampleKineticEnergy()

G4double G4HETCChargedFragment::SampleKineticEnergy ( const G4Fragment &  aFragment)
virtual

◆ SetMomentum()

void G4VPreCompoundFragment::SetMomentum ( const G4LorentzVector &  value)
inlineinherited

◆ SetOPTxs()

void G4VPreCompoundFragment::SetOPTxs ( G4int  )
inlineinherited

◆ UseSICB()

void G4VPreCompoundFragment::UseSICB ( G4bool  )
inlineinherited

Field Documentation

◆ fNucData

G4NuclearLevelData* G4VPreCompoundFragment::fNucData
protectedinherited

◆ g4calc

G4Pow* G4VPreCompoundFragment::g4calc
protectedinherited

◆ OPTxs

G4int G4VPreCompoundFragment::OPTxs
protectedinherited

◆ particle

const G4ParticleDefinition* G4VPreCompoundFragment::particle
privateinherited

◆ r2norm

G4double G4HETCFragment::r2norm
privateinherited

◆ theA

G4int G4VPreCompoundFragment::theA
protectedinherited

◆ theBindingEnergy

G4double G4VPreCompoundFragment::theBindingEnergy
protectedinherited

◆ theCoulombBarrier

G4double G4VPreCompoundFragment::theCoulombBarrier
protectedinherited

◆ theCoulombBarrierPtr

G4VCoulombBarrier* G4VPreCompoundFragment::theCoulombBarrierPtr
privateinherited

Definition at line 132 of file G4VPreCompoundFragment.hh.

Referenced by G4VPreCompoundFragment::Initialize().

◆ theEmissionProbability

G4double G4VPreCompoundFragment::theEmissionProbability
protectedinherited

◆ theFragA

G4int G4VPreCompoundFragment::theFragA
protectedinherited

◆ theFragZ

G4int G4VPreCompoundFragment::theFragZ
protectedinherited

◆ theMass

G4double G4VPreCompoundFragment::theMass
protectedinherited

◆ theMaxKinEnergy

G4double G4VPreCompoundFragment::theMaxKinEnergy
protectedinherited

◆ theMinKinEnergy

G4double G4VPreCompoundFragment::theMinKinEnergy
protectedinherited

◆ theMomentum

G4LorentzVector G4VPreCompoundFragment::theMomentum
privateinherited

Definition at line 134 of file G4VPreCompoundFragment.hh.

◆ theParameters

G4DeexPrecoParameters* G4VPreCompoundFragment::theParameters
protectedinherited

◆ theReducedMass

G4double G4VPreCompoundFragment::theReducedMass
protectedinherited

◆ theResA

G4int G4VPreCompoundFragment::theResA
protectedinherited

◆ theResA13

G4double G4VPreCompoundFragment::theResA13
protectedinherited

◆ theResMass

G4double G4VPreCompoundFragment::theResMass
protectedinherited

Definition at line 153 of file G4VPreCompoundFragment.hh.

Referenced by G4VPreCompoundFragment::Initialize().

◆ theResZ

G4int G4VPreCompoundFragment::theResZ
protectedinherited

◆ theZ

G4int G4VPreCompoundFragment::theZ
protectedinherited

◆ useSICB

G4bool G4VPreCompoundFragment::useSICB
protectedinherited

Definition at line 163 of file G4VPreCompoundFragment.hh.


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