Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4QNeutronCaptureRatio.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id$
28//
29//
30// G4 Physics class: G4QNeutronCaptureRatio for N+A Diffraction Interactions
31// Created: M.V. Kossov, CERN/ITEP(Moscow), 10-OCT-01
32// The last update: M.V. Kossov, CERN/ITEP (Moscow) 15-Oct-06
33//
34// ----------------------------------------------------------------------
35// Short description: (n,gamma) capture is a part of the incoherent
36// (inelastic) interaction. This part is calculated in the class.
37// ----------------------------------------------------------------------
38
39//#define debug
40//#define pdebug
41//#define fdebug
42//#define nandebug
43
45#include "G4SystemOfUnits.hh"
46
47// Returns Pointer to the class G4QNeutronCaptureRatio
49{
50 static G4QNeutronCaptureRatio theRatios; // *** Static body of the NeutCaptureRatio ***
51 return &theRatios;
52}
53
54// Calculation of netronCapture/inelastic ratio
56{
57 // Table parameters
58 static const G4int npp=100; // Number of steps in the R(s) LinTable
59 static const G4int mpp=npp+1; // Number of elements in the R(s) LinTable
60 static const G4double pma=6.; // The first LinTabEl(mom=0)=1., mom>pma -> logTab
61 static const G4double dp=pma/npp; // Step of the linear Table
62 static const G4int nls=150; // Number of steps in the R(lns) logTable
63 static const G4int mls=nls+1; // Number of elements in the R(lns) logTable
64 static const G4double lpi=1.79; // The min ln(p) logTabEl(p=5.99 < pma=6.)
65 static const G4double lpa=8.; // The max ln(p) logTabEl(p=5.99 - 2981 GeV)
66 static const G4double mi=std::exp(lpi);// The min mom of logTabEl(~ 5.99 GeV)
67 static const G4double max_s=std::exp(lpa);// The max mom of logTabEl(~ 2981 GeV)
68 static const G4double dl=(lpa-lpi)/nls;// Step of the logarithmic Table
69 static const G4double edl=std::exp(dl);// Multiplication step of the logarithmic Table
70 static const G4double toler=.0001; // Tolarence (GeV) defining the same momentum
71 static G4double lastP=0.; // Last mometum value for which R was calculated
72 static G4double lastR=0.; // Last ratio R which was calculated
73 // Local Associative Data Base:
74 static std::vector<G4int> vZ; // Vector of calculated Z (target)
75 static std::vector<G4int> vN; // Vector of calculated N (target)
76 static std::vector<G4double> vH; // Vector of max mom initialized in the LinTable
77 static std::vector<G4int> vJ; // Vector of topBin number initialized in LinTable
78 static std::vector<G4double> vM; // Vector of relMax ln(p) initialized in LogTable
79 static std::vector<G4int> vK; // Vector of topBin number initialized in LogTable
80 static std::vector<G4double*> vT; // Vector of pointers to LinTable in C++ heap
81 static std::vector<G4double*> vL; // Vector of pointers to LogTable in C++ heap
82 // Last values of the Associative Data Base:
83 static G4int lastZ=0; // theLast of calculated A
84 static G4int lastN=0; // theLast of calculated A
85 static G4double lastH=0.; // theLast of max mom initialized in the LinTable
86 static G4int lastJ=0; // theLast of topBinNumber initialized in LinTable
87 static G4double lastM=0.; // theLast of relMax ln(p) initialized in LogTab.
88 static G4int lastK=0; // theLast of topBinNumber initialized in LogTable
89 static G4double* lastT=0; // theLast of pointer to LinTable in the C++ heap
90 static G4double* lastL=0; // theLast of pointer to LogTable in the C++ heap
91 // LogTable is created only if necessary. R(p>2981GeV) calcul by formula for any nuclei
92 G4int A=tgN+tgZ;
93 if(pIU > 50) return 0.;
94 if(pIU > 30 && ((tgN==1 && tgZ==1) || (tgN==8 && tgZ==7))) return 0.;
95 if(pIU > 20 && tgN==2 && tgZ==1) return 0.;
96 if(pIU > 15 && ((tgN==1 && tgZ==2) || (tgN==8 && tgZ==8))) return 0.;
97 if(pIU<toler || A<1) return 1.; // Fake use of toler as non zero number
98 if(A>247)
99 {
100 G4cout<<"-*-Warning-*-G4NeutronCaptureRatio::GetRatio:A="<<A<<">247, return 0"<<G4endl;
101 return 0.;
102 }
103 G4int nDB=vZ.size(); // A number of nuclei already initialized in AMDB
104 if(nDB && lastZ==tgZ && lastN==tgN && std::fabs(pIU-lastP)<toler) return lastR;
105 if(pIU>max_s)
106 {
107 lastR=CalcCap2In_Ratio(s,tgZ,tgN); //@@ Probably user ought to be notified about bigP
108 return lastR;
109 }
110 G4bool found=false;
111 G4int i=-1;
112 if(nDB) for (i=0; i<nDB; i++) if(tgZ==vZ[i] && tgN==vN[i]) // Sirch for this Z,N in AMDB
113 {
114 found=true; // The (Z,N) is found
115 break;
116 }
117 if(!nDB || !found) // Create new line in the AMDB
118 {
119 lastZ = tgZ;
120 lastN = tgN;
121 lastT = new G4double[mpp]; // Create the linear Table
122 lastJ = static_cast<int>(pIU/dp)+1; // MaxBin to be initialized
123 if(lastJ>npp)
124 {
125 lastJ=npp;
126 lastH=pma;
127 }
128 else lastH = lastJ*dp; // Calculate max initialized s for LinTab
129 G4double pv=0;
130 lastT[0]=1.;
131 for(G4int j=1; j<=lastJ; j++) // Calculate LinTab values
132 {
133 pv+=dp;
134 lastT[j]=CalcCap2In_Ratio(pv,tgZ,tgN); // ??
135 }
136 lastL=new G4double[mls]; // Create the logarithmic Table
137 G4double ls=std::log(s);
138 lastK = static_cast<int>((ls-lpi)/dl)+1; // MaxBin to be initialized in LogTaB
139 if(lastK>nls)
140 {
141 lastK=nls;
142 lastM=lpa-lpi;
143 }
144 else lastM = lastK*dl; // Calculate max initialized ln(s)-lpi for LogTab
145 pv=mi;
146 for(G4int j=0; j<=lastK; j++) // Calculate LogTab values
147 {
148 lastL[j]=CalcCap2In_Ratio(pv,tgZ,tgN);
149 if(j!=lastK) pv*=edl;
150 }
151 i++; // Make a new record to AMDB and position on it
152 vZ.push_back(lastZ);
153 vN.push_back(lastN);
154 vH.push_back(lastH);
155 vJ.push_back(lastJ);
156 vM.push_back(lastM);
157 vK.push_back(lastK);
158 vT.push_back(lastT);
159 vL.push_back(lastL);
160 }
161 else // The A value was found in AMDB
162 {
163 lastZ=vZ[i];
164 lastN=vN[i];
165 lastH=vH[i];
166 lastJ=vJ[i];
167 lastM=vM[i];
168 lastK=vK[i];
169 lastT=vT[i];
170 lastL=vL[i];
171 if(s>lastH) // At least LinTab must be updated
172 {
173 G4int nextN=lastJ+1; // The next bin to be initialized
174 if(lastJ<npp)
175 {
176 lastJ = static_cast<int>(pIU/dp)+1;// MaxBin to be initialized
177 G4double pv=lastH;
178 if(lastJ>npp)
179 {
180 lastJ=npp;
181 lastH=pma;
182 }
183 else lastH = lastJ*dp; // Calculate max initialized s for LinTab
184 for(G4int j=nextN; j<=lastJ; j++)// Calculate LogTab values
185 {
186 pv+=dp;
187 lastT[j]=CalcCap2In_Ratio(pv,tgZ,tgN);
188 }
189 } // End of LinTab update
190 if(lastJ>=nextN)
191 {
192 vH[i]=lastH;
193 vJ[i]=lastJ;
194 }
195 G4int nextK=lastK+1;
196 if(pIU>pma && lastK<nls) // LogTab must be updated
197 {
198 G4double pv=std::exp(lastM+lpi); // Define starting poit (lastM will be changed)
199 G4double ls=std::log(s);
200 lastK = static_cast<int>((ls-lpi)/dl)+1; // MaxBin to be initialized in LogTaB
201 if(lastK>nls)
202 {
203 lastK=nls;
204 lastM=lpa-lpi;
205 }
206 else lastM = lastK*dl; // Calculate max initialized ln(p)-lpi for LogTab
207 for(G4int j=nextK; j<=lastK; j++)// Calculate LogTab values
208 {
209 pv*=edl;
210 lastL[j]=CalcCap2In_Ratio(pv,tgZ,tgN);
211 }
212 } // End of LogTab update
213 if(lastK>=nextK)
214 {
215 vM[i]=lastM;
216 vK[i]=lastK;
217 }
218 }
219 }
220 // Now one can use tabeles to calculate the value
221 if(pIU<pma) // Use linear table
222 {
223 G4int n=static_cast<int>(pIU/dp); // Low edge number of the bin
224 G4double d=s-n*dp; // Linear shift
225 G4double v=lastT[n]; // Base
226 lastR=v+d*(lastT[n+1]-v)/dp; // Result
227 }
228 else // Use log table
229 {
230 G4double ls=std::log(pIU)-lpi; // ln(p)-l_min
231 G4int n=static_cast<int>(ls/dl); // Low edge number of the bin
232 G4double d=ls-n*dl; // Log shift
233 G4double v=lastL[n]; // Base
234 lastR=v+d*(lastL[n+1]-v)/dl; // Result
235 }
236 if(lastR<0.) lastR=0.;
237 if(lastR>1.) lastR=1.;
238 return lastR;
239} // End of GetRatio
240
241// Calculate Capture/Inelastic Ratio as a function of total momentum (in GeV/c)
242G4double G4QNeutronCaptureRatio::CalcCap2In_Ratio(G4double p, G4int Z, G4int N)
243{
244 //==> n (Z=0)
245 static const G4int N0=1;
246 static const G4double pZ0N1[5]={.0001, 40., 0., 0., 1.}; // *** No Capture ?
247 static const std::pair<G4int, const G4double*> Z0N1(1,pZ0N1);
248 static const std::pair<G4int, const G4double*> Z0[N0]={Z0N1};
249 //==> H (Z=1) *** no protons, which are treated separately ***
250 static const G4int N1=2;
251 static const G4double pZ1N1[5]={.07, 40., .0006, .0001, .01};
252 static const std::pair<G4int, const G4double*> Z1N1(1,pZ1N1);
253 static const G4double pZ1N2[5]={.0001, 40., 0., 0., 1.}; // *** No Capture ?
254 static const std::pair<G4int, const G4double*> Z1N2(2,pZ1N2);
255 static const std::pair<G4int, const G4double*> Z1[N1]={Z1N1, Z1N2};
256 //==> He(Z=2)
257 static const G4int N2=2;
258 static const G4double pZ2N1[5]={.1, 40., 0., 0., 1.}; // *** Unknown threshold
259 static const std::pair<G4int, const G4double*> Z2N1(1,pZ2N1);
260 static const G4double pZ2N2[5]={.0001, 40., 0., 0., 1.}; // *** No Capture ?
261 static const std::pair<G4int, const G4double*> Z2N2(2,pZ2N2);
262 static const std::pair<G4int, const G4double*> Z2[N2]={Z2N1, Z2N2};
263 //==> Li(Z=3)
264 static const G4int N3=2;
265 static const G4double pZ3N3[5]={.001, 40., 3.E-5, .0001, .1};
266 static const std::pair<G4int, const G4double*> Z3N1(3,pZ3N3);
267 static const G4double pZ3N4[5]={.022, 19., 3.E-5, .0001, .04};
268 static const std::pair<G4int, const G4double*> Z3N2(4,pZ3N4);
269 static const std::pair<G4int, const G4double*> Z3[N3]={Z3N1, Z3N2};
270 //==> Be(Z=4)
271 static const G4int N4=1;
272 static const G4double pZ4N5[5]={.0004, 40., 0., 0., 1.};
273 static const std::pair<G4int, const G4double*> Z4N5(5,pZ4N5);
274 static const std::pair<G4int, const G4double*> Z4[N4]={Z4N5};
275 //==> B (Z=5)
276 static const G4int N5=2;
277 static const G4double pZ5N5[5]={.011, 9., .0002, .0001, .002};
278 static const std::pair<G4int, const G4double*> Z5N5(5,pZ5N5);
279 static const G4double pZ5N6[5]={.027, 9., 0., 0., 1.};
280 static const std::pair<G4int, const G4double*> Z5N6(6,pZ5N6);
281 static const std::pair<G4int, const G4double*> Z5[N5]={Z5N5, Z5N6};
282 //==> C (Z=6)
283 static const G4int N6=2;
284 static const G4double pZ6N6[5]={.08, 40., .0003, .0001, .07}; // *** Only Nat Mix ***
285 static const std::pair<G4int, const G4double*> Z6N6(6,pZ6N6);
286 static const G4double pZ6N7[5]={.08, 40., .0003, .0001, .07}; // *** Only Nat Mix ***
287 static const std::pair<G4int, const G4double*> Z6N7(7,pZ6N7);
288 static const std::pair<G4int, const G4double*> Z6[N6]={Z6N6, Z6N7};
289 //==> N (Z=7)
290 static const G4int N7=2;
291 static const G4double pZ7N7[5]={.005, 3., 0., 0., 1.};
292 static const std::pair<G4int, const G4double*> Z7N7(7,pZ7N7);
293 static const G4double pZ7N8[5]={.084, 40., .0001, .0001, .015};
294 static const std::pair<G4int, const G4double*> Z7N8(8,pZ7N8);
295 static const std::pair<G4int, const G4double*> Z7[N7]={Z7N7, Z7N8};
296 //==> O (Z=8)
297 static const G4int N8=3;
298 static const G4double pZ8N8[5]={.08, 40., 0., 0., 1.};
299 static const std::pair<G4int, const G4double*> Z8N8(8,pZ8N8);
300 static const G4double pZ8N9[5]={.0065, 5., .0013, .0001, .02};
301 static const std::pair<G4int, const G4double*> Z8N9(9,pZ8N9);
302 static const G4double pZ8N10[5]={.01, 27., 0., 0., 1.}; // *** No DATA ***
303 static const std::pair<G4int, const G4double*> Z8N10(10,pZ8N10);
304 static const std::pair<G4int, const G4double*> Z8[N8]={Z8N8, Z8N9, Z8N10};
305 //==> F (Z=9)
306 static const G4int N9=1;
307 static const G4double pZ9N10[5]={.013, 27., .0001, .0001, .02};
308 static const std::pair<G4int, const G4double*> Z9N10(10,pZ9N10);
309 static const std::pair<G4int, const G4double*> Z9[N9]={Z9N10};
310 //==> Ne(Z=10)
311 static const G4int N10=3;
312 static const G4double pZ10N10[5]={.01, 27., 0., 0., 1.}; // *** No DATA ***
313 static const std::pair<G4int, const G4double*> Z10N10(10,pZ10N10);
314 static const G4double pZ10N11[5]={.01, 27., 0., 0., 1.}; // *** No DATA ***
315 static const std::pair<G4int, const G4double*> Z10N11(11,pZ10N11);
316 static const G4double pZ10N12[5]={.01, 27., 0., 0., 1.}; // *** No DATA ***
317 static const std::pair<G4int, const G4double*> Z10N12(12,pZ10N12);
318 static const std::pair<G4int, const G4double*> Z10[N10]={Z10N10, Z10N11, Z10N12};
319 //==> Na(Z=11)
320 static const G4int N11=1;
321 static const G4double pZ11N12[5]={.024, 17., .0005, .0001, .03};
322 static const std::pair<G4int, const G4double*> Z11N12(12,pZ11N12);
323 static const std::pair<G4int, const G4double*> Z11[N11]={Z11N12};
324 //==> Mg(Z=12)
325 static const G4int N12=3;
326 static const G4double pZ12N12[5]={.045, 40., .0003, .0001, .02};
327 static const std::pair<G4int, const G4double*> Z12N12(12,pZ12N12);
328 static const G4double pZ12N13[5]={.019, 7., .0002, .0001, .01};
329 static const std::pair<G4int, const G4double*> Z12N13(13,pZ12N13);
330 static const G4double pZ12N14[5]={.053, 40., .0006, .0001, .007};
331 static const std::pair<G4int, const G4double*> Z12N14(14,pZ12N14);
332 static const std::pair<G4int, const G4double*> Z12[N12]={Z12N12, Z12N13, Z12N14};
333 //==> Al(Z=13)
334 static const G4int N13=1;
335 static const G4double pZ13N14[5]={.035, 17., .001, .03, 1.};
336 static const std::pair<G4int, const G4double*> Z13N14(14,pZ13N14);
337 static const std::pair<G4int, const G4double*> Z13[N13]={Z13N14};
338 //==> Si(Z=14)
339 static const G4int N14=3;
340 static const G4double pZ14N14[5]={.052, 40., .002, .0001, .008};
341 static const std::pair<G4int, const G4double*> Z14N14(14,pZ14N14);
342 static const G4double pZ14N15[5]={.048, 40., .0001, .0004, .02};
343 static const std::pair<G4int, const G4double*> Z14N15(15,pZ14N15);
344 static const G4double pZ14N16[5]={.06, 40., .0015, .0001, .01};
345 static const std::pair<G4int, const G4double*> Z14N16(16,pZ14N16);
346 static const std::pair<G4int, const G4double*> Z14[N14]={Z14N14, Z14N15, Z14N16};
347 //==> P (Z=15)
348 static const G4int N15=1;
349 static const G4double pZ15N16[5]={.024, 7., .0008, .0001, .03};
350 static const std::pair<G4int, const G4double*> Z15N16(16,pZ15N16);
351 static const std::pair<G4int, const G4double*> Z15[N15]={Z15N16};
352 //==> S (Z=16)
353 static const G4int N16=4;
354 static const G4double pZ16N16[5]={.036, 12., .0003, .03, .004};
355 static const std::pair<G4int, const G4double*> Z16N16(16,pZ16N16);
356 static const G4double pZ16N17[5]={.018, 40., .0033, .0001, .002};
357 static const std::pair<G4int, const G4double*> Z16N17(17,pZ16N17);
358 static const G4double pZ16N18[5]={.053, 25., .002, .0001, .0043};
359 static const std::pair<G4int, const G4double*> Z16N18(18,pZ16N18);
360 static const G4double pZ16N20[5]={.065, 25., .002, .0001, .0043};
361 static const std::pair<G4int, const G4double*> Z16N20(20,pZ16N20);
362 static const std::pair<G4int, const G4double*> Z16[N16]={Z16N16, Z16N17, Z16N18, Z16N20};
363 //==> Cl(Z=17)
364 static const G4int N17=2;
365 static const G4double pZ17N18[5]={.014, 4., .0004, .175, .002};
366 static const std::pair<G4int, const G4double*> Z17N18(18,pZ17N18);
367 static const G4double pZ17N20[5]={.035, 8., .008, 18., .0005};
368 static const std::pair<G4int, const G4double*> Z17N20(20,pZ17N20);
369 static const std::pair<G4int, const G4double*> Z17[N17]={Z17N18, Z17N20};
370 //==> Ar(Z=18)
371 static const G4int N18=3;
372 static const G4double pZ18N18[5]={.036, 8., .0005, .1, .01};
373 static const std::pair<G4int, const G4double*> Z18N18(18,pZ18N18);
374 static const G4double pZ18N20[5]={.025, 6., .0027, .19, .0003};
375 static const std::pair<G4int, const G4double*> Z18N20(20,pZ18N20);
376 static const G4double pZ18N22[5]={.028, 6., .001, .19, .0003};
377 static const std::pair<G4int, const G4double*> Z18N22(22,pZ18N22);
378 static const std::pair<G4int, const G4double*> Z18[N18]={Z18N18, Z18N20, Z18N22};
379 //==> K (Z=19)
380 static const G4int N19=3;
381 static const G4double pZ19N20[5]={.04, 8., 0., 0., 1.};
382 static const std::pair<G4int, const G4double*> Z19N20(20,pZ19N20);
383 static const G4double pZ19N21[5]={.049, 5., 0., 0., 1.};
384 static const std::pair<G4int, const G4double*> Z19N21(21,pZ19N21);
385 static const G4double pZ19N22[5]={.04, 11., .005, .0001, .005};
386 static const std::pair<G4int, const G4double*> Z19N22(22,pZ19N22);
387 static const std::pair<G4int, const G4double*> Z19[N19]={Z19N20, Z19N21, Z19N22};
388 //==> Ca(Z=20)
389 static const G4int N20=6;
390 static const G4double pZ20N20[5]={.05, 14., .0006, .09, .009};
391 static const std::pair<G4int, const G4double*> Z20N20(20,pZ20N20);
392 static const G4double pZ20N22[5]={.047, 30., .003, .0001, .014};
393 static const std::pair<G4int, const G4double*> Z20N22(22,pZ20N22);
394 static const G4double pZ20N23[5]={.01, 3.5, .0015, .16, .002};
395 static const std::pair<G4int, const G4double*> Z20N23(23,pZ20N23);
396 static const G4double pZ20N24[5]={.04, 30., .002, .0001, .008};
397 static const std::pair<G4int, const G4double*> Z20N24(24,pZ20N24);
398 static const G4double pZ20N26[5]={.044, 40., .001, .0001, .01};
399 static const std::pair<G4int, const G4double*> Z20N26(26,pZ20N26);
400 static const G4double pZ20N28[5]={.055, 14., .001, .18, .001};
401 static const std::pair<G4int, const G4double*> Z20N28(28,pZ20N28);
402 static const std::pair<G4int, const G4double*> Z20[N20]={Z20N20, Z20N22, Z20N23,
403 Z20N24, Z20N26, Z20N28};
404 //==> Sc(Z=21)
405 static const G4int N21=1;
406 static const G4double pZ21N24[5]={.014, 4., 0., 0., 1.};
407 static const std::pair<G4int, const G4double*> Z21N24(24,pZ21N24);
408 static const std::pair<G4int, const G4double*> Z21[N21]={Z21N24};
409 //==> Ti(Z=22)
410 static const G4int N22=5;
411 static const G4double pZ22N24[5]={.036, 27., .007, .0001, .005};
412 static const std::pair<G4int, const G4double*> Z22N24(24,pZ22N24);
413 static const G4double pZ22N25[5]={.013, 9., .017, .0001, .005};
414 static const std::pair<G4int, const G4double*> Z22N25(25,pZ22N25);
415 static const G4double pZ22N26[5]={.043, 40., .002, .0001, .01};
416 static const std::pair<G4int, const G4double*> Z22N26(26,pZ22N26);
417 static const G4double pZ22N27[5]={.047, 30., .007, .0001, .01};
418 static const std::pair<G4int, const G4double*> Z22N27(27,pZ22N27);
419 static const G4double pZ22N28[5]={.052, 40., .0005, .0001, .01};
420 static const std::pair<G4int, const G4double*> Z22N28(28,pZ22N28);
421 static const std::pair<G4int, const G4double*> Z22[N22]={Z22N24, Z22N25, Z22N26,
422 Z22N27, Z22N28};
423 //==> V (Z=23)
424 static const G4int N23=2;
425 static const G4double pZ23N27[5]={.023, 30., .01, .0001, .003}; // *** Only Nat mix ***
426 static const std::pair<G4int, const G4double*> Z23N27(27,pZ23N27);
427 static const G4double pZ23N28[5]={.023, 30., .01, .0001, .003}; // *** Only Nat mix ***
428 static const std::pair<G4int, const G4double*> Z23N28(28,pZ23N28);
429 static const std::pair<G4int, const G4double*> Z23[N23]={Z23N27, Z23N28};
430 //==> Cr(Z=24)
431 static const G4int N24=4;
432 static const G4double pZ24N26[5]={.035, 27., .004, .0001, .01};
433 static const std::pair<G4int, const G4double*> Z24N26(26,pZ24N26);
434 static const G4double pZ24N28[5]={.049, 40., .001, .0001, .016};
435 static const std::pair<G4int, const G4double*> Z24N28(28,pZ24N28);
436 static const G4double pZ24N29[5]={.032, 30., .005, .0001, .005};
437 static const std::pair<G4int, const G4double*> Z24N29(29,pZ24N29);
438 static const G4double pZ24N30[5]={.034, 30., .002, .0001, .008};
439 static const std::pair<G4int, const G4double*> Z24N30(30,pZ24N30);
440 static const std::pair<G4int, const G4double*> Z24[N24]={Z24N26, Z24N28, Z24N29, Z24N30};
441 //==> Mn(Z=25)
442 static const G4int N25=1;
443 static const G4double pZ25N30[5]={.0145, 10., .01, .0001, .003};
444 static const std::pair<G4int, const G4double*> Z25N30(30,pZ25N30);
445 static const std::pair<G4int, const G4double*> Z25[N25]={Z25N30};
446 //==> Fe(Z=26)
447 static const G4int N26=4;
448 static const G4double pZ26N28[5]={.048, 27., .0016, .0001, .016};
449 static const std::pair<G4int, const G4double*> Z26N28(28,pZ26N28);
450 static const G4double pZ26N30[5]={.036, 27., .004, .0001, .006};
451 static const std::pair<G4int, const G4double*> Z26N30(30,pZ26N30);
452 static const G4double pZ26N31[5]={.036, 27., .005, .0001, .005};
453 static const std::pair<G4int, const G4double*> Z26N31(31,pZ26N31);
454 static const G4double pZ26N32[5]={.036, 27., .005, .0001, .007};
455 static const std::pair<G4int, const G4double*> Z26N32(32,pZ26N32);
456 static const std::pair<G4int, const G4double*> Z26[N26]={Z26N28, Z26N30, Z26N31, Z26N32};
457 //==> Co(Z=27)
458 static const G4int N27=1;
459 static const G4double pZ27N32[5]={.044, 22., .002, .0001, .016};
460 static const std::pair<G4int, const G4double*> Z27N32(32,pZ27N32);
461 static const std::pair<G4int, const G4double*> Z27[N27]={Z27N32};
462 //==> Ni(Z=28)
463 static const G4int N28=5;
464 static const G4double pZ28N30[5]={.045, 20., .003, .0001, .01};
465 static const std::pair<G4int, const G4double*> Z28N30(30,pZ28N30);
466 static const G4double pZ28N32[5]={.046, 20., .016, .0001, .01};
467 static const std::pair<G4int, const G4double*> Z28N32(32,pZ28N32);
468 static const G4double pZ28N33[5]={.046, 20., .016, .0001, .01};
469 static const std::pair<G4int, const G4double*> Z28N33(33,pZ28N33);
470 static const G4double pZ28N34[5]={.045, 20., .005, .0001, .007};
471 static const std::pair<G4int, const G4double*> Z28N34(34,pZ28N34);
472 static const G4double pZ28N36[5]={.045, 20., .005, .0001, .007};
473 static const std::pair<G4int, const G4double*> Z28N36(36,pZ28N36);
474 static const std::pair<G4int, const G4double*> Z28[N28]={Z28N30, Z28N32, Z28N33,
475 Z28N34, Z28N36};
476 //==> Cu(Z=29)
477 static const G4int N29=2;
478 static const G4double pZ29N34[5]={.035, 15., .008, .0001, .015};
479 static const std::pair<G4int, const G4double*> Z29N34(34,pZ29N34);
480 static const G4double pZ29N36[5]={.036, 15., .003, .0001, .013};
481 static const std::pair<G4int, const G4double*> Z29N36(36,pZ29N36);
482 static const std::pair<G4int, const G4double*> Z29[N29]={Z29N34, Z29N36};
483 //==> Zn(Z=30)
484 static const G4int N30=5;
485 static const G4double pZ30N34[5]={.041, 20., .008, .0001, .02}; // *** only NAT mix ***
486 static const std::pair<G4int, const G4double*> Z30N34(34,pZ30N34);
487 static const G4double pZ30N36[5]={.041, 20., .008, .0001, .02}; // *** only NAT mix ***
488 static const std::pair<G4int, const G4double*> Z30N36(36,pZ30N36);
489 static const G4double pZ30N37[5]={.041, 20., .008, .0001, .02}; // *** only NAT mix ***
490 static const std::pair<G4int, const G4double*> Z30N37(37,pZ30N37);
491 static const G4double pZ30N38[5]={.041, 20., .008, .0001, .02}; // *** only NAT mix ***
492 static const std::pair<G4int, const G4double*> Z30N38(38,pZ30N38);
493 static const G4double pZ30N40[5]={.041, 20., .008, .0001, .02}; // *** only NAT mix ***
494 static const std::pair<G4int, const G4double*> Z30N40(40,pZ30N40);
495 static const std::pair<G4int, const G4double*> Z30[N30]={Z30N34, Z30N36, Z30N37,
496 Z30N38, Z30N40};
497 //==> Ga(Z=31)
498 static const G4int N31=2;
499 static const G4double pZ31N38[5]={.024, 7., .03, .01, .003};
500 static const std::pair<G4int, const G4double*> Z31N38(38,pZ31N38);
501 static const G4double pZ31N40[5]={.026, 9., .015, .01, .003};
502 static const std::pair<G4int, const G4double*> Z31N40(40,pZ31N40);
503 static const std::pair<G4int, const G4double*> Z31[N31]={Z31N38, Z31N40};
504 //==> Ge(Z=32)
505 static const G4int N32=5;
506 static const G4double pZ32N38[5]={.037, 12., .15, .025, .003};
507 static const std::pair<G4int, const G4double*> Z32N38(38,pZ32N38);
508 static const G4double pZ32N40[5]={.035, 20., .015, .01, .0035};
509 static const std::pair<G4int, const G4double*> Z32N40(40,pZ32N40);
510 static const G4double pZ32N41[5]={.009, 3., .02, .03, .0001};
511 static const std::pair<G4int, const G4double*> Z32N41(41,pZ32N41);
512 static const G4double pZ32N42[5]={.027, 12., .003, .0001, .01};
513 static const std::pair<G4int, const G4double*> Z32N42(42,pZ32N42);
514 static const G4double pZ32N44[5]={.031, 20., .025, .0005, .0045};
515 static const std::pair<G4int, const G4double*> Z32N44(44,pZ32N44);
516 static const std::pair<G4int, const G4double*> Z32[N32]={Z32N38, Z32N40, Z32N41,
517 Z32N42, Z32N44};
518 //==> As(Z=33)
519 static const G4int N33=1;
520 static const G4double pZ33N42[5]={.017, 5., .004, .05, .006};
521 static const std::pair<G4int, const G4double*> Z33N42(42,pZ33N42);
522 static const std::pair<G4int, const G4double*> Z33[N33]={Z33N42};
523 //==> Se(Z=34)
524 static const G4int N34=6;
525 static const G4double pZ34N40[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
526 static const std::pair<G4int, const G4double*> Z34N40(40,pZ34N40);
527 static const G4double pZ34N42[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
528 static const std::pair<G4int, const G4double*> Z34N42(42,pZ34N42);
529 static const G4double pZ34N43[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
530 static const std::pair<G4int, const G4double*> Z34N43(43,pZ34N43);
531 static const G4double pZ34N44[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
532 static const std::pair<G4int, const G4double*> Z34N44(44,pZ34N44);
533 static const G4double pZ34N46[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
534 static const std::pair<G4int, const G4double*> Z34N46(46,pZ34N46);
535 static const G4double pZ34N48[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
536 static const std::pair<G4int, const G4double*> Z34N48(48,pZ34N48);
537 static const std::pair<G4int, const G4double*> Z34[N34]={Z34N40, Z34N42, Z34N43,
538 Z34N44, Z34N46, Z34N48};
539 //==> Br(Z=35)
540 static const G4int N35=2;
541 static const G4double pZ35N44[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
542 static const std::pair<G4int, const G4double*> Z35N44(44,pZ35N44);
543 static const G4double pZ35N46[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
544 static const std::pair<G4int, const G4double*> Z35N46(46,pZ35N46);
545 static const std::pair<G4int, const G4double*> Z35[N35]={Z35N44, Z35N46};
546 //==> Kr(Z=36)
547 static const G4int N36=6;
548 static const G4double pZ36N42[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
549 static const std::pair<G4int, const G4double*> Z36N42(42,pZ36N42);
550 static const G4double pZ36N44[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
551 static const std::pair<G4int, const G4double*> Z36N44(44,pZ36N44);
552 static const G4double pZ36N46[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
553 static const std::pair<G4int, const G4double*> Z36N46(46,pZ36N46);
554 static const G4double pZ36N47[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
555 static const std::pair<G4int, const G4double*> Z36N47(47,pZ36N47);
556 static const G4double pZ36N48[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
557 static const std::pair<G4int, const G4double*> Z36N48(48,pZ36N48);
558 static const G4double pZ36N50[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
559 static const std::pair<G4int, const G4double*> Z36N50(50,pZ36N50);
560 static const std::pair<G4int, const G4double*> Z36[N36]={Z36N42, Z36N44, Z36N46,
561 Z36N47, Z36N48, Z36N50};
562 //==> Rb(Z=37)
563 static const G4int N37=2;
564 static const G4double pZ37N48[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
565 static const std::pair<G4int, const G4double*> Z37N48(48,pZ37N48);
566 static const G4double pZ37N50[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
567 static const std::pair<G4int, const G4double*> Z37N50(50,pZ37N50);
568 static const std::pair<G4int, const G4double*> Z37[N37]={Z37N48, Z37N50};
569 //==> Sr(Z=38)
570 static const G4int N38=4;
571 static const G4double pZ38N46[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
572 static const std::pair<G4int, const G4double*> Z38N46(46,pZ38N46);
573 static const G4double pZ38N48[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
574 static const std::pair<G4int, const G4double*> Z38N48(48,pZ38N48);
575 static const G4double pZ38N49[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
576 static const std::pair<G4int, const G4double*> Z38N49(49,pZ38N49);
577 static const G4double pZ38N50[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
578 static const std::pair<G4int, const G4double*> Z38N50(50,pZ38N50);
579 static const std::pair<G4int, const G4double*> Z38[N38]={Z38N46, Z38N48, Z38N49, Z38N50};
580 //==> Y (Z=39)
581 static const G4int N39=1;
582 static const G4double pZ39N50[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
583 static const std::pair<G4int, const G4double*> Z39N50(50,pZ39N50);
584 static const std::pair<G4int, const G4double*> Z39[N39]={Z39N50};
585 //==> Zr(Z=40)
586 static const G4int N40=5;
587 static const G4double pZ40N50[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
588 static const std::pair<G4int, const G4double*> Z40N50(50,pZ40N50);
589 static const G4double pZ40N51[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
590 static const std::pair<G4int, const G4double*> Z40N51(51,pZ40N51);
591 static const G4double pZ40N52[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
592 static const std::pair<G4int, const G4double*> Z40N52(52,pZ40N52);
593 static const G4double pZ40N54[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
594 static const std::pair<G4int, const G4double*> Z40N54(54,pZ40N54);
595 static const G4double pZ40N56[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
596 static const std::pair<G4int, const G4double*> Z40N56(56,pZ40N56);
597 static const std::pair<G4int, const G4double*> Z40[N40]={Z40N50, Z40N51, Z40N52,
598 Z40N54, Z40N56};
599 //==> Nb(Z=41)
600 static const G4int N41=1;
601 static const G4double pZ41N52[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
602 static const std::pair<G4int, const G4double*> Z41N52(52,pZ41N52);
603 static const std::pair<G4int, const G4double*> Z41[N41]={Z41N52};
604 //==> Mo(Z=42)
605 static const G4int N42=7;
606 static const G4double pZ42N50[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
607 static const std::pair<G4int, const G4double*> Z42N50(50,pZ42N50);
608 static const G4double pZ42N52[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
609 static const std::pair<G4int, const G4double*> Z42N52(52,pZ42N52);
610 static const G4double pZ42N53[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
611 static const std::pair<G4int, const G4double*> Z42N53(53,pZ42N53);
612 static const G4double pZ42N54[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
613 static const std::pair<G4int, const G4double*> Z42N54(54,pZ42N54);
614 static const G4double pZ42N55[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
615 static const std::pair<G4int, const G4double*> Z42N55(55,pZ42N55);
616 static const G4double pZ42N56[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
617 static const std::pair<G4int, const G4double*> Z42N56(56,pZ42N56);
618 static const G4double pZ42N58[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
619 static const std::pair<G4int, const G4double*> Z42N58(58,pZ42N58);
620 static const std::pair<G4int, const G4double*> Z42[N42]={Z42N50, Z42N52, Z42N53, Z42N54,
621 Z42N55, Z42N56, Z42N58};
622 //==> Mo(Z=43)
623 static const G4int N43=1;
624 static const G4double pZ43N0[5]={.018, 5., .1, .03, .002}; // *** NoStableIsotopes ***
625 static const std::pair<G4int, const G4double*> Z43N0(0,pZ43N0);
626 static const std::pair<G4int, const G4double*> Z43[N43]={Z43N0};
627 //==> Ru(Z=44)
628 static const G4int N44=7;
629 static const G4double pZ44N52[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
630 static const std::pair<G4int, const G4double*> Z44N52(52,pZ44N52);
631 static const G4double pZ44N54[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
632 static const std::pair<G4int, const G4double*> Z44N54(54,pZ44N54);
633 static const G4double pZ44N55[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
634 static const std::pair<G4int, const G4double*> Z44N55(55,pZ44N55);
635 static const G4double pZ44N56[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
636 static const std::pair<G4int, const G4double*> Z44N56(56,pZ44N56);
637 static const G4double pZ44N57[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
638 static const std::pair<G4int, const G4double*> Z44N57(57,pZ44N57);
639 static const G4double pZ44N58[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
640 static const std::pair<G4int, const G4double*> Z44N58(58,pZ44N58);
641 static const G4double pZ44N60[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
642 static const std::pair<G4int, const G4double*> Z44N60(60,pZ44N60);
643 static const std::pair<G4int, const G4double*> Z44[N44]={Z44N52, Z44N54, Z44N55, Z44N56,
644 Z44N57, Z44N58, Z44N60};
645 //==> Rh(Z=45)
646 static const G4int N45=1;
647 static const G4double pZ45N58[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
648 static const std::pair<G4int, const G4double*> Z45N58(58,pZ45N58);
649 static const std::pair<G4int, const G4double*> Z45[N45]={Z45N58};
650 //==> Pd(Z=46)
651 static const G4int N46=6;
652 static const G4double pZ46N56[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
653 static const std::pair<G4int, const G4double*> Z46N56(56,pZ46N56);
654 static const G4double pZ46N58[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
655 static const std::pair<G4int, const G4double*> Z46N58(58,pZ46N58);
656 static const G4double pZ46N59[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
657 static const std::pair<G4int, const G4double*> Z46N59(59,pZ46N59);
658 static const G4double pZ46N60[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
659 static const std::pair<G4int, const G4double*> Z46N60(60,pZ46N60);
660 static const G4double pZ46N62[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
661 static const std::pair<G4int, const G4double*> Z46N62(62,pZ46N62);
662 static const G4double pZ46N64[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
663 static const std::pair<G4int, const G4double*> Z46N64(64,pZ46N64);
664 static const std::pair<G4int, const G4double*> Z46[N46]={Z46N56, Z46N58, Z46N59,
665 Z46N60, Z46N62, Z46N64};
666 //==> Ag(Z=47)
667 static const G4int N47=2;
668 static const G4double pZ47N60[5]={.018, 5., .1, .004, .003};
669 static const std::pair<G4int, const G4double*> Z47N60(60,pZ47N60);
670 static const G4double pZ47N62[5]={.018, 4., .015, .06, .0008};
671 static const std::pair<G4int, const G4double*> Z47N62(62,pZ47N62);
672 static const std::pair<G4int, const G4double*> Z47[N47]={Z47N60, Z47N62};
673 //==> Cd(Z=48)
674 static const G4int N48=8;
675 static const G4double pZ48N58[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
676 static const std::pair<G4int, const G4double*> Z48N58(58,pZ48N58);
677 static const G4double pZ48N60[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
678 static const std::pair<G4int, const G4double*> Z48N60(60,pZ48N60);
679 static const G4double pZ48N62[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
680 static const std::pair<G4int, const G4double*> Z48N62(62,pZ48N62);
681 static const G4double pZ48N63[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
682 static const std::pair<G4int, const G4double*> Z48N63(63,pZ48N63);
683 static const G4double pZ48N64[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
684 static const std::pair<G4int, const G4double*> Z48N64(64,pZ48N64);
685 static const G4double pZ48N65[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
686 static const std::pair<G4int, const G4double*> Z48N65(65,pZ48N65);
687 static const G4double pZ48N66[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
688 static const std::pair<G4int, const G4double*> Z48N66(66,pZ48N66);
689 static const G4double pZ48N68[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
690 static const std::pair<G4int, const G4double*> Z48N68(68,pZ48N68);
691 static const std::pair<G4int, const G4double*> Z48[N48]={Z48N58, Z48N60, Z48N62, Z48N63,
692 Z48N64, Z48N65, Z48N66, Z48N68};
693 //==> In(Z=49)
694 static const G4int N49=2;
695 static const G4double pZ49N64[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
696 static const std::pair<G4int, const G4double*> Z49N64(64,pZ49N64);
697 static const G4double pZ49N66[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
698 static const std::pair<G4int, const G4double*> Z49N66(66,pZ49N66);
699 static const std::pair<G4int, const G4double*> Z49[N49]={Z49N64, Z49N66};
700 //==> Sn(Z=50)
701 static const G4int N50=10;
702 static const G4double pZ50N62[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
703 static const std::pair<G4int, const G4double*> Z50N62(62,pZ50N62);
704 static const G4double pZ50N64[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
705 static const std::pair<G4int, const G4double*> Z50N64(64,pZ50N64);
706 static const G4double pZ50N65[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
707 static const std::pair<G4int, const G4double*> Z50N65(65,pZ50N65);
708 static const G4double pZ50N66[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
709 static const std::pair<G4int, const G4double*> Z50N66(66,pZ50N66);
710 static const G4double pZ50N67[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
711 static const std::pair<G4int, const G4double*> Z50N67(67,pZ50N67);
712 static const G4double pZ50N68[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
713 static const std::pair<G4int, const G4double*> Z50N68(68,pZ50N68);
714 static const G4double pZ50N69[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
715 static const std::pair<G4int, const G4double*> Z50N69(69,pZ50N69);
716 static const G4double pZ50N70[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
717 static const std::pair<G4int, const G4double*> Z50N70(70,pZ50N70);
718 static const G4double pZ50N72[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
719 static const std::pair<G4int, const G4double*> Z50N72(72,pZ50N72);
720 static const G4double pZ50N74[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
721 static const std::pair<G4int, const G4double*> Z50N74(74,pZ50N74);
722 static const std::pair<G4int, const G4double*> Z50[N50]={Z50N62, Z50N64, Z50N65, Z50N66,
723 Z50N67, Z50N68, Z50N69, Z50N70,
724 Z50N72, Z50N74};
725 //==> Sb(Z=51)
726 static const G4int N51=2;
727 static const G4double pZ51N70[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
728 static const std::pair<G4int, const G4double*> Z51N70(70,pZ51N70);
729 static const G4double pZ51N72[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
730 static const std::pair<G4int, const G4double*> Z51N72(72,pZ51N72);
731 static const std::pair<G4int, const G4double*> Z51[N51]={Z51N70, Z51N72};
732 //==> Te(Z=52)
733 static const G4int N52=8;
734 static const G4double pZ52N68[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
735 static const std::pair<G4int, const G4double*> Z52N68(68,pZ52N68);
736 static const G4double pZ52N70[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
737 static const std::pair<G4int, const G4double*> Z52N70(70,pZ52N70);
738 static const G4double pZ52N71[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
739 static const std::pair<G4int, const G4double*> Z52N71(71,pZ52N71);
740 static const G4double pZ52N72[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
741 static const std::pair<G4int, const G4double*> Z52N72(72,pZ52N72);
742 static const G4double pZ52N73[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
743 static const std::pair<G4int, const G4double*> Z52N73(73,pZ52N73);
744 static const G4double pZ52N74[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
745 static const std::pair<G4int, const G4double*> Z52N74(74,pZ52N74);
746 static const G4double pZ52N76[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
747 static const std::pair<G4int, const G4double*> Z52N76(76,pZ52N76);
748 static const G4double pZ52N78[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
749 static const std::pair<G4int, const G4double*> Z52N78(78,pZ52N78);
750 static const std::pair<G4int, const G4double*> Z52[N52]={Z52N68, Z52N70, Z52N71, Z52N72,
751 Z52N73, Z52N74, Z52N76, Z52N78};
752 //==> I (Z=53)
753 static const G4int N53=1;
754 static const G4double pZ53N74[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
755 static const std::pair<G4int, const G4double*> Z53N74(74,pZ53N74);
756 static const std::pair<G4int, const G4double*> Z53[N53]={Z53N74};
757 //==> Xe(Z=54)
758 static const G4int N54=9;
759 static const G4double pZ54N70[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
760 static const std::pair<G4int, const G4double*> Z54N70(70,pZ54N70);
761 static const G4double pZ54N72[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
762 static const std::pair<G4int, const G4double*> Z54N72(72,pZ54N72);
763 static const G4double pZ54N74[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
764 static const std::pair<G4int, const G4double*> Z54N74(74,pZ54N74);
765 static const G4double pZ54N75[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
766 static const std::pair<G4int, const G4double*> Z54N75(75,pZ54N75);
767 static const G4double pZ54N76[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
768 static const std::pair<G4int, const G4double*> Z54N76(76,pZ54N76);
769 static const G4double pZ54N77[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
770 static const std::pair<G4int, const G4double*> Z54N77(77,pZ54N77);
771 static const G4double pZ54N78[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
772 static const std::pair<G4int, const G4double*> Z54N78(78,pZ54N78);
773 static const G4double pZ54N80[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
774 static const std::pair<G4int, const G4double*> Z54N80(80,pZ54N80);
775 static const G4double pZ54N82[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
776 static const std::pair<G4int, const G4double*> Z54N82(82,pZ54N82);
777 static const std::pair<G4int, const G4double*> Z54[N54]={Z54N70, Z54N72, Z54N74,
778 Z54N75, Z54N76, Z54N77,
779 Z54N78, Z54N80, Z54N82};
780 //==> Cs(Z=55)
781 static const G4int N55=1;
782 static const G4double pZ55N78[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
783 static const std::pair<G4int, const G4double*> Z55N78(78,pZ55N78);
784 static const std::pair<G4int, const G4double*> Z55[N55]={Z55N78};
785 //==> Ba(Z=56)
786 static const G4int N56=7;
787 static const G4double pZ56N74[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
788 static const std::pair<G4int, const G4double*> Z56N74(70,pZ56N74);
789 static const G4double pZ56N76[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
790 static const std::pair<G4int, const G4double*> Z56N76(71,pZ56N76);
791 static const G4double pZ56N78[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
792 static const std::pair<G4int, const G4double*> Z56N78(72,pZ56N78);
793 static const G4double pZ56N79[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
794 static const std::pair<G4int, const G4double*> Z56N79(73,pZ56N79);
795 static const G4double pZ56N80[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
796 static const std::pair<G4int, const G4double*> Z56N80(74,pZ56N80);
797 static const G4double pZ56N81[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
798 static const std::pair<G4int, const G4double*> Z56N81(76,pZ56N81);
799 static const G4double pZ56N82[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
800 static const std::pair<G4int, const G4double*> Z56N82(78,pZ56N82);
801 static const std::pair<G4int, const G4double*> Z56[N56]={Z56N74, Z56N76, Z56N78, Z56N79,
802 Z56N80, Z56N81, Z56N82};
803 //==> La(Z=57)
804 static const G4int N57=2;
805 static const G4double pZ57N81[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
806 static const std::pair<G4int, const G4double*> Z57N81(81,pZ57N81);
807 static const G4double pZ57N82[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
808 static const std::pair<G4int, const G4double*> Z57N82(82,pZ57N82);
809 static const std::pair<G4int, const G4double*> Z57[N57]={Z57N81, Z57N82};
810 //==> Ce(Z=58)
811 static const G4int N58=4;
812 static const G4double pZ58N78[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
813 static const std::pair<G4int, const G4double*> Z58N78(78,pZ58N78);
814 static const G4double pZ58N80[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
815 static const std::pair<G4int, const G4double*> Z58N80(80,pZ58N80);
816 static const G4double pZ58N82[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
817 static const std::pair<G4int, const G4double*> Z58N82(82,pZ58N82);
818 static const G4double pZ58N84[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
819 static const std::pair<G4int, const G4double*> Z58N84(84,pZ58N84);
820 static const std::pair<G4int, const G4double*> Z58[N58]={Z58N78, Z58N80, Z58N82, Z58N84};
821 //==> Pr(Z=59)
822 static const G4int N59=1;
823 static const G4double pZ59N82[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
824 static const std::pair<G4int, const G4double*> Z59N82(82,pZ59N82);
825 static const std::pair<G4int, const G4double*> Z59[N59]={Z59N82};
826 //==> Nd(Z=60)
827 static const G4int N60=7;
828 static const G4double pZ60N82[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
829 static const std::pair<G4int, const G4double*> Z60N82(82,pZ60N82);
830 static const G4double pZ60N83[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
831 static const std::pair<G4int, const G4double*> Z60N83(83,pZ60N83);
832 static const G4double pZ60N84[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
833 static const std::pair<G4int, const G4double*> Z60N84(84,pZ60N84);
834 static const G4double pZ60N85[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
835 static const std::pair<G4int, const G4double*> Z60N85(85,pZ60N85);
836 static const G4double pZ60N86[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
837 static const std::pair<G4int, const G4double*> Z60N86(86,pZ60N86);
838 static const G4double pZ60N88[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
839 static const std::pair<G4int, const G4double*> Z60N88(88,pZ60N88);
840 static const G4double pZ60N90[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
841 static const std::pair<G4int, const G4double*> Z60N90(90,pZ60N90);
842 static const std::pair<G4int, const G4double*> Z60[N60]={Z60N82, Z60N83, Z60N84, Z60N85,
843 Z60N86, Z60N88, Z60N90};
844 //==> Mo(Z=61)
845 static const G4int N61=1;
846 static const G4double pZ61N0[5]={.018, 5., .1, .03, .002}; // *** NoStableIsotopes ***
847 static const std::pair<G4int, const G4double*> Z61N0(0,pZ61N0);
848 static const std::pair<G4int, const G4double*> Z61[N61]={Z61N0};
849 //==> Sm(Z=62)
850 static const G4int N62=7;
851 static const G4double pZ62N82[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
852 static const std::pair<G4int, const G4double*> Z62N82(82,pZ62N82);
853 static const G4double pZ62N85[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
854 static const std::pair<G4int, const G4double*> Z62N85(85,pZ62N85);
855 static const G4double pZ62N86[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
856 static const std::pair<G4int, const G4double*> Z62N86(86,pZ62N86);
857 static const G4double pZ62N87[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
858 static const std::pair<G4int, const G4double*> Z62N87(87,pZ62N87);
859 static const G4double pZ62N88[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
860 static const std::pair<G4int, const G4double*> Z62N88(88,pZ62N88);
861 static const G4double pZ62N90[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
862 static const std::pair<G4int, const G4double*> Z62N90(90,pZ62N90);
863 static const G4double pZ62N92[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
864 static const std::pair<G4int, const G4double*> Z62N92(92,pZ62N92);
865 static const std::pair<G4int, const G4double*> Z62[N62]={Z62N82, Z62N85, Z62N86, Z62N87,
866 Z62N88, Z62N90, Z62N92};
867 //==> Eu(Z=63)
868 static const G4int N63=2;
869 static const G4double pZ63N88[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
870 static const std::pair<G4int, const G4double*> Z63N88(88,pZ63N88);
871 static const G4double pZ63N90[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
872 static const std::pair<G4int, const G4double*> Z63N90(90,pZ63N90);
873 static const std::pair<G4int, const G4double*> Z63[N63]={Z63N88, Z63N90};
874 //==> Gd(Z=64)
875 static const G4int N64=7;
876 static const G4double pZ64N88[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
877 static const std::pair<G4int, const G4double*> Z64N88(88,pZ64N88);
878 static const G4double pZ64N90[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
879 static const std::pair<G4int, const G4double*> Z64N90(90,pZ64N90);
880 static const G4double pZ64N91[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
881 static const std::pair<G4int, const G4double*> Z64N91(91,pZ64N91);
882 static const G4double pZ64N92[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
883 static const std::pair<G4int, const G4double*> Z64N92(92,pZ64N92);
884 static const G4double pZ64N93[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
885 static const std::pair<G4int, const G4double*> Z64N93(93,pZ64N93);
886 static const G4double pZ64N94[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
887 static const std::pair<G4int, const G4double*> Z64N94(94,pZ64N94);
888 static const G4double pZ64N96[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
889 static const std::pair<G4int, const G4double*> Z64N96(96,pZ64N96);
890 static const std::pair<G4int, const G4double*> Z64[N64]={Z64N88, Z64N90, Z64N91, Z64N92,
891 Z64N93, Z64N94, Z64N96};
892 //==> Tb(Z=65)
893 static const G4int N65=1;
894 static const G4double pZ65N94[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
895 static const std::pair<G4int, const G4double*> Z65N94(82,pZ65N94);
896 static const std::pair<G4int, const G4double*> Z65[N65]={Z65N94};
897 //==> Dy(Z=66)
898 static const G4int N66=7;
899 static const G4double pZ66N90[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
900 static const std::pair<G4int, const G4double*> Z66N90(90,pZ66N90);
901 static const G4double pZ66N92[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
902 static const std::pair<G4int, const G4double*> Z66N92(92,pZ66N92);
903 static const G4double pZ66N94[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
904 static const std::pair<G4int, const G4double*> Z66N94(94,pZ66N94);
905 static const G4double pZ66N95[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
906 static const std::pair<G4int, const G4double*> Z66N95(95,pZ66N95);
907 static const G4double pZ66N96[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
908 static const std::pair<G4int, const G4double*> Z66N96(96,pZ66N96);
909 static const G4double pZ66N97[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
910 static const std::pair<G4int, const G4double*> Z66N97(97,pZ66N97);
911 static const G4double pZ66N98[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
912 static const std::pair<G4int, const G4double*> Z66N98(98,pZ66N98);
913 static const std::pair<G4int, const G4double*> Z66[N66]={Z66N90, Z66N92, Z66N94, Z66N95,
914 Z66N96, Z66N97, Z66N98};
915 //==> Ho(Z=67)
916 static const G4int N67=1;
917 static const G4double pZ67N98[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
918 static const std::pair<G4int, const G4double*> Z67N98(98,pZ67N98);
919 static const std::pair<G4int, const G4double*> Z67[N67]={Z67N98};
920 //==> Er(Z=68)
921 static const G4int N68=6;
922 static const G4double pZ68N94[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
923 static const std::pair<G4int, const G4double*> Z68N94(94,pZ68N94);
924 static const G4double pZ68N96[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
925 static const std::pair<G4int, const G4double*> Z68N96(96,pZ68N96);
926 static const G4double pZ68N98[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
927 static const std::pair<G4int, const G4double*> Z68N98(98,pZ68N98);
928 static const G4double pZ68N99[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
929 static const std::pair<G4int, const G4double*> Z68N99(99,pZ68N99);
930 static const G4double pZ68N100[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
931 static const std::pair<G4int, const G4double*> Z68N100(100,pZ68N100);
932 static const G4double pZ68N102[5]={.01, 27., 0., 0., 1.}; // *** NotImplemented ***
933 static const std::pair<G4int, const G4double*> Z68N102(102,pZ68N102);
934 static const std::pair<G4int, const G4double*> Z68[N68]={Z68N94, Z68N96, Z68N98,
935 Z68N99, Z68N100, Z68N102};
936 //==> Tm(Z=69)
937 static const G4int N69=1;
938 static const G4double pZ69N100[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
939 static const std::pair<G4int, const G4double*> Z69N100(100,pZ69N100);
940 static const std::pair<G4int, const G4double*> Z69[N69]={Z69N100};
941 //==> Yb(Z=70)
942 static const G4int N70=7;
943 static const G4double pZ70N98[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
944 static const std::pair<G4int, const G4double*> Z70N98(98,pZ70N98);
945 static const G4double pZ70N100[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
946 static const std::pair<G4int, const G4double*> Z70N100(100,pZ70N100);
947 static const G4double pZ70N101[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
948 static const std::pair<G4int, const G4double*> Z70N101(101,pZ70N101);
949 static const G4double pZ70N102[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
950 static const std::pair<G4int, const G4double*> Z70N102(102,pZ70N102);
951 static const G4double pZ70N103[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
952 static const std::pair<G4int, const G4double*> Z70N103(103,pZ70N103);
953 static const G4double pZ70N104[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
954 static const std::pair<G4int, const G4double*> Z70N104(104,pZ70N104);
955 static const G4double pZ70N106[5]={.01, 27., 0., 0., 1.}; // *** No DATA ***
956 static const std::pair<G4int, const G4double*> Z70N106(106,pZ70N106);
957 static const std::pair<G4int, const G4double*> Z70[N70]={Z70N98, Z70N100, Z70N101,
958 Z70N102, Z70N103, Z70N104,
959 Z70N106};
960 //==> Lu(Z=71)
961 static const G4int N71=2;
962 static const G4double pZ71N104[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
963 static const std::pair<G4int, const G4double*> Z71N104(104,pZ71N104);
964 static const G4double pZ71N105[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
965 static const std::pair<G4int, const G4double*> Z71N105(105,pZ71N105);
966 static const std::pair<G4int, const G4double*> Z71[N71]={Z71N104, Z71N105};
967 //==> Hf(Z=72)
968 static const G4int N72=6;
969 static const G4double pZ72N102[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
970 static const std::pair<G4int, const G4double*> Z72N102(102,pZ72N102);
971 static const G4double pZ72N104[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
972 static const std::pair<G4int, const G4double*> Z72N104(104,pZ72N104);
973 static const G4double pZ72N105[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
974 static const std::pair<G4int, const G4double*> Z72N105(105,pZ72N105);
975 static const G4double pZ72N106[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
976 static const std::pair<G4int, const G4double*> Z72N106(106,pZ72N106);
977 static const G4double pZ72N107[5]={.018, 5., .1, .03, .002}; // *** NotImplemented ***
978 static const std::pair<G4int, const G4double*> Z72N107(107,pZ72N107);
979 static const G4double pZ72N108[5]={.01, 27., 0., 0., 1.}; // *** NotImplemented ***
980 static const std::pair<G4int, const G4double*> Z72N108(108,pZ72N108);
981 static const std::pair<G4int, const G4double*> Z72[N72]={Z72N102, Z72N104, Z72N105,
982 Z72N106, Z72N107, Z72N108};
983 //==> Ta(Z=73)
984 static const G4int N73=1;
985 static const G4double pZ73N108[5]={.0065, 2., .15, .001, .0012};
986 static const std::pair<G4int, const G4double*> Z73N108(108,pZ73N108);
987 static const std::pair<G4int, const G4double*> Z73[N73]={Z73N108};
988 //==> W (Z=74)
989 static const G4int N74=5;
990 static const G4double pZ74N106[5]={.014, 5., .03, .04, .001}; // *** No DATA ***
991 static const std::pair<G4int, const G4double*> Z74N106(106,pZ74N106);
992 static const G4double pZ74N108[5]={.013, 4.5, .35, .045, .001};
993 static const std::pair<G4int, const G4double*> Z74N108(108,pZ74N108);
994 static const G4double pZ74N109[5]={.012, 4., .02, .04, .001};
995 static const std::pair<G4int, const G4double*> Z74N109(109,pZ74N109);
996 static const G4double pZ74N110[5]={.014, 6., .02, .03, .0015};
997 static const std::pair<G4int, const G4double*> Z74N110(110,pZ74N110);
998 static const G4double pZ74N112[5]={.014, 6., .02, .03, .0015};
999 static const std::pair<G4int, const G4double*> Z74N112(112,pZ74N112);
1000 static const std::pair<G4int, const G4double*> Z74[N74]={Z74N106, Z74N108, Z74N109,
1001 Z74N110, Z74N112};
1002 //==> Re(Z=75)
1003 static const G4int N75=2;
1004 static const G4double pZ75N110[5]={.015, 4., .2, .0001, .0021};
1005 static const std::pair<G4int, const G4double*> Z75N110(110,pZ75N110);
1006 static const G4double pZ75N112[5]={.015, 4., .1, .0001, .002};
1007 static const std::pair<G4int, const G4double*> Z75N112(112,pZ75N112);
1008 static const std::pair<G4int, const G4double*> Z75[N75]={Z75N110, Z75N112};
1009 //==> Os(Z=76)
1010 static const G4int N76=7;
1011 static const G4double pZ76N108[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1012 static const std::pair<G4int, const G4double*> Z76N108(108,pZ76N108);
1013 static const G4double pZ76N110[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1014 static const std::pair<G4int, const G4double*> Z76N110(110,pZ76N110);
1015 static const G4double pZ76N111[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1016 static const std::pair<G4int, const G4double*> Z76N111(111,pZ76N111);
1017 static const G4double pZ76N112[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1018 static const std::pair<G4int, const G4double*> Z76N112(112,pZ76N112);
1019 static const G4double pZ76N113[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1020 static const std::pair<G4int, const G4double*> Z76N113(113,pZ76N113);
1021 static const G4double pZ76N114[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1022 static const std::pair<G4int, const G4double*> Z76N114(114,pZ76N114);
1023 static const G4double pZ76N116[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1024 static const std::pair<G4int, const G4double*> Z76N116(116,pZ76N116);
1025 static const std::pair<G4int, const G4double*> Z76[N76]={Z76N108, Z76N110, Z76N111,
1026 Z76N112, Z76N113, Z76N114,
1027 Z76N116};
1028 //==> Ir(Z=77)
1029 static const G4int N77=2;
1030 static const G4double pZ77N114[5]={.012, 3., .1, .0001, .003};
1031 static const std::pair<G4int, const G4double*> Z77N114(114,pZ77N114);
1032 static const G4double pZ77N116[5]={.012, 3., .08, .0001, .002};
1033 static const std::pair<G4int, const G4double*> Z77N116(116,pZ77N116);
1034 static const std::pair<G4int, const G4double*> Z77[N77]={Z77N114, Z77N116};
1035 //==> Pt(Z=78)
1036 static const G4int N78=6;
1037 static const G4double pZ78N112[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1038 static const std::pair<G4int, const G4double*> Z78N112(112,pZ78N112);
1039 static const G4double pZ78N114[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1040 static const std::pair<G4int, const G4double*> Z78N114(114,pZ78N114);
1041 static const G4double pZ78N116[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1042 static const std::pair<G4int, const G4double*> Z78N116(116,pZ78N116);
1043 static const G4double pZ78N117[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1044 static const std::pair<G4int, const G4double*> Z78N117(117,pZ78N117);
1045 static const G4double pZ78N118[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1046 static const std::pair<G4int, const G4double*> Z78N118(118,pZ78N118);
1047 static const G4double pZ78N120[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1048 static const std::pair<G4int, const G4double*> Z78N120(120,pZ78N120);
1049 static const std::pair<G4int, const G4double*> Z78[N78]={Z78N112, Z78N114, Z78N116,
1050 Z78N117, Z78N118, Z78N120};
1051 //==> Au(Z=79)
1052 static const G4int N79=1;
1053 static const G4double pZ79N118[5]={.012, 4., .2, .0001, .002};
1054 static const std::pair<G4int, const G4double*> Z79N118(118,pZ79N118);
1055 static const std::pair<G4int, const G4double*> Z79[N79]={Z79N118};
1056 //==> Hg(Z=80)
1057 static const G4int N80=7;
1058 static const G4double pZ80N116[5]={.022, 11., .006, .044, .001};
1059 static const std::pair<G4int, const G4double*> Z80N116(116,pZ80N116);
1060 static const G4double pZ80N118[5]={.024, 10., .04, .018, .0016};
1061 static const std::pair<G4int, const G4double*> Z80N118(118,pZ80N118);
1062 static const G4double pZ80N119[5]={.017, 8., .02, .02, .0016};
1063 static const std::pair<G4int, const G4double*> Z80N119(119,pZ80N119);
1064 static const G4double pZ80N120[5]={.021, 9., .03, .02, .0016};
1065 static const std::pair<G4int, const G4double*> Z80N120(120,pZ80N120);
1066 static const G4double pZ80N121[5]={.01, 7., .025, .025, .0016};
1067 static const std::pair<G4int, const G4double*> Z80N121(121,pZ80N121);
1068 static const G4double pZ80N122[5]={.023, 9., .008, .045, .0012};
1069 static const std::pair<G4int, const G4double*> Z80N122(122,pZ80N122);
1070 static const G4double pZ80N124[5]={.018, 8., .007, .04, .0013};
1071 static const std::pair<G4int, const G4double*> Z80N124(124,pZ80N124);
1072 static const std::pair<G4int, const G4double*> Z80[N80]={Z80N116, Z80N118, Z80N119,
1073 Z80N120, Z80N121, Z80N122,
1074 Z80N124};
1075 //==> Tl(Z=81)
1076 static const G4int N81=2;
1077 static const G4double pZ81N122[5]={.018, 5., .1, .03, .002}; // *** No DATA ***
1078 static const std::pair<G4int, const G4double*> Z81N122(122,pZ81N122);
1079 static const G4double pZ81N124[5]={.01, 27., 0., 0., 1.}; // *** No DATA ***
1080 static const std::pair<G4int, const G4double*> Z81N124(124,pZ81N124);
1081 static const std::pair<G4int, const G4double*> Z81[N81]={Z81N122, Z81N124};
1082 //==> Pb(Z=82)
1083 static const G4int N82=4;
1084 static const G4double pZ82N122[5]={.032, 9., .001, .13, .004};
1085 static const std::pair<G4int, const G4double*> Z82N122(122,pZ82N122);
1086 static const G4double pZ82N124[5]={.02, 7., .005, .14, .002};
1087 static const std::pair<G4int, const G4double*> Z82N124(124,pZ82N124);
1088 static const G4double pZ82N125[5]={.021, 9., .0012, .05, .01};
1089 static const std::pair<G4int, const G4double*> Z82N125(125,pZ82N125);
1090 static const G4double pZ82N126[5]={.049, 14., .0007, .145, .001};
1091 static const std::pair<G4int, const G4double*> Z82N126(126,pZ82N126);
1092 static const std::pair<G4int, const G4double*> Z82[N82]={Z82N122, Z82N124, Z82N125,
1093 Z82N126};
1094 //==> Bi(Z=83)
1095 static const G4int N83=1;
1096 static const G4double pZ83N126[5]={.033, 10., .001, .13, .006};
1097 static const std::pair<G4int, const G4double*> Z83N126(126,pZ83N126);
1098 static const std::pair<G4int, const G4double*> Z83[N83]={Z83N126};
1099 //==> Po(Z=84)
1100 static const G4int N84=1;
1101 static const G4double pZ84N0[5]={.01, 27., 0., 0., 1.}; // *** NoStableIsotopes ***
1102 static const std::pair<G4int, const G4double*> Z84N0(0,pZ84N0);
1103 static const std::pair<G4int, const G4double*> Z84[N84]={Z84N0};
1104 //==> At(Z=85)
1105 static const G4int N85=1;
1106 static const G4double pZ85N0[5]={.018, 5., .1, .03, .002}; // *** NoStableIsotopes ***
1107 static const std::pair<G4int, const G4double*> Z85N0(0,pZ85N0);
1108 static const std::pair<G4int, const G4double*> Z85[N85]={Z85N0};
1109 //==> Rn(Z=86)
1110 static const G4int N86=1;
1111 static const G4double pZ86N0[5]={.018, 5., .1, .03, .002}; // *** NoStableIsotopes ***
1112 static const std::pair<G4int, const G4double*> Z86N0(0,pZ86N0);
1113 static const std::pair<G4int, const G4double*> Z86[N86]={Z86N0};
1114 //==> Fr(Z=87)
1115 static const G4int N87=1;
1116 static const G4double pZ87N0[5]={.018, 5., .1, .03, .002}; // *** NoStableIsotopes ***
1117 static const std::pair<G4int, const G4double*> Z87N0(0,pZ87N0);
1118 static const std::pair<G4int, const G4double*> Z87[N87]={Z87N0};
1119 //==> Ra(Z=88)
1120 static const G4int N88=1;
1121 static const G4double pZ88N138[5]={.012, 4.4, .068, .051, .0008};
1122 static const std::pair<G4int, const G4double*> Z88N138(138,pZ88N138);
1123 static const std::pair<G4int, const G4double*> Z88[N88]={Z88N138};
1124 //==> Ac(Z=89)
1125 static const G4int N89=1;
1126 static const G4double pZ89N0[5]={.018, 5., .1, .03, .002}; // *** NoStableIsotopes ***
1127 static const std::pair<G4int, const G4double*> Z89N0(0,pZ89N0);
1128 static const std::pair<G4int, const G4double*> Z89[N89]={Z89N0};
1129 //==> Th(Z=90)
1130 static const G4int N90=1;
1131 static const G4double pZ90N142[5]={.01, 3.6, .07, .029, .0009};
1132 static const std::pair<G4int, const G4double*> Z90N142(142,pZ90N142);
1133 static const std::pair<G4int, const G4double*> Z90[N90]={Z90N142};
1134 //==> Pa(Z=91)
1135 static const G4int N91=1;
1136 static const G4double pZ91N0[5]={.01, 27., 0., 0., 1.}; // *** NoStableIsotopes ***
1137 static const std::pair<G4int, const G4double*> Z91N0(0,pZ91N0);
1138 static const std::pair<G4int, const G4double*> Z91[N91]={Z91N0};
1139 //==> U (Z=92)
1140 static const G4int N92=2;
1141 static const G4double pZ92N143[5]={.005, 2.5, .06, .008, .002};
1142 static const std::pair<G4int, const G4double*> Z92N143(143,pZ92N143);
1143 static const G4double pZ92N146[5]={.009, 3.1, .04, .025, .001};
1144 static const std::pair<G4int, const G4double*> Z92N146(146,pZ92N146);
1145 static const std::pair<G4int, const G4double*> Z92[N92]={Z92N143, Z92N146};
1146 //==> Np(Z=93)
1147 static const G4int N93=1;
1148 static const G4double pZ93N144[5]={.009, 2.35, .35, .003, .0007};
1149 static const std::pair<G4int, const G4double*> Z93N144(144,pZ93N144);
1150 static const std::pair<G4int, const G4double*> Z93[N93]={Z93N144};
1151 //==> Pu(Z=94)
1152 static const G4int N94=3;
1153 static const G4double pZ94N145[5]={.005, 2.6, .04, .023, .0002}; // *** Artificial ***
1154 static const std::pair<G4int, const G4double*> Z94N145(145,pZ94N145);
1155 static const G4double pZ94N148[5]={.009, 3.1, .06, .02, .001}; // *** Artificial ***
1156 static const std::pair<G4int, const G4double*> Z94N148(148,pZ94N148);
1157 static const G4double pZ94N150[5]={.01, 27., 0., 0., 1.};
1158 static const std::pair<G4int, const G4double*> Z94N150(150,pZ94N150);
1159 static const std::pair<G4int, const G4double*> Z94[N94]={Z94N145, Z94N148, Z94N150};
1160 //==> Am(Z=95)
1161 static const G4int N95=1;
1162 static const G4double pZ95N0[5]={.018, 5., .1, .03, .002}; // *** NoStableIsotopes ***
1163 static const std::pair<G4int, const G4double*> Z95N0(0,pZ95N0);
1164 static const std::pair<G4int, const G4double*> Z95[N95]={Z95N0};
1165 //==> Cm(Z=96)
1166 static const G4int N96=1;
1167 static const G4double pZ96N151[5]={.005, 2.5, .07, .027, .0009};
1168 static const std::pair<G4int, const G4double*> Z96N151(151,pZ96N151);
1169 static const std::pair<G4int, const G4double*> Z96[N96]={Z96N151};
1170
1171 static const G4int NZ=97; // #of Elements covered by CHIPS
1172 static const std::pair<G4int, const G4double*>* Pars[NZ]={Z0,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,
1173 Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18,Z19,Z20,Z21,Z22,Z23,Z24,Z25,Z26,Z27,Z28,Z29,Z30,
1174 Z31,Z32,Z33,Z34,Z35,Z36,Z37,Z38,Z39,Z40,Z41,Z42,Z43,Z44,Z45,Z46,Z47,Z48,Z49,Z50,Z51,
1175 Z52,Z53,Z54,Z55,Z56,Z57,Z58,Z59,Z60,Z61,Z62,Z63,Z64,Z65,Z66,Z67,Z68,Z69,Z70,Z71,Z72,
1176 Z73,Z74,Z75,Z76,Z77,Z78,Z79,Z80,Z81,Z82,Z83,Z84,Z85,Z86,Z87,Z88,Z89,Z90,Z91,Z92,Z93,
1177 Z94,Z95,Z96};
1178 static const G4int NIso[NZ]={N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15,N16,
1179 N17,N18,N19,N20,N21,N22,N23,N24,N25,N26,N27,N28,N29,N30,N31,N32,N33,N34,N35,N36,N37,
1180 N38,N39,N40,N41,N42,N43,N44,N45,N46,N47,N48,N49,N50,N51,N52,N53,N54,N55,N56,N57,N58,
1181 N59,N60,N61,N62,N63,N64,N65,N66,N67,N68,N69,N70,N71,N72,N73,N74,N75,N76,N77,N78,N79,
1182 N80,N81,N82,N83,N84,N85,N86,N87,N88,N89,N90,N91,N92,N93,N94,N95,N96};
1183 static G4int mZ=0;
1184 static G4int mN=0;
1185 static G4double P=.1; // s=SQRT(M_N^2+M_h^2+2*E_h*M_N)
1186 static G4double R=0.; // Prototype of the result
1187 static G4double p0=0.;
1188 static G4double p1=0.;
1189 static G4double p2=0.;
1190 static G4double p3=0.;
1191 static G4double p4=0.;
1192 G4int A=Z+N;
1193 if(A<=1) return 0.;
1194 if(p<=0.001) return 1.;
1195 if(Z!=mZ || N!=mN) // Recalculate the parameters for different isotope
1196 {
1197 mZ=Z;
1198 mN=N;
1199 P=p;
1200 if(Z<97 && N<248) // General solution (*** Z/A limits ***)
1201 {
1202 p0=.01; // Default guess if there is no data
1203 p1=0.;
1204 p2=27.;
1205 p3=0.;
1206 p4=1.;
1207 G4int nn=NIso[Z];
1208 G4bool nfound=true;
1209 if(nn) for (G4int in=0; in<nn; in++)
1210 {
1211 std::pair<G4int, const G4double*> curIs=Pars[Z][in];
1212 if(curIs.first == N)
1213 {
1214 const G4double* curT=curIs.second;
1215 p0 = curT[0];
1216 if(p < p0)
1217 {
1218 R=1.;
1219 return R;
1220 }
1221 p1 = curT[1];
1222 p2 = curT[2];
1223 p3 = curT[3];
1224 p4 = curT[4];
1225 nfound = false;
1226 break;
1227 }
1228 }
1229 if(nfound) G4cout<<"-Warning-G4QNeutronCaptureRatio::CSLin: Z="<<Z<<", N="
1230 <<N<<" isotope is not implemented in CHIPS"<<G4endl;
1231 R=std::pow(p0/p,p1);
1232 if(p2>0.)
1233 {
1234 G4double dp=p-p3;
1235 R+=p2*std::exp(-dp*dp/p4);
1236 }
1237 if(R>1.) R=1.;
1238 }
1239 else G4cerr<<"-Warning-G4QNeutronCaptureRatio::CalcR:*Bad A* Z="<<Z<<", N="<<N<<G4endl;
1240 }
1241 else if(std::fabs(p-P)/P<.0001) return R; // Normally used at high energies (direct) only
1242 return R;
1243} // End of CalcCap2IN_Ratio
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
#define G4endl
Definition: G4ios.hh:52
G4DLLIMPORT std::ostream G4cerr
G4DLLIMPORT std::ostream G4cout
G4double GetRatio(G4double pIU, G4int tgZ, G4int tgN)
static G4QNeutronCaptureRatio * GetPointer()