71{
72
74
76
78
84
85
86
87
88
89 if(U < 10*eV || 0==
N) {
return 0.0; }
90
91
92
93
94
95
96 static const G4double sixdpi2 = 6.0/CLHEP::pi2;
99
101
102
103 G4bool ChargedNucleon(
false);
105 ChargedNucleon = true;
106 }
107
108
109
111 if (ChargedNucleon) {
112 RelativeVelocitySqr = 2*RelativeEnergy/CLHEP::proton_mass_c2;
113 } else {
114 RelativeVelocitySqr = 2*RelativeEnergy/CLHEP::neutron_mass_c2;
115 }
116
117 G4double RelativeVelocity = std::sqrt(RelativeVelocitySqr);
118
119
121 (10.63/RelativeVelocitySqr - 29.92/RelativeVelocity + 42.9)
122 * CLHEP::millibarn;
123
125 (34.10/RelativeVelocitySqr - 82.20/RelativeVelocity + 82.2)
126 * CLHEP::millibarn;
127
128
130 if (ChargedNucleon)
131 {
132
133 AveragedXSection = ((Z-1)*ppXSection + (
A-Z)*npXSection)/
G4double(
A-1);
134 }
135 else
136 {
137 AveragedXSection = ((
A-Z-1)*ppXSection + Z*npXSection)/
G4double(
A-1);
138 }
139
140
141 G4double FermiRelRatio = FermiEnergy/RelativeEnergy;
142
143
144 G4double PauliFactor = 1.0 - 1.4*FermiRelRatio;
145 if (FermiRelRatio > 0.5) {
146 G4double x = 2.0 - 1.0/FermiRelRatio;
147 PauliFactor += 0.4*FermiRelRatio*x*x*std::sqrt(x);
148 }
149
150 G4double xx = 2*r0 + CLHEP::hbarc/(CLHEP::proton_mass_c2*RelativeVelocity);
151 G4double Vint = CLHEP::pi*xx*xx*xx/0.75;
152
153
154
156 *std::sqrt(2.0*RelativeEnergy/CLHEP::proton_mass_c2)/Vint);
157
158
159
160
161
162
163
165
167
168
170
172
173
177 if(x1 < plimit) {
179
180
182
183
186 }
187 }
188 }
189
190 } else {
191
192
194 /(16*CLHEP::c_light);
195
198 }
199 }
200
201
202
203
205}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
G4int GetNumberOfParticles() const
G4int GetNumberOfHoles() const
G4double GetExcitationEnergy() const
G4int GetNumberOfCharged() const
G4double GetLevelDensity(G4int Z, G4int A, G4double U)