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

#include <G4HyperNucleiProperties.hh>

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 ( )
inline

Definition at line 56 of file G4HyperNucleiProperties.hh.

56 { };
G4HyperNucleiProperties::G4HyperNucleiProperties ( )
inline

Definition at line 59 of file G4HyperNucleiProperties.hh.

59 {};

Member Function Documentation

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

Definition at line 102 of file G4HyperNucleiProperties.cc.

References python.hepunit::electron_mass_c2, G4cout, G4endl, GetNuclearMass(), G4ParticleTable::GetParticleTable(), and python.hepunit::MeV.

103 {
104  if (A < 1 || Z < 0 || Z > A-L || L > A || L <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 = " << L << G4endl;
111  }
112 #endif
113  return 0.0;
114 
115  } else {
116  G4double nuclearMass = GetNuclearMass(A, Z, L);
117  return nuclearMass + Z*electron_mass_c2
118  - 1.433e-5*MeV*std::pow(G4double(Z),2.39);
119  }
120 }
G4GLOB_DLL std::ostream G4cout
float electron_mass_c2
Definition: hepunit.py:274
static G4ParticleTable * GetParticleTable()
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
static G4double GetNuclearMass(G4int A, G4int Z, G4int L)
G4double G4HyperNucleiProperties::GetNuclearMass ( G4int  A,
G4int  Z,
G4int  L 
)
static

Definition at line 42 of file G4HyperNucleiProperties.cc.

References G4ParticleTable::FindParticle(), G4cout, G4endl, G4NucleiProperties::GetNuclearMass(), G4ParticleTable::GetParticleTable(), G4ParticleDefinition::GetPDGMass(), G4ParticleTable::GetVerboseLevel(), G4InuclParticleNames::lambda, and python.hepunit::MeV.

Referenced by GetAtomicMass(), and G4IonTable::GetNucleusMass().

43 {
44  if (L==0) return G4NucleiProperties::GetNuclearMass(A, Z);
45 
47  if (A < 2 || Z < 0 || Z > A-L || L>A ) {
48 #ifdef G4VERBOSE
49  if (pTable->GetVerboseLevel()>0) {
50  G4cout << "G4HyperNucleiProperties::GetNuclearMass: "
51  << " Wrong values for A = " << A
52  << " Z = " << Z
53  << " L = " << L
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 = " << L
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 mL= 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-L ==2) bs=a2; // for nnL,npL,ppL
94  else if(A-L ==3) bs=a3; // for 3nL,2npL,n2pL,3pL
95  else if(A-L >3) bs=b7*std::exp(-b8/(A-L+1.));
96  mass += L*(mL-bs) + eps;
97 
98  return mass;
99 }
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
G4GLOB_DLL std::ostream G4cout
G4double GetPDGMass() const
static G4ParticleTable * GetParticleTable()
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4int GetVerboseLevel() const

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