Geant4  10.02.p03
G4E1Probability Class Reference

#include <G4E1Probability.hh>

Inheritance diagram for G4E1Probability:
Collaboration diagram for G4E1Probability:

Public Member Functions

 G4E1Probability ()
 
virtual ~G4E1Probability ()
 
G4double EmissionProbability (const G4Fragment &frag, G4double excite)
 
G4double EmissionProbDensity (const G4Fragment &frag, G4double ePhoton)
 
- Public Member Functions inherited from G4VEmissionProbability
 G4VEmissionProbability ()
 
virtual ~G4VEmissionProbability ()
 
void SetOPTxs (G4int opt)
 
void UseSICB (G4bool use)
 

Private Member Functions

 G4E1Probability (const G4E1Probability &right)
 
const G4E1Probabilityoperator= (const G4E1Probability &right)
 
G4bool operator== (const G4E1Probability &right) const
 
G4bool operator!= (const G4E1Probability &right) const
 
G4double EmissionIntegration (const G4Fragment &frag, G4double lowLim, G4double upLim)
 

Private Attributes

G4PowfG4pow
 
G4double theLevelDensityPerNucleon
 
G4double normC
 
G4double aLevelDensityParam
 
G4double sigma0
 
G4double Egdp
 
G4double GammaR
 
G4int Afrag
 

Additional Inherited Members

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

Detailed Description

Definition at line 49 of file G4E1Probability.hh.

Constructor & Destructor Documentation

◆ G4E1Probability() [1/2]

G4E1Probability::G4E1Probability ( )

Definition at line 50 of file G4E1Probability.cc.

51 {
53  normC = 1.0 / (x*x);
56  Afrag = 0;
58 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
static const double MeV
Definition: G4SIunits.hh:211
G4double aLevelDensityParam
static const double hbarc
G4double theLevelDensityPerNucleon
static const double pi
Definition: SystemOfUnits.h:53
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:

◆ ~G4E1Probability()

G4E1Probability::~G4E1Probability ( )
virtual

Definition at line 60 of file G4E1Probability.cc.

61 {}

◆ G4E1Probability() [2/2]

G4E1Probability::G4E1Probability ( const G4E1Probability right)
private

Member Function Documentation

◆ EmissionIntegration()

G4double G4E1Probability::EmissionIntegration ( const G4Fragment frag,
G4double  lowLim,
G4double  upLim 
)
private

Definition at line 140 of file G4E1Probability.cc.

143 {
144  // Simple integration
145  // VI replace by direct integration over 100 point
146 
147  static const G4int numIters = 100;
148  G4double Step = (upLim-lowLim)/G4double(numIters);
149 
150  G4double res = 0.0;
151  G4double x = lowLim - 0.5*Step;
152 
153  for(G4int i = 0; i < numIters; ++i) {
154  x += Step;
155  res += EmissionProbDensity(frag, x);
156  }
157 
158  if(res > 0.0) { res *= Step; }
159  else { res = 0.0; }
160 
161  return res;
162 
163 }
G4double EmissionProbDensity(const G4Fragment &frag, G4double ePhoton)
int G4int
Definition: G4Types.hh:78
Definition: Step.hh:41
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ EmissionProbability()

G4double G4E1Probability::EmissionProbability ( const G4Fragment frag,
G4double  excite 
)
virtual

Implements G4VEmissionProbability.

Definition at line 119 of file G4E1Probability.cc.

121 {
122  // From nuclear fragment properties and the excitation energy, calculate
123  // the probability for photon evaporation down to last ground level.
124  // fragment = nuclear fragment BEFORE de-excitation
125 
126  G4double upperLim = gammaE;
127  G4double lowerLim = 0.0;
128 
129  //G4cout << "G4E1Probability::EmissionProbability: Emin= " << lowerLim
130  // << " Emax= " << upperLim << G4endl;
131  if( upperLim - lowerLim <= tolerance) { return 0.0; }
132 
133  // Need to integrate EmissionProbDensity from lowerLim to upperLim
134  // and multiply by factor 3 (?!)
135 
136  G4double integ = EmissionIntegration(frag,lowerLim,upperLim);
137  return integ;
138 }
static const G4double tolerance
G4double EmissionIntegration(const G4Fragment &frag, G4double lowLim, G4double upLim)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:

◆ EmissionProbDensity()

G4double G4E1Probability::EmissionProbDensity ( const G4Fragment frag,
G4double  ePhoton 
)

Definition at line 64 of file G4E1Probability.cc.

66 {
67  // Calculate the probability density here
68 
69  // From nuclear fragment properties and the excitation energy, calculate
70  // the probability density for photon evaporation from U to U - gammaE
71  // (U = nucleus excitation energy, gammaE = total evaporated photon
72  // energy). Fragment = nuclear fragment BEFORE de-excitation
73 
74  G4double theProb = 0.0;
75 
76  if(gammaE > tolerance) {
77 
78  G4double Uexcite = frag.GetExcitationEnergy();
79  G4double U = std::max(0.0, Uexcite - gammaE);
80 
81  // Need a level density parameter.
82  // For now, just use the constant approximation (not reliable near magic
83  // nuclei) - is equivalent to G4ConstantLevelDensityParameter class
84 
85  if(Afrag != frag.GetA_asInt()) {
86  Afrag = frag.GetA_asInt();
88 
89  // Define constants for the photoabsorption cross-section (the reverse
90  // process of our de-excitation)
91  sigma0 = 2.5 * Afrag * millibarn;
92  Egdp = (40.3 / fG4pow->powZ(Afrag,0.2) )*MeV;
93  GammaR = 0.30 * Egdp;
94  }
95  // VI reduce number of calls to exp
96  G4double levelDens =
97  G4Exp(2*(std::sqrt(aLevelDensityParam*U)-
98  std::sqrt(aLevelDensityParam*Uexcite)));
99 
100  //G4cout<<" Uexcite, gammaE = "<<Uexcite<<" "<<gammaE<<G4endl;
101  //cout<<" lev density param = "<<aLevelDensityParam<<G4endl;
102  //cout<<" level densities = "<<levelDensBef<<" "<<levelDensAft<<G4endl;
103  //cout<<" sigma0 = "<<sigma0<<G4endl;
104  //cout<<" Egdp, GammaR = "<<Egdp<<" "<<GammaR<<G4endl;
105  //cout<<" normC = "<<normC<<G4endl;
106 
107  // VI implementation 18.05.2010
108  G4double gammaE2 = gammaE*gammaE;
109  G4double gammaR2 = gammaE2*GammaR*GammaR;
110  G4double egdp2 = gammaE2 - Egdp*Egdp;
111  G4double sigmaAbs = sigma0*gammaR2/(egdp2*egdp2 + gammaR2);
112  theProb = normC * sigmaAbs * gammaE2 * levelDens;
113 
114  //G4cout<<" sigmaAbs = "<<sigmaAbs <<" Probability = "<<theProb<<G4endl;
115  }
116  return theProb;
117 }
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:273
static const double MeV
Definition: G4SIunits.hh:211
G4double aLevelDensityParam
G4int GetA_asInt() const
Definition: G4Fragment.hh:256
G4double powZ(G4int Z, G4double y) const
Definition: G4Pow.hh:254
G4double theLevelDensityPerNucleon
static const G4double tolerance
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
static const double millibarn
Definition: G4SIunits.hh:105
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator!=()

G4bool G4E1Probability::operator!= ( const G4E1Probability right) const
private

◆ operator=()

const G4E1Probability& G4E1Probability::operator= ( const G4E1Probability right)
private

◆ operator==()

G4bool G4E1Probability::operator== ( const G4E1Probability right) const
private

Member Data Documentation

◆ Afrag

G4int G4E1Probability::Afrag
private

Definition at line 81 of file G4E1Probability.hh.

◆ aLevelDensityParam

G4double G4E1Probability::aLevelDensityParam
private

Definition at line 77 of file G4E1Probability.hh.

◆ Egdp

G4double G4E1Probability::Egdp
private

Definition at line 79 of file G4E1Probability.hh.

◆ fG4pow

G4Pow* G4E1Probability::fG4pow
private

Definition at line 74 of file G4E1Probability.hh.

◆ GammaR

G4double G4E1Probability::GammaR
private

Definition at line 80 of file G4E1Probability.hh.

◆ normC

G4double G4E1Probability::normC
private

Definition at line 76 of file G4E1Probability.hh.

◆ sigma0

G4double G4E1Probability::sigma0
private

Definition at line 78 of file G4E1Probability.hh.

◆ theLevelDensityPerNucleon

G4double G4E1Probability::theLevelDensityPerNucleon
private

Definition at line 75 of file G4E1Probability.hh.


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