Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions
G4EvaporationProbability Class Referenceabstract

#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)
 
- Public Member Functions inherited from G4VEmissionProbability
 G4VEmissionProbability ()
 
virtual ~G4VEmissionProbability ()
 
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::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 ( )
virtual

Definition at line 65 of file G4EvaporationProbability.cc.

66 {}
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

virtual G4double G4EvaporationProbability::CalcAlphaParam ( const G4Fragment fragment)
protectedpure virtual
virtual G4double G4EvaporationProbability::CalcBetaParam ( const G4Fragment fragment)
protectedpure virtual
virtual G4double G4EvaporationProbability::CrossSection ( const G4Fragment fragment,
G4double  K 
)
protectedpure virtual
G4double G4EvaporationProbability::EmissionProbability ( const G4Fragment fragment,
G4double  anEnergy 
)
virtual

Implements G4VEmissionProbability.

Definition at line 69 of file G4EvaporationProbability.cc.

References G4Fragment::GetExcitationEnergy().

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:76
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:255
G4int G4EvaporationProbability::GetA ( void  ) const
inline

Definition at line 55 of file G4EvaporationProbability.hh.

55 { return theA;}
G4int G4EvaporationProbability::GetZ ( void  ) const
inline

Definition at line 53 of file G4EvaporationProbability.hh.

53 { 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(), python.hepunit::hbarc, G4EvaporationLevelDensityParameter::LevelDensityParameter(), python.hepunit::millibarn, python.hepunit::pi, and G4VEmissionProbability::theEvapLDPptr.

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:78
int millibarn
Definition: hepunit.py:40
G4EvaporationLevelDensityParameter * theEvapLDPptr
G4double GetPairingCorrection(G4int A, G4int Z) const
G4double LevelDensityParameter(G4int A, G4int, G4double) const
G4PairingCorrection * fPairCorr
virtual G4double CrossSection(const G4Fragment &fragment, G4double K)=0
double G4double
Definition: G4Types.hh:76

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