Geant4  10.02.p03
G4GEMCoulombBarrier Class Reference

#include <G4GEMCoulombBarrier.hh>

Inherits G4VCoulombBarrier.

Inherited by 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, and G4TritonGEMCoulombBarrier.

Collaboration diagram for G4GEMCoulombBarrier:

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
 

Private Member Functions

 G4GEMCoulombBarrier ()
 
 G4GEMCoulombBarrier (const G4GEMCoulombBarrier &right)
 
const G4GEMCoulombBarrieroperator= (const G4GEMCoulombBarrier &right)
 
G4bool operator== (const G4GEMCoulombBarrier &right) const
 
G4bool operator!= (const G4GEMCoulombBarrier &right) const
 

Detailed Description

Definition at line 37 of file G4GEMCoulombBarrier.hh.

Constructor & Destructor Documentation

◆ G4GEMCoulombBarrier() [1/3]

G4GEMCoulombBarrier::G4GEMCoulombBarrier ( G4int  anA,
G4int  aZ 
)

Definition at line 36 of file G4GEMCoulombBarrier.cc.

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

◆ ~G4GEMCoulombBarrier()

G4GEMCoulombBarrier::~G4GEMCoulombBarrier ( )
virtual

Definition at line 40 of file G4GEMCoulombBarrier.cc.

41 {}

◆ G4GEMCoulombBarrier() [2/3]

G4GEMCoulombBarrier::G4GEMCoulombBarrier ( )
private

◆ G4GEMCoulombBarrier() [3/3]

G4GEMCoulombBarrier::G4GEMCoulombBarrier ( const G4GEMCoulombBarrier right)
private

Member Function Documentation

◆ BarrierPenetrationFactor()

virtual G4double G4GEMCoulombBarrier::BarrierPenetrationFactor ( G4double  ) const
inlinevirtual

Reimplemented in G4TritonGEMCoulombBarrier, G4AlphaGEMCoulombBarrier, G4DeuteronGEMCoulombBarrier, G4He3GEMCoulombBarrier, and G4ProtonGEMCoulombBarrier.

Definition at line 56 of file G4GEMCoulombBarrier.hh.

57  {return 1.0;};
Here is the call graph for this function:
Here is the caller graph for this function:

◆ CalcCompoundRadius()

G4double G4GEMCoulombBarrier::CalcCompoundRadius ( G4int  ARes) const

Definition at line 71 of file G4GEMCoulombBarrier.cc.

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:55
Definition: G4Pow.hh:56
int G4int
Definition: G4Types.hh:78
double A(double temperature)
G4int GetA(void) const
G4double Z13(G4int Z) const
Definition: G4Pow.hh:127
double G4double
Definition: G4Types.hh:76
static const double fermi
Definition: G4SIunits.hh:102
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetCoulombBarrier()

G4double G4GEMCoulombBarrier::GetCoulombBarrier ( G4int  ARes,
G4int  ZRes,
G4double  U 
) const
virtual

Implements G4VCoulombBarrier.

Definition at line 43 of file G4GEMCoulombBarrier.cc.

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 }
virtual G4double BarrierPenetrationFactor(G4double) const
int elm_coupling
Definition: hepunit.py:286
G4GLOB_DLL std::ostream G4cout
G4int GetA(void) const
G4double CalcCompoundRadius(G4int ARes) const
G4int GetZ(void) const
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:

◆ operator!=()

G4bool G4GEMCoulombBarrier::operator!= ( const G4GEMCoulombBarrier right) const
private

◆ operator=()

const G4GEMCoulombBarrier& G4GEMCoulombBarrier::operator= ( const G4GEMCoulombBarrier right)
private

◆ operator==()

G4bool G4GEMCoulombBarrier::operator== ( const G4GEMCoulombBarrier right) const
private

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