#include <G4PreCompoundFragment.hh>
Inheritance diagram for G4PreCompoundFragment:
Public Member Functions | |
G4PreCompoundFragment (const G4ParticleDefinition *, G4VCoulombBarrier *aCoulombBarrier) | |
virtual | ~G4PreCompoundFragment () |
G4double | CalcEmissionProbability (const G4Fragment &aFragment) |
G4double | GetKineticEnergy (const G4Fragment &aFragment) |
Protected Member Functions | |
virtual G4double | ProbabilityDistributionFunction (G4double K, const G4Fragment &aFragment)=0 |
Definition at line 44 of file G4PreCompoundFragment.hh.
G4PreCompoundFragment::G4PreCompoundFragment | ( | const G4ParticleDefinition * | , | |
G4VCoulombBarrier * | aCoulombBarrier | |||
) |
Definition at line 40 of file G4PreCompoundFragment.cc.
00042 : G4VPreCompoundFragment(part,aCoulombBarrier) 00043 {}
G4PreCompoundFragment::~G4PreCompoundFragment | ( | ) | [virtual] |
G4double G4PreCompoundFragment::CalcEmissionProbability | ( | const G4Fragment & | aFragment | ) | [virtual] |
Implements G4VPreCompoundFragment.
Definition at line 49 of file G4PreCompoundFragment.cc.
References G4VPreCompoundFragment::GetMaximalKineticEnergy(), G4VPreCompoundFragment::OPTxs, G4VPreCompoundFragment::theCoulombBarrier, G4VPreCompoundFragment::theEmissionProbability, and G4VPreCompoundFragment::useSICB.
00050 { 00051 //G4cout << theCoulombBarrier << " " << GetMaximalKineticEnergy() << G4endl; 00052 // If theCoulombBarrier effect is included in the emission probabilities 00053 //if (GetMaximalKineticEnergy() <= 0.0) 00054 G4double limit = 0.0; 00055 if(OPTxs==0 || useSICB) { limit = theCoulombBarrier; } 00056 if (GetMaximalKineticEnergy() <= limit) 00057 { 00058 theEmissionProbability = 0.0; 00059 return 0.0; 00060 } 00061 // If theCoulombBarrier effect is included in the emission probabilities 00062 // G4double LowerLimit = 0.; 00063 // Coulomb barrier is the lower limit 00064 // of integration over kinetic energy 00065 G4double LowerLimit = limit; 00066 00067 // Excitation energy of nucleus after fragment emission is the upper 00068 //limit of integration over kinetic energy 00069 G4double UpperLimit = GetMaximalKineticEnergy(); 00070 00071 theEmissionProbability = 00072 IntegrateEmissionProbability(LowerLimit,UpperLimit,aFragment); 00073 /* 00074 G4cout << "## G4PreCompoundFragment::CalcEmisProb " 00075 << "Z= " << aFragment.GetZ_asInt() 00076 << " A= " << aFragment.GetA_asInt() 00077 << " Elow= " << LowerLimit/MeV 00078 << " Eup= " << UpperLimit/MeV 00079 << " prob= " << theEmissionProbability 00080 << G4endl; 00081 */ 00082 return theEmissionProbability; 00083 }
G4double G4PreCompoundFragment::GetKineticEnergy | ( | const G4Fragment & | aFragment | ) | [virtual] |
Implements G4VPreCompoundFragment.
Definition at line 128 of file G4PreCompoundFragment.cc.
References G4UniformRand, G4VPreCompoundFragment::GetEmissionProbability(), G4VPreCompoundFragment::GetMaximalKineticEnergy(), G4VPreCompoundFragment::OPTxs, ProbabilityDistributionFunction(), G4VPreCompoundFragment::theCoulombBarrier, and G4VPreCompoundFragment::useSICB.
00129 { 00130 //let's keep this way for consistency with CalcEmissionProbability method 00131 G4double V = 0.0; 00132 if(OPTxs==0 || useSICB) { V = theCoulombBarrier; } 00133 00134 G4double Tmax = GetMaximalKineticEnergy(); 00135 if(Tmax < V) { return 0.0; } 00136 G4double T(0.0); 00137 G4double Probability(1.0); 00138 G4double maxProbability = GetEmissionProbability(); 00139 do 00140 { 00141 T = V + G4UniformRand()*(Tmax-V); 00142 Probability = ProbabilityDistributionFunction(T,aFragment); 00143 } while (maxProbability*G4UniformRand() > Probability); 00144 return T; 00145 }
virtual G4double G4PreCompoundFragment::ProbabilityDistributionFunction | ( | G4double | K, | |
const G4Fragment & | aFragment | |||
) | [protected, pure virtual] |