56{
57
59
60
61
67
68
69
70
71
72 if(U < 10*eV || 0 == P) { return 0.0; }
73
74
75
76
77
78
79 static const G4double sixdpi2 = 6.0/CLHEP::pi2;
80 G4double GE = sixdpi2*U*fNuclData->GetLevelDensity(Z,
A, U);
82
84
85
86 G4bool ChargedNucleon(
false);
88 ChargedNucleon = true;
89 }
90
91
92
94 if (ChargedNucleon) {
95 RelativeVelocitySqr = 2*RelativeEnergy/CLHEP::proton_mass_c2;
96 } else {
97 RelativeVelocitySqr = 2*RelativeEnergy/CLHEP::neutron_mass_c2;
98 }
99
100 G4double RelativeVelocity = std::sqrt(RelativeVelocitySqr);
101
102
104 (10.63/RelativeVelocitySqr - 29.92/RelativeVelocity + 42.9)
105 * CLHEP::millibarn;
106
108 (34.10/RelativeVelocitySqr - 82.20/RelativeVelocity + 82.2)
109 * CLHEP::millibarn;
110
111
113 ((Z-1)*ppXSection + (
A-Z)*npXSection)/
G4double(
A-1) :
114 ((
A-Z-1)*ppXSection + Z*npXSection)/
G4double(
A-1);
115
116
117 G4double FermiRelRatio = FermiEnergy/RelativeEnergy;
118
119
120 G4double PauliFactor = 1.0 - 1.4*FermiRelRatio;
121 if (FermiRelRatio > 0.5) {
122 G4double x = 2.0 - 1.0/FermiRelRatio;
123 PauliFactor += 0.4*FermiRelRatio*x*x*std::sqrt(x);
124 }
125
126 G4double xx = 2*r0 + CLHEP::hbarc/(CLHEP::proton_mass_c2*RelativeVelocity);
127 G4double Vint = CLHEP::pi*xx*xx*xx/0.75;
128
129
131 *std::sqrt(2.0*RelativeEnergy/CLHEP::proton_mass_c2)/Vint);
132
133
134
135
136
137
138
140
142
143
145
147
148
152 if(x1 < plimit) {
154
155
157
158
160 }
161 }
162 }
163
164 } else {
165
166
168 /(16*CLHEP::c_light);
169
172 }
173 }
175}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
G4int GetNumberOfParticles() const
G4double GetExcitationEnergy() const
G4int GetNumberOfCharged() const