Geant4  10.02.p03
G4PhotonEvaporation Class Reference

#include <G4PhotonEvaporation.hh>

Inheritance diagram for G4PhotonEvaporation:
Collaboration diagram for G4PhotonEvaporation:

Public Member Functions

 G4PhotonEvaporation (G4GammaTransition *ptr=0)
 
virtual ~G4PhotonEvaporation ()
 
virtual G4FragmentEmittedFragment (G4Fragment *theNucleus)
 
virtual G4bool BreakUpChain (G4FragmentVector *theResult, G4Fragment *theNucleus)
 
virtual G4FragmentVectorBreakUpFragment (G4Fragment *theNucleus)
 
virtual G4FragmentVectorBreakUp (const G4Fragment &theNucleus)
 
virtual G4FragmentVectorBreakItUp (const G4Fragment &theNucleus)
 
virtual G4double GetEmissionProbability (G4Fragment *theNucleus)
 
virtual G4double GetFinalLevelEnergy (G4int Z, G4int A, G4double energy)
 
virtual G4double GetUpperLevelEnergy (G4int Z, G4int A)
 
void SetGammaTransition (G4GammaTransition *)
 
void SetMaxHalfLife (G4double)
 
virtual void SetICM (G4bool)
 
virtual void RDMForced (G4bool)
 
void SetVerboseLevel (G4int verbose)
 
G4int GetVacantShellNumber () const
 
- Public Member Functions inherited from G4VEvaporationChannel
 G4VEvaporationChannel (const G4String &aName="")
 
virtual ~G4VEvaporationChannel ()
 
virtual void Initialise ()
 
virtual G4double GetLifeTime (G4Fragment *theNucleus)
 
virtual void Dump () const
 
G4double GetMaxLevelEnergy (G4int Z, G4int A)
 
G4double GetNearestLevelEnergy (G4int Z, G4int A, G4double energy)
 
void SetPhotonEvaporation (G4VEvaporationChannel *p)
 
void SetOPTxs (G4int opt)
 
void UseSICB (G4bool use)
 

Private Member Functions

G4FragmentGenerateGamma (G4Fragment *nucleus)
 
void InitialiseLevelManager (G4int Z, G4int A)
 
 G4PhotonEvaporation (const G4PhotonEvaporation &right)
 
const G4PhotonEvaporationoperator= (const G4PhotonEvaporation &right)
 

Private Attributes

G4NuclearLevelDatafNuclearLevelData
 
const G4LevelManager * fLevelManager
 
G4GammaTransitionfTransition
 
G4int fVerbose
 
G4int theZ
 
G4int theA
 
G4int fPoints
 
G4int fCode
 
G4int vShellNumber
 
size_t fIndex
 
G4double fCummProbability [MAXDEPOINT]
 
G4double fLevelEnergyMax
 
G4double fExcEnergy
 
G4double fFermiEnergy
 
G4double fProbability
 
G4double fStep
 
G4double fTimeLimit
 
G4double fMaxLifeTime
 
G4bool fICM
 
G4bool fRDM
 
G4bool fSampleTime
 

Static Private Attributes

static G4float GREnergy [MAXGRDATA] = {0.0f}
 
static G4float GRWidth [MAXGRDATA] = {0.0f}
 

Additional Inherited Members

- Protected Attributes inherited from G4VEvaporationChannel
G4int OPTxs
 
G4bool useSICB
 

Detailed Description

Definition at line 64 of file G4PhotonEvaporation.hh.

Constructor & Destructor Documentation

◆ G4PhotonEvaporation() [1/2]

G4PhotonEvaporation::G4PhotonEvaporation ( G4GammaTransition ptr = 0)

Definition at line 67 of file G4PhotonEvaporation.cc.

68  : fLevelManager(nullptr), fTransition(p), fVerbose(0), fPoints(0),
70  fICM(false), fRDM(false), fSampleTime(true)
71 {
73  if(!fTransition) {
74  char* en = getenv("G4UseNuclearPolarization");
75  if(en) { fTransition = new G4PolarizedGammaTransition(); }
76  else { fTransition = new G4GammaTransition(); }
77  }
78 
79  char* env = getenv("G4AddTimeLimitToPhotonEvaporation");
80  if(env) { fTimeLimit = 1.e-16*CLHEP::second; }
81 
82  theA = theZ = fCode = 0;
84 
85  for(G4int i=0; i<MAXDEPOINT; ++i) { fCummProbability[i] = 0.0; }
86  if(0.0f == GREnergy[1]) {
87  G4Pow* g4pow = G4Pow::GetInstance();
88  for (G4int A=1; A<MAXGRDATA; ++A) {
89  GREnergy[A] = (G4float)(40.3*CLHEP::MeV/g4pow->powZ(A,0.2));
91  }
92  }
93 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
G4GammaTransition * fTransition
const G4int MAXGRDATA
static G4float GREnergy[MAXGRDATA]
const G4int MAXDEPOINT
Definition: G4Pow.hh:56
float G4float
Definition: G4Types.hh:77
static G4float GRWidth[MAXGRDATA]
G4double fCummProbability[MAXDEPOINT]
const G4LevelManager * fLevelManager
int G4int
Definition: G4Types.hh:78
G4double powZ(G4int Z, G4double y) const
Definition: G4Pow.hh:254
double A(double temperature)
static const double second
const G4float GRWfactor
G4NuclearLevelData * fNuclearLevelData
static G4NuclearLevelData * GetInstance()
#define DBL_MAX
Definition: templates.hh:83
static const double MeV
Here is the call graph for this function:

◆ ~G4PhotonEvaporation()

G4PhotonEvaporation::~G4PhotonEvaporation ( )
virtual

Definition at line 95 of file G4PhotonEvaporation.cc.

96 {
97  delete fTransition;
98 }
G4GammaTransition * fTransition

◆ G4PhotonEvaporation() [2/2]

G4PhotonEvaporation::G4PhotonEvaporation ( const G4PhotonEvaporation right)
private

Member Function Documentation

◆ BreakItUp()

G4FragmentVector * G4PhotonEvaporation::BreakItUp ( const G4Fragment theNucleus)
virtual

Definition at line 136 of file G4PhotonEvaporation.cc.

137 {
138  //G4cout << "G4PhotonEvaporation::BreakItUp" << G4endl;
139  G4Fragment* aNucleus = new G4Fragment(nucleus);
140  G4FragmentVector* products = new G4FragmentVector();
141  BreakUpChain(products, aNucleus);
142  products->push_back(aNucleus);
143  return products;
144 }
virtual G4bool BreakUpChain(G4FragmentVector *theResult, G4Fragment *theNucleus)
std::vector< G4Fragment * > G4FragmentVector
Definition: G4Fragment.hh:63
Here is the call graph for this function:
Here is the caller graph for this function:

◆ BreakUp()

G4FragmentVector * G4PhotonEvaporation::BreakUp ( const G4Fragment theNucleus)
virtual

Implements G4VEvaporationChannel.

Definition at line 125 of file G4PhotonEvaporation.cc.

126 {
127  //G4cout << "G4PhotonEvaporation::BreakUp" << G4endl;
128  G4Fragment* aNucleus = new G4Fragment(nucleus);
129  G4FragmentVector* products = new G4FragmentVector();
130  BreakUpChain(products, aNucleus);
131  products->push_back(aNucleus);
132  return products;
133 }
virtual G4bool BreakUpChain(G4FragmentVector *theResult, G4Fragment *theNucleus)
std::vector< G4Fragment * > G4FragmentVector
Definition: G4Fragment.hh:63
Here is the call graph for this function:

◆ BreakUpChain()

G4bool G4PhotonEvaporation::BreakUpChain ( G4FragmentVector theResult,
G4Fragment theNucleus 
)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 146 of file G4PhotonEvaporation.cc.

148 {
149  if(fVerbose > 0) {
150  G4cout << "G4PhotonEvaporation::BreakUpChain RDM= " << fRDM << " "
151  << *nucleus << G4endl;
152  }
153  G4Fragment* gamma = 0;
154  if(fRDM) { fSampleTime = false; }
155  else { fSampleTime = true; }
156 
157  do {
158  gamma = GenerateGamma(nucleus);
159  if(gamma) {
160  products->push_back(gamma);
161  if(fVerbose > 0) {
162  G4cout << "G4PhotonEvaporation::BreakUpChain: "
163  << *gamma << G4endl;
164  G4cout << " Residual: " << *nucleus << G4endl;
165  }
166  // for next decays in the chain always sample time
167  fSampleTime = true;
168  }
169  // Loop checking, 05-Aug-2015, Vladimir Ivanchenko
170  } while(gamma);
171  return false;
172 }
G4GLOB_DLL std::ostream G4cout
G4Fragment * GenerateGamma(G4Fragment *nucleus)
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

◆ BreakUpFragment()

G4FragmentVector * G4PhotonEvaporation::BreakUpFragment ( G4Fragment theNucleus)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 116 of file G4PhotonEvaporation.cc.

117 {
118  //G4cout << "G4PhotonEvaporation::BreakUpFragment" << G4endl;
119  G4FragmentVector* products = new G4FragmentVector();
120  BreakUpChain(products, nucleus);
121  return products;
122 }
virtual G4bool BreakUpChain(G4FragmentVector *theResult, G4Fragment *theNucleus)
std::vector< G4Fragment * > G4FragmentVector
Definition: G4Fragment.hh:63
Here is the call graph for this function:

◆ EmittedFragment()

G4Fragment * G4PhotonEvaporation::EmittedFragment ( G4Fragment theNucleus)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 101 of file G4PhotonEvaporation.cc.

102 {
103  if(fRDM) { fSampleTime = false; }
104  else { fSampleTime = true; }
105 
106  G4Fragment* gamma = GenerateGamma(nucleus);
107  if(fVerbose > 0) {
108  G4cout << "G4PhotonEvaporation::EmittedFragment: RDM= " << fRDM << G4endl;
109  if(gamma) { G4cout << *gamma << G4endl; }
110  G4cout << " Residual: " << *nucleus << G4endl;
111  }
112  return gamma;
113 }
G4GLOB_DLL std::ostream G4cout
G4Fragment * GenerateGamma(G4Fragment *nucleus)
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GenerateGamma()

G4Fragment * G4PhotonEvaporation::GenerateGamma ( G4Fragment nucleus)
private

Definition at line 269 of file G4PhotonEvaporation.cc.

270 {
271  G4Fragment* result = 0;
272  G4double eexc = nucleus->GetExcitationEnergy();
273  if(eexc < Tolerance) { return result; }
274 
275  InitialiseLevelManager(nucleus->GetZ_asInt(), nucleus->GetA_asInt());
276 
277  G4double time = nucleus->GetCreationTime();
278 
279  G4double efinal = 0.0;
280  vShellNumber = -1;
281  size_t shell = 0;
282  G4int deltaS = 1;
283  G4bool isGamma = true;
284  G4bool isLongLived = false;
285  G4bool isX = false;
286  G4bool icm = fICM;
287 
288  if(fVerbose > 1) {
289  G4cout << "GenerateGamma: Exc= " << eexc << " Emax= "
290  << fLevelEnergyMax << " fEex= " << fExcEnergy
291  << " fCode= " << fCode << " fPoints= " << fPoints
292  << " fProb= " << fProbability << G4endl;
293  }
294  // continues part
295  if(!fLevelManager || eexc > fLevelEnergyMax + Tolerance) {
296  //G4cout << "Continues fPoints= " << fPoints << " " << fLevelManager << G4endl;
297 
298  // we compare current excitation versus value used for probability
299  // computation and also Z and A used for probability computation
300  if(fCode != 1000*theZ + theA || eexc != fExcEnergy) {
301  GetEmissionProbability(nucleus);
302  }
303  if(fProbability == 0.0) { return result; }
305  for(G4int i=1; i<fPoints; ++i) {
306  //G4cout << "y= " << y << " cummProb= " << fCummProbability[i] << G4endl;
307  if(y <= fCummProbability[i]) {
308  efinal = fStep*((i - 1) + (y - fCummProbability[i-1])
309  /(fCummProbability[i] - fCummProbability[i-1]));
310  break;
311  }
312  }
313  // final discrete level
314  if(fLevelManager && efinal <= fLevelEnergyMax + Tolerance) {
315  //G4cout << "Efinal= " << efinal << " idx= " << fIndex << G4endl;
316  fIndex = fLevelManager->NearestLevelIndex(efinal, fIndex);
317  efinal = (G4double)fLevelManager->LevelEnergy(fIndex);
318  }
319  //discrete part
320  } else {
321  fIndex = fLevelManager->NearestLevelIndex(eexc, fIndex);
322  if(fVerbose > 1) {
323  G4cout << "Discrete emission from level Index= " << fIndex
324  << " Elevel= " << fLevelManager->LevelEnergy(fIndex)
325  << " RDM= " << fRDM << " ICM= " << fICM << G4endl;
326  }
327  if(0 == fIndex) { return result; }
328  const G4NucLevel* level = fLevelManager->GetLevel(fIndex);
329 
330  // radioactive decay model call transitions one by one
331  // for X-level corresponding gamma transition is forced
332  // from the previous one; this is needed, because
333  // X-level assumes a competition between beta amd gamma
334  // decay probabilities
335  isX = level->IsXLevel();
336  if(isX && fRDM && fIndex > 0) {
337  --fIndex;
338  level = fLevelManager->GetLevel(fIndex);
339  isX = level->IsXLevel();
340  }
341 
342  G4double ltime = 0.0;
343  if(fICM) { ltime = (G4double)fLevelManager->LifeTime(fIndex); }
344  else { ltime = (G4double)fLevelManager->LifeTimeGamma(fIndex); }
345 
346  if(ltime >= fMaxLifeTime) { return result; }
347  if(ltime > fTimeLimit) {
348  icm = true;
349  isLongLived = true;
350  }
351  size_t ntrans = level->NumberOfTransitions();
352  size_t idx = 0;
353  if(fVerbose > 1) {
354  G4cout << "Ntrans= " << ntrans << " idx= " << idx << " isX= " << isX
355  << " icm= " << icm << G4endl;
356  }
357  if(!isX) {
358  if(1 < ntrans) {
359  G4double rndm = G4UniformRand();
360  if(icm) { idx = level->SampleGammaETransition(rndm); }
361  else { idx = level->SampleGammaTransition(rndm); }
362  //G4cout << "Sampled idx= " << idx << " rndm= " << rndm << G4endl;
363  }
364  if(icm) {
365  G4double rndm = G4UniformRand();
366  G4double prob = level->GammaProbability(idx);
367  if(rndm > prob) {
368  rndm = (rndm - prob)/(1.0 - prob);
369  shell = level->SampleShell(idx, rndm);
370  vShellNumber = shell;
371  isGamma = false;
372  }
373  }
374  }
375  efinal = (G4double)level->FinalExcitationEnergy(idx);
376  fIndex += idx;
377  fIndex = (fIndex >= ntrans) ? fIndex - ntrans : 0;
378 
379  if(fSampleTime && ltime > 0.0) {
380  time -= ltime*G4Log(G4UniformRand());
381  }
382  }
383  // no gamma emission for X-level
384  if(isX) {
385  G4ThreeVector v = nucleus->GetMomentum().vect().unit();
386  G4double mass = nucleus->GetGroundStateMass() + efinal;
387  G4double e = std::max(mass,nucleus->GetMomentum().e());
388  G4double mom = std::sqrt((e - mass)*(e + mass));
389  v *= mom;
390  nucleus->SetMomentum(G4LorentzVector(v.x(),v.y(),v.z(),e));
391  if(fVerbose > 1) {
392  G4cout << "X-level Eexc= " << nucleus->GetExcitationEnergy()
393  << G4endl;
394  }
395  // normal case
396  } else {
397  result = fTransition->SampleTransition(nucleus, efinal,
398  deltaS, shell,
399  isGamma, isLongLived);
400  if(result) { result->SetCreationTime(time); }
401  }
402  nucleus->SetCreationTime(time);
403 
404  if(fVerbose > 1) {
405  G4cout << "Final level E= " << efinal << " time= " << time
406  << " idx= " << fIndex << " isX " << isX
407  << " isGamma: " << isGamma << " isLongLived: " << isLongLived
408  << " deltaS= " << deltaS << " shell= " << shell << G4endl;
409  }
410  return result;
411 }
size_t SampleShell(size_t idx, G4double rndm) const
Definition: G4NucLevel.hh:147
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:273
G4GammaTransition * fTransition
const G4double Tolerance
size_t SampleGammaETransition(G4double rndm) const
Definition: G4NucLevel.hh:137
G4int GetA_asInt() const
Definition: G4Fragment.hh:256
G4double GetGroundStateMass() const
Definition: G4Fragment.hh:278
G4double fCummProbability[MAXDEPOINT]
const G4LevelManager * fLevelManager
G4float GammaProbability(size_t idx) const
Definition: G4NucLevel.hh:115
int G4int
Definition: G4Types.hh:78
Hep3Vector vect() const
Double_t y
#define G4UniformRand()
Definition: Randomize.hh:97
G4GLOB_DLL std::ostream G4cout
G4int GetZ_asInt() const
Definition: G4Fragment.hh:261
bool G4bool
Definition: G4Types.hh:79
void SetMomentum(const G4LorentzVector &value)
Definition: G4Fragment.hh:294
Hep3Vector unit() const
virtual G4double GetEmissionProbability(G4Fragment *theNucleus)
size_t SampleGammaTransition(G4double rndm) const
Definition: G4NucLevel.hh:127
double x() const
G4double G4Log(G4double x)
Definition: G4Log.hh:230
void SetCreationTime(G4double time)
Definition: G4Fragment.hh:425
double y() const
const G4LorentzVector & GetMomentum() const
Definition: G4Fragment.hh:289
virtual G4Fragment * SampleTransition(G4Fragment *nucleus, G4double newExcEnergy, G4int deltaS, size_t shell, G4bool isGamma, G4bool isLongLived)
G4bool IsXLevel() const
Definition: G4NucLevel.hh:104
size_t NumberOfTransitions() const
Definition: G4NucLevel.hh:99
double z() const
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
void InitialiseLevelManager(G4int Z, G4int A)
G4float FinalExcitationEnergy(size_t idx) const
Definition: G4NucLevel.hh:109
G4double GetCreationTime() const
Definition: G4Fragment.hh:420
CLHEP::HepLorentzVector G4LorentzVector
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetEmissionProbability()

G4double G4PhotonEvaporation::GetEmissionProbability ( G4Fragment theNucleus)
virtual

Implements G4VEvaporationChannel.

Definition at line 175 of file G4PhotonEvaporation.cc.

176 {
177  fProbability = 0.0;
178  fExcEnergy = nucleus->GetExcitationEnergy();
179  G4int Z = nucleus->GetZ_asInt();
180  G4int A = nucleus->GetA_asInt();
181  fCode = 1000*Z + A;
182  if(fVerbose > 1) {
183  G4cout << "G4PhotonEvaporation::GetEmissionProbability: Z="
184  << Z << " A=" << A << " Eexc(MeV)= " << fExcEnergy << G4endl;
185  }
186  // ignore gamma de-excitation for exotic fragments
187  // and for very low excitations
188  if(0 >= Z || 1 >= A || Z == A || Tolerance >= fExcEnergy)
189  { return fProbability; }
190 
191  // ignore gamma de-excitation for highly excited levels
192  if(A >= MAXGRDATA) { A = MAXGRDATA-1; }
193  //G4cout<<" GREnergy= "<< GREnergy[A]<<" GRWidth= "<<GRWidth[A]<<G4endl;
194  if(fExcEnergy >= (G4double)(GREfactor*GRWidth[A] + GREnergy[A])) {
195  return fProbability;
196  }
197 
198  // probability computed assuming continium transitions
199  // VI: continium transition are limited only to final states
200  // below Fermi energy (this approach needs further evaluation)
201  fFermiEnergy = std::max(0.0, nucleus->ComputeGroundStateMass(Z, A-1)
202  + CLHEP::neutron_mass_c2 - nucleus->GetGroundStateMass());
203 
204  // max energy level for continues transition
206  const G4double eexcfac = 0.99;
207  if(0.0 == emax || fExcEnergy*eexcfac <= emax) { emax = fExcEnergy*eexcfac; }
208 
209  fStep = emax;
211  fStep /= ((G4double)(fPoints - 1));
212  if(fVerbose > 1) {
213  G4cout << "Emax= " << emax << " Npoints= " << fPoints
214  <<" Efermi= " << fFermiEnergy << " Eex= " << fExcEnergy << G4endl;
215  }
216  // integrate probabilities
217  G4double eres = (G4double)GREnergy[A];
218  G4double wres = (G4double)GRWidth[A];
219  G4double eres2= eres*eres;
220  G4double wres2= wres*wres;
221  G4double xsqr = std::sqrt(A*LevelDensity*fExcEnergy);
222 
223  G4double egam = fExcEnergy - emax;
224  G4double gammaE2 = egam*egam;
225  G4double gammaR2 = gammaE2*wres*wres;
226  G4double egdp2 = gammaE2 - eres*eres;
227 
228  G4double p0 = G4Exp(2*(std::sqrt(A*LevelDensity*emax) - xsqr))
229  *gammaR2*gammaE2/(egdp2*egdp2 + gammaR2);
230  G4double p1(0.0);
231 
232  for(G4int i=1; i<fPoints; ++i) {
233  egam += fStep;
234  gammaE2 = egam*egam;
235  gammaR2 = gammaE2*wres2;
236  egdp2 = gammaE2 - eres2;
237  //G4cout << "Egamma= " << egam << " Eex= " << fExcEnergy
238  //<< " p0= " << p0 << " p1= " << p1 << G4endl;
239  p1 = G4Exp(2*(std::sqrt(A*LevelDensity*std::abs(fExcEnergy - egam)) - xsqr))
240  *gammaR2*gammaE2/(egdp2*egdp2 + gammaR2);
241  fProbability += (p1 + p0);
243  p0 = p1;
244  }
245  fProbability *= 0.5*fStep*NormC*A;
246  if(fVerbose > 1) { G4cout << "prob= " << fProbability << G4endl; }
247  return fProbability;
248 }
const G4int MAXGRDATA
static G4float GREnergy[MAXGRDATA]
const G4int MAXDEPOINT
const G4double Tolerance
static G4float GRWidth[MAXGRDATA]
G4double fCummProbability[MAXDEPOINT]
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
Float_t Z
static const G4double emax
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
const G4double MaxDeltaEnergy
const G4float GREfactor
#define G4endl
Definition: G4ios.hh:61
const G4double LevelDensity
double G4double
Definition: G4Types.hh:76
static const double neutron_mass_c2
const G4double NormC
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetFinalLevelEnergy()

G4double G4PhotonEvaporation::GetFinalLevelEnergy ( G4int  Z,
G4int  A,
G4double  energy 
)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 251 of file G4PhotonEvaporation.cc.

252 {
253  G4double E = energy;
255  if(fLevelManager) {
256  E = (G4double)fLevelManager->NearestLevelEnergy(energy, fIndex);
257  if(E > fLevelEnergyMax + Tolerance) { E = energy; }
258  }
259  return E;
260 }
const G4double Tolerance
const G4LevelManager * fLevelManager
double energy
Definition: plottest35.C:25
double A(double temperature)
Float_t Z
double G4double
Definition: G4Types.hh:76
void InitialiseLevelManager(G4int Z, G4int A)
Here is the call graph for this function:

◆ GetUpperLevelEnergy()

G4double G4PhotonEvaporation::GetUpperLevelEnergy ( G4int  Z,
G4int  A 
)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 262 of file G4PhotonEvaporation.cc.

263 {
265  return fLevelEnergyMax;
266 }
double A(double temperature)
Float_t Z
void InitialiseLevelManager(G4int Z, G4int A)
Here is the call graph for this function:

◆ GetVacantShellNumber()

G4int G4PhotonEvaporation::GetVacantShellNumber ( ) const
inline

Definition at line 167 of file G4PhotonEvaporation.hh.

168 {
169  return vShellNumber;
170 }
Here is the caller graph for this function:

◆ InitialiseLevelManager()

void G4PhotonEvaporation::InitialiseLevelManager ( G4int  Z,
G4int  A 
)
inlineprivate

Definition at line 153 of file G4PhotonEvaporation.hh.

154 {
155  if(Z != theZ || A != theA) {
156  theZ = Z;
157  theA = A;
158  fIndex = 0;
160  fLevelEnergyMax = 0.0;
161  if(fLevelManager) {
162  fLevelEnergyMax = (G4double)fLevelManager->MaxLevelEnergy();
163  }
164  }
165 }
const G4LevelManager * fLevelManager
double A(double temperature)
Float_t Z
const G4LevelManager * GetLevelManager(G4int Z, G4int A)
G4NuclearLevelData * fNuclearLevelData
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

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

◆ RDMForced()

void G4PhotonEvaporation::RDMForced ( G4bool  val)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 432 of file G4PhotonEvaporation.cc.

433 {
434  fRDM = val;
435 }
Here is the caller graph for this function:

◆ SetGammaTransition()

void G4PhotonEvaporation::SetGammaTransition ( G4GammaTransition p)

Definition at line 419 of file G4PhotonEvaporation.cc.

420 {
421  if(p != fTransition) {
422  delete fTransition;
423  fTransition = p;
424  }
425 }
G4GammaTransition * fTransition

◆ SetICM()

void G4PhotonEvaporation::SetICM ( G4bool  val)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 427 of file G4PhotonEvaporation.cc.

428 {
429  fICM = val;
430 }
Here is the caller graph for this function:

◆ SetMaxHalfLife()

void G4PhotonEvaporation::SetMaxHalfLife ( G4double  val)

Definition at line 413 of file G4PhotonEvaporation.cc.

414 {
415  static const G4double tfact = G4Pow::GetInstance()->logZ(2);
416  fMaxLifeTime = val/tfact;
417 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
G4double logZ(G4int Z) const
Definition: G4Pow.hh:166
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:

◆ SetVerboseLevel()

void G4PhotonEvaporation::SetVerboseLevel ( G4int  verbose)
inline

Definition at line 147 of file G4PhotonEvaporation.hh.

148 {
149  fVerbose = verbose;
150 }

Member Data Documentation

◆ fCode

G4int G4PhotonEvaporation::fCode
private

Definition at line 125 of file G4PhotonEvaporation.hh.

◆ fCummProbability

G4double G4PhotonEvaporation::fCummProbability[MAXDEPOINT]
private

Definition at line 132 of file G4PhotonEvaporation.hh.

◆ fExcEnergy

G4double G4PhotonEvaporation::fExcEnergy
private

Definition at line 135 of file G4PhotonEvaporation.hh.

◆ fFermiEnergy

G4double G4PhotonEvaporation::fFermiEnergy
private

Definition at line 136 of file G4PhotonEvaporation.hh.

◆ fICM

G4bool G4PhotonEvaporation::fICM
private

Definition at line 142 of file G4PhotonEvaporation.hh.

◆ fIndex

size_t G4PhotonEvaporation::fIndex
private

Definition at line 127 of file G4PhotonEvaporation.hh.

◆ fLevelEnergyMax

G4double G4PhotonEvaporation::fLevelEnergyMax
private

Definition at line 134 of file G4PhotonEvaporation.hh.

◆ fLevelManager

const G4LevelManager* G4PhotonEvaporation::fLevelManager
private

Definition at line 118 of file G4PhotonEvaporation.hh.

◆ fMaxLifeTime

G4double G4PhotonEvaporation::fMaxLifeTime
private

Definition at line 140 of file G4PhotonEvaporation.hh.

◆ fNuclearLevelData

G4NuclearLevelData* G4PhotonEvaporation::fNuclearLevelData
private

Definition at line 117 of file G4PhotonEvaporation.hh.

◆ fPoints

G4int G4PhotonEvaporation::fPoints
private

Definition at line 124 of file G4PhotonEvaporation.hh.

◆ fProbability

G4double G4PhotonEvaporation::fProbability
private

Definition at line 137 of file G4PhotonEvaporation.hh.

◆ fRDM

G4bool G4PhotonEvaporation::fRDM
private

Definition at line 143 of file G4PhotonEvaporation.hh.

◆ fSampleTime

G4bool G4PhotonEvaporation::fSampleTime
private

Definition at line 144 of file G4PhotonEvaporation.hh.

◆ fStep

G4double G4PhotonEvaporation::fStep
private

Definition at line 138 of file G4PhotonEvaporation.hh.

◆ fTimeLimit

G4double G4PhotonEvaporation::fTimeLimit
private

Definition at line 139 of file G4PhotonEvaporation.hh.

◆ fTransition

G4GammaTransition* G4PhotonEvaporation::fTransition
private

Definition at line 119 of file G4PhotonEvaporation.hh.

◆ fVerbose

G4int G4PhotonEvaporation::fVerbose
private

Definition at line 121 of file G4PhotonEvaporation.hh.

◆ GREnergy

G4float G4PhotonEvaporation::GREnergy = {0.0f}
staticprivate

Definition at line 129 of file G4PhotonEvaporation.hh.

◆ GRWidth

G4float G4PhotonEvaporation::GRWidth = {0.0f}
staticprivate

Definition at line 130 of file G4PhotonEvaporation.hh.

◆ theA

G4int G4PhotonEvaporation::theA
private

Definition at line 123 of file G4PhotonEvaporation.hh.

◆ theZ

G4int G4PhotonEvaporation::theZ
private

Definition at line 122 of file G4PhotonEvaporation.hh.

◆ vShellNumber

G4int G4PhotonEvaporation::vShellNumber
private

Definition at line 126 of file G4PhotonEvaporation.hh.


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