G4EvaporationProbability Class Reference

#include <G4EvaporationProbability.hh>

Inheritance diagram for G4EvaporationProbability:

G4VEmissionProbability G4AlphaEvaporationProbability G4DeuteronEvaporationProbability G4He3EvaporationProbability G4NeutronEvaporationProbability G4ProtonEvaporationProbability G4TritonEvaporationProbability

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)

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

Detailed Description

Definition at line 44 of file G4EvaporationProbability.hh.


Constructor & Destructor Documentation

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

Definition at line 49 of file G4EvaporationProbability.cc.

00052   : theA(anA),
00053     theZ(aZ),
00054     Gamma(aGamma),
00055     theCoulombBarrierptr(aCoulombBarrier) 
00056 {}

G4EvaporationProbability::~G4EvaporationProbability (  )  [virtual]

Definition at line 65 of file G4EvaporationProbability.cc.

00066 {}

G4EvaporationProbability::G4EvaporationProbability (  )  [protected]

Definition at line 58 of file G4EvaporationProbability.cc.

00059   : theA(0),
00060     theZ(0),
00061     Gamma(0.0),
00062     theCoulombBarrierptr(0) 
00063 {}


Member Function Documentation

virtual G4double G4EvaporationProbability::CalcAlphaParam ( const G4Fragment fragment  )  [protected, pure virtual]

virtual G4double G4EvaporationProbability::CalcBetaParam ( const G4Fragment fragment  )  [protected, pure virtual]

virtual G4double G4EvaporationProbability::CrossSection ( const G4Fragment fragment,
G4double  K 
) [protected, pure virtual]

Referenced by ProbabilityDistributionFunction().

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

Implements G4VEmissionProbability.

Definition at line 69 of file G4EvaporationProbability.cc.

References G4Fragment::GetExcitationEnergy().

00071 {
00072   G4double probability = 0.0;
00073 
00074   if (anEnergy > 0.0 && fragment.GetExcitationEnergy() > 0.0) {
00075     probability = CalculateProbability(fragment, anEnergy);
00076 
00077   }
00078   return probability;
00079 }

G4int G4EvaporationProbability::GetA ( void   )  const [inline]

Definition at line 55 of file G4EvaporationProbability.hh.

00055 { return theA;} 

G4int G4EvaporationProbability::GetZ ( void   )  const [inline]

Definition at line 53 of file G4EvaporationProbability.hh.

00053 { return theZ; }

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

Definition at line 210 of file G4EvaporationProbability.cc.

References G4Fragment::ComputeGroundStateMass(), CrossSection(), G4VEmissionProbability::fPairCorr, G4Fragment::GetA_asInt(), G4Fragment::GetExcitationEnergy(), G4Fragment::GetGroundStateMass(), G4PairingCorrection::GetPairingCorrection(), G4Fragment::GetZ_asInt(), G4EvaporationLevelDensityParameter::LevelDensityParameter(), G4INCL::Math::pi, and G4VEmissionProbability::theEvapLDPptr.

00212 { 
00213   G4int ResidualA = fragment.GetA_asInt() - theA;
00214   G4int ResidualZ = fragment.GetZ_asInt() - theZ;  
00215   G4double U = fragment.GetExcitationEnergy();
00216   //G4cout << "### G4EvaporationProbability::ProbabilityDistributionFunction" << G4endl;
00217   //G4cout << "FragZ= " << fragment.GetZ_asInt() << " FragA= " << fragment.GetA_asInt()
00218   //     << " Z= " << theZ << "  A= " << theA << G4endl;
00219   //G4cout << "PC " << fPairCorr << "   DP " << theEvapLDPptr << G4endl;
00220 
00221   // if(K <= theCoulombBarrierptr->GetCoulombBarrier(ResidualA,ResidualZ,U)) return 0.0;
00222 
00223   G4double delta1 = fPairCorr->GetPairingCorrection(ResidualA,ResidualZ);
00224  
00225   G4double delta0 = fPairCorr->GetPairingCorrection(fragment.GetA_asInt(),
00226                                                     fragment.GetZ_asInt());
00227 
00228   
00229   G4double ParticleMass = fragment.ComputeGroundStateMass(theZ,theA);
00230   G4double ResidualMass = fragment.ComputeGroundStateMass(ResidualZ,ResidualA);
00231 
00232   G4double theSeparationEnergy = ParticleMass + ResidualMass 
00233     - fragment.GetGroundStateMass();
00234 
00235   G4double a0 = theEvapLDPptr->LevelDensityParameter(fragment.GetA_asInt(),
00236                                                      fragment.GetZ_asInt(),
00237                                                      U - delta0);
00238 
00239   G4double a1 = theEvapLDPptr->LevelDensityParameter(ResidualA, ResidualZ,
00240                                                      U - theSeparationEnergy - delta1);
00241   
00242   
00243   G4double E0 = U - delta0;
00244 
00245   G4double E1 = U - theSeparationEnergy - delta1 - K;
00246 
00247   if (E1<0.) { return 0.; }
00248 
00249   //JMQ 14/02/09 BUG fixed: hbarc should be in the denominator instead of hbar_Planck 
00250   //Without 1/hbar_Panck remains as a width
00251 
00252   //G4double Prob=Gamma*ParticleMass/((pi*hbarc)*(pi*hbarc)*std::exp(2*std::sqrt(a0*E0)))
00253   //  *K*CrossSection(fragment,K)*std::exp(2*std::sqrt(a1*E1))*millibarn;
00254 
00255   static const G4double pcoeff = millibarn/((pi*hbarc)*(pi*hbarc)); 
00256 
00257   // Fixed numerical problem
00258   G4double Prob = pcoeff*Gamma*ParticleMass*std::exp(2*(std::sqrt(a1*E1) - std::sqrt(a0*E0)))
00259     *K*CrossSection(fragment,K);
00260 
00261   return Prob;
00262 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:51:56 2013 for Geant4 by  doxygen 1.4.7