G4ContinuumGammaDeexcitation Class Reference

#include <G4ContinuumGammaDeexcitation.hh>

Inheritance diagram for G4ContinuumGammaDeexcitation:

G4VGammaDeexcitation

Public Member Functions

 G4ContinuumGammaDeexcitation ()
virtual ~G4ContinuumGammaDeexcitation ()
virtual G4VGammaTransitionCreateTransition ()
virtual G4bool CanDoTransition ()

Detailed Description

Definition at line 59 of file G4ContinuumGammaDeexcitation.hh.


Constructor & Destructor Documentation

G4ContinuumGammaDeexcitation::G4ContinuumGammaDeexcitation (  ) 

Definition at line 66 of file G4ContinuumGammaDeexcitation.cc.

00067   : _nucleusZ(0), _nucleusA(0), _levelManager(0)
00068 {}

G4ContinuumGammaDeexcitation::~G4ContinuumGammaDeexcitation (  )  [virtual]

Definition at line 70 of file G4ContinuumGammaDeexcitation.cc.

00071 {}


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().

00101 {
00102   //JMQ: far too small, creating sometimes continuum gammas instead 
00103   //     of the right discrete ones (when excitation energy is slightly 
00104   //     over maximum discrete  energy): changed
00105   //  G4double tolerance = 10*eV;
00106   const G4double tolerance = CLHEP::keV;
00107 
00108   if (_transition == 0) 
00109     {
00110       if (_verbose > 0) {
00111         G4cout << "G4ContinuumGammaDeexcitation::CanDoTransition - Null transition "
00112                << G4endl;
00113       }
00114       return false;
00115     }
00116 
00117   G4Fragment* nucleus = GetNucleus();
00118   G4double excitation = nucleus->GetExcitationEnergy();
00119 
00120   if (_nucleusZ < 2 || _nucleusA < 3)
00121     {
00122       if (_verbose > 1) { 
00123         G4cout << "G4ContinuumGammaDeexcitation::CanDoTransition - n/p/H"
00124                << G4endl;
00125       }
00126       return false;
00127     }
00128 
00129   if (excitation <= tolerance) 
00130     {
00131       if (_verbose > 1) { 
00132         G4cout << "G4ContinuumGammaDeexcitation::CanDoTransition -  Excitation "
00133                << excitation/CLHEP::keV << " keV is too small"
00134                << G4endl;
00135       }
00136       return false;
00137     }
00138   if (excitation <= (_levelManager->MaxLevelEnergy() + tolerance)) 
00139     {  
00140       if (_verbose > 0) {
00141         G4cout << "G4ContinuumGammaDeexcitation::CanDoTransition -  Excitation " 
00142                << excitation << " below max discrete level " 
00143                << _levelManager->MaxLevelEnergy() << G4endl;
00144       }
00145       return false;
00146     }
00147   
00148   if (_verbose > 1) {
00149     G4cout <<"G4ContinuumGammaDeexcitation::CanDoTransition - CanDo" 
00150            << " Eex(keV)= " << excitation/CLHEP::keV 
00151            << " Emax(keV)= " << _levelManager->MaxLevelEnergy()/CLHEP::keV 
00152            << " Z= " << _nucleusZ << " A= " << _nucleusA
00153            << G4endl;
00154   }
00155   return true;
00156 }

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().

00074 {
00075   G4Fragment* nucleus = GetNucleus();
00076   G4int Z = nucleus->GetZ_asInt();
00077   G4int A = nucleus->GetA_asInt();
00078   G4double excitation = nucleus->GetExcitationEnergy();
00079 
00080   if (_nucleusA != A || _nucleusZ != Z)
00081   {
00082     _levelManager = G4NuclearLevelStore::GetInstance()->GetManager(Z,A);
00083     _nucleusA = A;
00084     _nucleusZ = Z;
00085   }
00086 
00087   if (_verbose > 1) {
00088     G4cout << "G4ContinuumGammaDeexcitation::CreateTransition "
00089            << " Z= " << Z << "  A= " << A << " Eex= " << excitation
00090            << "  "  << _levelManager
00091            << G4endl;
00092   }
00093   G4VGammaTransition* gt =  
00094     new G4ContinuumGammaTransition(_levelManager,Z,A,excitation,_verbose );
00095 
00096   return gt;
00097 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:51:42 2013 for Geant4 by  doxygen 1.4.7