58vector<vector<pair<G4int,G4double>*>*>G4QIsotope::natElements;
59vector<vector<pair<G4int,G4double>*>*>G4QIsotope::natSumAbund;
60vector<vector<pair<G4int,G4double>*>*>G4QIsotope::natIsoCrosS;
61vector<pair<G4int,vector<pair<G4int,G4double>*>*>*>G4QIsotope::newElems;
62vector<pair<G4int,vector<pair<G4int,G4double>*>*>*>G4QIsotope::newSumAb;
63vector<pair<G4int,vector<pair<G4int,G4double>*>*>*>G4QIsotope::newIsoCS;
70 vector<vector<pair<G4int,G4double> >*> natEl;
72 G4cout<<
"G4QIsotope::Constructor natEl is booked"<<
G4endl;
74 vector<pair<G4int,G4double> >*a0=
new vector<pair<G4int,G4double> >;
78 a0->push_back(make_pair(1,1.));
80 G4cout<<
"G4QIsotope::Constructor a0 is filled by a pair"<<
G4endl;
84 G4cout<<
"G4QIsotope::Constructor a0 is filled in natEl"<<
G4endl;
87 vector<pair<G4int,G4double> >*a1=
new vector<pair<G4int,G4double> >;
88 a1->push_back(make_pair(0,.99985));
89 a1->push_back(make_pair(1,1.));
91 vector<pair<G4int,G4double> >*a2=
new vector<pair<G4int,G4double> >;
92 a2->push_back(make_pair(2,.999999863));
93 a2->push_back(make_pair(1,1.));
95 vector<pair<G4int,G4double> >*a3=
new vector<pair<G4int,G4double> >;
96 a3->push_back(make_pair(4,.925));
97 a3->push_back(make_pair(3,1.));
99 vector<pair<G4int,G4double> >*a4=
new vector<pair<G4int,G4double> >;
100 a4->push_back(make_pair(5,1.));
102 vector<pair<G4int,G4double> >*a5=
new vector<pair<G4int,G4double> >;
103 a5->push_back(make_pair(6,.801));
104 a5->push_back(make_pair(5,1.));
106 vector<pair<G4int,G4double> >*a6=
new vector<pair<G4int,G4double> >;
107 a6->push_back(make_pair(6,.989));
108 a6->push_back(make_pair(7,1.));
110 vector<pair<G4int,G4double> >*a7=
new vector<pair<G4int,G4double> >;
111 a7->push_back(make_pair(7,.9963));
112 a7->push_back(make_pair(8,1.));
114 vector<pair<G4int,G4double> >*a8=
new vector<pair<G4int,G4double> >;
115 a8->push_back(make_pair(8,.9976));
116 a8->push_back(make_pair(10,.9996));
117 a8->push_back(make_pair(9,1.));
119 vector<pair<G4int,G4double> >*a9=
new vector<pair<G4int,G4double> >;
120 a9->push_back(make_pair(10,1.));
122 vector<pair<G4int,G4double> >*b0=
new vector<pair<G4int,G4double> >;
123 b0->push_back(make_pair(10,.9948));
124 b0->push_back(make_pair(11,.9975));
125 b0->push_back(make_pair(12,1.));
127 vector<pair<G4int,G4double> >*b1=
new vector<pair<G4int,G4double> >;
128 b1->push_back(make_pair(12,1.));
130 vector<pair<G4int,G4double> >*b2=
new vector<pair<G4int,G4double> >;
131 b2->push_back(make_pair(12,.7899));
132 b2->push_back(make_pair(13,.8899));
133 b2->push_back(make_pair(14,1.));
135 vector<pair<G4int,G4double> >*b3=
new vector<pair<G4int,G4double> >;
136 b3->push_back(make_pair(14,1.));
138 vector<pair<G4int,G4double> >*b4=
new vector<pair<G4int,G4double> >;
139 b4->push_back(make_pair(14,.9223));
140 b4->push_back(make_pair(15,.969));
141 b4->push_back(make_pair(16,1.));
143 vector<pair<G4int,G4double> >*b5=
new vector<pair<G4int,G4double> >;
144 b5->push_back(make_pair(16,1.));
146 vector<pair<G4int,G4double> >*b6=
new vector<pair<G4int,G4double> >;
147 b6->push_back(make_pair(16,.9502));
148 b6->push_back(make_pair(18,.9923));
149 b6->push_back(make_pair(17,.9998));
150 b6->push_back(make_pair(20,1.));
152 vector<pair<G4int,G4double> >*b7=
new vector<pair<G4int,G4double> >;
153 b7->push_back(make_pair(18,.7577));
154 b7->push_back(make_pair(20,1.));
156 vector<pair<G4int,G4double> >*b8=
new vector<pair<G4int,G4double> >;
157 b8->push_back(make_pair(22,.996));
158 b8->push_back(make_pair(18,.99937));
159 b8->push_back(make_pair(20,1.));
161 vector<pair<G4int,G4double> >*b9=
new vector<pair<G4int,G4double> >;
162 b9->push_back(make_pair(20,.932581));
163 b9->push_back(make_pair(22,.999883));
164 b9->push_back(make_pair(21,1.));
166 vector<pair<G4int,G4double> >*c0=
new vector<pair<G4int,G4double> >;
167 c0->push_back(make_pair(20,.96941));
168 c0->push_back(make_pair(24,.99027));
169 c0->push_back(make_pair(22,.99674));
170 c0->push_back(make_pair(28,.99861));
171 c0->push_back(make_pair(23,.99996));
172 c0->push_back(make_pair(26,1.));
174 vector<pair<G4int,G4double> >*c1=
new vector<pair<G4int,G4double> >;
175 c1->push_back(make_pair(24,1.));
177 vector<pair<G4int,G4double> >*c2=
new vector<pair<G4int,G4double> >;
178 c2->push_back(make_pair(26,.738));
179 c2->push_back(make_pair(24,.818));
180 c2->push_back(make_pair(25,.891));
181 c2->push_back(make_pair(27,.946));
182 c2->push_back(make_pair(28,1.));
184 vector<pair<G4int,G4double> >*c3=
new vector<pair<G4int,G4double> >;
185 c3->push_back(make_pair(28,.9975));
186 c3->push_back(make_pair(27,1.));
188 vector<pair<G4int,G4double> >*c4=
new vector<pair<G4int,G4double> >;
189 c4->push_back(make_pair(28,.8379));
190 c4->push_back(make_pair(29,.9329));
191 c4->push_back(make_pair(26,.97635));
192 c4->push_back(make_pair(30,1.));
194 vector<pair<G4int,G4double> >*c5=
new vector<pair<G4int,G4double> >;
195 c5->push_back(make_pair(30,1.));
197 vector<pair<G4int,G4double> >*c6=
new vector<pair<G4int,G4double> >;
198 c6->push_back(make_pair(30,.9172));
199 c6->push_back(make_pair(28,.9762));
200 c6->push_back(make_pair(31,.9972));
201 c6->push_back(make_pair(32,1.));
203 vector<pair<G4int,G4double> >*c7=
new vector<pair<G4int,G4double> >;
204 c7->push_back(make_pair(32,1.));
206 vector<pair<G4int,G4double> >*c8=
new vector<pair<G4int,G4double> >;
207 c8->push_back(make_pair(30,.68077));
208 c8->push_back(make_pair(32,.943));
209 c8->push_back(make_pair(34,.97934));
210 c8->push_back(make_pair(33,.99074));
211 c8->push_back(make_pair(36,1.));
213 vector<pair<G4int,G4double> >*c9=
new vector<pair<G4int,G4double> >;
214 c9->push_back(make_pair(34,.6917));
215 c9->push_back(make_pair(36,1.));
217 vector<pair<G4int,G4double> >*d0=
new vector<pair<G4int,G4double> >;
218 d0->push_back(make_pair(34,.486));
219 d0->push_back(make_pair(36,.765));
220 d0->push_back(make_pair(38,.953));
221 d0->push_back(make_pair(37,.994));
222 d0->push_back(make_pair(40,1.));
224 vector<pair<G4int,G4double> >*d1=
new vector<pair<G4int,G4double> >;
225 d1->push_back(make_pair(38,.60108));
226 d1->push_back(make_pair(40,1.));
228 vector<pair<G4int,G4double> >*d2=
new vector<pair<G4int,G4double> >;
229 d2->push_back(make_pair(42,.3594));
230 d2->push_back(make_pair(40,.6360));
231 d2->push_back(make_pair(38,.8484));
232 d2->push_back(make_pair(41,.9256));
233 d2->push_back(make_pair(44,1.));
235 vector<pair<G4int,G4double> >*d3=
new vector<pair<G4int,G4double> >;
236 d3->push_back(make_pair(42,1.));
238 vector<pair<G4int,G4double> >*d4=
new vector<pair<G4int,G4double> >;
239 d4->push_back(make_pair(46,.4961));
240 d4->push_back(make_pair(44,.7378));
241 d4->push_back(make_pair(42,.8274));
242 d4->push_back(make_pair(48,.9148));
243 d4->push_back(make_pair(43,.9911));
244 d4->push_back(make_pair(40,1.));
246 vector<pair<G4int,G4double> >*d5=
new vector<pair<G4int,G4double> >;
247 d5->push_back(make_pair(44,.5069));
248 d5->push_back(make_pair(46,1.));
250 vector<pair<G4int,G4double> >*d6=
new vector<pair<G4int,G4double> >;
251 d6->push_back(make_pair(48,.57));
252 d6->push_back(make_pair(50,.743));
253 d6->push_back(make_pair(46,.859));
254 d6->push_back(make_pair(47,.974));
255 d6->push_back(make_pair(44,.9965));
256 d6->push_back(make_pair(42,1.));
258 vector<pair<G4int,G4double> >*d7=
new vector<pair<G4int,G4double> >;
259 d7->push_back(make_pair(48,.7217));
260 d7->push_back(make_pair(50,1.));
262 vector<pair<G4int,G4double> >*d8=
new vector<pair<G4int,G4double> >;
263 d8->push_back(make_pair(50,.8258));
264 d8->push_back(make_pair(48,.9244));
265 d8->push_back(make_pair(49,.9944));
266 d8->push_back(make_pair(46,1.));
268 vector<pair<G4int,G4double> >*d9=
new vector<pair<G4int,G4double> >;
269 d9->push_back(make_pair(50,1.));
271 vector<pair<G4int,G4double> >*e0=
new vector<pair<G4int,G4double> >;
272 e0->push_back(make_pair(50,.5145));
273 e0->push_back(make_pair(54,.6883));
274 e0->push_back(make_pair(52,.8598));
275 e0->push_back(make_pair(51,.972));
276 e0->push_back(make_pair(56,1.));
278 vector<pair<G4int,G4double> >*e1=
new vector<pair<G4int,G4double> >;
279 e1->push_back(make_pair(52,1.));
281 vector<pair<G4int,G4double> >*e2=
new vector<pair<G4int,G4double> >;
282 e2->push_back(make_pair(56,.2413));
283 e2->push_back(make_pair(54,.4081));
284 e2->push_back(make_pair(53,.5673));
285 e2->push_back(make_pair(50,.7157));
286 e2->push_back(make_pair(58,.8120));
287 e2->push_back(make_pair(55,.9075));
288 e2->push_back(make_pair(52,1.));
290 vector<pair<G4int,G4double> >*e3=
new vector<pair<G4int,G4double> >;
291 e3->push_back(make_pair(55,1.));
293 vector<pair<G4int,G4double> >*e4=
new vector<pair<G4int,G4double> >;
294 e4->push_back(make_pair(58,.316));
295 e4->push_back(make_pair(60,.502));
296 e4->push_back(make_pair(57,.673));
297 e4->push_back(make_pair(55,.8));
298 e4->push_back(make_pair(56,.926));
299 e4->push_back(make_pair(52,.9814));
300 e4->push_back(make_pair(54,1.));
302 vector<pair<G4int,G4double> >*e5=
new vector<pair<G4int,G4double> >;
303 e5->push_back(make_pair(58,1.));
305 vector<pair<G4int,G4double> >*e6=
new vector<pair<G4int,G4double> >;
306 e6->push_back(make_pair(60,.2733));
307 e6->push_back(make_pair(62,.5379));
308 e6->push_back(make_pair(59,.7612));
309 e6->push_back(make_pair(55,.8784));
310 e6->push_back(make_pair(58,.9898));
311 e6->push_back(make_pair(56,1.));
313 vector<pair<G4int,G4double> >*e7=
new vector<pair<G4int,G4double> >;
314 e7->push_back(make_pair(60,.51839));
315 e7->push_back(make_pair(62,1.));
317 vector<pair<G4int,G4double> >*e8=
new vector<pair<G4int,G4double> >;
318 e8->push_back(make_pair(66,.2873));
319 e8->push_back(make_pair(64,.5286));
320 e8->push_back(make_pair(59,.6566));
321 e8->push_back(make_pair(62,.7815));
322 e8->push_back(make_pair(65,.9037));
323 e8->push_back(make_pair(68,.9786));
324 e8->push_back(make_pair(58,.9911));
325 e8->push_back(make_pair(60,1.));
327 vector<pair<G4int,G4double> >*e9=
new vector<pair<G4int,G4double> >;
328 e9->push_back(make_pair(66,.9577));
329 e9->push_back(make_pair(64,1.));
331 vector<pair<G4int,G4double> >*f0=
new vector<pair<G4int,G4double> >;
332 f0->push_back(make_pair(70,.3259));
333 f0->push_back(make_pair(68,.5681));
334 f0->push_back(make_pair(66,.7134));
335 f0->push_back(make_pair(69,.7992));
336 f0->push_back(make_pair(67,.8760));
337 f0->push_back(make_pair(74,.9339));
338 f0->push_back(make_pair(72,.9802));
339 f0->push_back(make_pair(62,.9899));
340 f0->push_back(make_pair(64,1.));
344 vector<pair<G4int,G4double> >*f1=
new vector<pair<G4int,G4double> >;
345 f1->push_back(make_pair(70,.5736));
346 f1->push_back(make_pair(72,1.));
348 vector<pair<G4int,G4double> >*f2=
new vector<pair<G4int,G4double> >;
349 f2->push_back(make_pair(78,.3387));
350 f2->push_back(make_pair(76,.6557));
351 f2->push_back(make_pair(74,.8450));
352 f2->push_back(make_pair(73,.9162));
353 f2->push_back(make_pair(72,.9641));
354 f2->push_back(make_pair(70,.9900));
355 f2->push_back(make_pair(71,.99905));
356 f2->push_back(make_pair(68,1.));
358 vector<pair<G4int,G4double> >*f3=
new vector<pair<G4int,G4double> >;
359 f3->push_back(make_pair(74,1.));
361 vector<pair<G4int,G4double> >*f4=
new vector<pair<G4int,G4double> >;
362 f4->push_back(make_pair(78,.269));
363 f4->push_back(make_pair(75,.533));
364 f4->push_back(make_pair(77,.745));
365 f4->push_back(make_pair(80,.849));
366 f4->push_back(make_pair(82,.938));
367 f4->push_back(make_pair(76,.979));
368 f4->push_back(make_pair(74,.9981));
369 f4->push_back(make_pair(70,.9991));
370 f4->push_back(make_pair(72,1.));
372 vector<pair<G4int,G4double> >*f5=
new vector<pair<G4int,G4double> >;
373 f5->push_back(make_pair(78,1.));
375 vector<pair<G4int,G4double> >*f6=
new vector<pair<G4int,G4double> >;
376 f6->push_back(make_pair(82,.717));
377 f6->push_back(make_pair(81,.8293));
378 f6->push_back(make_pair(80,.9078));
379 f6->push_back(make_pair(79,.97373));
380 f6->push_back(make_pair(78,.99793));
381 f6->push_back(make_pair(74,.99899));
382 f6->push_back(make_pair(76,1.));
384 vector<pair<G4int,G4double> >*f7=
new vector<pair<G4int,G4double> >;
385 f7->push_back(make_pair(82,.999098));
386 f7->push_back(make_pair(81,1.));
388 vector<pair<G4int,G4double> >*f8=
new vector<pair<G4int,G4double> >;
389 f8->push_back(make_pair(82,.8843));
390 f8->push_back(make_pair(84,.9956));
391 f8->push_back(make_pair(80,.9981));
392 f8->push_back(make_pair(78,1.));
394 vector<pair<G4int,G4double> >*f9=
new vector<pair<G4int,G4double> >;
395 f9->push_back(make_pair(82,1.));
397 vector<pair<G4int,G4double> >*g0=
new vector<pair<G4int,G4double> >;
398 g0->push_back(make_pair(82,.2713));
399 g0->push_back(make_pair(84,.5093));
400 g0->push_back(make_pair(86,.6812));
401 g0->push_back(make_pair(83,.8030));
402 g0->push_back(make_pair(85,.8860));
403 g0->push_back(make_pair(88,.9436));
404 g0->push_back(make_pair(90,1.));
406 vector<pair<G4int,G4double> >*g1=
new vector<pair<G4int,G4double> >;
407 g1->push_back(make_pair(85,1.));
409 vector<pair<G4int,G4double> >*g2=
new vector<pair<G4int,G4double> >;
410 g2->push_back(make_pair(90,.267));
411 g2->push_back(make_pair(92,.494));
412 g2->push_back(make_pair(85,.644));
413 g2->push_back(make_pair(87,.782));
414 g2->push_back(make_pair(86,.895));
415 g2->push_back(make_pair(88,.969));
416 g2->push_back(make_pair(82,1.));
418 vector<pair<G4int,G4double> >*g3=
new vector<pair<G4int,G4double> >;
419 g3->push_back(make_pair(90,.522));
420 g3->push_back(make_pair(89,1.));
422 vector<pair<G4int,G4double> >*g4=
new vector<pair<G4int,G4double> >;
423 g4->push_back(make_pair(94,.2484));
424 g4->push_back(make_pair(96,.4670));
425 g4->push_back(make_pair(92,.6717));
426 g4->push_back(make_pair(93,.8282));
427 g4->push_back(make_pair(91,.9762));
428 g4->push_back(make_pair(90,.9980));
429 g4->push_back(make_pair(88,1.));
431 vector<pair<G4int,G4double> >*g5=
new vector<pair<G4int,G4double> >;
432 g5->push_back(make_pair(94,1.));
434 vector<pair<G4int,G4double> >*g6=
new vector<pair<G4int,G4double> >;
435 g6->push_back(make_pair(98,.282));
436 g6->push_back(make_pair(96,.537));
437 g6->push_back(make_pair(97,.786));
438 g6->push_back(make_pair(95,.975));
439 g6->push_back(make_pair(94,.9984));
440 g6->push_back(make_pair(92,.9994));
441 g6->push_back(make_pair(90,1.));
443 vector<pair<G4int,G4double> >*g7=
new vector<pair<G4int,G4double> >;
444 g7->push_back(make_pair(98,1.));
446 vector<pair<G4int,G4double> >*g8=
new vector<pair<G4int,G4double> >;
447 g8->push_back(make_pair( 98,.3360));
448 g8->push_back(make_pair(100,.6040));
449 g8->push_back(make_pair( 99,.8335));
450 g8->push_back(make_pair(102,.9825));
451 g8->push_back(make_pair( 96,.9986));
452 g8->push_back(make_pair( 94,1.));
454 vector<pair<G4int,G4double> >*g9=
new vector<pair<G4int,G4double> >;
455 g9->push_back(make_pair(100,1.));
457 vector<pair<G4int,G4double> >*h0=
new vector<pair<G4int,G4double> >;
458 h0->push_back(make_pair(104,.3180));
459 h0->push_back(make_pair(102,.5370));
460 h0->push_back(make_pair(103,.6982));
461 h0->push_back(make_pair(101,.8412));
462 h0->push_back(make_pair(106,.9682));
463 h0->push_back(make_pair(100,.9987));
464 h0->push_back(make_pair( 98,1.));
466 vector<pair<G4int,G4double> >*h1=
new vector<pair<G4int,G4double> >;
467 h1->push_back(make_pair(104,.9741));
468 h1->push_back(make_pair(105,1.));
470 vector<pair<G4int,G4double> >*h2=
new vector<pair<G4int,G4double> >;
471 h2->push_back(make_pair(108,.35100));
472 h2->push_back(make_pair(106,.62397));
473 h2->push_back(make_pair(105,.81003));
474 h2->push_back(make_pair(107,.94632));
475 h2->push_back(make_pair(104,.99838));
476 h2->push_back(make_pair(102,1.));
478 vector<pair<G4int,G4double> >*h3=
new vector<pair<G4int,G4double> >;
479 h3->push_back(make_pair(108,.99988));
480 h3->push_back(make_pair(107,1.));
482 vector<pair<G4int,G4double> >*h4=
new vector<pair<G4int,G4double> >;
483 h4->push_back(make_pair(110,.307));
484 h4->push_back(make_pair(112,.593));
485 h4->push_back(make_pair(108,.856));
486 h4->push_back(make_pair(109,.9988));
487 h4->push_back(make_pair(106,1.));
489 vector<pair<G4int,G4double> >*h5=
new vector<pair<G4int,G4double> >;
490 h5->push_back(make_pair(112,.626));
491 h5->push_back(make_pair(110,1.));
493 vector<pair<G4int,G4double> >*h6=
new vector<pair<G4int,G4double> >;
494 h6->push_back(make_pair(116,.410));
495 h6->push_back(make_pair(114,.674));
496 h6->push_back(make_pair(113,.835));
497 h6->push_back(make_pair(112,.968));
498 h6->push_back(make_pair(111,.984));
499 h6->push_back(make_pair(110,.9998));
500 h6->push_back(make_pair(108,1.));
502 vector<pair<G4int,G4double> >*h7=
new vector<pair<G4int,G4double> >;
503 h7->push_back(make_pair(116,.627));
504 h7->push_back(make_pair(114,1.));
506 vector<pair<G4int,G4double> >*h8=
new vector<pair<G4int,G4double> >;
507 h8->push_back(make_pair(117,.338));
508 h8->push_back(make_pair(116,.667));
509 h8->push_back(make_pair(118,.920));
510 h8->push_back(make_pair(120,.992));
511 h8->push_back(make_pair(114,.9999));
512 h8->push_back(make_pair(112,1.));
514 vector<pair<G4int,G4double> >*h9=
new vector<pair<G4int,G4double> >;
515 h9->push_back(make_pair(118,1.));
517 vector<pair<G4int,G4double> >*i0=
new vector<pair<G4int,G4double> >;
518 i0->push_back(make_pair(122,.2986));
519 i0->push_back(make_pair(120,.5296));
520 i0->push_back(make_pair(119,.6983));
521 i0->push_back(make_pair(121,.8301));
522 i0->push_back(make_pair(118,.9298));
523 i0->push_back(make_pair(124,.9985));
524 i0->push_back(make_pair(116,1.));
526 vector<pair<G4int,G4double> >*i1=
new vector<pair<G4int,G4double> >;
527 i1->push_back(make_pair(124,.70476));
528 i1->push_back(make_pair(122,1.));
530 vector<pair<G4int,G4double> >*i2=
new vector<pair<G4int,G4double> >;
531 i2->push_back(make_pair(126,.524));
532 i2->push_back(make_pair(124,.765));
533 i2->push_back(make_pair(125,.986));
534 i2->push_back(make_pair(122,1.));
536 vector<pair<G4int,G4double> >*i3=
new vector<pair<G4int,G4double> >;
537 i3->push_back(make_pair(126,1.));
539 vector<pair<G4int,G4double> >*i4=
new vector<pair<G4int,G4double> >;
540 i4->push_back(make_pair(125,1.));
542 vector<pair<G4int,G4double> >*i5=
new vector<pair<G4int,G4double> >;
543 i5->push_back(make_pair(136,1.));
545 vector<pair<G4int,G4double> >*i6=
new vector<pair<G4int,G4double> >;
546 i6->push_back(make_pair(136,1.));
548 vector<pair<G4int,G4double> >*i7=
new vector<pair<G4int,G4double> >;
549 i7->push_back(make_pair(138,1.));
551 vector<pair<G4int,G4double> >*i8=
new vector<pair<G4int,G4double> >;
552 i8->push_back(make_pair(138,1.));
554 vector<pair<G4int,G4double> >*i9=
new vector<pair<G4int,G4double> >;
555 i9->push_back(make_pair(142,1.));
557 vector<pair<G4int,G4double> >*j0=
new vector<pair<G4int,G4double> >;
558 j0->push_back(make_pair(142,1.));
560 vector<pair<G4int,G4double> >*j1=
new vector<pair<G4int,G4double> >;
561 j1->push_back(make_pair(140,1.));
563 vector<pair<G4int,G4double> >*j2=
new vector<pair<G4int,G4double> >;
564 j2->push_back(make_pair(146,.992745));
565 j2->push_back(make_pair(143,.999945));
566 j2->push_back(make_pair(142,1.));
568 vector<pair<G4int,G4double> >*j3=
new vector<pair<G4int,G4double> >;
569 j3->push_back(make_pair(144,1.));
571 vector<pair<G4int,G4double> >*j4=
new vector<pair<G4int,G4double> >;
572 j4->push_back(make_pair(150,1.));
574 vector<pair<G4int,G4double> >*j5=
new vector<pair<G4int,G4double> >;
575 j5->push_back(make_pair(148,1.));
577 vector<pair<G4int,G4double> >*j6=
new vector<pair<G4int,G4double> >;
578 j6->push_back(make_pair(151,1.));
580 vector<pair<G4int,G4double> >*j7=
new vector<pair<G4int,G4double> >;
581 j7->push_back(make_pair(150,1.));
583 vector<pair<G4int,G4double> >*j8=
new vector<pair<G4int,G4double> >;
584 j8->push_back(make_pair(153,1.));
586 vector<pair<G4int,G4double> >*j9=
new vector<pair<G4int,G4double> >;
587 j9->push_back(make_pair(157,1.));
589 vector<pair<G4int,G4double> >*k0=
new vector<pair<G4int,G4double> >;
590 k0->push_back(make_pair(157,1.));
592 vector<pair<G4int,G4double> >*k1=
new vector<pair<G4int,G4double> >;
593 k1->push_back(make_pair(157,1.));
595 vector<pair<G4int,G4double> >*k2=
new vector<pair<G4int,G4double> >;
596 k2->push_back(make_pair(157,1.));
598 vector<pair<G4int,G4double> >*k3=
new vector<pair<G4int,G4double> >;
599 k3->push_back(make_pair(157,1.));
601 vector<pair<G4int,G4double> >*k4=
new vector<pair<G4int,G4double> >;
602 k4->push_back(make_pair(157,1.));
604 vector<pair<G4int,G4double> >*k5=
new vector<pair<G4int,G4double> >;
605 k5->push_back(make_pair(157,1.));
607 vector<pair<G4int,G4double> >*k6=
new vector<pair<G4int,G4double> >;
608 k6->push_back(make_pair(157,1.));
610 vector<pair<G4int,G4double> >*k7=
new vector<pair<G4int,G4double> >;
611 k7->push_back(make_pair(155,1.));
613 vector<pair<G4int,G4double> >*k8=
new vector<pair<G4int,G4double> >;
614 k8->push_back(make_pair(157,1.));
616 vector<pair<G4int,G4double> >*k9=
new vector<pair<G4int,G4double> >;
617 k9->push_back(make_pair(157,1.));
620 G4int nona=natEl.size();
622 G4cout<<
"G4QIsotope::Constructor natEl filling is finished nE="<<nona<<
G4endl;
624 for(
G4int i=0; i<nona; i++)
626 vector<pair<G4int,G4double> >* is=natEl[i];
629 G4cout<<
"G4QIsotope::Constructor: Element # "<<i<<
", nOfIsotopes="<<n<<
G4endl;
631 vector<pair<G4int,G4double>*>*a=
new vector<pair<G4int,G4double>*>;
632 vector<pair<G4int,G4double>*>*s_vec=
new vector<pair<G4int,G4double>*>;
634 if(n)
for(
G4int j=0; j<n; j++)
636 G4int nn =(*is)[j].first;
638 pair<G4int,G4double>* aP =
new pair<G4int,G4double>(nn,cur-last);
640 pair<G4int,G4double>* sP =
new pair<G4int,G4double>((*is)[j]);
642 s_vec->push_back(sP);
644 G4cout<<
"G4QIsotope::Constructor:Element# "<<i<<
", Pair # "<<j<<
" is filled"<<
G4endl;
647 natElements.push_back(a);
648 natSumAbund.push_back(s_vec);
650 G4cout<<
"G4QIsotope::Constructor: natElements is filled"<<
G4endl;
652 vector<pair<G4int,G4double>*>*c=
new vector<pair<G4int,G4double>*>;
653 if(n)
for(
G4int j=0; j<n; j++)
655 pair<G4int,G4double>* cP =
new pair<G4int,G4double>((*is)[j].first,0.);
658 G4cout<<
"G4QIsotope::Constructor:CrosSecPair i="<<i<<
", j="<<j<<
" is filled"<<
G4endl;
661 natIsoCrosS.push_back(c);
663 G4cout<<
"G4QIsotope::Constructor: natIsoCrosS is filled"<<
G4endl;
677 G4int uP=natElements.size();
678 if(uP)
for(
G4int i=0; i<uP; i++)
680 vector<pair<G4int,G4double>*>* curA=natElements[i];
681 G4int nn=curA->size();
682 if(nn)
for(
G4int n=0; n<nn; n++)
delete (*curA)[n];
684 vector<pair<G4int,G4double>*>* curS=natSumAbund[i];
685 G4int ns_value=curS->size();
686 if(ns_value)
for(
G4int n=0; n<ns_value; n++)
delete (*curS)[n];
688 vector<pair<G4int,G4double>*>* curC=natIsoCrosS[i];
689 G4int nc=curC->size();
690 if(nc)
for(
G4int k=0; k<nc; k++)
delete (*curC)[k];
693 G4int nP=newElems.size();
694 if(nP)
for(
G4int j=0; j<nP; j++)
696 pair<G4int, vector<pair<G4int,G4double>*>* >* nEl= newElems[j];
697 G4int nEn=nEl->second->size();
698 if(nEn)
for(
G4int k=0; k<nEn; k++)
delete (*(nEl->second))[k];
702 pair<G4int, vector<pair<G4int,G4double>*>* >* nSA= newSumAb[j];
703 G4int nSn=nSA->second->size();
704 if(nSn)
for(
G4int n=0; n<nSn; n++)
delete (*(nSA->second))[n];
708 pair<G4int, vector<pair<G4int,G4double>*>* >* nCS= newIsoCS[j];
709 G4int nCn=nCS->second->size();
710 if(nCn)
for(
G4int n=0; n<nCn; n++)
delete (*(nCS->second))[n];
714 if(nEn!=nCn)
G4cerr<<
"*G4QIsotope-WORNING-:#El="<<j<<
":nE="<<nEn<<
"!=nC="<<nCn<<
G4endl;
715 if(nEn!=nSn)
G4cerr<<
"*G4QIsotope-WORNING-:#El="<<j<<
":nE="<<nEn<<
"!=nS="<<nSn<<
G4endl;
734 const G4int bestZ[nAZ] = {
735 0, 1, 1, 2, 2, 0, 3, 3, 4, 4,
736 5, 5, 6, 6, 7, 7, 8, 8, 8, 9,
737 10, 10, 10, 11, 12, 12, 12, 13, 14, 14,
738 14, 15, 16, 16, 16, 17, 18, 17, 18, 19,
739 18, 19, 20, 20, 20, 21, 22, 22, 23, 23,
740 22, 23, 24, 24, 26, 25, 26, 26, 28, 27,
741 28, 28, 28, 29, 30, 29, 30, 30, 30, 31,
742 32, 31, 32, 32, 32, 33, 34, 34, 34, 35,
743 34, 35, 36, 36, 36, 37, 39, 36, 38, 39,
744 40, 40, 41, 40, 40, 42, 42, 42, 42, 44,
745 44, 44, 44, 45, 44, 46, 46, 47, 46, 47,
746 48, 48, 48, 48, 48, 49, 50, 50, 50, 50,
747 50, 51, 50, 51, 50, 52, 52, 53, 52, 54,
748 52, 54, 54, 55, 54, 56, 54, 56, 56, 57,
749 58, 59, 60, 60, 60, 60, 60, 62, 62, 62,
750 62, 63, 62, 63, 62, 64, 64, 64, 64, 65,
751 64, 66, 66, 66, 66, 67, 68, 68, 68, 69,
752 68, 70, 70, 70, 70, 71, 70, 72, 72, 72,
753 72, 73, 74, 74, 74, 75, 74, 75, 76, 76,
754 76, 77, 76, 77, 78, 78, 78, 79, 80, 80,
755 80, 80, 80, 81, 80, 81, 82, 82, 82, 83,
756 82, 0, 82, 0, 82, 0, 84, 0, 0, 0,
757 86, 0, 86, 87, 88, 0, 88, 89, 88, 89,
758 89, 91, 90, 0, 92, 92, 0, 93, 92, 94,
759 0, 0, 0, 95, 94, 0, 0, 96, 0, 0,
760 0, 98, 99, 0, 0, 0, 0,100,101,102,
761 103,104,105,106, 0,108,109, 0, 0, 0};
764 const G4int secoZ[nAZ] = {
765 0, 0, 0, 1, 0, 0, 0, 4, 0, 0,
766 4, 6, 5, 7, 0, 8, 0, 0, 0, 8,
767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
768 0, 0, 15, 0, 0, 16, 0, 0, 0, 0,
769 20, 20, 0, 0, 0, 0, 20, 0, 0, 0,
770 24, 0, 0, 0, 24, 0, 0, 0, 26, 0,
771 27, 0, 0, 0, 28, 0, 0, 0, 0, 0,
772 30, 0, 0, 0, 34, 0, 32, 0, 0, 0,
773 36, 0, 34, 0, 38, 0, 38, 38, 0, 0,
774 0, 0, 42, 0, 42, 0, 44, 0, 44, 0,
775 42, 0, 46, 0, 46, 0, 48, 0, 48, 0,
776 46, 0, 50, 49, 50, 50, 48, 0, 0, 0,
777 52, 0, 52, 0, 52, 0, 54, 0, 54, 0,
778 54, 0, 56, 0, 56, 0, 56, 0, 58, 0,
779 54, 0, 58, 0, 62, 61, 0, 0, 60, 0,
780 60, 0, 64, 0, 64, 0, 66, 0, 66, 0,
781 66, 0, 68, 0, 68, 0, 0, 0, 70, 0,
782 70, 0, 0, 0, 72, 0, 72, 0, 0, 0,
783 74, 0, 0, 0, 76, 0, 76, 76, 0, 0,
784 78, 0, 78, 0, 0, 0, 80, 0, 78, 0,
785 0, 0, 0, 0, 82, 0, 0, 0, 0, 84,
786 84, 0, 83, 0, 83, 0, 0, 0, 0, 0,
787 0, 0, 0, 0, 0, 0, 0, 0, 89, 0,
788 0, 0, 0, 0, 93, 0, 0, 0, 93, 0,
789 0, 0, 0, 0, 0, 0, 0, 97, 0, 0,
790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
791 0, 0,107, 0, 0, 0, 0, 0, 0, 0};
794 const G4int thrdZ[nAZ] = {
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
798 0, 0, 0, 0, 0,20, 0, 0, 0, 0,
799 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
800 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
804 0, 0,36, 0,38, 0,40, 0, 0, 0,
805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
808 56, 0,50, 0, 0, 0,58, 0,57, 0,
809 0, 0, 0, 0, 0, 0, 0, 0,65, 0,
810 0, 0,66, 0, 0, 0, 0, 0, 0, 0,
811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
812 0, 0, 0, 0, 0, 0,71, 0, 0, 0,
813 73, 0, 0, 0, 0, 0, 0, 0, 0, 0,
814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
816 83, 0,84, 0,84, 0, 0, 0, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
824 const G4int quadZ[nAZ] = {
825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840 0, 0,67, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
846 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
885 static const G4int nElements = 110;
887 static G4int dN[nElements]=
890 1, -1, -1, -1, 5, -1, -1, -1, -1, 10, -1, 12, -1, 14, -1, 16, -1, -1, -1, -1,
892 -1, 24, -1, -1, -1, 30, -1, 32, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 50,
894 -1, 52, -1, 55, -1, 58, -1, -1, -1, -1, -1, -1, -1, 74, -1, 78, -1, -1, -1, 82,
896 -1,-85, -1, -1, -1, 94, -1, 98, -1,100, -1, -1, -1, -1, -1, -1, -1, -1, -1,118,
898 -1, -1, -1, 126,-125,-136,-136,-138,-138,-142,
900 142,-140, -1,-144,-150,-148,-151,-150,-153,-153
902 -157,-157,-157,-157,-157,-157,-157,-155,-157,-157
905 G4cout<<
"G4QIsotope::RandomizeNeutrons is called Z="<<i<<
G4endl;
966 else if(rnd<.9996) N=10;
972 else if(rnd<.9975) N=11;
987 else if(rnd<.8899) N=13;
993 else if(rnd<.969) N=15;
1001 if (rnd<.9502) N=16;
1002 else if(rnd<.9923) N=18;
1003 else if(rnd<.9998) N=17;
1008 if (rnd>.7577) N=18;
1020 else if(rnd<.99937) N=18;
1025 if (rnd<.932581) N=20;
1026 else if(rnd<.999883) N=22;
1034 if (rnd<.96941) N=20;
1035 else if(rnd<.99027) N=24;
1036 else if(rnd<.99674) N=22;
1037 else if(rnd<.99861) N=28;
1038 else if(rnd<.99996) N=23;
1044 else if(rnd<.818) N=24;
1045 else if(rnd<.891) N=25;
1046 else if(rnd<.946) N=27;
1063 if (rnd<.9975) N=28;
1068 if (rnd<.8379) N=28;
1069 else if(rnd<.9329) N=29;
1070 else if(rnd<.97635) N=26;
1076 if (rnd<.9172) N=30;
1077 else if(rnd<.9762) N=28;
1078 else if(rnd<.9972) N=31;
1088 if (rnd<.68077) N=30;
1089 else if(rnd<.943) N=32;
1090 else if(rnd<.97934) N=34;
1091 else if(rnd<.99074) N=33;
1096 if (rnd<.6917) N=34;
1105 else if(rnd<.765) N=36;
1106 else if(rnd<.953) N=38;
1107 else if(rnd<.994) N=37;
1112 if (rnd<.60108) N=38;
1126 if (rnd<.3594) N=42;
1127 else if(rnd<.6360) N=40;
1128 else if(rnd<.8484) N=38;
1129 else if(rnd<.9256) N=41;
1134 if (rnd>.4961) N=46;
1135 else if(rnd<.7378) N=44;
1136 else if(rnd<.8274) N=42;
1137 else if(rnd<.9148) N=48;
1138 else if(rnd<.9911) N=43;
1146 if (rnd<.5069) N=44;
1152 else if(rnd<.743) N=50;
1153 else if(rnd<.859) N=46;
1154 else if(rnd<.974) N=47;
1155 else if(rnd<.9965) N=44;
1166 if (rnd<.7217) N=48;
1171 if (rnd<.8258) N=50;
1172 else if(rnd<.9244) N=48;
1173 else if(rnd<.9944) N=49;
1181 if (rnd<.5145) N=50;
1182 else if(rnd<.6883) N=54;
1183 else if(rnd<.8598) N=53;
1184 else if(rnd<.972) N=51;
1189 if (rnd<.2413) N=56;
1190 else if(rnd<.4081) N=54;
1191 else if(rnd<.5673) N=53;
1192 else if(rnd<.7157) N=50;
1193 else if(rnd<.8120) N=58;
1194 else if(rnd<.9075) N=55;
1215 else if(rnd<.502) N=60;
1216 else if(rnd<.673) N=57;
1217 else if(rnd<.8) N=55;
1218 else if(rnd<.926) N=56;
1219 else if(rnd<.9814) N=52;
1224 if (rnd<.2733) N=60;
1225 else if(rnd<.5379) N=62;
1226 else if(rnd<.7612) N=59;
1227 else if(rnd<.8784) N=55;
1228 else if(rnd<.9898) N=58;
1236 if(rnd<.51839) N=60;
1241 if (rnd<.2873) N=66;
1242 else if(rnd<.5286) N=64;
1243 else if(rnd<.6566) N=59;
1244 else if(rnd<.7815) N=62;
1245 else if(rnd<.9037) N=65;
1246 else if(rnd<.9786) N=68;
1247 else if(rnd<.9911) N=58;
1258 if (rnd<.9577) N=66;
1263 if (rnd<.3259) N=70;
1264 else if(rnd<.5681) N=68;
1265 else if(rnd<.7134) N=66;
1266 else if(rnd<.7992) N=69;
1267 else if(rnd<.8760) N=67;
1268 else if(rnd<.9339) N=74;
1269 else if(rnd<.9802) N=72;
1270 else if(rnd<.9899) N=62;
1280 if (rnd<.5736) N=70;
1285 if (rnd<.3387) N=78;
1286 else if(rnd<.6557) N=76;
1287 else if(rnd<.8450) N=74;
1288 else if(rnd<.9162) N=73;
1289 else if(rnd<.9641) N=72;
1290 else if(rnd<.9900) N=70;
1291 else if(rnd<.99905) N=71;
1306 else if(rnd<.533) N=75;
1307 else if(rnd<.745) N=77;
1308 else if(rnd<.849) N=80;
1309 else if(rnd<.938) N=82;
1310 else if(rnd<.979) N=76;
1311 else if(rnd<.9981) N=74;
1312 else if(rnd<.9991) N=70;
1318 else if(rnd<.8293) N=81;
1319 else if(rnd<.9078) N=80;
1320 else if(rnd<.97373) N=79;
1321 else if(rnd<.99793) N=78;
1322 else if(rnd<.99899) N=74;
1330 if (rnd<.999098)N=82;
1335 if (rnd<.8843) N=82;
1336 else if(rnd<.9956) N=84;
1337 else if(rnd<.9981) N=80;
1348 if (rnd<.2713) N=82;
1349 else if(rnd<.5093) N=84;
1350 else if(rnd<.6812) N=86;
1351 else if(rnd<.8030) N=83;
1352 else if(rnd<.8860) N=85;
1353 else if(rnd<.9436) N=88;
1359 else if(rnd<.494) N=92;
1360 else if(rnd<.644) N=85;
1361 else if(rnd<.782) N=87;
1362 else if(rnd<.895) N=86;
1363 else if(rnd<.969) N=88;
1376 if (rnd<.2484) N=94;
1377 else if(rnd<.4670) N=96;
1378 else if(rnd<.6717) N=92;
1379 else if(rnd<.8282) N=93;
1380 else if(rnd<.9762) N=91;
1381 else if(rnd<.9980) N=90;
1399 else if(rnd<.537) N=96;
1400 else if(rnd<.786) N=97;
1401 else if(rnd<.975) N=95;
1402 else if(rnd<.9984) N=94;
1403 else if(rnd<.9994) N=92;
1408 if (rnd<.3360) N= 98;
1409 else if(rnd<.6040) N=100;
1410 else if(rnd<.8335) N= 99;
1411 else if(rnd<.9825) N=102;
1412 else if(rnd<.9986) N= 96;
1420 if (rnd<.3180) N=104;
1421 else if(rnd<.5370) N=102;
1422 else if(rnd<.6982) N=103;
1423 else if(rnd<.8412) N=101;
1424 else if(rnd<.9682) N=106;
1425 else if(rnd<.9987) N=100;
1430 if (rnd<.9741) N=104;
1441 if (rnd<.35100) N=108;
1442 else if(rnd<.62397) N=106;
1443 else if(rnd<.81003) N=105;
1444 else if(rnd<.94632) N=107;
1445 else if(rnd<.99838) N=104;
1450 if(rnd<.99988) N=108;
1458 if (rnd<.307) N=110;
1459 else if(rnd<.593) N=112;
1460 else if(rnd<.856) N=108;
1461 else if(rnd<.9988) N=109;
1466 if (rnd<.626) N=112;
1480 if (rnd<.410) N=116;
1481 else if(rnd<.674) N=114;
1482 else if(rnd<.835) N=113;
1483 else if(rnd<.968) N=112;
1484 else if(rnd<.984) N=111;
1485 else if(rnd<.9998) N=110;
1490 if (rnd<.627) N=116;
1498 if (rnd<.338) N=117;
1499 else if(rnd<.667) N=116;
1500 else if(rnd<.920) N=118;
1501 else if(rnd<.992) N=120;
1502 else if(rnd<.9999) N=114;
1507 if (rnd<.2986) N=122;
1508 else if(rnd<.5296) N=120;
1509 else if(rnd<.6983) N=119;
1510 else if(rnd<.8301) N=121;
1511 else if(rnd<.9298) N=118;
1512 else if(rnd<.9985) N=124;
1523 if (rnd<.70476) N=124;
1528 if (rnd<.524) N=126;
1529 else if(rnd<.765) N=124;
1530 else if(rnd<.986) N=125;
1536 if (rnd<.992745)N=146;
1537 else if(rnd<.999945)N=143;
1548 G4cerr<<
"---Worn---G4QIsotope::RandomizeNeutrons:UnstableElement's used Z="<<i<<
G4endl;
1551 G4cout<<
"G4QIsotope::RandomizeNeutrons: Z="<<i<<
", N="<<N<<
G4endl;
1558 vector<pair<G4int,G4double>*>* abund)
1560 G4int I=abund->size();
1562 G4cout<<
"G4QIsotope::InitElement: called with I="<<I<<
" pairs,Z="<<Z<<
",i="<<indexG4endl;
1566 G4cerr<<
"--Worning--G4QIsotope::InitEl:(-1)0VectorOfNewEl,Z="<<Z<<
",i="<<index<<
G4endl;
1571 G4cerr<<
"-Worning-G4QIsotope::InitEl:VONewEl,Z="<<Z<<
",ind="<<index<<
" exists"<<
G4endl;
1574 G4int ZInd=1000*index+Z;
1575 vector<pair<G4int,G4double>*>*A =
new vector<pair<G4int,G4double>*>;
1576 vector<pair<G4int,G4double>*>*S =
new vector<pair<G4int,G4double>*>;
1577 vector<pair<G4int,G4double>*>*C =
new vector<pair<G4int,G4double>*>;
1579 G4cout<<
"G4QIsotope::InitElement: A & S & C vectors are alocated"<<
G4endl;
1582 for(
G4int j=0; j<I; j++)
1584 G4int N=(*abund)[j]->first;
1587 G4cout<<
"G4QIsotope::InitElement: pair#"<<j<<
", N="<<N<<
", abund="<<abu<<
G4endl;
1592 if(fabs(sumAbu-1.)>.00001)
1594 G4cerr<<
"--Worning--G4QIsotope::InitEl:maxSum="<<sumAbu<<
" is fixed to 1."<<
G4endl;
1598 else if(sumAbu-abu>1.)
1600 G4cerr<<
"--Worning--G4QIsotope::InitEl:(-2)WrongAbund,Z="<<Z<<
",i="<<index<<
G4endl;
1601 for(
G4int k=0; k<I-1; k++)
1613 G4cout<<
"G4QIsotope::InitElement:TheLastIsChecked it isOK or coredTo "<<sumAbu<<
G4endl;
1616 pair<G4int,G4double>* abP=
new pair<G4int,G4double>(N,abu);
1618 pair<G4int,G4double>* saP=
new pair<G4int,G4double>(N,sumAbu);
1620 pair<G4int,G4double>* csP=
new pair<G4int,G4double>(N,0.);
1623 G4cout<<
"G4QIsotope::InitElement: A & S & C are filled nP="<<C->size()<<
G4endl;
1626 pair<G4int,vector<pair<G4int,G4double>*>*>* newAP=
1627 new pair<G4int,vector<pair<G4int,G4double>*>*>(ZInd,A);
1628 newElems.push_back(newAP);
1629 pair<G4int,vector<pair<G4int,G4double>*>*>* newSA=
1630 new pair<G4int,vector<pair<G4int,G4double>*>*>(ZInd,S);
1631 newSumAb.push_back(newSA);
1632 pair<G4int,vector<pair<G4int,G4double>*>*>* newCP=
1633 new pair<G4int,vector<pair<G4int,G4double>*>*>(ZInd,C);
1634 newIsoCS.push_back(newCP);
1636 G4cout<<
"G4QIsotope::InitElement: newElems & newSumAb & newIsoCS are filled "<<
G4endl;
1645 G4cout<<
"G4QIsotope::GetLastIndex is called Z="<<Z<<
G4endl;
1648 G4int nE=newElems.size();
1649 if(nE)
for(
G4int i=0; i<nE; i++)
1651 G4int zin=newElems[i]->first;
1654 if(Z==zi && in>mind) mind=in;
1663 G4cout<<
"G4QIsotope::IsDefined is called Z="<<Z<<
", I="<<Ind<<
G4endl;
1667 if(Ind<0)
G4cerr<<
"-W-G4QIsotope::IsDefined: Z="<<Z<<
", Ind="<<Ind<<
" < 0->=0"<<
G4endl;
1670 G4int nE=newElems.size();
1671 if(nE)
for(
G4int i=0; i<nE; i++)
1673 G4int zin=newElems[i]->first;
1676 if(Z==zi && Ind==in)
return true;
1685 G4cout<<
"G4QIsotope::GetNeutrons is called Z="<<Z<<
", index="<<index<<
G4endl;
1689 if(!index)
return RandomizeNeutrons(Z);
1692 G4cerr<<
"---Worning---G4QIsotope::GetNeutrons:(-2) Negative Index i="<<index<<
G4endl;
1697 G4int nE=newElems.size();
1699 if(nE)
for(i=0; i<nE; i++)
1701 G4int zin=newElems[i]->first;
1704 if(Z==zi && in==index)
1712 G4cerr<<
"--Worning--G4QIsotope::GetNeutrons:(-1) NotFound Z="<<Z<<
",i="<<index<<
G4endl;
1715 vector<pair<G4int,G4double>*>* abu = newSumAb[i]->second;
1716 G4int nn = abu->size();
1719 if(nn==1)
return (*abu)[0]->first;
1724 for(j=0; j<nn; j++)
if ( rnd < (*abu)[j]->second )
break;
1726 return (*abu)[j]->first;
1731 G4cerr<<
"--Worning--G4QIsotope::GetNeutrons:(-3) Empty Z="<<Z<<
",i="<<index<<
G4endl;
1744 G4cerr<<
"---Worning---G4QIsotope::GetSCVector:(-1) Negative Index i="<<index<<
G4endl;
1747 else if(!index)
return natIsoCrosS[Z];
1750 G4int nE=newIsoCS.size();
1752 if(nE)
for(i=0; i<nE; i++)
1754 G4int zin=newIsoCS[i]->first;
1757 if(Z==zi && in==index)
1765 G4cerr<<
"--Worning--G4QIsotope::GetSCVector:(-2) NotFound Z="<<Z<<
",i="<<index<<
G4endl;
1768 return newIsoCS[i]->second;
1779 G4cerr<<
"---Worning---G4QIsotope::GetAbuVector:(-1) Negative Index i="<<index<<
G4endl;
1782 else if(!index)
return natElements[Z];
1785 G4int nE=newElems.size();
1787 if(nE)
for(i=0; i<nE; i++)
1789 G4int zin=newElems[i]->first;
1792 if(Z==zi && in==index)
1800 G4cerr<<
"--Worning--G4QIsotope::GetAbuVector:(-2)NotFound Z="<<Z<<
",i="<<index<<
G4endl;
1803 return newElems[i]->second;
1814 G4cerr<<
"---Worning---G4QIsotope::GetSumAVector:(-1) Negative Index i="<<index<<
G4endl;
1817 else if(!index)
return natSumAbund[Z];
1820 G4int nE=newSumAb.size();
1822 if(nE)
for(i=0; i<nE; i++)
1824 G4int zin=newSumAb[i]->first;
1827 if(Z==zi && in==index)
1835 G4cerr<<
"-Worning-G4QIsotope::GetSumAVector:(-2)Not Found Z="<<Z<<
",i="<<index<<
G4endl;
1838 return newSumAb[i]->second;
1844 vector<pair<G4int,G4double>*>* ab;
1845 vector<pair<G4int,G4double>*>* cs;
1847 G4cout<<
"G4QIsotope::GetMeanCrossSection is called"<<
G4endl;
1851 G4cerr<<
"---Worning---G4QIsotope::GetMeanCS:(-1) Negative Index i="<<index<<
G4endl;
1857 G4cout<<
"G4QIsotope::GetMeanCrossSection: Nat Abundance, Z="<<Z<<
G4endl;
1865 G4cout<<
"G4QIsotope::GetMeanCrossSection: Art Abund, Z="<<Z<<
",ind="<<index<<
G4endl;
1869 G4int nE=newIsoCS.size();
1871 if(nE)
for(i=0; i<nE; i++)
1873 G4int zin=newIsoCS[i]->first;
1876 if(Z==zi && in==index)
1884 G4cerr<<
"--Worning--G4QIsotope::GetMeanCS:(-2) NotFound Z="<<Z<<
",i="<<index<<
G4endl;
1887 ab=newElems[i]->second;
1888 cs=newIsoCS[i]->second;
1890 G4int nis=ab->size();
1894 G4cerr<<
"--Worning--G4QIsotope::GetMeanCS:(-3) Empty Z="<<Z<<
",i="<<index<<
G4endl;
1900 for(
G4int j=0; j<nis; j++)
1906 G4cout<<
"G4QIsot::GetMeanCS:j="<<j<<
",ab="<<cur<<
",CS="<<(*cs)[j]->second<<
G4endl;
1909 sum+=cur * (*cs)[j]->second;
1918 vector<pair<G4int,G4double>*>* ab;
1919 vector<pair<G4int,G4double>*>* cs;
1925 G4cerr<<
"---Worning---G4QIsotope::GetCSNeutrons:(-1) Negative Index i="<<index<<
G4endl;
1937 G4int nE=newIsoCS.size();
1939 if(nE)
for(i=0; i<nE; i++)
1941 G4int zin=newIsoCS[i]->first;
1944 if(Z==zi && in==index)
1952 G4cerr<<
"--Worning--G4QIsotope::GetCSNeut:(-2) NotFound Z="<<Z<<
",i="<<index<<
G4endl;
1955 ab=newElems[i]->second;
1956 cs=newIsoCS[i]->second;
1958 G4int nis=ab->size();
1962 G4cerr<<
"--Worning--G4QIsotope::GetCSNeutrons:(-3) Empty Z="<<Z<<
",i="<<index<<
G4endl;
1968 vector<G4double> scs(nis);
1969 for(
G4int j=0; j<nis; j++)
1974 sum+=abunda * (*cs)[j]->second;;
1980 if(nis>1)
for(k=0; k<nis; k++)
if(rnd<scs[k])
break;
1981 return (*ab)[k]->first;
G4DLLIMPORT std::ostream G4cerr
G4DLLIMPORT std::ostream G4cout
G4int GetLastIndex(G4int Z)
G4int GetNeutrons(G4int Z, G4int index=0)
std::vector< std::pair< G4int, G4double > * > * GetCSVector(G4int Z, G4int index=0)
std::vector< std::pair< G4int, G4double > * > * GetAbuVector(G4int Z, G4int index=0)
G4bool IsDefined(G4int Z, G4int Ind)
G4int GetProtons(G4int A, std::vector< G4int > &isoV)
G4double GetMeanCrossSection(G4int Z, G4int index=0)
G4int GetCSNeutrons(G4int Z, G4int index=0)
std::vector< std::pair< G4int, G4double > * > * GetSumAVector(G4int Z, G4int index=0)
static G4QIsotope * Get()
G4int InitElement(G4int Z, G4int index, std::vector< std::pair< G4int, G4double > * > *abund)