176{
178 if (eKin > emax) { return xs; }
179
180 G4int Z = std::min(ZZ, MAXZCAPTURE-1);
183 if (ekin < elimit) {
184 ekin = elimit;
185 logEkin = logElimit;
186 }
187
188 auto pv = GetPhysicsVector(Z);
189 if (pv == nullptr) { return xs; }
190
193 if(pviso != nullptr) {
196 : (*pviso)[1]*std::sqrt(e1/ekin);
197#ifdef G4VERBOSE
199 G4cout <<
"G4NeutronCaptureXS::IsoXS: Ekin(MeV)= " << ekin/MeV
200 << " xs(b)= " << xs/barn
201 <<
" Z= " << Z <<
" A= " <<
A <<
G4endl;
202 }
203#endif
204 return xs;
205 }
206 }
207
209 xs = (ekin >= e1) ? pv->LogVectorValue(ekin, logEkin)
210 : (*pv)[1]*std::sqrt(e1/ekin);
211#ifdef G4VERBOSE
213 G4cout <<
"G4NeutronCaptureXS::IsoXS: Ekin(MeV)= " << ekin/MeV
214 << " xs(b)= " << xs/barn
215 <<
" Z= " << Z <<
" A= " <<
A <<
" no iso XS" <<
G4endl;
216 }
217#endif
218 return xs;
219}
G4PhysicsVector * GetComponentDataByID(G4int Z, G4int id) const
std::size_t GetNumberOfComponents(G4int Z) const
G4double Energy(const std::size_t index) const
G4double LogVectorValue(const G4double energy, const G4double theLogEnergy) const