Geant4 11.2.2
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 () override=default
 
G4double SampleKineticEnergy (const G4Fragment &) override
 
 G4HETCNeutron (const G4HETCNeutron &right)=delete
 
const G4HETCNeutronoperator= (const G4HETCNeutron &right)=delete
 
G4bool operator== (const G4HETCNeutron &right) const =delete
 
G4bool operator!= (const G4HETCNeutron &right) const =delete
 
- Public Member Functions inherited from G4HETCFragment
 G4HETCFragment (const G4ParticleDefinition *, G4VCoulombBarrier *p=nullptr)
 
 ~G4HETCFragment () override=default
 
G4double CalcEmissionProbability (const G4Fragment &aFragment) override
 
 G4HETCFragment (const G4HETCFragment &right)=delete
 
const G4HETCFragmentoperator= (const G4HETCFragment &right)=delete
 
G4bool operator== (const G4HETCFragment &right) const =delete
 
G4bool operator!= (const G4HETCFragment &right) const =delete
 
- Public Member Functions inherited from G4VPreCompoundFragment
 G4VPreCompoundFragment (const G4ParticleDefinition *, G4VCoulombBarrier *)
 
virtual ~G4VPreCompoundFragment ()
 
void Initialize (const G4Fragment &aFragment)
 
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 &lv)
 
void SetOPTxs (G4int opt)
 
void UseSICB (G4bool use)
 
 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

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

Additional Inherited Members

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

Detailed Description

Definition at line 39 of file G4HETCNeutron.hh.

Constructor & Destructor Documentation

◆ G4HETCNeutron() [1/2]

G4HETCNeutron::G4HETCNeutron ( )

Definition at line 39 of file G4HETCNeutron.cc.

41{}
G4HETCFragment(const G4ParticleDefinition *, G4VCoulombBarrier *p=nullptr)
static G4Neutron * Neutron()
Definition G4Neutron.cc:101

◆ ~G4HETCNeutron()

G4HETCNeutron::~G4HETCNeutron ( )
overridedefault

◆ G4HETCNeutron() [2/2]

G4HETCNeutron::G4HETCNeutron ( const G4HETCNeutron & right)
delete

Member Function Documentation

◆ GetAlpha()

G4double G4HETCNeutron::GetAlpha ( ) const
overrideprotectedvirtual

Implements G4VPreCompoundFragment.

Definition at line 43 of file G4HETCNeutron.cc.

44{
45 return 0.76+2.2/theResA13;
46}

Referenced by GetBeta().

◆ GetBeta()

G4double G4HETCNeutron::GetBeta ( ) const
overrideprotectedvirtual

Reimplemented from G4VPreCompoundFragment.

Definition at line 48 of file G4HETCNeutron.cc.

49{
50 return (2.12/(theResA13*theResA13)-0.05)/GetAlpha(); // in MeV
51}
G4double GetAlpha() const override

Referenced by SampleKineticEnergy().

◆ GetSpinFactor()

G4double G4HETCNeutron::GetSpinFactor ( ) const
overrideprotectedvirtual

Implements G4HETCFragment.

Definition at line 53 of file G4HETCNeutron.cc.

54{
55 // (2s+1)
56 return 2.0;
57}

◆ K()

G4double G4HETCNeutron::K ( const G4Fragment & aFragment) const
overrideprotectedvirtual

Implements G4HETCFragment.

Definition at line 59 of file G4HETCNeutron.cc.

60{
61 // Number of protons in emitted fragment
62 G4int Pa = theZ;
63 // Number of neutrons in emitted fragment
64 G4int Na = theA - Pa;
65
67
68 G4int P = aFragment.GetNumberOfParticles();
69 G4int H = aFragment.GetNumberOfHoles();
70
71 G4double result = (P > 0) ? (H + Na/(1.0 - r))/P : 0.0;
72 return result;
73}
double G4double
Definition G4Types.hh:83
int G4int
Definition G4Types.hh:85
G4int GetNumberOfParticles() const
G4int GetNumberOfHoles() const

◆ operator!=()

G4bool G4HETCNeutron::operator!= ( const G4HETCNeutron & right) const
delete

◆ operator=()

const G4HETCNeutron & G4HETCNeutron::operator= ( const G4HETCNeutron & right)
delete

◆ operator==()

G4bool G4HETCNeutron::operator== ( const G4HETCNeutron & right) const
delete

◆ SampleKineticEnergy()

G4double G4HETCNeutron::SampleKineticEnergy ( const G4Fragment & frag)
overridevirtual

Implements G4VPreCompoundFragment.

Definition at line 75 of file G4HETCNeutron.cc.

76{
77 G4int H = frag.GetNumberOfHoles();
78 G4int Pb = frag.GetNumberOfParticles();
79 G4int Nb = Pb + H;
81 G4double g0 =
82 (6.0/CLHEP::pi2)*fNucData->GetLevelDensity(theFragZ,theFragA,U);
83
84 G4double Ab = std::max(0.0, (G4double)(Pb*Pb+H*H+Pb-3*H)/(4.0*g0));
85 G4double Emax = theMaxKinEnergy - Ab;
86
87 G4double cut = GetBeta() / (GetBeta()+Emax/G4double(Nb+1));
88 G4double x = (G4UniformRand() <= cut) ? BetaRand(Nb,1) : BetaRand(Nb,2);
89
90 return Emax * (1.0 - x);
91}
#define G4UniformRand()
Definition Randomize.hh:52
G4double GetExcitationEnergy() const
G4double BetaRand(G4int N, G4int L) const
G4double GetBeta() const override
G4double GetLevelDensity(G4int Z, G4int A, G4double U)

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