Geant4
10.00.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
G4HyperNucleiProperties.cc
Go to the documentation of this file.
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
// $Id: G4HyperNucleiProperties.cc 67971 2013-03-13 10:13:24Z gcosmo $
27
//
28
// ------------------------------------------------------------
29
// GEANT 4 class header file
30
//
31
// ------------------------------------------------------------
32
// Hyper Nuclei properties based on CHIPS model (Mikhail KOSOV)
33
// Migrate into particles category by H.Kurashige (Sep. 2007)
34
//
35
#include "
G4PhysicalConstants.hh
"
36
#include "
G4SystemOfUnits.hh
"
37
#include "
G4HyperNucleiProperties.hh
"
38
#include "
G4NucleiProperties.hh
"
39
#include "
G4ParticleTable.hh
"
40
41
42
G4double
G4HyperNucleiProperties::GetNuclearMass
(
G4int
A
,
G4int
Z,
G4int
L
)
43
{
44
if
(L==0)
return
G4NucleiProperties::GetNuclearMass
(A, Z);
45
46
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
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
90
G4double
mass =
G4NucleiProperties::GetNuclearMass
(A-L, Z);
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
}
100
101
102
G4double
G4HyperNucleiProperties::GetAtomicMass
(
G4int
A
,
G4int
Z,
G4int
L
)
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
}
121
MeV
static const double MeV
Definition:
G4SIunits.hh:193
G4NucleiProperties::GetNuclearMass
static G4double GetNuclearMass(const G4double A, const G4double Z)
Definition:
G4NucleiProperties.cc:53
G4ParticleTable::FindParticle
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
Definition:
G4ParticleTable.cc:620
mL
static const G4int mL
Definition:
G4ElectroNuclearCrossSection.cc:73
eps
static const G4double eps
Definition:
G4ElectroNuclearCrossSection.cc:99
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:111
G4int
int G4int
Definition:
G4Types.hh:78
L
static const G4int L[nN]
Definition:
G4ElectroNuclearCrossSection.cc:113
G4NucleiProperties.hh
G4cout
G4GLOB_DLL std::ostream G4cout
G4ParticleTable.hh
G4ParticleTable
Definition:
G4ParticleTable.hh:65
A
static const G4double A[nN]
Definition:
G4ElectroNuclearCrossSection.cc:115
a3
static const G4double a3
Definition:
G4BetheHeitlerModel.cc:73
G4PhysicalConstants.hh
G4ParticleDefinition::GetPDGMass
G4double GetPDGMass() const
Definition:
G4ParticleDefinition.hh:161
G4ParticleTable::GetParticleTable
static G4ParticleTable * GetParticleTable()
Definition:
G4ParticleTable.cc:95
G4endl
#define G4endl
Definition:
G4ios.hh:61
G4HyperNucleiProperties::GetAtomicMass
static G4double GetAtomicMass(G4int A, G4int Z, G4int L)
Definition:
G4HyperNucleiProperties.cc:102
G4HyperNucleiProperties.hh
G4double
double G4double
Definition:
G4Types.hh:76
G4SystemOfUnits.hh
G4ParticleTable::GetVerboseLevel
G4int GetVerboseLevel() const
a2
static const G4double a2
Definition:
G4BetheHeitlerModel.cc:72
G4HyperNucleiProperties::GetNuclearMass
static G4double GetNuclearMass(G4int A, G4int Z, G4int L)
Definition:
G4HyperNucleiProperties.cc:42
G4InuclParticleNames::lambda
Definition:
G4InuclParticleNames.hh:47
geant4.10.00.p02
source
particles
management
src
G4HyperNucleiProperties.cc
Generated on Thu Dec 31 2015 10:40:19 for Geant4 by
1.8.8