G4PromptPhotonEvaporation Class Reference

#include <G4PromptPhotonEvaporation.hh>

Inheritance diagram for G4PromptPhotonEvaporation:

G4VEvaporationChannel

Public Member Functions

 G4PromptPhotonEvaporation ()
virtual ~G4PromptPhotonEvaporation ()
virtual G4double GetEmissionProbability (G4Fragment *theNucleus)
virtual G4FragmentEmittedFragment (G4Fragment *theNucleus)
virtual G4FragmentVectorBreakUpFragment (G4Fragment *theNucleus)
virtual G4FragmentVectorBreakUp (const G4Fragment &theNucleus)
void SetVerboseLevel (G4int verbose)
void SetICM (G4bool)
void RDMForced (G4bool)
void SetMaxHalfLife (G4double)

Detailed Description

Definition at line 55 of file G4PromptPhotonEvaporation.hh.


Constructor & Destructor Documentation

G4PromptPhotonEvaporation::G4PromptPhotonEvaporation (  ) 

Definition at line 64 of file G4PromptPhotonEvaporation.cc.

References G4NuclearLevelStore::GetInstance().

00065   :fVerbose(0), fICM(true), fRDM(false), fMaxHalfTime(DBL_MAX),
00066    fEmissionProbability(0.0),levelManager(0),nucleus(0)
00067 {
00068   fNuclearLevelStore = G4NuclearLevelStore::GetInstance(); 
00069   theA = theZ = 0;
00070   fEnergyFermi = fExcEnergyMax = gammaE = 0.0;
00071 }

G4PromptPhotonEvaporation::~G4PromptPhotonEvaporation (  )  [virtual]

Definition at line 73 of file G4PromptPhotonEvaporation.cc.

00074 { 
00075 }


Member Function Documentation

G4FragmentVector * G4PromptPhotonEvaporation::BreakUp ( const G4Fragment theNucleus  )  [virtual]

Implements G4VEvaporationChannel.

Definition at line 171 of file G4PromptPhotonEvaporation.cc.

References BreakUpFragment().

00172 {
00173   //G4cout << "G4PromptPhotonEvaporation::BreakUp" << G4endl;
00174   G4Fragment* initialState = new G4Fragment(theNucleus);
00175   G4FragmentVector* v = BreakUpFragment(initialState);
00176   v->push_back(initialState);
00177   return v;
00178 }

G4FragmentVector * G4PromptPhotonEvaporation::BreakUpFragment ( G4Fragment theNucleus  )  [virtual]

Reimplemented from G4VEvaporationChannel.

Definition at line 157 of file G4PromptPhotonEvaporation.cc.

References EmittedFragment().

Referenced by BreakUp().

00158 {
00159   //G4cout << "G4PromptPhotonEvaporation::BreakUpFragment" << G4endl;
00160   G4FragmentVector* v = new G4FragmentVector();
00161   G4Fragment* gamma = 0;
00162   do {
00163     gamma = EmittedFragment(theNucleus);
00164     if(gamma) { v->push_back(gamma); }
00165   } while(gamma);
00166 
00167   return v;
00168 }

G4Fragment * G4PromptPhotonEvaporation::EmittedFragment ( G4Fragment theNucleus  )  [virtual]

Reimplemented from G4VEvaporationChannel.

Definition at line 111 of file G4PromptPhotonEvaporation.cc.

References GetEmissionProbability(), and G4Fragment::GetExcitationEnergy().

Referenced by BreakUpFragment().

00112 {
00113   //G4cout << "G4PromptPhotonEvaporation::EmittedFragment" << G4endl;
00114   
00115   G4Fragment* gamma = 0;
00116   if(theNucleus->GetExcitationEnergy() <= keV) { return gamma; }
00117   if(GetEmissionProbability(theNucleus) <= 0.0){ return gamma; }
00118 
00119   //G4cout << "G4PromptPhotonEvaporation::EmittedFragment" << G4endl;
00120   /*
00121     G4Fragment* gamma = _contDeexcitation->GenerateGamma();
00122     if(gamma) { 
00123       if (_verbose > 0) {
00124         G4cout << "G4PromptPhotonEvaporation::EmittedFragment continium deex: "   
00125                << gamma << G4endl;
00126         G4cout << "   Residual: " << nucleus << G4endl;
00127       }
00128       return gamma; 
00129     }
00130   }
00131 
00132   // Do one photon emission by the discrete deexcitation 
00133   _discrDeexcitation->SetNucleus(_nucleus);
00134   _discrDeexcitation->Initialize();
00135 
00136   if(_discrDeexcitation->CanDoTransition()) {  
00137     G4Fragment* gamma = _discrDeexcitation->GenerateGamma();
00138     if(gamma) { 
00139       if (_verbose > 0) {
00140         G4cout << "G4PromptPhotonEvaporation::EmittedFragment discrete deex: "   
00141                << gamma << G4endl;
00142         G4cout << "   Residual: " << nucleus << G4endl;
00143       }
00144       return gamma; 
00145     }
00146   }
00147  
00148   if (_verbose > 0) {
00149     G4cout << "G4PromptPhotonEvaporation unable emit gamma: " 
00150            << nucleus << G4endl;
00151   }
00152   */
00153   return gamma;
00154 }

G4double G4PromptPhotonEvaporation::GetEmissionProbability ( G4Fragment theNucleus  )  [virtual]

Implements G4VEvaporationChannel.

Definition at line 78 of file G4PromptPhotonEvaporation.cc.

References G4Fragment::GetA_asInt(), G4Fragment::GetExcitationEnergy(), G4Fragment::GetGroundStateMass(), G4NuclearLevelStore::GetManager(), G4NucleiProperties::GetNuclearMass(), and G4Fragment::GetZ_asInt().

Referenced by EmittedFragment().

00079 {
00080   fEmissionProbability = 0.0;
00081   nucleus = theNucleus;
00082   G4double ex = nucleus->GetExcitationEnergy();
00083 
00084   if(nucleus->GetZ_asInt() != theZ || nucleus->GetA_asInt() != theA) {
00085     G4int Z = nucleus->GetZ_asInt();
00086     G4int A = nucleus->GetA_asInt();
00087     fExcEnergyMax = -1.0;
00088     if(1 < A && ex > keV) {
00089       fEnergyFermi = G4NucleiProperties::GetNuclearMass(A-1, Z) 
00090         + neutron_mass_c2 - nucleus->GetGroundStateMass();
00091       fExcEnergyMax = fEnergyFermi + 15*MeV;
00092     }
00093     if(ex < fExcEnergyMax) {
00094 
00095       theZ = Z;
00096       theA = A;
00097       levelManager = fNuclearLevelStore->GetManager(Z,A);
00098 
00099       // continium transition
00100       if(ex >= fEnergyFermi) {
00101 
00102         // discrete transition
00103       } else {
00104       }
00105     }
00106   }
00107   return fEmissionProbability;
00108 }

void G4PromptPhotonEvaporation::RDMForced ( G4bool   )  [inline]

Definition at line 117 of file G4PromptPhotonEvaporation.hh.

00118 {
00119   fRDM = val;
00120 }

void G4PromptPhotonEvaporation::SetICM ( G4bool   )  [inline]

Definition at line 112 of file G4PromptPhotonEvaporation.hh.

00113 {
00114   fICM = val;
00115 }

void G4PromptPhotonEvaporation::SetMaxHalfLife ( G4double   )  [inline]

Definition at line 122 of file G4PromptPhotonEvaporation.hh.

00123 {
00124   fMaxHalfTime = val;
00125 }

void G4PromptPhotonEvaporation::SetVerboseLevel ( G4int  verbose  )  [inline]

Definition at line 107 of file G4PromptPhotonEvaporation.hh.

00108 {
00109   fVerbose = verbose;
00110 }


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