74{
75
77
79
81
87
88
89
90
91
92 if(U < 10*eV || 0==
N) {
return 0.0; }
93
94
95
96
97
98
99 static const G4double sixdpi2 = 6.0/CLHEP::pi2;
102
104
105
106 G4bool ChargedNucleon(
false);
108 ChargedNucleon = true;
109 }
110
111
112
114 if (ChargedNucleon) {
115 RelativeVelocitySqr = 2*RelativeEnergy/CLHEP::proton_mass_c2;
116 } else {
117 RelativeVelocitySqr = 2*RelativeEnergy/CLHEP::neutron_mass_c2;
118 }
119
120 G4double RelativeVelocity = std::sqrt(RelativeVelocitySqr);
121
122
124 (10.63/RelativeVelocitySqr - 29.92/RelativeVelocity + 42.9)
125 * CLHEP::millibarn;
126
128 (34.10/RelativeVelocitySqr - 82.20/RelativeVelocity + 82.2)
129 * CLHEP::millibarn;
130
131
133 if (ChargedNucleon)
134 {
135
136 AveragedXSection = ((
Z-1)*ppXSection + (
A-
Z)*npXSection)/
G4double(
A-1);
137 }
138 else
139 {
140 AveragedXSection = ((
A-
Z-1)*ppXSection +
Z*npXSection)/
G4double(
A-1);
141 }
142
143
144 G4double FermiRelRatio = FermiEnergy/RelativeEnergy;
145
146
147 G4double PauliFactor = 1.0 - 1.4*FermiRelRatio;
148 if (FermiRelRatio > 0.5) {
149 G4double x = 2.0 - 1.0/FermiRelRatio;
150 PauliFactor += 0.4*FermiRelRatio*x*x*std::sqrt(x);
151 }
152
153 G4double xx = 2*r0 + CLHEP::hbarc/(CLHEP::proton_mass_c2*RelativeVelocity);
154 G4double Vint = CLHEP::pi*xx*xx*xx/0.75;
155
156
157
159 *std::sqrt(2.0*RelativeEnergy/CLHEP::proton_mass_c2)/Vint);
160
161
162
163
164
165
166
168
170
171
173
175
176
180 if(x1 < plimit) {
182
183
185
186
189 }
190 }
191 }
192
193 } else {
194
195
197 /(16*CLHEP::c_light);
198
201 }
202 }
203
204
205
206
208}
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)