Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4HETCNeutron Class Reference

#include <G4HETCNeutron.hh>

+ Inheritance diagram for G4HETCNeutron:

Public Member Functions

 G4HETCNeutron ()
 
 ~G4HETCNeutron ()
 
virtual G4double SampleKineticEnergy (const G4Fragment &aFragment)
 
- Public Member Functions inherited from G4HETCFragment
 G4HETCFragment (const G4ParticleDefinition *, G4VCoulombBarrier *aCoulombBarrier)
 
virtual ~G4HETCFragment ()
 
G4double CalcEmissionProbability (const G4Fragment &aFragment)
 
- Public Member Functions inherited from G4VPreCompoundFragment
 G4VPreCompoundFragment (const G4ParticleDefinition *, G4VCoulombBarrier *aCoulombBarrier)
 
virtual ~G4VPreCompoundFragment ()
 
void Initialize (const G4Fragment &aFragment)
 
virtual G4double CalcEmissionProbability (const G4Fragment &aFragment)=0
 
virtual G4double SampleKineticEnergy (const G4Fragment &aFragment)=0
 
G4bool IsItPossible (const G4Fragment &aFragment) const
 
G4ReactionProductGetReactionProduct () const
 
G4int GetA () const
 
G4int GetZ () const
 
G4int GetRestA () const
 
G4int GetRestZ () const
 
G4double GetBindingEnergy () const
 
G4double GetEnergyThreshold () const
 
G4double GetEmissionProbability () const
 
G4double GetNuclearMass () const
 
G4double GetRestNuclearMass () const
 
const G4LorentzVectorGetMomentum () const
 
void SetMomentum (const G4LorentzVector &value)
 
void SetOPTxs (G4int)
 
void UseSICB (G4bool)
 
 G4VPreCompoundFragment (const G4VPreCompoundFragment &right)=delete
 
const G4VPreCompoundFragmentoperator= (const G4VPreCompoundFragment &right)=delete
 
G4bool operator== (const G4VPreCompoundFragment &right) const =delete
 
G4bool operator!= (const G4VPreCompoundFragment &right) const =delete
 

Protected Member Functions

virtual G4double GetAlpha () const
 
virtual G4double GetBeta () const
 
virtual G4double GetSpinFactor () const
 
virtual G4double K (const G4Fragment &aFragment)
 
- Protected Member Functions inherited from G4HETCFragment
virtual G4double K (const G4Fragment &aFragment)=0
 
virtual G4double GetSpinFactor () const =0
 
virtual G4double GetAlpha () const =0
 
virtual G4double GetBeta () const =0
 
G4double BetaRand (G4int N, G4int L) const
 
virtual G4double GetAlpha () const =0
 
virtual G4double GetBeta () const =0
 

Additional Inherited Members

- Protected Attributes inherited from G4VPreCompoundFragment
G4NuclearLevelDatafNucData
 
G4DeexPrecoParameterstheParameters
 
G4Powg4calc
 
G4int theA
 
G4int theZ
 
G4int theResA
 
G4int theResZ
 
G4int theFragA
 
G4int theFragZ
 
G4double theResA13
 
G4double theBindingEnergy
 
G4double theMinKinEnergy
 
G4double theMaxKinEnergy
 
G4double theResMass
 
G4double theReducedMass
 
G4double theMass
 
G4double theEmissionProbability
 
G4double theCoulombBarrier
 
G4int OPTxs
 
G4bool useSICB
 

Detailed Description

Definition at line 40 of file G4HETCNeutron.hh.

Constructor & Destructor Documentation

◆ G4HETCNeutron()

G4HETCNeutron::G4HETCNeutron ( )

Definition at line 39 of file G4HETCNeutron.cc.

40 : G4HETCFragment(G4Neutron::Neutron(), &theNeutronCoulombBarrier)
41{}
static G4Neutron * Neutron()
Definition: G4Neutron.cc:103

◆ ~G4HETCNeutron()

G4HETCNeutron::~G4HETCNeutron ( )

Definition at line 43 of file G4HETCNeutron.cc.

44{}

Member Function Documentation

◆ GetAlpha()

G4double G4HETCNeutron::GetAlpha ( ) const
protectedvirtual

Implements G4HETCFragment.

Definition at line 46 of file G4HETCNeutron.cc.

47{
48 return 0.76+2.2/theResA13;
49}

Referenced by GetBeta().

◆ GetBeta()

G4double G4HETCNeutron::GetBeta ( ) const
protectedvirtual

Implements G4HETCFragment.

Definition at line 51 of file G4HETCNeutron.cc.

52{
53 return (2.12/(theResA13*theResA13)-0.05)*MeV/GetAlpha();
54}
virtual G4double GetAlpha() const

Referenced by SampleKineticEnergy().

◆ GetSpinFactor()

G4double G4HETCNeutron::GetSpinFactor ( ) const
protectedvirtual

Implements G4HETCFragment.

Definition at line 56 of file G4HETCNeutron.cc.

57{
58 // (2s+1)
59 return 2.0;
60}

◆ K()

G4double G4HETCNeutron::K ( const G4Fragment aFragment)
protectedvirtual

Implements G4HETCFragment.

Definition at line 62 of file G4HETCNeutron.cc.

63{
64 // Number of protons in emitted fragment
65 G4int Pa = theZ;
66 // Number of neutrons in emitted fragment
67 G4int Na = theA - Pa;
68
70
71 G4int P = aFragment.GetNumberOfParticles();
72 G4int H = aFragment.GetNumberOfHoles();
73
74 G4double result = 0.0;
75 if (P > 0)
76 {
77 result = (H + Na/(1.0-r))/P;
78 }
79
80 return std::max(0.0,result);
81}
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
G4int GetNumberOfParticles() const
Definition: G4Fragment.hh:366
G4int GetNumberOfHoles() const
Definition: G4Fragment.hh:386

◆ SampleKineticEnergy()

G4double G4HETCNeutron::SampleKineticEnergy ( const G4Fragment aFragment)
virtual

Implements G4VPreCompoundFragment.

Definition at line 83 of file G4HETCNeutron.cc.

84{
85 G4int H = aFragment.GetNumberOfHoles();
86 G4int Pb = aFragment.GetNumberOfParticles();
87 G4int Nb = Pb + H;
88 G4double U = aFragment.GetExcitationEnergy();
90
91 G4double Ab = std::max(0.0,G4double(Pb*Pb+H*H+Pb-3*H)/(4.0*g0));
92 G4double Emax = theMaxKinEnergy - Ab;
93
94 G4double cut = GetBeta() / (GetBeta()+Emax/G4double(Nb+1));
95 G4double x(0.0);
96 if (G4UniformRand() <= cut)
97 {
98 x = BetaRand(Nb,1);
99 }
100 else
101 {
102 x = BetaRand(Nb,2);
103 }
104
105 return Emax * (1.0 - x);
106}
#define G4UniformRand()
Definition: Randomize.hh:52
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:312
G4double BetaRand(G4int N, G4int L) const
virtual G4double GetBeta() const
G4double GetLevelDensity(G4int Z, G4int A, G4double U)
G4NuclearLevelData * fNucData

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