Geant4  10.02.p03
G4HyperNucleiProperties Class Reference

#include <G4HyperNucleiProperties.hh>

Collaboration diagram for G4HyperNucleiProperties:

Public Member Functions

 ~G4HyperNucleiProperties ()
 
 G4HyperNucleiProperties ()
 

Static Public Member Functions

static G4double GetAtomicMass (G4int A, G4int Z, G4int L)
 
static G4double GetNuclearMass (G4int A, G4int Z, G4int L)
 

Detailed Description

Definition at line 45 of file G4HyperNucleiProperties.hh.

Constructor & Destructor Documentation

◆ ~G4HyperNucleiProperties()

G4HyperNucleiProperties::~G4HyperNucleiProperties ( )
inline

Definition at line 56 of file G4HyperNucleiProperties.hh.

56 { };

◆ G4HyperNucleiProperties()

G4HyperNucleiProperties::G4HyperNucleiProperties ( )
inline

Definition at line 59 of file G4HyperNucleiProperties.hh.

59 {};
Here is the call graph for this function:

Member Function Documentation

◆ GetAtomicMass()

G4double G4HyperNucleiProperties::GetAtomicMass ( G4int  A,
G4int  Z,
G4int  L 
)
static

Definition at line 102 of file G4HyperNucleiProperties.cc.

103 {
104  if (A < 1 || Z < 0 || Z > A-LL || LL > A || LL <0 ) {
105 #ifdef G4VERBOSE
106  if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>0) {
107  G4cout << "G4HyperNucleiProperties::GetAtomicMass: "
108  << " Wrong values for A = " << A
109  << " Z = " << Z
110  << " L = " << LL << G4endl;
111  }
112 #endif
113  return 0.0;
114 
115  } else {
116  G4double nuclearMass = GetNuclearMass(A, Z, LL);
117  return nuclearMass + Z*electron_mass_c2
118  - 1.433e-5*MeV*std::pow(G4double(Z),2.39);
119  }
120 }
static const double MeV
Definition: G4SIunits.hh:211
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
Float_t Z
float electron_mass_c2
Definition: hepunit.py:274
static G4ParticleTable * GetParticleTable()
static const G4int LL[nN]
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
static G4double GetNuclearMass(G4int A, G4int Z, G4int L)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNuclearMass()

G4double G4HyperNucleiProperties::GetNuclearMass ( G4int  A,
G4int  Z,
G4int  L 
)
static

Definition at line 42 of file G4HyperNucleiProperties.cc.

43 {
44  if (LL==0) return G4NucleiProperties::GetNuclearMass(A, Z);
45 
47  if (A < 2 || Z < 0 || Z > A-LL || LL>A ) {
48 #ifdef G4VERBOSE
49  if (pTable->GetVerboseLevel()>0) {
50  G4cout << "G4HyperNucleiProperties::GetNuclearMass: "
51  << " Wrong values for A = " << A
52  << " Z = " << Z
53  << " L = " << LL
54  << G4endl;
55  }
56 #endif
57  return 0.0;
58  } else if( A==2 ) {
59 #ifdef G4VERBOSE
60  if (pTable->GetVerboseLevel()>0) {
61  G4cout << "G4HyperNucleiProperties::GetNuclearMass: "
62  << " No boud state for A = " << A
63  << " Z = " << Z
64  << " L = " << LL
65  << G4endl;
66  }
67 #endif
68  return 0.0;
69  }
70 
71 
72  G4ParticleDefinition* lambda = pTable->FindParticle("lambda");
73  if (lambda ==0) {
74 #ifdef G4VERBOSE
75  if (pTable->GetVerboseLevel()>0) {
76  G4cout << "G4HyperNucleiProperties::GetNuclearMass: "
77  << " Lambda is not defined " << G4endl;
78  }
79 #endif
80  return 0.0;
81  }
82  const G4double mLL= lambda->GetPDGMass(); // mLambda
83 
84  static const G4double b7=25.*MeV;
85  static const G4double b8=10.5; // Slope
86  static const G4double a2=0.13*MeV; // BindingEnergy for d+Lambda(MeV)
87  static const G4double a3=2.2*MeV; // BindingEnergy for (t/He3)+Lamb(MeV)
88  static const G4double eps =0.0001*MeV; // security value (MeV)
89 
91  // A non-"strange" nucleus
92  G4double bs=0.;
93  if (A-LL ==2) bs=a2; // for nnL,npL,ppL
94  else if(A-LL ==3) bs=a3; // for 3nL,2npL,n2pL,3pL
95  else if(A-LL >3) bs=b7*std::exp(-b8/(A-LL+1.));
96  mass += LL*(mLL-bs) + eps;
97 
98  return mass;
99 }
static const double MeV
Definition: G4SIunits.hh:211
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static const G4double eps
static const G4int mLL
G4int GetVerboseLevel() const
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
Float_t Z
static const G4double a3
static G4ParticleTable * GetParticleTable()
static const G4int LL[nN]
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
static const G4double a2
Here is the call graph for this function:
Here is the caller graph for this function:

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