Geant4  10.02.p03
G4DiscreteGammaDeexcitation Class Reference

#include <G4DiscreteGammaDeexcitation.hh>

Inheritance diagram for G4DiscreteGammaDeexcitation:
Collaboration diagram for G4DiscreteGammaDeexcitation:

Public Member Functions

 G4DiscreteGammaDeexcitation ()
 
virtual ~G4DiscreteGammaDeexcitation ()
 
virtual G4bool CanDoTransition (G4Fragment *nucleus)
 
void SetICM (G4bool hl)
 
void SetRDM (G4bool hl)
 
void SetHL (G4double hl)
 
- Public Member Functions inherited from G4VGammaDeexcitation
 G4VGammaDeexcitation ()
 
virtual ~G4VGammaDeexcitation ()
 
void DoChain (G4FragmentVector *, G4Fragment *nucleus)
 
G4FragmentGenerateGamma (G4Fragment *nucleus)
 
void SetVerboseLevel (G4int verbose)
 
void SetEO (G4ElectronOccupancy eo)
 
void SetVaccantSN (G4int val)
 
G4ElectronOccupancy GetEO ()
 
G4int GetVacantSN ()
 
void SetTimeLimit (G4double value)
 

Private Attributes

G4int nucleusZ
 
G4int nucleusA
 
G4double maxhl
 
G4bool icm
 
G4bool rdm
 
G4NuclearLevelStorestore
 
G4NuclearLevelManagerlevelManager
 
G4DiscreteGammaTransitiondtransition
 

Additional Inherited Members

- Protected Attributes inherited from G4VGammaDeexcitation
G4VGammaTransition_transition
 
G4int _verbose
 
G4double _tolerance
 
G4double _timeLimit
 

Detailed Description

Definition at line 69 of file G4DiscreteGammaDeexcitation.hh.

Constructor & Destructor Documentation

◆ G4DiscreteGammaDeexcitation()

G4DiscreteGammaDeexcitation::G4DiscreteGammaDeexcitation ( )

Definition at line 63 of file G4DiscreteGammaDeexcitation.cc.

Here is the call graph for this function:

◆ ~G4DiscreteGammaDeexcitation()

G4DiscreteGammaDeexcitation::~G4DiscreteGammaDeexcitation ( )
virtual

Definition at line 70 of file G4DiscreteGammaDeexcitation.cc.

71 {}

Member Function Documentation

◆ CanDoTransition()

G4bool G4DiscreteGammaDeexcitation::CanDoTransition ( G4Fragment nucleus)
virtual

Implements G4VGammaDeexcitation.

Definition at line 73 of file G4DiscreteGammaDeexcitation.cc.

74 {
75  G4int Z = nucleus->GetZ_asInt();
76  G4int A = nucleus->GetA_asInt();
77  G4double excitation = nucleus->GetExcitationEnergy();
78 
79  if(excitation <= _tolerance) {
80  if (_verbose > 1) {
81  G4cout << "G4DiscreteGammaDeexcitation::CanDoTransition fails; Z= " << Z
82  << " A= " << A << " Eex(meV)= " << excitation/MeV << G4endl;
83  }
84  return false;
85  }
86 
87  if (nucleusA != A || nucleusZ != Z) {
89  nucleusA = A;
90  nucleusZ = Z;
91  }
92  if(!levelManager ||
93  excitation > levelManager->MaxLevelEnergy() + _tolerance) { return false; }
94 
95  if (_verbose > 1) {
96  G4cout << "G4DiscreteGammaDeexcitation::CanDoTransition "
97  << " Z= " << Z << " A= " << A << " Eex= " << excitation
98  << G4endl;
99  }
100 
101  const G4NuclearLevel* level = levelManager->NearestLevel(excitation);
102 
103  // long lived level
104  if (!level || level->HalfLife() > maxhl) { return false; }
105  // if (!level || (level->HalfLife() > maxhl && !rdm) ) { return false; }
106 
107  if (_verbose > 1) {
108  G4cout << "G4DiscreteGammaDeexcitation: Elevel(MeV)= "
109  << level->Energy()/MeV << ", Eex(MeV)= " << excitation << G4endl;
110  }
111  if(!_transition) {
115  } else {
116  dtransition->Update(level,Z);
117  }
118  // control on ICM
119  if(level->HalfLife() > _timeLimit) {
120  dtransition->SetICM(true);
121  } else {
123  }
124 
125  dtransition->SetEnergyFrom(excitation);
126 
127  if (_verbose > 1) {
128  G4cout << "CanDoTransition done: Eex(MeV)= "
129  << excitation/MeV << ", level enrgies: Emin(MeV)= "
130  << levelManager->MinLevelEnergy()/MeV << " Emax(MeV)= "
132  }
133  return true;
134 }
const G4NuclearLevel * NearestLevel(G4double energy, G4double eDiffMax=1.e+8) const
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:273
static const double MeV
Definition: G4SIunits.hh:211
G4int GetA_asInt() const
Definition: G4Fragment.hh:256
G4double HalfLife() const
G4double Energy() const
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
G4int GetZ_asInt() const
Definition: G4Fragment.hh:261
Float_t Z
G4NuclearLevelManager * GetManager(G4int Z, G4int A)
G4VGammaTransition * _transition
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4DiscreteGammaTransition * dtransition
void Update(const G4NuclearLevel *level, G4int Z)
virtual void SetEnergyFrom(G4double energy)
Here is the call graph for this function:

◆ SetHL()

void G4DiscreteGammaDeexcitation::SetHL ( G4double  hl)
inline

Definition at line 82 of file G4DiscreteGammaDeexcitation.hh.

◆ SetICM()

void G4DiscreteGammaDeexcitation::SetICM ( G4bool  hl)
inline

Definition at line 78 of file G4DiscreteGammaDeexcitation.hh.

Here is the caller graph for this function:

◆ SetRDM()

void G4DiscreteGammaDeexcitation::SetRDM ( G4bool  hl)
inline

Definition at line 80 of file G4DiscreteGammaDeexcitation.hh.

Member Data Documentation

◆ dtransition

G4DiscreteGammaTransition* G4DiscreteGammaDeexcitation::dtransition
private

Definition at line 93 of file G4DiscreteGammaDeexcitation.hh.

◆ icm

G4bool G4DiscreteGammaDeexcitation::icm
private

Definition at line 89 of file G4DiscreteGammaDeexcitation.hh.

◆ levelManager

G4NuclearLevelManager* G4DiscreteGammaDeexcitation::levelManager
private

Definition at line 92 of file G4DiscreteGammaDeexcitation.hh.

◆ maxhl

G4double G4DiscreteGammaDeexcitation::maxhl
private

Definition at line 88 of file G4DiscreteGammaDeexcitation.hh.

◆ nucleusA

G4int G4DiscreteGammaDeexcitation::nucleusA
private

Definition at line 87 of file G4DiscreteGammaDeexcitation.hh.

◆ nucleusZ

G4int G4DiscreteGammaDeexcitation::nucleusZ
private

Definition at line 82 of file G4DiscreteGammaDeexcitation.hh.

◆ rdm

G4bool G4DiscreteGammaDeexcitation::rdm
private

Definition at line 90 of file G4DiscreteGammaDeexcitation.hh.

◆ store

G4NuclearLevelStore* G4DiscreteGammaDeexcitation::store
private

Definition at line 91 of file G4DiscreteGammaDeexcitation.hh.


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