Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4EvaporationProbability Class Referenceabstract

#include <G4EvaporationProbability.hh>

+ Inheritance diagram for G4EvaporationProbability:

Public Member Functions

 G4EvaporationProbability (G4int anA, G4int aZ, G4double aGamma, G4VCoulombBarrier *aCoulombBarrier)
 
virtual ~G4EvaporationProbability ()
 
G4int GetZ (void) const
 
G4int GetA (void) const
 
G4double ProbabilityDistributionFunction (const G4Fragment &aFragment, G4double K)
 
G4double EmissionProbability (const G4Fragment &fragment, G4double anEnergy)
 
- Public Member Functions inherited from G4VEmissionProbability
 G4VEmissionProbability ()
 
virtual ~G4VEmissionProbability ()
 
virtual G4double EmissionProbability (const G4Fragment &fragment, const G4double anEnergy)=0
 
void SetOPTxs (G4int opt)
 
void UseSICB (G4bool use)
 

Protected Member Functions

 G4EvaporationProbability ()
 
virtual G4double CrossSection (const G4Fragment &fragment, G4double K)=0
 
virtual G4double CalcAlphaParam (const G4Fragment &fragment)=0
 
virtual G4double CalcBetaParam (const G4Fragment &fragment)=0
 

Additional Inherited Members

- Protected Attributes inherited from G4VEmissionProbability
G4int OPTxs
 
G4bool useSICB
 
G4PowfG4pow
 
G4PairingCorrectionfPairCorr
 
G4EvaporationLevelDensityParametertheEvapLDPptr
 

Detailed Description

Definition at line 44 of file G4EvaporationProbability.hh.

Constructor & Destructor Documentation

◆ G4EvaporationProbability() [1/2]

G4EvaporationProbability::G4EvaporationProbability ( G4int  anA,
G4int  aZ,
G4double  aGamma,
G4VCoulombBarrier aCoulombBarrier 
)

Definition at line 49 of file G4EvaporationProbability.cc.

52 : theA(anA),
53 theZ(aZ),
54 Gamma(aGamma),
55 theCoulombBarrierptr(aCoulombBarrier)
56{}

◆ ~G4EvaporationProbability()

G4EvaporationProbability::~G4EvaporationProbability ( )
virtual

Definition at line 65 of file G4EvaporationProbability.cc.

66{}

◆ G4EvaporationProbability() [2/2]

G4EvaporationProbability::G4EvaporationProbability ( )
protected

Definition at line 58 of file G4EvaporationProbability.cc.

59 : theA(0),
60 theZ(0),
61 Gamma(0.0),
62 theCoulombBarrierptr(0)
63{}

Member Function Documentation

◆ CalcAlphaParam()

virtual G4double G4EvaporationProbability::CalcAlphaParam ( const G4Fragment fragment)
protectedpure virtual

◆ CalcBetaParam()

virtual G4double G4EvaporationProbability::CalcBetaParam ( const G4Fragment fragment)
protectedpure virtual

◆ CrossSection()

virtual G4double G4EvaporationProbability::CrossSection ( const G4Fragment fragment,
G4double  K 
)
protectedpure virtual

◆ EmissionProbability()

G4double G4EvaporationProbability::EmissionProbability ( const G4Fragment fragment,
G4double  anEnergy 
)
virtual

Implements G4VEmissionProbability.

Definition at line 69 of file G4EvaporationProbability.cc.

71{
72 G4double probability = 0.0;
73
74 if (anEnergy > 0.0 && fragment.GetExcitationEnergy() > 0.0) {
75 probability = CalculateProbability(fragment, anEnergy);
76
77 }
78 return probability;
79}
double G4double
Definition: G4Types.hh:64
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:235

◆ GetA()

G4int G4EvaporationProbability::GetA ( void  ) const
inline

Definition at line 55 of file G4EvaporationProbability.hh.

55{ return theA;}

◆ GetZ()

G4int G4EvaporationProbability::GetZ ( void  ) const
inline

Definition at line 53 of file G4EvaporationProbability.hh.

53{ return theZ; }

◆ ProbabilityDistributionFunction()

G4double G4EvaporationProbability::ProbabilityDistributionFunction ( const G4Fragment aFragment,
G4double  K 
)

Definition at line 210 of file G4EvaporationProbability.cc.

212{
213 G4int ResidualA = fragment.GetA_asInt() - theA;
214 G4int ResidualZ = fragment.GetZ_asInt() - theZ;
215 G4double U = fragment.GetExcitationEnergy();
216 //G4cout << "### G4EvaporationProbability::ProbabilityDistributionFunction" << G4endl;
217 //G4cout << "FragZ= " << fragment.GetZ_asInt() << " FragA= " << fragment.GetA_asInt()
218 // << " Z= " << theZ << " A= " << theA << G4endl;
219 //G4cout << "PC " << fPairCorr << " DP " << theEvapLDPptr << G4endl;
220
221 // if(K <= theCoulombBarrierptr->GetCoulombBarrier(ResidualA,ResidualZ,U)) return 0.0;
222
223 G4double delta1 = fPairCorr->GetPairingCorrection(ResidualA,ResidualZ);
224
225 G4double delta0 = fPairCorr->GetPairingCorrection(fragment.GetA_asInt(),
226 fragment.GetZ_asInt());
227
228
229 G4double ParticleMass = fragment.ComputeGroundStateMass(theZ,theA);
230 G4double ResidualMass = fragment.ComputeGroundStateMass(ResidualZ,ResidualA);
231
232 G4double theSeparationEnergy = ParticleMass + ResidualMass
233 - fragment.GetGroundStateMass();
234
235 G4double a0 = theEvapLDPptr->LevelDensityParameter(fragment.GetA_asInt(),
236 fragment.GetZ_asInt(),
237 U - delta0);
238
239 G4double a1 = theEvapLDPptr->LevelDensityParameter(ResidualA, ResidualZ,
240 U - theSeparationEnergy - delta1);
241
242
243 G4double E0 = U - delta0;
244
245 G4double E1 = U - theSeparationEnergy - delta1 - K;
246
247 if (E1<0.) { return 0.; }
248
249 //JMQ 14/02/09 BUG fixed: hbarc should be in the denominator instead of hbar_Planck
250 //Without 1/hbar_Panck remains as a width
251
252 //G4double Prob=Gamma*ParticleMass/((pi*hbarc)*(pi*hbarc)*std::exp(2*std::sqrt(a0*E0)))
253 // *K*CrossSection(fragment,K)*std::exp(2*std::sqrt(a1*E1))*millibarn;
254
255 static const G4double pcoeff = millibarn/((pi*hbarc)*(pi*hbarc));
256
257 // Fixed numerical problem
258 G4double Prob = pcoeff*Gamma*ParticleMass*std::exp(2*(std::sqrt(a1*E1) - std::sqrt(a0*E0)))
259 *K*CrossSection(fragment,K);
260
261 return Prob;
262}
int G4int
Definition: G4Types.hh:66
G4double LevelDensityParameter(G4int A, G4int Z, G4double U) const
virtual G4double CrossSection(const G4Fragment &fragment, G4double K)=0
G4double GetPairingCorrection(G4int A, G4int Z) const
G4PairingCorrection * fPairCorr
G4EvaporationLevelDensityParameter * theEvapLDPptr
const G4double pi

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