Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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()