Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4ContinuumGammaDeexcitation Class Reference

#include <G4ContinuumGammaDeexcitation.hh>

Inheritance diagram for G4ContinuumGammaDeexcitation:
G4VGammaDeexcitation

Public Member Functions

 G4ContinuumGammaDeexcitation ()
 
virtual ~G4ContinuumGammaDeexcitation ()
 
virtual G4VGammaTransitionCreateTransition ()
 
virtual G4bool CanDoTransition ()
 
- Public Member Functions inherited from G4VGammaDeexcitation
 G4VGammaDeexcitation ()
 
virtual ~G4VGammaDeexcitation ()
 
G4FragmentVectorDoTransition ()
 
G4FragmentVectorDoChain ()
 
G4FragmentGenerateGamma ()
 
G4FragmentGetNucleus ()
 
void SetNucleus (G4Fragment *nucleus)
 
void SetVerboseLevel (G4int verbose)
 
void Initialize ()
 
void SetEO (G4ElectronOccupancy eo)
 
void SetVaccantSN (G4int val)
 
G4ElectronOccupancy GetEO ()
 
G4int GetVacantSN ()
 
void SetTimeLimit (G4double value)
 

Additional Inherited Members

- Protected Member Functions inherited from G4VGammaDeexcitation
void Update ()
 
- Protected Attributes inherited from G4VGammaDeexcitation
G4VGammaTransition_transition
 
G4int _verbose
 

Detailed Description

Definition at line 59 of file G4ContinuumGammaDeexcitation.hh.

Constructor & Destructor Documentation

G4ContinuumGammaDeexcitation::G4ContinuumGammaDeexcitation ( )

Definition at line 66 of file G4ContinuumGammaDeexcitation.cc.

67  : _nucleusZ(0), _nucleusA(0), _levelManager(0)
68 {}
G4ContinuumGammaDeexcitation::~G4ContinuumGammaDeexcitation ( )
virtual

Definition at line 70 of file G4ContinuumGammaDeexcitation.cc.

71 {}

Member Function Documentation

G4bool G4ContinuumGammaDeexcitation::CanDoTransition ( )
virtual

Implements G4VGammaDeexcitation.

Definition at line 100 of file G4ContinuumGammaDeexcitation.cc.

References G4VGammaDeexcitation::_transition, G4VGammaDeexcitation::_verbose, G4cout, G4endl, G4Fragment::GetExcitationEnergy(), G4VGammaDeexcitation::GetNucleus(), and G4NuclearLevelManager::MaxLevelEnergy().

101 {
102  //JMQ: far too small, creating sometimes continuum gammas instead
103  // of the right discrete ones (when excitation energy is slightly
104  // over maximum discrete energy): changed
105  // G4double tolerance = 10*eV;
106  static const G4double tolerance = CLHEP::keV;
107 
108  if (_transition == 0)
109  {
110  if (_verbose > 0) {
111  G4cout << "G4ContinuumGammaDeexcitation::CanDoTransition - Null transition "
112  << G4endl;
113  }
114  return false;
115  }
116 
117  G4Fragment* nucleus = GetNucleus();
118  G4double excitation = nucleus->GetExcitationEnergy();
119 
120  if (_nucleusZ < 2 || _nucleusA < 3)
121  {
122  if (_verbose > 1) {
123  G4cout << "G4ContinuumGammaDeexcitation::CanDoTransition - n/p/H"
124  << G4endl;
125  }
126  return false;
127  }
128 
129  if (excitation <= tolerance)
130  {
131  if (_verbose > 1) {
132  G4cout << "G4ContinuumGammaDeexcitation::CanDoTransition - Excitation "
133  << excitation/CLHEP::keV << " keV is too small"
134  << G4endl;
135  }
136  return false;
137  }
138  if (excitation <= (_levelManager->MaxLevelEnergy() + tolerance))
139  {
140  if (_verbose > 0) {
141  G4cout << "G4ContinuumGammaDeexcitation::CanDoTransition - Excitation "
142  << excitation << " below max discrete level "
143  << _levelManager->MaxLevelEnergy() << G4endl;
144  }
145  return false;
146  }
147 
148  if (_verbose > 1) {
149  G4cout <<"G4ContinuumGammaDeexcitation::CanDoTransition - CanDo"
150  << " Eex(keV)= " << excitation/CLHEP::keV
151  << " Emax(keV)= " << _levelManager->MaxLevelEnergy()/CLHEP::keV
152  << " Z= " << _nucleusZ << " A= " << _nucleusA
153  << G4endl;
154  }
155  return true;
156 }
G4GLOB_DLL std::ostream G4cout
G4VGammaTransition * _transition
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4double MaxLevelEnergy() const
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:255
G4VGammaTransition * G4ContinuumGammaDeexcitation::CreateTransition ( )
virtual

Implements G4VGammaDeexcitation.

Definition at line 73 of file G4ContinuumGammaDeexcitation.cc.

References G4VGammaDeexcitation::_verbose, G4cout, G4endl, G4Fragment::GetA_asInt(), G4Fragment::GetExcitationEnergy(), G4NuclearLevelStore::GetInstance(), G4NuclearLevelStore::GetManager(), G4VGammaDeexcitation::GetNucleus(), and G4Fragment::GetZ_asInt().

74 {
75  G4Fragment* nucleus = GetNucleus();
76  G4int Z = nucleus->GetZ_asInt();
77  G4int A = nucleus->GetA_asInt();
78  G4double excitation = nucleus->GetExcitationEnergy();
79 
80  if (_nucleusA != A || _nucleusZ != Z)
81  {
82  _levelManager = G4NuclearLevelStore::GetInstance()->GetManager(Z,A);
83  _nucleusA = A;
84  _nucleusZ = Z;
85  }
86 
87  if (_verbose > 1) {
88  G4cout << "G4ContinuumGammaDeexcitation::CreateTransition "
89  << " Z= " << Z << " A= " << A << " Eex= " << excitation
90  << " " << _levelManager
91  << G4endl;
92  }
93  G4VGammaTransition* gt =
94  new G4ContinuumGammaTransition(_levelManager,Z,A,excitation,_verbose );
95 
96  return gt;
97 }
static G4NuclearLevelStore * GetInstance()
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
G4int GetA_asInt() const
Definition: G4Fragment.hh:238
G4NuclearLevelManager * GetManager(G4int Z, G4int A)
G4int GetZ_asInt() const
Definition: G4Fragment.hh:243
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:255

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