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.

00056 { };

G4HyperNucleiProperties::G4HyperNucleiProperties (  )  [inline]

Definition at line 59 of file G4HyperNucleiProperties.hh.

00059 {};


Member Function Documentation

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

Definition at line 102 of file G4HyperNucleiProperties.cc.

References G4cout, G4endl, GetNuclearMass(), and G4ParticleTable::GetParticleTable().

00103 {
00104   if (A < 1 || Z < 0 || Z > A-L || L > A || L <0 ) {
00105 #ifdef G4VERBOSE
00106     if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>0) {
00107       G4cout << "G4HyperNucleiProperties::GetAtomicMass: " 
00108              << " Wrong values for A = "  << A 
00109              << "  Z = " << Z 
00110              << "  L = " << L  << G4endl;
00111     }
00112 #endif
00113     return 0.0;
00114     
00115   } else {
00116     G4double nuclearMass = GetNuclearMass(A, Z, L);
00117     return nuclearMass + Z*electron_mass_c2
00118          - 1.433e-5*MeV*std::pow(G4double(Z),2.39);
00119   }
00120 }

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(), G4ParticleTable::GetVerboseLevel(), and G4InuclParticleNames::lambda.

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

00043 {
00044   if (L==0) return  G4NucleiProperties::GetNuclearMass(A, Z);
00045   
00046   G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
00047   if (A < 2 || Z < 0 || Z > A-L || L>A ) {
00048 #ifdef G4VERBOSE
00049     if (pTable->GetVerboseLevel()>0) {
00050       G4cout << "G4HyperNucleiProperties::GetNuclearMass: "
00051              << " Wrong values for A = " << A 
00052              << " Z = " << Z 
00053              << " L = " << L
00054              << G4endl;
00055     }
00056 #endif
00057     return 0.0;
00058   } else if( A==2 ) {
00059 #ifdef G4VERBOSE
00060     if (pTable->GetVerboseLevel()>0) {
00061       G4cout << "G4HyperNucleiProperties::GetNuclearMass: "
00062              << " No boud state for A = " << A 
00063              << " Z = " << Z 
00064              << " L = " << L
00065              << G4endl;
00066     }
00067 #endif
00068     return 0.0;
00069   }
00070 
00071   
00072   G4ParticleDefinition* lambda = pTable->FindParticle("lambda");
00073   if (lambda ==0) {
00074 #ifdef G4VERBOSE
00075     if (pTable->GetVerboseLevel()>0) {
00076       G4cout << "G4HyperNucleiProperties::GetNuclearMass: "
00077              << " Lambda is not defined " << G4endl;
00078     }
00079 #endif
00080     return 0.0;
00081   }
00082   const G4double mL= lambda->GetPDGMass(); // mLambda
00083 
00084   static const G4double b7=25.*MeV;
00085   static const G4double b8=10.5; // Slope
00086   static const G4double a2=0.13*MeV; // BindingEnergy for d+Lambda(MeV)
00087   static const G4double a3=2.2*MeV;  // BindingEnergy for (t/He3)+Lamb(MeV)
00088   static const G4double eps =0.0001*MeV; // security value (MeV)
00089 
00090   G4double mass =  G4NucleiProperties::GetNuclearMass(A-L, Z); 
00091   // A non-"strange" nucleus
00092   G4double bs=0.;
00093   if     (A-L ==2) bs=a2;         // for nnL,npL,ppL
00094   else if(A-L ==3) bs=a3;         // for 3nL,2npL,n2pL,3pL
00095   else if(A-L >3)  bs=b7*std::exp(-b8/(A-L+1.));
00096   mass += L*(mL-bs) + eps;
00097 
00098   return mass;
00099 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:14 2013 for Geant4 by  doxygen 1.4.7