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

#include <G4GEMCoulombBarrier.hh>

Inheritance diagram for G4GEMCoulombBarrier:
G4VCoulombBarrier G4AlphaGEMCoulombBarrier G4B10GEMCoulombBarrier G4B11GEMCoulombBarrier G4B12GEMCoulombBarrier G4B13GEMCoulombBarrier G4B8GEMCoulombBarrier G4Be10GEMCoulombBarrier G4Be11GEMCoulombBarrier G4Be12GEMCoulombBarrier G4Be7GEMCoulombBarrier G4Be9GEMCoulombBarrier G4C10GEMCoulombBarrier G4C11GEMCoulombBarrier G4C12GEMCoulombBarrier G4C13GEMCoulombBarrier G4C14GEMCoulombBarrier G4C15GEMCoulombBarrier G4C16GEMCoulombBarrier G4DeuteronGEMCoulombBarrier G4F17GEMCoulombBarrier G4F18GEMCoulombBarrier G4F19GEMCoulombBarrier G4F20GEMCoulombBarrier G4F21GEMCoulombBarrier G4He3GEMCoulombBarrier G4He6GEMCoulombBarrier G4He8GEMCoulombBarrier G4Li6GEMCoulombBarrier G4Li7GEMCoulombBarrier G4Li8GEMCoulombBarrier G4Li9GEMCoulombBarrier G4Mg22GEMCoulombBarrier G4Mg23GEMCoulombBarrier G4Mg24GEMCoulombBarrier G4Mg25GEMCoulombBarrier G4Mg26GEMCoulombBarrier G4Mg27GEMCoulombBarrier G4Mg28GEMCoulombBarrier G4N12GEMCoulombBarrier G4N13GEMCoulombBarrier G4N14GEMCoulombBarrier G4N15GEMCoulombBarrier G4N16GEMCoulombBarrier G4N17GEMCoulombBarrier G4Na21GEMCoulombBarrier G4Na22GEMCoulombBarrier G4Na23GEMCoulombBarrier G4Na24GEMCoulombBarrier G4Na25GEMCoulombBarrier G4Ne18GEMCoulombBarrier G4Ne19GEMCoulombBarrier G4Ne20GEMCoulombBarrier G4Ne21GEMCoulombBarrier G4Ne22GEMCoulombBarrier G4Ne23GEMCoulombBarrier G4Ne24GEMCoulombBarrier G4O14GEMCoulombBarrier G4O15GEMCoulombBarrier G4O16GEMCoulombBarrier G4O17GEMCoulombBarrier G4O18GEMCoulombBarrier G4O19GEMCoulombBarrier G4O20GEMCoulombBarrier G4ProtonGEMCoulombBarrier G4TritonGEMCoulombBarrier

Public Member Functions

 G4GEMCoulombBarrier (G4int anA, G4int aZ)
 
virtual ~G4GEMCoulombBarrier ()
 
G4double GetCoulombBarrier (G4int ARes, G4int ZRes, G4double U) const
 
virtual G4double BarrierPenetrationFactor (G4double) const
 
G4double CalcCompoundRadius (G4int ARes) const
 
- Public Member Functions inherited from G4VCoulombBarrier
 G4VCoulombBarrier (G4int anA, G4int aZ)
 
virtual ~G4VCoulombBarrier ()
 
G4int GetA (void) const
 
G4int GetZ (void) const
 

Detailed Description

Definition at line 37 of file G4GEMCoulombBarrier.hh.

Constructor & Destructor Documentation

G4GEMCoulombBarrier::G4GEMCoulombBarrier ( G4int  anA,
G4int  aZ 
)

Definition at line 36 of file G4GEMCoulombBarrier.cc.

References G4GEMCoulombBarrier().

Referenced by G4GEMCoulombBarrier().

36  :
37  G4VCoulombBarrier(anA,aZ)
38 {}
G4GEMCoulombBarrier::~G4GEMCoulombBarrier ( )
virtual

Definition at line 40 of file G4GEMCoulombBarrier.cc.

41 {}

Member Function Documentation

virtual G4double G4GEMCoulombBarrier::BarrierPenetrationFactor ( G4double  ) const
inlinevirtual

Reimplemented in G4AlphaGEMCoulombBarrier, and G4DeuteronGEMCoulombBarrier.

Definition at line 56 of file G4GEMCoulombBarrier.hh.

57  {return 1.0;};
G4double G4GEMCoulombBarrier::CalcCompoundRadius ( G4int  ARes) const

Definition at line 71 of file G4GEMCoulombBarrier.cc.

References python.hepunit::fermi, G4VCoulombBarrier::GetA(), G4Pow::GetInstance(), and G4Pow::Z13().

72 {
73  G4Pow* g4pow = G4Pow::GetInstance();
74  G4double AresOneThird = g4pow->Z13(ARes);
75  G4int A = GetA();
76  G4double AejectOneThird = g4pow->Z13(A);
77 
78  G4double Result = 0.0;
79  if(A == 1){
80  Result = 1.7* AresOneThird;
81 
82  } else if (A <= 4){
83  Result = 1.7* AresOneThird + 1.2;
84 
85  } else {
86  Result = 1.12*(AresOneThird + AejectOneThird) -
87  0.86*(AresOneThird+AejectOneThird)/(AresOneThird*AejectOneThird)+3.75;
88  }
89  return Result*fermi;
90 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:53
Definition: G4Pow.hh:56
G4int GetA(void) const
int G4int
Definition: G4Types.hh:78
G4double Z13(G4int Z) const
Definition: G4Pow.hh:129
double G4double
Definition: G4Types.hh:76
G4double G4GEMCoulombBarrier::GetCoulombBarrier ( G4int  ARes,
G4int  ZRes,
G4double  U 
) const
virtual

Implements G4VCoulombBarrier.

Definition at line 43 of file G4GEMCoulombBarrier.cc.

References python.hepunit::elm_coupling, G4cout, and G4endl.

45 {
46  G4double Barrier = 0.0;
47  if (ZRes > ARes || ARes < 1) {
48  G4cout << "G4GEMCoulombBarrier::GetCoulombBarrier: "
49  << "Wrong values for "
50  << "residual nucleus A = " << ARes << " "
51  << "and residual nucleus Z = " << ZRes << G4endl;
52  throw G4HadronicException(__FILE__, __LINE__,"FATAL error");
53  }
54  if (GetZ() == 0) {
55  Barrier = 0.0; // If there is no charge there is neither barrier
56 
57  } else {
58  G4double CompoundRadius = CalcCompoundRadius(ARes);
59  Barrier = ( elm_coupling * GetZ() * ZRes)/CompoundRadius;
60 
61  // Barrier penetration coeficient
62  if(GetA() <= 4) { Barrier *= BarrierPenetrationFactor(G4double(ZRes)); }
63 
64  //JMQ 200709 effective decrease of barrier with E* (Barashenkov)
65  // (not inclued in original Furihata's formulation)
66  Barrier /= (1.0 + std::sqrt(U/(static_cast<G4double>(2*ARes))));
67  }
68  return Barrier;
69 }
G4double CalcCompoundRadius(G4int ARes) const
G4int GetA(void) const
tuple elm_coupling
Definition: hepunit.py:286
G4GLOB_DLL std::ostream G4cout
G4int GetZ(void) const
#define G4endl
Definition: G4ios.hh:61
virtual G4double BarrierPenetrationFactor(G4double) const
double G4double
Definition: G4Types.hh:76

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