#include <G4HETCNeutron.hh>
Inheritance diagram for G4HETCNeutron:
Public Member Functions | |
G4HETCNeutron () | |
~G4HETCNeutron () | |
virtual G4double | GetKineticEnergy (const G4Fragment &aFragment) |
Protected Member Functions | |
virtual G4double | GetAlpha () |
virtual G4double | GetBeta () |
virtual G4double | GetSpinFactor () |
virtual G4double | K (const G4Fragment &aFragment) |
Definition at line 41 of file G4HETCNeutron.hh.
G4HETCNeutron::G4HETCNeutron | ( | ) |
Definition at line 39 of file G4HETCNeutron.cc.
00040 : G4HETCFragment(G4Neutron::Neutron(), &theNeutronCoulombBarrier) 00041 {}
G4HETCNeutron::~G4HETCNeutron | ( | ) |
G4double G4HETCNeutron::GetAlpha | ( | ) | [protected, virtual] |
Implements G4HETCFragment.
Definition at line 46 of file G4HETCNeutron.cc.
References G4VPreCompoundFragment::g4pow, G4VPreCompoundFragment::GetRestA(), and G4Pow::Z13().
Referenced by GetBeta().
G4double G4HETCNeutron::GetBeta | ( | ) | [protected, virtual] |
Implements G4HETCFragment.
Definition at line 51 of file G4HETCNeutron.cc.
References G4VPreCompoundFragment::g4pow, GetAlpha(), G4VPreCompoundFragment::GetRestA(), and G4Pow::Z23().
Referenced by GetKineticEnergy().
G4double G4HETCNeutron::GetKineticEnergy | ( | const G4Fragment & | aFragment | ) | [virtual] |
Implements G4VPreCompoundFragment.
Definition at line 85 of file G4HETCNeutron.cc.
References G4HETCFragment::BetaRand(), G4UniformRand, G4Fragment::GetA_asInt(), GetBeta(), G4PreCompoundParameters::GetLevelDensity(), G4VPreCompoundFragment::GetMaximalKineticEnergy(), G4Fragment::GetNumberOfHoles(), G4Fragment::GetNumberOfParticles(), and G4VPreCompoundFragment::theParameters.
00086 { 00087 G4int H = aFragment.GetNumberOfHoles(); 00088 G4int Pb = aFragment.GetNumberOfParticles(); 00089 G4int Nb = Pb + H; 00090 G4double g0 = (6.0/pi2)*aFragment.GetA_asInt()*theParameters->GetLevelDensity(); 00091 00092 G4double Ab = std::max(0.0,G4double(Pb*Pb+H*H+Pb-3*H)/(4.0*g0)); 00093 G4double Emax = GetMaximalKineticEnergy() - Ab; 00094 00095 G4double cut = GetBeta() / (GetBeta()+Emax/G4double(Nb+1)); 00096 G4double x(0.0); 00097 if (G4UniformRand() <= cut) 00098 { 00099 x = BetaRand(Nb,1); 00100 } 00101 else 00102 { 00103 x = BetaRand(Nb,2); 00104 } 00105 00106 return Emax * (1.0 - x); 00107 }
G4double G4HETCNeutron::GetSpinFactor | ( | ) | [protected, virtual] |
G4double G4HETCNeutron::K | ( | const G4Fragment & | aFragment | ) | [protected, virtual] |
Implements G4HETCFragment.
Definition at line 62 of file G4HETCNeutron.cc.
References G4VPreCompoundFragment::GetA(), G4Fragment::GetNumberOfHoles(), G4Fragment::GetNumberOfParticles(), G4VPreCompoundFragment::GetRestA(), G4VPreCompoundFragment::GetRestZ(), and G4VPreCompoundFragment::GetZ().
00063 { 00064 // Number of protons in emitted fragment 00065 G4int Pa = GetZ(); 00066 // Number of neutrons in emitted fragment 00067 G4int Na = GetA() - Pa; 00068 00069 G4int TargetZ = GetRestZ(); 00070 G4int TargetA = GetRestA(); 00071 G4double r = G4double(TargetZ)/G4double(TargetA); 00072 00073 G4int P = aFragment.GetNumberOfParticles(); 00074 G4int H = aFragment.GetNumberOfHoles(); 00075 00076 G4double result = 0.0; 00077 if (P > 0) 00078 { 00079 result = (H + Na/(1.0-r))/P; 00080 } 00081 00082 return std::max(0.0,result); 00083 }