216{
219
220
221 if(1 == nIso) { return iso; }
222
223
225 if (Z >= minZ && Z <= maxZ && nullptr == fData->GetElementData(Z - minZ)) {
226 InitialiseOnFly(Z);
227 }
228
232
233
234 std::size_t j;
235 if (Z < minZ || Z > maxZ || !CheckCache(Z) ||
237 for (j = 0; j<nIso; ++j) {
238 sum += abundVector[j];
239 if(q <= sum) {
241 break;
242 }
243 }
244 return iso;
245 }
246 std::size_t
nn = fTemp.size();
247 if (nn < nIso) { fTemp.resize(nIso, 0.); }
248
249
250 for (j=0; j<nIso; ++j) {
251 sum += abundVector[j]*
253 fTemp[j] = sum;
254 }
255 sum *= q;
256 for (j = 0; j<nIso; ++j) {
257 if (fTemp[j] >= sum) {
259 break;
260 }
261 }
262 return iso;
263}
G4double * GetRelativeAbundanceVector() const
const G4Isotope * GetIsotope(G4int iso) const
size_t GetNumberOfIsotopes() const