Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4GEMProbability Class Reference

#include <G4GEMProbability.hh>

Inherits G4VEmissionProbability.

Inherited by G4AlphaGEMProbability, G4B10GEMProbability, G4B11GEMProbability, G4B12GEMProbability, G4B13GEMProbability, G4B8GEMProbability, G4Be10GEMProbability, G4Be11GEMProbability, G4Be12GEMProbability, G4Be7GEMProbability, G4Be9GEMProbability, G4C10GEMProbability, G4C11GEMProbability, G4C12GEMProbability, G4C13GEMProbability, G4C14GEMProbability, G4C15GEMProbability, G4C16GEMProbability, G4DeuteronGEMProbability, G4F17GEMProbability, G4F18GEMProbability, G4F19GEMProbability, G4F20GEMProbability, G4F21GEMProbability, G4He3GEMProbability, G4He6GEMProbability, G4He8GEMProbability, G4Li6GEMProbability, G4Li7GEMProbability, G4Li8GEMProbability, G4Li9GEMProbability, G4Mg22GEMProbability, G4Mg23GEMProbability, G4Mg24GEMProbability, G4Mg25GEMProbability, G4Mg26GEMProbability, G4Mg27GEMProbability, G4Mg28GEMProbability, G4N12GEMProbability, G4N13GEMProbability, G4N14GEMProbability, G4N15GEMProbability, G4N16GEMProbability, G4N17GEMProbability, G4Na21GEMProbability, G4Na22GEMProbability, G4Na23GEMProbability, G4Na24GEMProbability, G4Na25GEMProbability, G4Ne18GEMProbability, G4Ne19GEMProbability, G4Ne20GEMProbability, G4Ne21GEMProbability, G4Ne22GEMProbability, G4Ne23GEMProbability, G4Ne24GEMProbability, G4NeutronGEMProbability, G4O14GEMProbability, G4O15GEMProbability, G4O16GEMProbability, G4O17GEMProbability, G4O18GEMProbability, G4O19GEMProbability, G4O20GEMProbability, G4ProtonGEMProbability, and G4TritonGEMProbability.

Collaboration diagram for G4GEMProbability:

Public Member Functions

 G4GEMProbability (G4int anA, G4int aZ, G4double aSpin)
 
virtual ~G4GEMProbability ()
 
G4double EmissionProbability (const G4Fragment &fragment, G4double anEnergy)
 
void Dump () const
 
G4int GetZ_asInt (void) const
 
G4int GetA_asInt (void) const
 
G4double GetZ (void) const
 
G4double GetA (void) const
 
G4double GetSpin (void) const
 
void SetCoulomBarrier (const G4VCoulombBarrier *aCoulombBarrierStrategy)
 
G4double GetCoulombBarrier (const G4Fragment &fragment) const
 
G4double CalcAlphaParam (const G4Fragment &) const
 
G4double CalcBetaParam (const G4Fragment &) const
 
- Public Member Functions inherited from G4VEmissionProbability
 G4VEmissionProbability ()
 
virtual ~G4VEmissionProbability ()
 
void Initialise ()
 
void SetOPTxs (G4int opt)
 
void UseSICB (G4bool use)
 

Protected Attributes

G4double fPlanck
 
std::vector< G4doubleExcitEnergies
 
std::vector< G4doubleExcitSpins
 
std::vector< G4doubleExcitLifetimes
 
- Protected Attributes inherited from G4VEmissionProbability
G4int OPTxs
 
G4bool useSICB
 
G4double LevelDensity
 
G4PowfG4pow
 
G4PairingCorrectionfPairCorr
 

Detailed Description

Definition at line 54 of file G4GEMProbability.hh.

Constructor & Destructor Documentation

G4GEMProbability::G4GEMProbability ( G4int  anA,
G4int  aZ,
G4double  aSpin 
)

Definition at line 59 of file G4GEMProbability.cc.

59  :
60  theA(anA), theZ(aZ), Spin(aSpin), theCoulombBarrierPtr(0)
61 {
62  theEvapLDPptr = new G4EvaporationLevelDensityParameter;
63  fG4pow = G4Pow::GetInstance();
64  fPlanck= CLHEP::hbar_Planck*fG4pow->logZ(2);
66 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
G4double logZ(G4int Z) const
Definition: G4Pow.hh:166
static G4PairingCorrection * GetInstance()
static constexpr double hbar_Planck

Here is the call graph for this function:

G4GEMProbability::~G4GEMProbability ( )
virtual

Definition at line 68 of file G4GEMProbability.cc.

69 {
70  delete theEvapLDPptr;
71 }

Member Function Documentation

G4double G4GEMProbability::CalcAlphaParam ( const G4Fragment fragment) const
inline

Definition at line 202 of file G4GEMProbability.hh.

203 {
204  //JMQ 190709 values according to Furihata's paper (based on notes added
205  //on proof in Dostrovskii's paper)
206  G4double res;
207  if(GetZ_asInt() == 0) {
208  res = 0.76+1.93/fG4pow->Z13(fragment.GetA_asInt()-GetA_asInt());
209  } else {
210  res = 1.0 + CCoeficient(fragment.GetZ_asInt()-GetZ_asInt());
211  }
212  return res;
213 }
G4int GetZ_asInt(void) const
G4int GetA_asInt(void) const
G4double Z13(G4int Z) const
Definition: G4Pow.hh:127
G4int GetA_asInt() const
Definition: G4Fragment.hh:266
G4int GetZ_asInt() const
Definition: G4Fragment.hh:271
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4GEMProbability::CalcBetaParam ( const G4Fragment fragment) const
inline

Definition at line 216 of file G4GEMProbability.hh.

217 {
218  //JMQ 190709 values according to Furihata's paper (based on notes added
219  //on proof in Dostrovskii's paper)
220  G4double res;
221  if(GetZ_asInt() == 0) {
222  res = (1.66/fG4pow->Z23(fragment.GetA_asInt()-GetA_asInt())-0.05)*CLHEP::MeV/
223  CalcAlphaParam(fragment);
224  } else {
225  res = -GetCoulombBarrier(fragment);
226  }
227  return res;
228 }
G4double CalcAlphaParam(const G4Fragment &) const
G4double GetCoulombBarrier(const G4Fragment &fragment) const
G4int GetZ_asInt(void) const
G4int GetA_asInt(void) const
G4int GetA_asInt() const
Definition: G4Fragment.hh:266
static constexpr double MeV
G4double Z23(G4int Z) const
Definition: G4Pow.hh:154
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

void G4GEMProbability::Dump ( ) const

Definition at line 261 of file G4GEMProbability.cc.

262 {
263  G4double mass = G4NucleiProperties::GetNuclearMass(theA, theZ);
264  G4double efermi = 0.0;
265  if(theA > 1) {
266  efermi = G4NucleiProperties::GetNuclearMass(theA-1, theZ)
267  + neutron_mass_c2 - mass;
268  }
269  G4int nlev = ExcitEnergies.size();
270  G4cout << "GEM: List of Excited States for Isotope Z= "
271  << theZ << " A= " << theA << " Nlevels= " << nlev
272  << " Efermi(MeV)= " << efermi
273  << G4endl;
274  for(G4int i=0; i< nlev; ++i) {
275  G4cout << "Z= " << theZ << " A= " << theA
276  << " Mass(GeV)= " << mass/GeV
277  << " Eexc(MeV)= " << ExcitEnergies[i]
278  << " Time(ns)= " << ExcitLifetimes[i]/ns
279  << G4endl;
280  }
281  G4cout << G4endl;
282 }
static G4double GetNuclearMass(const G4double A, const G4double Z)
std::vector< G4double > ExcitLifetimes
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
std::vector< G4double > ExcitEnergies
float neutron_mass_c2
Definition: hepunit.py:276
static constexpr double GeV
Definition: G4SIunits.hh:217
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
#define ns
Definition: xmlparse.cc:614

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4GEMProbability::EmissionProbability ( const G4Fragment fragment,
G4double  anEnergy 
)
virtual

Implements G4VEmissionProbability.

Definition at line 73 of file G4GEMProbability.cc.

75 {
76  G4double probability = 0.0;
77 
78  if (MaximalKineticEnergy > 0.0 && fragment.GetExcitationEnergy() > 0.0) {
79  G4double CoulombBarrier = GetCoulombBarrier(fragment);
80 
81  probability =
82  CalcProbability(fragment,MaximalKineticEnergy,CoulombBarrier);
83 
84  // Next there is a loop over excited states for this channel
85  // summing probabilities
86  size_t nn = ExcitEnergies.size();
87  if (0 < nn) {
88  G4double SavedSpin = Spin;
89  for (size_t i = 0; i <nn; ++i) {
90  Spin = ExcitSpins[i];
91  // substract excitation energies
92  G4double Tmax = MaximalKineticEnergy - ExcitEnergies[i];
93  if (Tmax > 0.0) {
94  G4double width = CalcProbability(fragment,Tmax,CoulombBarrier);
95  //JMQ April 2010 added condition to prevent reported crash
96  // update probability
97  if (width > 0. && fPlanck < width*ExcitLifetimes[i]) {
98  probability += width;
99  }
100  }
101  }
102  // Restore Spin
103  Spin = SavedSpin;
104  }
105  }
106  // Normalization = probability;
107  return probability;
108 }
G4double GetCoulombBarrier(const G4Fragment &fragment) const
#define width
std::vector< G4double > ExcitLifetimes
std::vector< G4double > ExcitSpins
std::vector< G4double > ExcitEnergies
double G4double
Definition: G4Types.hh:76
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:283

Here is the call graph for this function:

G4double G4GEMProbability::GetA ( void  ) const
inline

Definition at line 151 of file G4GEMProbability.hh.

152 {
153  return theA;
154 }
G4int G4GEMProbability::GetA_asInt ( void  ) const
inline

Definition at line 141 of file G4GEMProbability.hh.

142 {
143  return theA;
144 }

Here is the caller graph for this function:

G4double G4GEMProbability::GetCoulombBarrier ( const G4Fragment fragment) const
inline

Definition at line 173 of file G4GEMProbability.hh.

174 {
175  G4double res = 0.0;
176  if (theCoulombBarrierPtr) {
177  G4int Acomp = fragment.GetA_asInt();
178  G4int Zcomp = fragment.GetZ_asInt();
179  res = theCoulombBarrierPtr->GetCoulombBarrier(Acomp-theA, Zcomp-theZ,
180  fragment.GetExcitationEnergy() -
181  fPairCorr->GetPairingCorrection(Acomp,Zcomp));
182  }
183  return res;
184 }
int G4int
Definition: G4Types.hh:78
G4int GetA_asInt() const
Definition: G4Fragment.hh:266
G4double GetPairingCorrection(G4int A, G4int Z) const
G4int GetZ_asInt() const
Definition: G4Fragment.hh:271
virtual G4double GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U) const =0
double G4double
Definition: G4Types.hh:76
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:283

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4GEMProbability::GetSpin ( void  ) const
inline

Definition at line 156 of file G4GEMProbability.hh.

157 {
158  return Spin;
159 }
G4double G4GEMProbability::GetZ ( void  ) const
inline

Definition at line 146 of file G4GEMProbability.hh.

147 {
148  return theZ;
149 }
G4int G4GEMProbability::GetZ_asInt ( void  ) const
inline

Definition at line 136 of file G4GEMProbability.hh.

137 {
138  return theZ;
139 }

Here is the caller graph for this function:

void G4GEMProbability::SetCoulomBarrier ( const G4VCoulombBarrier aCoulombBarrierStrategy)
inline

Definition at line 167 of file G4GEMProbability.hh.

168 {
169  theCoulombBarrierPtr = aCoulombBarrierStrategy;
170 }

Here is the caller graph for this function:

Member Data Documentation

std::vector<G4double> G4GEMProbability::ExcitEnergies
protected

Definition at line 126 of file G4GEMProbability.hh.

std::vector<G4double> G4GEMProbability::ExcitLifetimes
protected

Definition at line 132 of file G4GEMProbability.hh.

std::vector<G4double> G4GEMProbability::ExcitSpins
protected

Definition at line 129 of file G4GEMProbability.hh.

G4double G4GEMProbability::fPlanck
protected

Definition at line 123 of file G4GEMProbability.hh.


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