Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4PreCompoundIon Class Referenceabstract

#include <G4PreCompoundIon.hh>

Inheritance diagram for G4PreCompoundIon:
Collaboration diagram for G4PreCompoundIon:

Public Member Functions

 G4PreCompoundIon (const G4ParticleDefinition *, G4VCoulombBarrier *aCoulombBarrier)
 
virtual ~G4PreCompoundIon ()
 
- Public Member Functions inherited from G4PreCompoundFragment
 G4PreCompoundFragment (const G4ParticleDefinition *, G4VCoulombBarrier *aCoulombBarrier)
 
virtual ~G4PreCompoundFragment ()
 
G4double CalcEmissionProbability (const G4Fragment &aFragment)
 
G4double SampleKineticEnergy (const G4Fragment &aFragment)
 
- Public Member Functions inherited from G4VPreCompoundFragment
 G4VPreCompoundFragment (const G4ParticleDefinition *, G4VCoulombBarrier *aCoulombBarrier)
 
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 &value)
 
void SetOPTxs (G4int)
 
void UseSICB (G4bool)
 

Protected Member Functions

virtual G4double GetRj (G4int NumberParticles, G4int NumberCharged) const =0
 
virtual G4double GetBeta () const
 
virtual G4double ProbabilityDistributionFunction (G4double eKin, const G4Fragment &aFragment)
 
virtual G4double FactorialFactor (G4int N, G4int P) const =0
 
virtual G4double CoalescenceFactor (G4int A) const =0
 
- Protected Member Functions inherited from G4PreCompoundFragment
virtual G4double GetAlpha () const =0
 
G4double CrossSection (G4double ekin) const
 

Additional Inherited Members

- Protected Attributes inherited from G4VPreCompoundFragment
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 42 of file G4PreCompoundIon.hh.

Constructor & Destructor Documentation

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

Definition at line 47 of file G4PreCompoundIon.cc.

49  : G4PreCompoundFragment(part,aCoulombBarrier)
50 {
52  fact = 0.75*CLHEP::millibarn/(CLHEP::pi*r0*r0*r0);
53 }
static constexpr double millibarn
Definition: SystemOfUnits.h:86
G4DeexPrecoParameters * theParameters
G4PreCompoundFragment(const G4ParticleDefinition *, G4VCoulombBarrier *aCoulombBarrier)
double G4double
Definition: G4Types.hh:76
static constexpr double pi
Definition: SystemOfUnits.h:54

Here is the call graph for this function:

G4PreCompoundIon::~G4PreCompoundIon ( )
virtual

Definition at line 55 of file G4PreCompoundIon.cc.

56 {}

Member Function Documentation

virtual G4double G4PreCompoundIon::CoalescenceFactor ( G4int  A) const
protectedpure virtual

Implemented in G4PreCompoundAlpha, G4PreCompoundDeuteron, G4PreCompoundHe3, and G4PreCompoundTriton.

Here is the caller graph for this function:

virtual G4double G4PreCompoundIon::FactorialFactor ( G4int  N,
G4int  P 
) const
protectedpure virtual

Implemented in G4PreCompoundAlpha, G4PreCompoundDeuteron, G4PreCompoundHe3, and G4PreCompoundTriton.

Here is the caller graph for this function:

G4double G4PreCompoundIon::GetBeta ( ) const
protectedvirtual

Implements G4PreCompoundFragment.

Definition at line 100 of file G4PreCompoundIon.cc.

101 {
102  return -theCoulombBarrier;
103 }
virtual G4double G4PreCompoundIon::GetRj ( G4int  NumberParticles,
G4int  NumberCharged 
) const
protectedpure virtual

Implemented in G4PreCompoundAlpha, G4PreCompoundDeuteron, G4PreCompoundHe3, and G4PreCompoundTriton.

Here is the caller graph for this function:

G4double G4PreCompoundIon::ProbabilityDistributionFunction ( G4double  eKin,
const G4Fragment aFragment 
)
protectedvirtual

Implements G4PreCompoundFragment.

Definition at line 59 of file G4PreCompoundIon.cc.

61 {
62  G4double efinal = eKin + theBindingEnergy;
63  if(efinal <= 0.0 ) { return 0.0; }
64 
65  G4double U = aFragment.GetExcitationEnergy();
66  G4int P = aFragment.GetNumberOfParticles();
67  G4int H = aFragment.GetNumberOfHoles();
68  G4int A = GetA();
69  G4int N = P + H;
70 
71  static const G4double sixoverpi2 = 6.0/CLHEP::pi2;
73  G4double g1 = sixoverpi2*theResA*theParameters->GetLevelDensity();
74 
75  G4double gj = g1;
76 
77  G4double A0 = G4double(P*P+H*H+P-3*H)/(4.0*g0);
78  G4double A1 = std::max(0.0,(A0*g0 + A*(A-2*P-1)*0.25)/g1);
79 
80  G4double E0 = U - A0;
81  if (E0 <= 0.0) { return 0.0; }
82 
83  G4double E1 = std::max(0.0,theMaxKinEnergy - eKin - A1);
84 
85  G4double Aj = A*(A+1)/(4.0*gj);
86  G4double Ej = std::max(0.0,efinal - Aj);
87 
88  G4double rj = GetRj(P, aFragment.GetNumberOfCharged());
89  G4double xs = CrossSection(eKin);
90 
91  G4double pA = fact*eKin*xs*rj
93  * std::sqrt(2.0/(theReducedMass*efinal))
94  * g4calc->powN(g1*E1/(g0*E0), N-A-1)
95  * g4calc->powN(gj*Ej/(g0*E0), A-1)*gj*g1/(g0*g0*E0*theResA);
96 
97  return pA;
98 }
const int N
Definition: mixmax.h:43
G4double powN(G4double x, G4int n) const
Definition: G4Pow.cc:128
static constexpr double pi2
Definition: SystemOfUnits.h:57
G4int GetA() const
G4int GetNumberOfParticles() const
Definition: G4Fragment.hh:345
G4double GetLevelDensity() const
int G4int
Definition: G4Types.hh:78
static double P[]
G4DeexPrecoParameters * theParameters
G4int GetNumberOfHoles() const
Definition: G4Fragment.hh:365
double A(double temperature)
virtual G4double FactorialFactor(G4int N, G4int P) const =0
G4double CrossSection(G4double ekin) const
virtual G4double CoalescenceFactor(G4int A) const =0
virtual G4double GetRj(G4int NumberParticles, G4int NumberCharged) const =0
T max(const T t1, const T t2)
brief Return the largest of the two arguments
double G4double
Definition: G4Types.hh:76
G4int GetNumberOfCharged() const
Definition: G4Fragment.hh:350
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:283

Here is the call graph for this function:


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