Geant4-11
G4ChipsNeutronInelasticXS.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// The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-May-09
28//
29//
30// G4 Physics class: G4ChipsNeutronInelasticXS for gamma+A cross sections
31// Created: M.V. Kossov, CERN/ITEP(Moscow), 17-May-2009
32// The last update: M.V. Kossov, CERN/ITEP (Moscow) 21-May-04
33//
34// ****************************************************************************************
35// Short description: Cross-sections extracted (by W.Pokorski) from the CHIPS package for
36// neutron-nuclear interactions. Original author: M. Kossov
37// -------------------------------------------------------------------------------------
38//
39
41#include "G4SystemOfUnits.hh"
42#include "G4DynamicParticle.hh"
44#include "G4Neutron.hh"
45#include "G4Log.hh"
46#include "G4Exp.hh"
47
48
49// factory
51//
53
54// Initialization of the
55
57{
58 lastLEN=0; // Pointer to the lastArray of LowEn CS
59 lastHEN=0; // Pointer to the lastArray of HighEnCS
60 lastN=0; // The last N of calculated nucleus
61 lastZ=0; // The last Z of calculated nucleus
62 lastP=0.; // Last used in cross section Momentum
63 lastTH=0.; // Last threshold momentum
64 lastCS=0.; // Last value of the Cross Section
65 lastI=0; // The last position in the DAMDB
66 HEthresh=0.;// HE threshold for the CS calculation
67 LEN = new std::vector<G4double*>;
68 HEN = new std::vector<G4double*>;
69}
70
72{
73 G4int lens=LEN->size();
74 for(G4int i=0; i<lens; ++i) delete[] (*LEN)[i];
75 delete LEN;
76 G4int hens=HEN->size();
77 for(G4int i=0; i<hens; ++i) delete[] (*HEN)[i];
78 delete HEN;
79}
80
81void
83{
84 outFile << "G4ChipsNeutronInelasticXS provides the inelastic cross\n"
85 << "section for neutron nucleus scattering as a function of incident\n"
86 << "momentum. The cross section is calculated using M. Kossov's\n"
87 << "CHIPS parameterization of cross section data.\n";
88}
89
91 const G4Element*,
92 const G4Material*)
93{
94 return true;
95}
96
97
99 const G4Isotope*,
100 const G4Element*,
101 const G4Material*)
102{
103 G4double pMom=Pt->GetTotalMomentum();
104 G4int tgN = A - tgZ;
105
106 return GetChipsCrossSection(pMom, tgZ, tgN, 2112);
107}
108
109// The main member function giving the collision cross section (P is in IU, CS is in mb)
110// Make pMom in independent units ! (Now it is MeV)
112{
113
114 G4bool in=false; // By default the isotope must be found in the AMDB
115 if(tgN!=lastN || tgZ!=lastZ) // The nucleus was not the last used isotope
116 {
117 in = false; // By default the isotope haven't be found in AMDB
118 lastP = 0.; // New momentum history (nothing to compare with)
119 lastN = tgN; // The last N of the calculated nucleus
120 lastZ = tgZ; // The last Z of the calculated nucleus
121 lastI = colN.size(); // Size of the Associative Memory DB in the heap
122 j = 0; // A#0f records found in DB for this projectile
123 if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope
124 {
125 if(colN[i]==tgN && colZ[i]==tgZ) // Try the record "i" in the AMDB
126 {
127 lastI=i; // Remember the index for future fast/last use
128 lastTH =colTH[i]; // The last THreshold (A-dependent)
129 if(pMom<=lastTH)
130 {
131 return 0.; // Energy is below the Threshold value
132 }
133 lastP =colP [i]; // Last Momentum (A-dependent)
134 lastCS =colCS[i]; // Last CrossSect (A-dependent)
135 in = true; // This is the case when the isotop is found in DB
136 // Momentum pMom is in IU ! @@ Units
137 lastCS=CalculateCrossSection(-1,j,2112,lastZ,lastN,pMom); // read & update
138 if(lastCS<=0. && pMom>lastTH) // Correct the threshold (@@ No intermediate Zeros)
139 {
140 lastCS=0.;
141 lastTH=pMom;
142 }
143 break; // Go out of the LOOP
144 }
145 j++; // Increment a#0f records found in DB
146 }
147 if(!in) // This isotope has not been calculated previously
148 {
150 lastCS=CalculateCrossSection(0,j,2112,lastZ,lastN,pMom); //calculate & create
151 //if(lastCS>0.) // It means that the AMBD was initialized
152 //{
153
154 lastTH = 0; //ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last
155 colN.push_back(tgN);
156 colZ.push_back(tgZ);
157 colP.push_back(pMom);
158 colTH.push_back(lastTH);
159 colCS.push_back(lastCS);
160 //} // M.K. Presence of H1 with high threshold breaks the syncronization
161 return lastCS*millibarn;
162 } // End of creation of the new set of parameters
163 else
164 {
165 colP[lastI]=pMom;
167 }
168 } // End of parameters udate
169 else if(pMom<=lastTH)
170 {
171 return 0.; // Momentum is below the Threshold Value -> CS=0
172 }
173 else // It is the last used -> use the current tables
174 {
175 lastCS=CalculateCrossSection(1,j,2112,lastZ,lastN,pMom); // Only read and UpdateDB
176 lastP=pMom;
177 }
178 return lastCS*millibarn;
179}
180
181// The main member function giving the gamma-A cross section (E in GeV, CS in mb)
183 G4int, G4int targZ, G4int targN, G4double Momentum)
184{
185 static const G4double THmin=1.; // default minimum Momentum (MeV/c) Threshold
186 static const G4double THmiG=THmin*.001; // minimum Momentum (GeV/c) Threshold
187 static const G4double dP=10.; // step for the LEN (Low ENergy) table MeV/c
188 static const G4double dPG=dP*.001; // step for the LEN (Low ENergy) table GeV/c
189 static const G4int nL=105; // A#of LEN points in E (step 10 MeV/c)
190 static const G4double Pmin=THmin+(nL-1)*dP; // minP for the HighE part with safety
191 static const G4double Pmax=227000.; // maxP for the HEN (High ENergy) part 227 GeV
192 static const G4int nH=224; // A#of HEN points in lnE
193 static const G4double milP=G4Log(Pmin);// Low logarithm energy for the HEN part
194 static const G4double malP=G4Log(Pmax);// High logarithm energy (each 2.75 percent)
195 static const G4double dlP=(malP-milP)/(nH-1); // Step in log energy in the HEN part
196 static const G4double milPG=G4Log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c
197 //
198 // Associative memory for acceleration
199 //static std::vector <G4double> spA; // shadowing coefficients (A-dependent)
200 G4double sigma=0.;
201 if(F&&I) sigma=0.; // @@ *!* Fake line *!* to use F & I !!!Temporary!!!
202 //G4double A=targN+targZ; // A of the target
203 if(F<=0) // This isotope was not the last used isotop
204 {
205 if(F<0) // This isotope was found in DAMDB =-----=> RETRIEVE
206 {
207 G4int sync=LEN->size();
208 if(sync<=I) G4cerr<<"*!*G4ChipsNetronNuclCS::CalcCrossSect:Sync="<<sync<<"<="<<I<<G4endl;
209 lastLEN=(*LEN)[I]; // Pointer to prepared LowEnergy cross sections
210 lastHEN=(*HEN)[I]; // Pointer to prepared High Energy cross sections
211 }
212 else // This isotope wasn't calculated before => CREATE
213 {
214 lastLEN = new G4double[nL]; // Allocate memory for the new LEN cross sections
215 lastHEN = new G4double[nH]; // Allocate memory for the new HEN cross sections
216 // --- Instead of making a separate function ---
217 G4double P=THmiG; // Table threshold in GeV/c
218 for(G4int k=0; k<nL; k++)
219 {
220 lastLEN[k] = CrossSectionLin(targZ, targN, P);
221 P+=dPG;
222 }
223 G4double lP=milPG;
224 for(G4int n=0; n<nH; n++)
225 {
226 lastHEN[n] = CrossSectionLog(targZ, targN, lP);
227 lP+=dlP;
228 }
229 // --- End of possible separate function
230 // *** The synchronization check ***
231 G4int sync=LEN->size();
232 if(sync!=I)
233 {
234 G4cerr<<"***G4ChipsNetronNuclearCS::CalcCrossSect: Sync="<<sync<<"#"<<I<<", Z=" <<targZ
235 <<", N="<<targN<<", F="<<F<<G4endl;
236 //G4Exception("G4ProtonNuclearCS::CalculateCS:","39",FatalException,"overflow DB");
237 }
238 LEN->push_back(lastLEN); // remember the Low Energy Table
239 HEN->push_back(lastHEN); // remember the High Energy Table
240 } // End of creation of the new set of parameters
241 } // End of parameters udate
242 // =------------------= NOW the Magic Formula =---------------------------=
243 if (Momentum<lastTH) return 0.; // It must be already checked in the interface class
244 else if (Momentum<Pmin) // High Energy region
245 {
246 sigma=EquLinearFit(Momentum,nL,THmin,dP,lastLEN);
247 }
248 else if (Momentum<Pmax) // High Energy region
249 {
250 G4double lP=G4Log(Momentum);
251 sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN);
252 }
253 else // UHE region (calculation, not frequent)
254 {
255 G4double P=0.001*Momentum; // Approximation formula is for P in GeV/c
256 sigma=CrossSectionFormula(targZ, targN, P, G4Log(P));
257 }
258 if(sigma<0.) return 0.;
259 return sigma;
260}
261
262// Calculation formula for proton-nuclear inelastic cross-section (mb) (P in GeV/c)
264{
265 //==> n (Z=0)
266 static const G4int N0=1;
267 static const G4double pZ0N1[4]={1., 0., 0., 1.};
268 static const std::pair<G4int, const G4double*> Z0N1(1,pZ0N1);
269 static const std::pair<G4int, const G4double*> Z0[N0]={Z0N1};
270 //==> H (Z=1) *** no protons, which are treated separately ***
271 static const G4int N1=2;
272 static const G4double pZ1N1[4]={6.E-8, 0., 0., 1.};
273 static const std::pair<G4int, const G4double*> Z1N1(1,pZ1N1);
274 static const G4double pZ1N2[4]={9.E-8, 0., 0., 1.};
275 static const std::pair<G4int, const G4double*> Z1N2(2,pZ1N2);
276 static const std::pair<G4int, const G4double*> Z1[N1]={Z1N1, Z1N2};
277 //==> He(Z=2)
278 static const G4int N2=2;
279 static const G4double pZ2N1[4]={1.E-13, 9000., 1.E-4, 2.E-4};
280 static const std::pair<G4int, const G4double*> Z2N1(1,pZ2N1);
281 static const G4double pZ2N2[4]={7.E-4, 0., 0., 1.};
282 static const std::pair<G4int, const G4double*> Z2N2(2,pZ2N2);
283 static const std::pair<G4int, const G4double*> Z2[N2]={Z2N1, Z2N2};
284 //==> Li(Z=3)
285 static const G4int N3=2;
286 static const G4double pZ3N3[4]={1.E-9, 3200., .021, 1.5E-5};
287 static const std::pair<G4int, const G4double*> Z3N1(3,pZ3N3);
288 static const G4double pZ3N4[4]={3.E-9, 200., .051, 2.5E-4};
289 static const std::pair<G4int, const G4double*> Z3N2(4,pZ3N4);
290 static const std::pair<G4int, const G4double*> Z3[N3]={Z3N1, Z3N2};
291 //==> Be(Z=4)
292 static const G4int N4=1;
293 static const G4double pZ4N5[4]={9.E-9, 400., .088, 4.E-4};
294 static const std::pair<G4int, const G4double*> Z4N5(5,pZ4N5);
295 static const std::pair<G4int, const G4double*> Z4[N4]={Z4N5};
296 //==> B (Z=5)
297 static const G4int N5=2;
298 static const G4double pZ5N5[4]={2.E-10, 2700., .009, 4.E-4};
299 static const std::pair<G4int, const G4double*> Z5N5(5,pZ5N5);
300 static const G4double pZ5N6[4]={2.E-8, 110., .030, 1.E-4};
301 static const std::pair<G4int, const G4double*> Z5N6(6,pZ5N6);
302 static const std::pair<G4int, const G4double*> Z5[N5]={Z5N5, Z5N6};
303 //==> C (Z=6)
304 static const G4int N6=2;
305 static const G4double pZ6N6[4]={1.5E-7, 300., .129, 5.E-4}; // *** Only Nat Mix ***
306 static const std::pair<G4int, const G4double*> Z6N6(6,pZ6N6);
307 static const G4double pZ6N7[4]={1.5E-7, 300., .129, 5.E-4}; // *** Only Nat Mix ***
308 static const std::pair<G4int, const G4double*> Z6N7(7,pZ6N7);
309 static const std::pair<G4int, const G4double*> Z6[N6]={Z6N6, Z6N7};
310 //==> N (Z=7)
311 static const G4int N7=2;
312 static const G4double pZ7N7[4]={5.E-8, 500., .085, 2.E-4};
313 static const std::pair<G4int, const G4double*> Z7N7(7,pZ7N7);
314 static const G4double pZ7N8[4]={5.E-8, 140., .15, 9.E-4};
315 static const std::pair<G4int, const G4double*> Z7N8(8,pZ7N8);
316 static const std::pair<G4int, const G4double*> Z7[N7]={Z7N7, Z7N8};
317 //==> O (Z=8)
318 static const G4int N8=3;
319 static const G4double pZ8N8[4]={7.E-8, 0., .021, 1.5E-5};
320 static const std::pair<G4int, const G4double*> Z8N8(8,pZ8N8);
321 static const G4double pZ8N9[4]={2.E-8, 170., .062, 1.E-3};
322 static const std::pair<G4int, const G4double*> Z8N9(9,pZ8N9);
323 static const G4double pZ8N10[4]={1.E-9, 0., .051, 2.5E-4}; // *** No DATA ***
324 static const std::pair<G4int, const G4double*> Z8N10(10,pZ8N10);
325 static const std::pair<G4int, const G4double*> Z8[N8]={Z8N8, Z8N9, Z8N10};
326 //==> F (Z=9)
327 static const G4int N9=1;
328 static const G4double pZ9N10[4]={1.E-11, 3000., .026, 3.E-5};
329 static const std::pair<G4int, const G4double*> Z9N10(10,pZ9N10);
330 static const std::pair<G4int, const G4double*> Z9[N9]={Z9N10};
331 //==> Ne(Z=10)
332 static const G4int N10=3;
333 static const G4double pZ10N10[4]={4.E-8, 0., .021, 1.5E-5}; // *** No DATA ***
334 static const std::pair<G4int, const G4double*> Z10N10(10,pZ10N10);
335 static const G4double pZ10N11[4]={4.E-8, 0., .021, 1.5E-5}; // *** No DATA ***
336 static const std::pair<G4int, const G4double*> Z10N11(11,pZ10N11);
337 static const G4double pZ10N12[4]={4.E-8, 0., .051, 2.5E-4}; // *** No DATA ***
338 static const std::pair<G4int, const G4double*> Z10N12(12,pZ10N12);
339 static const std::pair<G4int, const G4double*> Z10[N10]={Z10N10, Z10N11, Z10N12};
340 //==> Na(Z=11)
341 static const G4int N11=1;
342 static const G4double pZ11N12[4]={8.E-10, 500., .05, 3.E-4};
343 static const std::pair<G4int, const G4double*> Z11N12(12,pZ11N12);
344 static const std::pair<G4int, const G4double*> Z11[N11]={Z11N12};
345 //==> Mg(Z=12)
346 static const G4int N12=3;
347 static const G4double pZ12N12[4]={2.E-9, 350., .065, 3.E-4};
348 static const std::pair<G4int, const G4double*> Z12N12(12,pZ12N12);
349 static const G4double pZ12N13[4]={2.E-9, 350., .068, 2.E-4};
350 static const std::pair<G4int, const G4double*> Z12N13(13,pZ12N13);
351 static const G4double pZ12N14[4]={2.E-9, 0., .051, 2.5E-4};
352 static const std::pair<G4int, const G4double*> Z12N14(14,pZ12N14);
353 static const std::pair<G4int, const G4double*> Z12[N12]={Z12N12, Z12N13, Z12N14};
354 //==> Al(Z=13)
355 static const G4int N13=1;
356 static const G4double pZ13N14[4]={9.E-9, 500., .075, 4.E-4};
357 static const std::pair<G4int, const G4double*> Z13N14(14,pZ13N14);
358 static const std::pair<G4int, const G4double*> Z13[N13]={Z13N14};
359 //==> Si(Z=14)
360 static const G4int N14=3;
361 static const G4double pZ14N14[4]={4.E-9, 200., .076, 1.E-4};
362 static const std::pair<G4int, const G4double*> Z14N14(14,pZ14N14);
363 static const G4double pZ14N15[4]={6.E-9, 500., .073, 4.E-4};
364 static const std::pair<G4int, const G4double*> Z14N15(15,pZ14N15);
365 static const G4double pZ14N16[4]={4.E-9, 200., .076, 1.E-4};
366 static const std::pair<G4int, const G4double*> Z14N16(16,pZ14N16);
367 static const std::pair<G4int, const G4double*> Z14[N14]={Z14N14, Z14N15, Z14N16};
368 //==> P (Z=15)
369 static const G4int N15=1;
370 static const G4double pZ15N16[4]={6.E-9, 550., .077, 2.E-4};
371 static const std::pair<G4int, const G4double*> Z15N16(16,pZ15N16);
372 static const std::pair<G4int, const G4double*> Z15[N15]={Z15N16};
373 //==> S (Z=16)
374 static const G4int N16=4;
375 static const G4double pZ16N16[4]={1.5E-8, 500., .087, 5.E-4};
376 static const std::pair<G4int, const G4double*> Z16N16(16,pZ16N16);
377 static const G4double pZ16N17[4]={1.E-8, 300., .07, 4.E-3};
378 static const std::pair<G4int, const G4double*> Z16N17(17,pZ16N17);
379 static const G4double pZ16N18[4]={2.E-8, 300., .094, 3.E-4};
380 static const std::pair<G4int, const G4double*> Z16N18(18,pZ16N18);
381 static const G4double pZ16N20[4]={2.E-8, 200., .11, 3.E-4};
382 static const std::pair<G4int, const G4double*> Z16N20(20,pZ16N20);
383 static const std::pair<G4int, const G4double*> Z16[N16]={Z16N16, Z16N17, Z16N18, Z16N20};
384 //==> Cl(Z=17)
385 static const G4int N17=2;
386 static const G4double pZ17N18[4]={3.E-9, 300., .072, 4.E-4};
387 static const std::pair<G4int, const G4double*> Z17N18(18,pZ17N18);
388 static const G4double pZ17N20[4]={5.E-9, 0., .051, 2.5E-4};
389 static const std::pair<G4int, const G4double*> Z17N20(20,pZ17N20);
390 static const std::pair<G4int, const G4double*> Z17[N17]={Z17N18, Z17N20};
391 //==> Ar(Z=18)
392 static const G4int N18=3;
393 static const G4double pZ18N18[4]={2.5E-9, 300., .074, 2.E-4};
394 static const std::pair<G4int, const G4double*> Z18N18(18,pZ18N18);
395 static const G4double pZ18N20[4]={2.E-8, 400., .084, 4.E-4};
396 static const std::pair<G4int, const G4double*> Z18N20(20,pZ18N20);
397 static const G4double pZ18N22[4]={1.E-9, 100., .065, 2.E-4};
398 static const std::pair<G4int, const G4double*> Z18N22(22,pZ18N22);
399 static const std::pair<G4int, const G4double*> Z18[N18]={Z18N18, Z18N20, Z18N22};
400 //==> K (Z=19)
401 static const G4int N19=3;
402 static const G4double pZ19N20[4]={3.E-9, 4., .02, 2.E-4};
403 static const std::pair<G4int, const G4double*> Z19N20(20,pZ19N20);
404 static const G4double pZ19N21[4]={3.E-9, 500., .062, 7.E-4};
405 static const std::pair<G4int, const G4double*> Z19N21(21,pZ19N21);
406 static const G4double pZ19N22[4]={3.E-9, 400., .073, 3.E-4};
407 static const std::pair<G4int, const G4double*> Z19N22(22,pZ19N22);
408 static const std::pair<G4int, const G4double*> Z19[N19]={Z19N20, Z19N21, Z19N22};
409 //==> Ca(Z=20)
410 static const G4int N20=6;
411 static const G4double pZ20N20[4]={3.E-9, 0., .021, 1.5E-5};
412 static const std::pair<G4int, const G4double*> Z20N20(20,pZ20N20);
413 static const G4double pZ20N22[4]={2.E-9, 400., .072, 4.E-4};
414 static const std::pair<G4int, const G4double*> Z20N22(22,pZ20N22);
415 static const G4double pZ20N23[4]={.3E-9, 280., .042, 2.5E-4};
416 static const std::pair<G4int, const G4double*> Z20N23(23,pZ20N23);
417 static const G4double pZ20N24[4]={1.E-9, 300., .062, 2.E-4};
418 static const std::pair<G4int, const G4double*> Z20N24(24,pZ20N24);
419 static const G4double pZ20N26[4]={1.5E-8, 400., .064, 2.E-4};
420 static const std::pair<G4int, const G4double*> Z20N26(26,pZ20N26);
421 static const G4double pZ20N28[4]={7.E-9, 0., .051, 2.5E-4};
422 static const std::pair<G4int, const G4double*> Z20N28(28,pZ20N28);
423 static const std::pair<G4int, const G4double*> Z20[N20]={Z20N20, Z20N22, Z20N23,
424 Z20N24, Z20N26, Z20N28};
425 //==> Sc(Z=21)
426 static const G4int N21=1;
427 static const G4double pZ21N24[4]={5.E-9, 1000., .068, 6.E-4};
428 static const std::pair<G4int, const G4double*> Z21N24(24,pZ21N24);
429 static const std::pair<G4int, const G4double*> Z21[N21]={Z21N24};
430 //==> Ti(Z=22)
431 static const G4int N22=5;
432 static const G4double pZ22N24[4]={4.E-9, 900., .065, 6.E-4};
433 static const std::pair<G4int, const G4double*> Z22N24(24,pZ22N24);
434 static const G4double pZ22N25[4]={4.E-9, 1000., .065, 1.E-3};
435 static const std::pair<G4int, const G4double*> Z22N25(25,pZ22N25);
436 static const G4double pZ22N26[4]={4.E-9, 900., .066, 4.E-4};
437 static const std::pair<G4int, const G4double*> Z22N26(26,pZ22N26);
438 static const G4double pZ22N27[4]={4.E-9, 800., .021, 3.E-4};
439 static const std::pair<G4int, const G4double*> Z22N27(27,pZ22N27);
440 static const G4double pZ22N28[4]={4.E-9, 550., .067, 2.E-4};
441 static const std::pair<G4int, const G4double*> Z22N28(28,pZ22N28);
442 static const std::pair<G4int, const G4double*> Z22[N22]={Z22N24, Z22N25, Z22N26,
443 Z22N27, Z22N28};
444 //==> V (Z=23)
445 static const G4int N23=2;
446 static const G4double pZ23N27[4]={4.E-9, 700., .065, 1.E-3}; // *** Only Nat mix ***
447 static const std::pair<G4int, const G4double*> Z23N27(27,pZ23N27);
448 static const G4double pZ23N28[4]={4.E-9, 700., .065, 1.E-3}; // *** Only Nat mix ***
449 static const std::pair<G4int, const G4double*> Z23N28(28,pZ23N28);
450 static const std::pair<G4int, const G4double*> Z23[N23]={Z23N27, Z23N28};
451 //==> Cr(Z=24)
452 static const G4int N24=4;
453 static const G4double pZ24N26[4]={1.E-9, 750., .056, 2.E-4};
454 static const std::pair<G4int, const G4double*> Z24N26(26,pZ24N26);
455 static const G4double pZ24N28[4]={1.E-9, 350., .061, 1.E-4};
456 static const std::pair<G4int, const G4double*> Z24N28(28,pZ24N28);
457 static const G4double pZ24N29[4]={.4E-9, 650., .056, 1.5E-4};
458 static const std::pair<G4int, const G4double*> Z24N29(29,pZ24N29);
459 static const G4double pZ24N30[4]={1.E-9, 700., .054, 3.E-4};
460 static const std::pair<G4int, const G4double*> Z24N30(30,pZ24N30);
461 static const std::pair<G4int, const G4double*> Z24[N24]={Z24N26, Z24N28, Z24N29, Z24N30};
462 //==> Mn(Z=25)
463 static const G4int N25=1;
464 static const G4double pZ25N30[4]={.3E-9, 650., .042, 3.5E-4};
465 static const std::pair<G4int, const G4double*> Z25N30(30,pZ25N30);
466 static const std::pair<G4int, const G4double*> Z25[N25]={Z25N30};
467 //==> Fe(Z=26)
468 static const G4int N26=4;
469 static const G4double pZ26N28[4]={.9E-9, 200., .062, 1.E-4};
470 static const std::pair<G4int, const G4double*> Z26N28(28,pZ26N28);
471 static const G4double pZ26N30[4]={.9E-9, 1500., .055, 5.E-5};
472 static const std::pair<G4int, const G4double*> Z26N30(30,pZ26N30);
473 static const G4double pZ26N31[4]={.9E-9, 1100., .048, 9.E-4};
474 static const std::pair<G4int, const G4double*> Z26N31(31,pZ26N31);
475 static const G4double pZ26N32[4]={.9E-9, 500., .055, 2.E-4};
476 static const std::pair<G4int, const G4double*> Z26N32(32,pZ26N32);
477 static const std::pair<G4int, const G4double*> Z26[N26]={Z26N28, Z26N30, Z26N31, Z26N32};
478 //==> Co(Z=27)
479 static const G4int N27=1;
480 static const G4double pZ27N32[4]={.2E-9, 21., .008, 3.E-6};
481 static const std::pair<G4int, const G4double*> Z27N32(32,pZ27N32);
482 static const std::pair<G4int, const G4double*> Z27[N27]={Z27N32};
483 //==> Ni(Z=28)
484 static const G4int N28=5;
485 static const G4double pZ28N30[4]={.3E-9, 0., .021, 1.5E-5};
486 static const std::pair<G4int, const G4double*> Z28N30(30,pZ28N30);
487 static const G4double pZ28N32[4]={.3E-9, 0., .021, 1.5E-5};
488 static const std::pair<G4int, const G4double*> Z28N32(32,pZ28N32);
489 static const G4double pZ28N33[4]={.3E-9, 0., .021, 1.5E-5};
490 static const std::pair<G4int, const G4double*> Z28N33(33,pZ28N33);
491 static const G4double pZ28N34[4]={.3E-9, 700., .0065, 2.E-6};
492 static const std::pair<G4int, const G4double*> Z28N34(34,pZ28N34);
493 static const G4double pZ28N36[4]={.3E-9, 75., .0107, 4.E-6};
494 static const std::pair<G4int, const G4double*> Z28N36(36,pZ28N36);
495 static const std::pair<G4int, const G4double*> Z28[N28]={Z28N30, Z28N32, Z28N33,
496 Z28N34, Z28N36};
497 //==> Cu(Z=29)
498 static const G4int N29=2;
499 static const G4double pZ29N34[4]={.1E-9, 35., .005, 6.E-4};
500 static const std::pair<G4int, const G4double*> Z29N34(34,pZ29N34);
501 static const G4double pZ29N36[4]={.2E-9, 23., .01, 2.E-4};
502 static const std::pair<G4int, const G4double*> Z29N36(36,pZ29N36);
503 static const std::pair<G4int, const G4double*> Z29[N29]={Z29N34, Z29N36};
504 //==> Zn(Z=30)
505 static const G4int N30=5;
506 static const G4double pZ30N34[4]={.2E-9, 140., .02, 8.E-6}; // *** only NAT mix ***
507 static const std::pair<G4int, const G4double*> Z30N34(34,pZ30N34);
508 static const G4double pZ30N36[4]={.2E-9, 140., .02, 8.E-6}; // *** only NAT mix ***
509 static const std::pair<G4int, const G4double*> Z30N36(36,pZ30N36);
510 static const G4double pZ30N37[4]={.2E-9, 140., .02, 8.E-6}; // *** only NAT mix ***
511 static const std::pair<G4int, const G4double*> Z30N37(37,pZ30N37);
512 static const G4double pZ30N38[4]={.2E-9, 140., .02, 8.E-6}; // *** only NAT mix ***
513 static const std::pair<G4int, const G4double*> Z30N38(38,pZ30N38);
514 static const G4double pZ30N40[4]={.2E-9, 140., .02, 8.E-6}; // *** only NAT mix ***
515 static const std::pair<G4int, const G4double*> Z30N40(40,pZ30N40);
516 static const std::pair<G4int, const G4double*> Z30[N30]={Z30N34, Z30N36, Z30N37,
517 Z30N38, Z30N40};
518 //==> Ga(Z=31)
519 static const G4int N31=2;
520 static const G4double pZ31N38[4]={.3E-9, 450., .050, 3.E-4};
521 static const std::pair<G4int, const G4double*> Z31N38(38,pZ31N38);
522 static const G4double pZ31N40[4]={.3E-9, 600., .048, 2.E-4};
523 static const std::pair<G4int, const G4double*> Z31N40(40,pZ31N40);
524 static const std::pair<G4int, const G4double*> Z31[N31]={Z31N38, Z31N40};
525 //==> Ge(Z=32)
526 static const G4int N32=5;
527 static const G4double pZ32N38[4]={.2E-9, 200., .05, 2.E-4};
528 static const std::pair<G4int, const G4double*> Z32N38(38,pZ32N38);
529 static const G4double pZ32N40[4]={.2E-9, 600., .05, 2.E-4};
530 static const std::pair<G4int, const G4double*> Z32N40(40,pZ32N40);
531 static const G4double pZ32N41[4]={1.5E-11, 600., .028, 3.E-4};
532 static const std::pair<G4int, const G4double*> Z32N41(41,pZ32N41);
533 static const G4double pZ32N42[4]={9.E-11, 400., .048, 3.E-4};
534 static const std::pair<G4int, const G4double*> Z32N42(42,pZ32N42);
535 static const G4double pZ32N44[4]={9.E-11, 400., .043, 3.E-4};
536 static const std::pair<G4int, const G4double*> Z32N44(44,pZ32N44);
537 static const std::pair<G4int, const G4double*> Z32[N32]={Z32N38, Z32N40, Z32N41,
538 Z32N42, Z32N44};
539 //==> As(Z=33)
540 static const G4int N33=1;
541 static const G4double pZ33N42[4]={1.E-11, 1000., .032, 1.E-4};
542 static const std::pair<G4int, const G4double*> Z33N42(42,pZ33N42);
543 static const std::pair<G4int, const G4double*> Z33[N33]={Z33N42};
544 //==> Se(Z=34)
545 static const G4int N34=6;
546 static const G4double pZ34N40[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
547 static const std::pair<G4int, const G4double*> Z34N40(40,pZ34N40);
548 static const G4double pZ34N42[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
549 static const std::pair<G4int, const G4double*> Z34N42(42,pZ34N42);
550 static const G4double pZ34N43[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
551 static const std::pair<G4int, const G4double*> Z34N43(43,pZ34N43);
552 static const G4double pZ34N44[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
553 static const std::pair<G4int, const G4double*> Z34N44(44,pZ34N44);
554 static const G4double pZ34N46[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
555 static const std::pair<G4int, const G4double*> Z34N46(46,pZ34N46);
556 static const G4double pZ34N48[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
557 static const std::pair<G4int, const G4double*> Z34N48(48,pZ34N48);
558 static const std::pair<G4int, const G4double*> Z34[N34]={Z34N40, Z34N42, Z34N43,
559 Z34N44, Z34N46, Z34N48};
560 //==> Br(Z=35)
561 static const G4int N35=2;
562 static const G4double pZ35N44[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
563 static const std::pair<G4int, const G4double*> Z35N44(44,pZ35N44);
564 static const G4double pZ35N46[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
565 static const std::pair<G4int, const G4double*> Z35N46(46,pZ35N46);
566 static const std::pair<G4int, const G4double*> Z35[N35]={Z35N44, Z35N46};
567 //==> Kr(Z=36)
568 static const G4int N36=6;
569 static const G4double pZ36N42[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
570 static const std::pair<G4int, const G4double*> Z36N42(42,pZ36N42);
571 static const G4double pZ36N44[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
572 static const std::pair<G4int, const G4double*> Z36N44(44,pZ36N44);
573 static const G4double pZ36N46[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
574 static const std::pair<G4int, const G4double*> Z36N46(46,pZ36N46);
575 static const G4double pZ36N47[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
576 static const std::pair<G4int, const G4double*> Z36N47(47,pZ36N47);
577 static const G4double pZ36N48[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
578 static const std::pair<G4int, const G4double*> Z36N48(48,pZ36N48);
579 static const G4double pZ36N50[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
580 static const std::pair<G4int, const G4double*> Z36N50(50,pZ36N50);
581 static const std::pair<G4int, const G4double*> Z36[N36]={Z36N42, Z36N44, Z36N46,
582 Z36N47, Z36N48, Z36N50};
583 //==> Rb(Z=37)
584 static const G4int N37=2;
585 static const G4double pZ37N48[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
586 static const std::pair<G4int, const G4double*> Z37N48(48,pZ37N48);
587 static const G4double pZ37N50[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
588 static const std::pair<G4int, const G4double*> Z37N50(50,pZ37N50);
589 static const std::pair<G4int, const G4double*> Z37[N37]={Z37N48, Z37N50};
590 //==> Sr(Z=38)
591 static const G4int N38=4;
592 static const G4double pZ38N46[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
593 static const std::pair<G4int, const G4double*> Z38N46(46,pZ38N46);
594 static const G4double pZ38N48[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
595 static const std::pair<G4int, const G4double*> Z38N48(48,pZ38N48);
596 static const G4double pZ38N49[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
597 static const std::pair<G4int, const G4double*> Z38N49(49,pZ38N49);
598 static const G4double pZ38N50[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
599 static const std::pair<G4int, const G4double*> Z38N50(50,pZ38N50);
600 static const std::pair<G4int, const G4double*> Z38[N38]={Z38N46, Z38N48, Z38N49, Z38N50};
601 //==> Y (Z=39)
602 static const G4int N39=1;
603 static const G4double pZ39N50[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
604 static const std::pair<G4int, const G4double*> Z39N50(50,pZ39N50);
605 static const std::pair<G4int, const G4double*> Z39[N39]={Z39N50};
606 //==> Zr(Z=40)
607 static const G4int N40=5;
608 static const G4double pZ40N50[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
609 static const std::pair<G4int, const G4double*> Z40N50(50,pZ40N50);
610 static const G4double pZ40N51[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
611 static const std::pair<G4int, const G4double*> Z40N51(51,pZ40N51);
612 static const G4double pZ40N52[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
613 static const std::pair<G4int, const G4double*> Z40N52(52,pZ40N52);
614 static const G4double pZ40N54[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
615 static const std::pair<G4int, const G4double*> Z40N54(54,pZ40N54);
616 static const G4double pZ40N56[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
617 static const std::pair<G4int, const G4double*> Z40N56(56,pZ40N56);
618 static const std::pair<G4int, const G4double*> Z40[N40]={Z40N50, Z40N51, Z40N52,
619 Z40N54, Z40N56};
620 //==> Nb(Z=41)
621 static const G4int N41=1;
622 static const G4double pZ41N52[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
623 static const std::pair<G4int, const G4double*> Z41N52(52,pZ41N52);
624 static const std::pair<G4int, const G4double*> Z41[N41]={Z41N52};
625 //==> Mo(Z=42)
626 static const G4int N42=7;
627 static const G4double pZ42N50[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
628 static const std::pair<G4int, const G4double*> Z42N50(50,pZ42N50);
629 static const G4double pZ42N52[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
630 static const std::pair<G4int, const G4double*> Z42N52(52,pZ42N52);
631 static const G4double pZ42N53[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
632 static const std::pair<G4int, const G4double*> Z42N53(53,pZ42N53);
633 static const G4double pZ42N54[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
634 static const std::pair<G4int, const G4double*> Z42N54(54,pZ42N54);
635 static const G4double pZ42N55[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
636 static const std::pair<G4int, const G4double*> Z42N55(55,pZ42N55);
637 static const G4double pZ42N56[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
638 static const std::pair<G4int, const G4double*> Z42N56(56,pZ42N56);
639 static const G4double pZ42N58[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
640 static const std::pair<G4int, const G4double*> Z42N58(58,pZ42N58);
641 static const std::pair<G4int, const G4double*> Z42[N42]={Z42N50, Z42N52, Z42N53, Z42N54,
642 Z42N55, Z42N56, Z42N58};
643 //==> Mo(Z=43)
644 static const G4int N43=1;
645 static const G4double pZ43N0[4]={3.E-12, 500., .01, 2.5E-4}; // *** NoStableIsotopes ***
646 static const std::pair<G4int, const G4double*> Z43N0(0,pZ43N0);
647 static const std::pair<G4int, const G4double*> Z43[N43]={Z43N0};
648 //==> Ru(Z=44)
649 static const G4int N44=7;
650 static const G4double pZ44N52[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
651 static const std::pair<G4int, const G4double*> Z44N52(52,pZ44N52);
652 static const G4double pZ44N54[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
653 static const std::pair<G4int, const G4double*> Z44N54(54,pZ44N54);
654 static const G4double pZ44N55[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
655 static const std::pair<G4int, const G4double*> Z44N55(55,pZ44N55);
656 static const G4double pZ44N56[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
657 static const std::pair<G4int, const G4double*> Z44N56(56,pZ44N56);
658 static const G4double pZ44N57[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
659 static const std::pair<G4int, const G4double*> Z44N57(57,pZ44N57);
660 static const G4double pZ44N58[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
661 static const std::pair<G4int, const G4double*> Z44N58(58,pZ44N58);
662 static const G4double pZ44N60[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
663 static const std::pair<G4int, const G4double*> Z44N60(60,pZ44N60);
664 static const std::pair<G4int, const G4double*> Z44[N44]={Z44N52, Z44N54, Z44N55, Z44N56,
665 Z44N57, Z44N58, Z44N60};
666 //==> Rh(Z=45)
667 static const G4int N45=1;
668 static const G4double pZ45N58[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
669 static const std::pair<G4int, const G4double*> Z45N58(58,pZ45N58);
670 static const std::pair<G4int, const G4double*> Z45[N45]={Z45N58};
671 //==> Pd(Z=46)
672 static const G4int N46=6;
673 static const G4double pZ46N56[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
674 static const std::pair<G4int, const G4double*> Z46N56(56,pZ46N56);
675 static const G4double pZ46N58[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
676 static const std::pair<G4int, const G4double*> Z46N58(58,pZ46N58);
677 static const G4double pZ46N59[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
678 static const std::pair<G4int, const G4double*> Z46N59(59,pZ46N59);
679 static const G4double pZ46N60[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
680 static const std::pair<G4int, const G4double*> Z46N60(60,pZ46N60);
681 static const G4double pZ46N62[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
682 static const std::pair<G4int, const G4double*> Z46N62(62,pZ46N62);
683 static const G4double pZ46N64[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
684 static const std::pair<G4int, const G4double*> Z46N64(64,pZ46N64);
685 static const std::pair<G4int, const G4double*> Z46[N46]={Z46N56, Z46N58, Z46N59,
686 Z46N60, Z46N62, Z46N64};
687 //==> Ag(Z=47)
688 static const G4int N47=2;
689 static const G4double pZ47N60[4]={3.E-12, 500., .01, 2.7E-5};
690 static const std::pair<G4int, const G4double*> Z47N60(60,pZ47N60);
691 static const G4double pZ47N62[4]={3.E-12, 480., .01, 2.5E-4};
692 static const std::pair<G4int, const G4double*> Z47N62(62,pZ47N62);
693 static const std::pair<G4int, const G4double*> Z47[N47]={Z47N60, Z47N62};
694 //==> Cd(Z=48)
695 static const G4int N48=8;
696 static const G4double pZ48N58[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
697 static const std::pair<G4int, const G4double*> Z48N58(58,pZ48N58);
698 static const G4double pZ48N60[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
699 static const std::pair<G4int, const G4double*> Z48N60(60,pZ48N60);
700 static const G4double pZ48N62[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
701 static const std::pair<G4int, const G4double*> Z48N62(62,pZ48N62);
702 static const G4double pZ48N63[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
703 static const std::pair<G4int, const G4double*> Z48N63(63,pZ48N63);
704 static const G4double pZ48N64[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
705 static const std::pair<G4int, const G4double*> Z48N64(64,pZ48N64);
706 static const G4double pZ48N65[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
707 static const std::pair<G4int, const G4double*> Z48N65(65,pZ48N65);
708 static const G4double pZ48N66[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
709 static const std::pair<G4int, const G4double*> Z48N66(66,pZ48N66);
710 static const G4double pZ48N68[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
711 static const std::pair<G4int, const G4double*> Z48N68(68,pZ48N68);
712 static const std::pair<G4int, const G4double*> Z48[N48]={Z48N58, Z48N60, Z48N62, Z48N63,
713 Z48N64, Z48N65, Z48N66, Z48N68};
714 //==> In(Z=49)
715 static const G4int N49=2;
716 static const G4double pZ49N64[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
717 static const std::pair<G4int, const G4double*> Z49N64(64,pZ49N64);
718 static const G4double pZ49N66[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
719 static const std::pair<G4int, const G4double*> Z49N66(66,pZ49N66);
720 static const std::pair<G4int, const G4double*> Z49[N49]={Z49N64, Z49N66};
721 //==> Sn(Z=50)
722 static const G4int N50=10;
723 static const G4double pZ50N62[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
724 static const std::pair<G4int, const G4double*> Z50N62(62,pZ50N62);
725 static const G4double pZ50N64[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
726 static const std::pair<G4int, const G4double*> Z50N64(64,pZ50N64);
727 static const G4double pZ50N65[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
728 static const std::pair<G4int, const G4double*> Z50N65(65,pZ50N65);
729 static const G4double pZ50N66[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
730 static const std::pair<G4int, const G4double*> Z50N66(66,pZ50N66);
731 static const G4double pZ50N67[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
732 static const std::pair<G4int, const G4double*> Z50N67(67,pZ50N67);
733 static const G4double pZ50N68[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
734 static const std::pair<G4int, const G4double*> Z50N68(68,pZ50N68);
735 static const G4double pZ50N69[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
736 static const std::pair<G4int, const G4double*> Z50N69(69,pZ50N69);
737 static const G4double pZ50N70[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
738 static const std::pair<G4int, const G4double*> Z50N70(70,pZ50N70);
739 static const G4double pZ50N72[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
740 static const std::pair<G4int, const G4double*> Z50N72(72,pZ50N72);
741 static const G4double pZ50N74[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
742 static const std::pair<G4int, const G4double*> Z50N74(74,pZ50N74);
743 static const std::pair<G4int, const G4double*> Z50[N50]={Z50N62, Z50N64, Z50N65, Z50N66,
744 Z50N67, Z50N68, Z50N69, Z50N70,
745 Z50N72, Z50N74};
746 //==> Sb(Z=51)
747 static const G4int N51=2;
748 static const G4double pZ51N70[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
749 static const std::pair<G4int, const G4double*> Z51N70(70,pZ51N70);
750 static const G4double pZ51N72[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
751 static const std::pair<G4int, const G4double*> Z51N72(72,pZ51N72);
752 static const std::pair<G4int, const G4double*> Z51[N51]={Z51N70, Z51N72};
753 //==> Te(Z=52)
754 static const G4int N52=8;
755 static const G4double pZ52N68[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
756 static const std::pair<G4int, const G4double*> Z52N68(68,pZ52N68);
757 static const G4double pZ52N70[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
758 static const std::pair<G4int, const G4double*> Z52N70(70,pZ52N70);
759 static const G4double pZ52N71[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
760 static const std::pair<G4int, const G4double*> Z52N71(71,pZ52N71);
761 static const G4double pZ52N72[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
762 static const std::pair<G4int, const G4double*> Z52N72(72,pZ52N72);
763 static const G4double pZ52N73[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
764 static const std::pair<G4int, const G4double*> Z52N73(73,pZ52N73);
765 static const G4double pZ52N74[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
766 static const std::pair<G4int, const G4double*> Z52N74(74,pZ52N74);
767 static const G4double pZ52N76[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
768 static const std::pair<G4int, const G4double*> Z52N76(76,pZ52N76);
769 static const G4double pZ52N78[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
770 static const std::pair<G4int, const G4double*> Z52N78(78,pZ52N78);
771 static const std::pair<G4int, const G4double*> Z52[N52]={Z52N68, Z52N70, Z52N71, Z52N72,
772 Z52N73, Z52N74, Z52N76, Z52N78};
773 //==> I (Z=53)
774 static const G4int N53=1;
775 static const G4double pZ53N74[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
776 static const std::pair<G4int, const G4double*> Z53N74(74,pZ53N74);
777 static const std::pair<G4int, const G4double*> Z53[N53]={Z53N74};
778 //==> Xe(Z=54)
779 static const G4int N54=9;
780 static const G4double pZ54N70[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
781 static const std::pair<G4int, const G4double*> Z54N70(70,pZ54N70);
782 static const G4double pZ54N72[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
783 static const std::pair<G4int, const G4double*> Z54N72(72,pZ54N72);
784 static const G4double pZ54N74[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
785 static const std::pair<G4int, const G4double*> Z54N74(74,pZ54N74);
786 static const G4double pZ54N75[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
787 static const std::pair<G4int, const G4double*> Z54N75(75,pZ54N75);
788 static const G4double pZ54N76[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
789 static const std::pair<G4int, const G4double*> Z54N76(76,pZ54N76);
790 static const G4double pZ54N77[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
791 static const std::pair<G4int, const G4double*> Z54N77(77,pZ54N77);
792 static const G4double pZ54N78[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
793 static const std::pair<G4int, const G4double*> Z54N78(78,pZ54N78);
794 static const G4double pZ54N80[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
795 static const std::pair<G4int, const G4double*> Z54N80(80,pZ54N80);
796 static const G4double pZ54N82[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
797 static const std::pair<G4int, const G4double*> Z54N82(82,pZ54N82);
798 static const std::pair<G4int, const G4double*> Z54[N54]={Z54N70, Z54N72, Z54N74,
799 Z54N75, Z54N76, Z54N77,
800 Z54N78, Z54N80, Z54N82};
801 //==> Cs(Z=55)
802 static const G4int N55=1;
803 static const G4double pZ55N78[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
804 static const std::pair<G4int, const G4double*> Z55N78(78,pZ55N78);
805 static const std::pair<G4int, const G4double*> Z55[N55]={Z55N78};
806 //==> Ba(Z=56)
807 static const G4int N56=7;
808 static const G4double pZ56N74[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
809 static const std::pair<G4int, const G4double*> Z56N74(74,pZ56N74);
810 static const G4double pZ56N76[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
811 static const std::pair<G4int, const G4double*> Z56N76(76,pZ56N76);
812 static const G4double pZ56N78[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
813 static const std::pair<G4int, const G4double*> Z56N78(78,pZ56N78);
814 static const G4double pZ56N79[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
815 static const std::pair<G4int, const G4double*> Z56N79(79,pZ56N79);
816 static const G4double pZ56N80[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
817 static const std::pair<G4int, const G4double*> Z56N80(80,pZ56N80);
818 static const G4double pZ56N81[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
819 static const std::pair<G4int, const G4double*> Z56N81(81,pZ56N81);
820 static const G4double pZ56N82[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
821 static const std::pair<G4int, const G4double*> Z56N82(82,pZ56N82);
822 static const std::pair<G4int, const G4double*> Z56[N56]={Z56N74, Z56N76, Z56N78, Z56N79,
823 Z56N80, Z56N81, Z56N82};
824 //==> La(Z=57)
825 static const G4int N57=2;
826 static const G4double pZ57N81[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
827 static const std::pair<G4int, const G4double*> Z57N81(81,pZ57N81);
828 static const G4double pZ57N82[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
829 static const std::pair<G4int, const G4double*> Z57N82(82,pZ57N82);
830 static const std::pair<G4int, const G4double*> Z57[N57]={Z57N81, Z57N82};
831 //==> Ce(Z=58)
832 static const G4int N58=4;
833 static const G4double pZ58N78[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
834 static const std::pair<G4int, const G4double*> Z58N78(78,pZ58N78);
835 static const G4double pZ58N80[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
836 static const std::pair<G4int, const G4double*> Z58N80(80,pZ58N80);
837 static const G4double pZ58N82[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
838 static const std::pair<G4int, const G4double*> Z58N82(82,pZ58N82);
839 static const G4double pZ58N84[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
840 static const std::pair<G4int, const G4double*> Z58N84(84,pZ58N84);
841 static const std::pair<G4int, const G4double*> Z58[N58]={Z58N78, Z58N80, Z58N82, Z58N84};
842 //==> Pr(Z=59)
843 static const G4int N59=1;
844 static const G4double pZ59N82[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
845 static const std::pair<G4int, const G4double*> Z59N82(82,pZ59N82);
846 static const std::pair<G4int, const G4double*> Z59[N59]={Z59N82};
847 //==> Nd(Z=60)
848 static const G4int N60=7;
849 static const G4double pZ60N82[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
850 static const std::pair<G4int, const G4double*> Z60N82(82,pZ60N82);
851 static const G4double pZ60N83[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
852 static const std::pair<G4int, const G4double*> Z60N83(83,pZ60N83);
853 static const G4double pZ60N84[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
854 static const std::pair<G4int, const G4double*> Z60N84(84,pZ60N84);
855 static const G4double pZ60N85[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
856 static const std::pair<G4int, const G4double*> Z60N85(85,pZ60N85);
857 static const G4double pZ60N86[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
858 static const std::pair<G4int, const G4double*> Z60N86(86,pZ60N86);
859 static const G4double pZ60N88[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
860 static const std::pair<G4int, const G4double*> Z60N88(88,pZ60N88);
861 static const G4double pZ60N90[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
862 static const std::pair<G4int, const G4double*> Z60N90(90,pZ60N90);
863 static const std::pair<G4int, const G4double*> Z60[N60]={Z60N82, Z60N83, Z60N84, Z60N85,
864 Z60N86, Z60N88, Z60N90};
865 //==> Mo(Z=61)
866 static const G4int N61=1;
867 static const G4double pZ61N0[4]={3.E-12, 500., .01, 2.5E-4}; // *** NoStableIsotopes ***
868 static const std::pair<G4int, const G4double*> Z61N0(0,pZ61N0);
869 static const std::pair<G4int, const G4double*> Z61[N61]={Z61N0};
870 //==> Sm(Z=62)
871 static const G4int N62=7;
872 static const G4double pZ62N82[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
873 static const std::pair<G4int, const G4double*> Z62N82(82,pZ62N82);
874 static const G4double pZ62N85[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
875 static const std::pair<G4int, const G4double*> Z62N85(85,pZ62N85);
876 static const G4double pZ62N86[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
877 static const std::pair<G4int, const G4double*> Z62N86(86,pZ62N86);
878 static const G4double pZ62N87[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
879 static const std::pair<G4int, const G4double*> Z62N87(87,pZ62N87);
880 static const G4double pZ62N88[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
881 static const std::pair<G4int, const G4double*> Z62N88(88,pZ62N88);
882 static const G4double pZ62N90[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
883 static const std::pair<G4int, const G4double*> Z62N90(90,pZ62N90);
884 static const G4double pZ62N92[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
885 static const std::pair<G4int, const G4double*> Z62N92(92,pZ62N92);
886 static const std::pair<G4int, const G4double*> Z62[N62]={Z62N82, Z62N85, Z62N86, Z62N87,
887 Z62N88, Z62N90, Z62N92};
888 //==> Eu(Z=63)
889 static const G4int N63=2;
890 static const G4double pZ63N88[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
891 static const std::pair<G4int, const G4double*> Z63N88(88,pZ63N88);
892 static const G4double pZ63N90[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
893 static const std::pair<G4int, const G4double*> Z63N90(90,pZ63N90);
894 static const std::pair<G4int, const G4double*> Z63[N63]={Z63N88, Z63N90};
895 //==> Gd(Z=64)
896 static const G4int N64=7;
897 static const G4double pZ64N88[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
898 static const std::pair<G4int, const G4double*> Z64N88(88,pZ64N88);
899 static const G4double pZ64N90[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
900 static const std::pair<G4int, const G4double*> Z64N90(90,pZ64N90);
901 static const G4double pZ64N91[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
902 static const std::pair<G4int, const G4double*> Z64N91(91,pZ64N91);
903 static const G4double pZ64N92[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
904 static const std::pair<G4int, const G4double*> Z64N92(92,pZ64N92);
905 static const G4double pZ64N93[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
906 static const std::pair<G4int, const G4double*> Z64N93(93,pZ64N93);
907 static const G4double pZ64N94[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
908 static const std::pair<G4int, const G4double*> Z64N94(94,pZ64N94);
909 static const G4double pZ64N96[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
910 static const std::pair<G4int, const G4double*> Z64N96(96,pZ64N96);
911 static const std::pair<G4int, const G4double*> Z64[N64]={Z64N88, Z64N90, Z64N91, Z64N92,
912 Z64N93, Z64N94, Z64N96};
913 //==> Tb(Z=65)
914 static const G4int N65=1;
915 static const G4double pZ65N94[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
916 static const std::pair<G4int, const G4double*> Z65N94(82,pZ65N94);
917 static const std::pair<G4int, const G4double*> Z65[N65]={Z65N94};
918 //==> Dy(Z=66)
919 static const G4int N66=7;
920 static const G4double pZ66N90[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
921 static const std::pair<G4int, const G4double*> Z66N90(90,pZ66N90);
922 static const G4double pZ66N92[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
923 static const std::pair<G4int, const G4double*> Z66N92(92,pZ66N92);
924 static const G4double pZ66N94[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
925 static const std::pair<G4int, const G4double*> Z66N94(94,pZ66N94);
926 static const G4double pZ66N95[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
927 static const std::pair<G4int, const G4double*> Z66N95(95,pZ66N95);
928 static const G4double pZ66N96[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
929 static const std::pair<G4int, const G4double*> Z66N96(96,pZ66N96);
930 static const G4double pZ66N97[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
931 static const std::pair<G4int, const G4double*> Z66N97(97,pZ66N97);
932 static const G4double pZ66N98[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
933 static const std::pair<G4int, const G4double*> Z66N98(98,pZ66N98);
934 static const std::pair<G4int, const G4double*> Z66[N66]={Z66N90, Z66N92, Z66N94, Z66N95,
935 Z66N96, Z66N97, Z66N98};
936 //==> Ho(Z=67)
937 static const G4int N67=1;
938 static const G4double pZ67N98[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
939 static const std::pair<G4int, const G4double*> Z67N98(98,pZ67N98);
940 static const std::pair<G4int, const G4double*> Z67[N67]={Z67N98};
941 //==> Er(Z=68)
942 static const G4int N68=6;
943 static const G4double pZ68N94[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
944 static const std::pair<G4int, const G4double*> Z68N94(94,pZ68N94);
945 static const G4double pZ68N96[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
946 static const std::pair<G4int, const G4double*> Z68N96(96,pZ68N96);
947 static const G4double pZ68N98[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
948 static const std::pair<G4int, const G4double*> Z68N98(98,pZ68N98);
949 static const G4double pZ68N99[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
950 static const std::pair<G4int, const G4double*> Z68N99(99,pZ68N99);
951 static const G4double pZ68N100[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
952 static const std::pair<G4int, const G4double*> Z68N100(100,pZ68N100);
953 static const G4double pZ68N102[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
954 static const std::pair<G4int, const G4double*> Z68N102(102,pZ68N102);
955 static const std::pair<G4int, const G4double*> Z68[N68]={Z68N94, Z68N96, Z68N98,
956 Z68N99, Z68N100, Z68N102};
957 //==> Tm(Z=69)
958 static const G4int N69=1;
959 static const G4double pZ69N100[4]={3.E-12, 500., .01, 2.5E-4}; // *** No DATA ***
960 static const std::pair<G4int, const G4double*> Z69N100(100,pZ69N100);
961 static const std::pair<G4int, const G4double*> Z69[N69]={Z69N100};
962 //==> Yb(Z=70)
963 static const G4int N70=7;
964 static const G4double pZ70N98[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
965 static const std::pair<G4int, const G4double*> Z70N98(98,pZ70N98);
966 static const G4double pZ70N100[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
967 static const std::pair<G4int, const G4double*> Z70N100(100,pZ70N100);
968 static const G4double pZ70N101[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
969 static const std::pair<G4int, const G4double*> Z70N101(101,pZ70N101);
970 static const G4double pZ70N102[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
971 static const std::pair<G4int, const G4double*> Z70N102(102,pZ70N102);
972 static const G4double pZ70N103[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
973 static const std::pair<G4int, const G4double*> Z70N103(103,pZ70N103);
974 static const G4double pZ70N104[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
975 static const std::pair<G4int, const G4double*> Z70N104(104,pZ70N104);
976 static const G4double pZ70N106[4]={3.E-12, 500., .01, 2.5E-4}; // *** No DATA ***
977 static const std::pair<G4int, const G4double*> Z70N106(106,pZ70N106);
978 static const std::pair<G4int, const G4double*> Z70[N70]={Z70N98, Z70N100, Z70N101,
979 Z70N102, Z70N103, Z70N104,
980 Z70N106};
981 //==> Lu(Z=71)
982 static const G4int N71=2;
983 static const G4double pZ71N104[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
984 static const std::pair<G4int, const G4double*> Z71N104(104,pZ71N104);
985 static const G4double pZ71N105[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
986 static const std::pair<G4int, const G4double*> Z71N105(105,pZ71N105);
987 static const std::pair<G4int, const G4double*> Z71[N71]={Z71N104, Z71N105};
988 //==> Hf(Z=72)
989 static const G4int N72=6;
990 static const G4double pZ72N102[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
991 static const std::pair<G4int, const G4double*> Z72N102(102,pZ72N102);
992 static const G4double pZ72N104[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
993 static const std::pair<G4int, const G4double*> Z72N104(104,pZ72N104);
994 static const G4double pZ72N105[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
995 static const std::pair<G4int, const G4double*> Z72N105(105,pZ72N105);
996 static const G4double pZ72N106[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
997 static const std::pair<G4int, const G4double*> Z72N106(106,pZ72N106);
998 static const G4double pZ72N107[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
999 static const std::pair<G4int, const G4double*> Z72N107(107,pZ72N107);
1000 static const G4double pZ72N108[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
1001 static const std::pair<G4int, const G4double*> Z72N108(108,pZ72N108);
1002 static const std::pair<G4int, const G4double*> Z72[N72]={Z72N102, Z72N104, Z72N105,
1003 Z72N106, Z72N107, Z72N108};
1004 //==> Ta(Z=73)
1005 static const G4int N73=1;
1006 static const G4double pZ73N108[4]={4.E-12, 1100., .027, 1.E-3};
1007 static const std::pair<G4int, const G4double*> Z73N108(108,pZ73N108);
1008 static const std::pair<G4int, const G4double*> Z73[N73]={Z73N108};
1009 //==> W (Z=74)
1010 static const G4int N74=5;
1011 static const G4double pZ74N106[4]={7.E-12, 1000., .03, 2.E-4}; // *** No DATA ***
1012 static const std::pair<G4int, const G4double*> Z74N106(106,pZ74N106);
1013 static const G4double pZ74N108[4]={7.E-12, 1300., .03, 1.5E-4};
1014 static const std::pair<G4int, const G4double*> Z74N108(108,pZ74N108);
1015 static const G4double pZ74N109[4]={2.E-12, 1700., .023, 2.E-4};
1016 static const std::pair<G4int, const G4double*> Z74N109(109,pZ74N109);
1017 static const G4double pZ74N110[4]={7.E-12, 1100., .03, 1.5E-4};
1018 static const std::pair<G4int, const G4double*> Z74N110(110,pZ74N110);
1019 static const G4double pZ74N112[4]={7.E-12, 1100., .03, 1.5E-4};
1020 static const std::pair<G4int, const G4double*> Z74N112(112,pZ74N112);
1021 static const std::pair<G4int, const G4double*> Z74[N74]={Z74N106, Z74N108, Z74N109,
1022 Z74N110, Z74N112};
1023 //==> Re(Z=75)
1024 static const G4int N75=2;
1025 static const G4double pZ75N110[4]={5.E-12, 1000., .025, 3.E-4};
1026 static const std::pair<G4int, const G4double*> Z75N110(110,pZ75N110);
1027 static const G4double pZ75N112[4]={5.E-12, 1000., .025, 3.E-4};
1028 static const std::pair<G4int, const G4double*> Z75N112(112,pZ75N112);
1029 static const std::pair<G4int, const G4double*> Z75[N75]={Z75N110, Z75N112};
1030 //==> Os(Z=76)
1031 static const G4int N76=7;
1032 static const G4double pZ76N108[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
1033 static const std::pair<G4int, const G4double*> Z76N108(108,pZ76N108);
1034 static const G4double pZ76N110[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
1035 static const std::pair<G4int, const G4double*> Z76N110(110,pZ76N110);
1036 static const G4double pZ76N111[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
1037 static const std::pair<G4int, const G4double*> Z76N111(111,pZ76N111);
1038 static const G4double pZ76N112[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
1039 static const std::pair<G4int, const G4double*> Z76N112(112,pZ76N112);
1040 static const G4double pZ76N113[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
1041 static const std::pair<G4int, const G4double*> Z76N113(113,pZ76N113);
1042 static const G4double pZ76N114[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
1043 static const std::pair<G4int, const G4double*> Z76N114(114,pZ76N114);
1044 static const G4double pZ76N116[4]={3.E-12, 500., .01, 2.5E-4}; // *** No DATA ***
1045 static const std::pair<G4int, const G4double*> Z76N116(116,pZ76N116);
1046 static const std::pair<G4int, const G4double*> Z76[N76]={Z76N108, Z76N110, Z76N111,
1047 Z76N112, Z76N113, Z76N114,
1048 Z76N116};
1049 //==> Ir(Z=77)
1050 static const G4int N77=2;
1051 static const G4double pZ77N114[4]={4.E-12, 1700., .028, 2.E-4};
1052 static const std::pair<G4int, const G4double*> Z77N114(114,pZ77N114);
1053 static const G4double pZ77N116[4]={5.E-12, 1500., .028, 2.E-4};
1054 static const std::pair<G4int, const G4double*> Z77N116(116,pZ77N116);
1055 static const std::pair<G4int, const G4double*> Z77[N77]={Z77N114, Z77N116};
1056 //==> Pt(Z=78)
1057 static const G4int N78=6;
1058 static const G4double pZ78N112[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
1059 static const std::pair<G4int, const G4double*> Z78N112(112,pZ78N112);
1060 static const G4double pZ78N114[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
1061 static const std::pair<G4int, const G4double*> Z78N114(114,pZ78N114);
1062 static const G4double pZ78N116[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
1063 static const std::pair<G4int, const G4double*> Z78N116(116,pZ78N116);
1064 static const G4double pZ78N117[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
1065 static const std::pair<G4int, const G4double*> Z78N117(117,pZ78N117);
1066 static const G4double pZ78N118[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
1067 static const std::pair<G4int, const G4double*> Z78N118(118,pZ78N118);
1068 static const G4double pZ78N120[4]={3.E-12, 500., .01, 2.5E-4}; // *** No DATA ***
1069 static const std::pair<G4int, const G4double*> Z78N120(120,pZ78N120);
1070 static const std::pair<G4int, const G4double*> Z78[N78]={Z78N112, Z78N114, Z78N116,
1071 Z78N117, Z78N118, Z78N120};
1072 //==> Au(Z=79)
1073 static const G4int N79=1;
1074 static const G4double pZ79N118[4]={.2E-9, 1600., .043, 5.E-4};
1075 static const std::pair<G4int, const G4double*> Z79N118(118,pZ79N118);
1076 static const std::pair<G4int, const G4double*> Z79[N79]={Z79N118};
1077 //==> Hg(Z=80)
1078 static const G4int N80=7;
1079 static const G4double pZ80N116[4]={6.E-8, 2500., .085, 2.E-3};
1080 static const std::pair<G4int, const G4double*> Z80N116(116,pZ80N116);
1081 static const G4double pZ80N118[4]={6.E-8, 2500., .083, 1.7E-3};
1082 static const std::pair<G4int, const G4double*> Z80N118(118,pZ80N118);
1083 static const G4double pZ80N119[4]={6.E-8, 2600., .073, 2.5E-3};
1084 static const std::pair<G4int, const G4double*> Z80N119(119,pZ80N119);
1085 static const G4double pZ80N120[4]={6.E-8, 2500., .084, 1.7E-3};
1086 static const std::pair<G4int, const G4double*> Z80N120(120,pZ80N120);
1087 static const G4double pZ80N121[4]={1.5E-7, 2600., .078, 4.E-3};
1088 static const std::pair<G4int, const G4double*> Z80N121(121,pZ80N121);
1089 static const G4double pZ80N122[4]={6.E-8, 2500., .083, 1.6E-3};
1090 static const std::pair<G4int, const G4double*> Z80N122(122,pZ80N122);
1091 static const G4double pZ80N124[4]={6.E-8, 2500., .083, 1.5E-3};
1092 static const std::pair<G4int, const G4double*> Z80N124(124,pZ80N124);
1093 static const std::pair<G4int, const G4double*> Z80[N80]={Z80N116, Z80N118, Z80N119,
1094 Z80N120, Z80N121, Z80N122,
1095 Z80N124};
1096 //==> Tl(Z=81)
1097 static const G4int N81=2;
1098 static const G4double pZ81N122[4]={3.E-12, 500., .01, 2.5E-5}; // *** No DATA ***
1099 static const std::pair<G4int, const G4double*> Z81N122(122,pZ81N122);
1100 static const G4double pZ81N124[4]={3.E-12, 500., .01, 2.5E-4}; // *** No DATA ***
1101 static const std::pair<G4int, const G4double*> Z81N124(124,pZ81N124);
1102 static const std::pair<G4int, const G4double*> Z81[N81]={Z81N122, Z81N124};
1103 //==> Pb(Z=82)
1104 static const G4int N82=4;
1105 static const G4double pZ82N122[4]={.2E-9, 40., .002, 6.E-4};
1106 static const std::pair<G4int, const G4double*> Z82N122(122,pZ82N122);
1107 static const G4double pZ82N124[4]={6.E-9, 1700., .076, 7.E-4};
1108 static const std::pair<G4int, const G4double*> Z82N124(124,pZ82N124);
1109 static const G4double pZ82N125[4]={.2E-9, 770., .057, 4.5E-4};
1110 static const std::pair<G4int, const G4double*> Z82N125(125,pZ82N125);
1111 static const G4double pZ82N126[4]={4.E-9, 0., .051, 2.E-4};
1112 static const std::pair<G4int, const G4double*> Z82N126(126,pZ82N126);
1113 static const std::pair<G4int, const G4double*> Z82[N82]={Z82N122, Z82N124, Z82N125,
1114 Z82N126};
1115 //==> Bi(Z=83)
1116 static const G4int N83=1;
1117 static const G4double pZ83N126[4]={1.5E-9, 150., .052, 5.E-5};
1118 static const std::pair<G4int, const G4double*> Z83N126(126,pZ83N126);
1119 static const std::pair<G4int, const G4double*> Z83[N83]={Z83N126};
1120 //==> Po(Z=84)
1121 static const G4int N84=1;
1122 static const G4double pZ84N0[4]={3.E-12, 500., .01, 2.5E-4}; // *** NoStableIsotopes ***
1123 static const std::pair<G4int, const G4double*> Z84N0(0,pZ84N0);
1124 static const std::pair<G4int, const G4double*> Z84[N84]={Z84N0};
1125 //==> At(Z=85)
1126 static const G4int N85=1;
1127 static const G4double pZ85N0[4]={3.E-12, 500., .01, 2.5E-4}; // *** NoStableIsotopes ***
1128 static const std::pair<G4int, const G4double*> Z85N0(0,pZ85N0);
1129 static const std::pair<G4int, const G4double*> Z85[N85]={Z85N0};
1130 //==> Rn(Z=86)
1131 static const G4int N86=1;
1132 static const G4double pZ86N0[4]={3.E-12, 500., .01, 2.5E-4}; // *** NoStableIsotopes ***
1133 static const std::pair<G4int, const G4double*> Z86N0(0,pZ86N0);
1134 static const std::pair<G4int, const G4double*> Z86[N86]={Z86N0};
1135 //==> Fr(Z=87)
1136 static const G4int N87=1;
1137 static const G4double pZ87N0[4]={3.E-12, 500., .01, 2.5E-4}; // *** NoStableIsotopes ***
1138 static const std::pair<G4int, const G4double*> Z87N0(0,pZ87N0);
1139 static const std::pair<G4int, const G4double*> Z87[N87]={Z87N0};
1140 //==> Ra(Z=88)
1141 static const G4int N88=1;
1142 static const G4double pZ88N138[4]={3.E-9, 2200., .057, 1.2E-3};
1143 static const std::pair<G4int, const G4double*> Z88N138(138,pZ88N138);
1144 static const std::pair<G4int, const G4double*> Z88[N88]={Z88N138};
1145 //==> Ac(Z=89)
1146 static const G4int N89=1;
1147 static const G4double pZ89N0[4]={3.E-12, 500., .01, 2.5E-4}; // *** NoStableIsotopes ***
1148 static const std::pair<G4int, const G4double*> Z89N0(0,pZ89N0);
1149 static const std::pair<G4int, const G4double*> Z89[N89]={Z89N0};
1150 //==> Th(Z=90)
1151 static const G4int N90=1;
1152 static const G4double pZ90N142[4]={1.E-11, 1200., .028, 3.E-4};
1153 static const std::pair<G4int, const G4double*> Z90N142(142,pZ90N142);
1154 static const std::pair<G4int, const G4double*> Z90[N90]={Z90N142};
1155 //==> Pa(Z=91)
1156 static const G4int N91=1;
1157 static const G4double pZ91N0[4]={3.E-12, 500., .01, 2.5E-4}; // *** NoStableIsotopes ***
1158 static const std::pair<G4int, const G4double*> Z91N0(0,pZ91N0);
1159 static const std::pair<G4int, const G4double*> Z91[N91]={Z91N0};
1160 //==> U (Z=92)
1161 static const G4int N92=2;
1162 static const G4double pZ92N143[4]={2.E-11, 2700., .026, 6.E-4};
1163 static const std::pair<G4int, const G4double*> Z92N143(143,pZ92N143);
1164 static const G4double pZ92N146[4]={1.E-11, 1700., .029, 2.5E-4};
1165 static const std::pair<G4int, const G4double*> Z92N146(146,pZ92N146);
1166 static const std::pair<G4int, const G4double*> Z92[N92]={Z92N143, Z92N146};
1167 //==> Np(Z=93)
1168 static const G4int N93=1;
1169 static const G4double pZ93N144[4]={4.E-8, 3700., .066, 3.5E-3};
1170 static const std::pair<G4int, const G4double*> Z93N144(144,pZ93N144);
1171 static const std::pair<G4int, const G4double*> Z93[N93]={Z93N144};
1172 //==> Pu(Z=94)
1173 static const G4int N94=3;
1174 static const G4double pZ94N145[4]={8.E-11, 2900., .029, 1.3E-3}; // *** Artificial ***
1175 static const std::pair<G4int, const G4double*> Z94N145(145,pZ94N145);
1176 static const G4double pZ94N148[4]={9.E-12, 1400., .025, 3.E-4}; // *** Artificial ***
1177 static const std::pair<G4int, const G4double*> Z94N148(148,pZ94N148);
1178 static const G4double pZ94N150[4]={4.E-12, 1500., .023, 1.2E-4};
1179 static const std::pair<G4int, const G4double*> Z94N150(150,pZ94N150);
1180 static const std::pair<G4int, const G4double*> Z94[N94]={Z94N145, Z94N148, Z94N150};
1181 //==> Am(Z=95)
1182 static const G4int N95=1;
1183 static const G4double pZ95N0[4]={3.E-12, 500., .01, 2.5E-4}; // *** NoStableIsotopes ***
1184 static const std::pair<G4int, const G4double*> Z95N0(0,pZ95N0);
1185 static const std::pair<G4int, const G4double*> Z95[N95]={Z95N0};
1186 //==> Cm(Z=96)
1187 static const G4int N96=1;
1188 static const G4double pZ96N151[4]={1.5E-8, 3700., .055, 2.E-3};
1189 static const std::pair<G4int, const G4double*> Z96N151(151,pZ96N151);
1190 static const std::pair<G4int, const G4double*> Z96[N96]={Z96N151};
1191
1192 static const G4int NZ=97; // #of Elements covered by CHIPS
1193 static const std::pair<G4int, const G4double*>* Pars[NZ]={Z0,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,
1194 Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18,Z19,Z20,Z21,Z22,Z23,Z24,Z25,Z26,Z27,Z28,Z29,Z30,
1195 Z31,Z32,Z33,Z34,Z35,Z36,Z37,Z38,Z39,Z40,Z41,Z42,Z43,Z44,Z45,Z46,Z47,Z48,Z49,Z50,Z51,
1196 Z52,Z53,Z54,Z55,Z56,Z57,Z58,Z59,Z60,Z61,Z62,Z63,Z64,Z65,Z66,Z67,Z68,Z69,Z70,Z71,Z72,
1197 Z73,Z74,Z75,Z76,Z77,Z78,Z79,Z80,Z81,Z82,Z83,Z84,Z85,Z86,Z87,Z88,Z89,Z90,Z91,Z92,Z93,
1198 Z94,Z95,Z96};
1199 static const G4int NIso[NZ]={N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15,N16,
1200 N17,N18,N19,N20,N21,N22,N23,N24,N25,N26,N27,N28,N29,N30,N31,N32,N33,N34,N35,N36,N37,
1201 N38,N39,N40,N41,N42,N43,N44,N45,N46,N47,N48,N49,N50,N51,N52,N53,N54,N55,N56,N57,N58,
1202 N59,N60,N61,N62,N63,N64,N65,N66,N67,N68,N69,N70,N71,N72,N73,N74,N75,N76,N77,N78,N79,
1203 N80,N81,N82,N83,N84,N85,N86,N87,N88,N89,N90,N91,N92,N93,N94,N95,N96};
1204 //G4int curN=Pars[1][0].first;
1205 //G4double par=Pars[1][0].second[1];
1206 //G4cout<<"-Warning-G4ChipsNeutronInelasticXS::CSLin: N="<<curN<<", P="<<par<<G4endl;
1207 G4double sigma=0.;
1208 G4double lP=G4Log(P);
1209 if( (tZ==1 && !tN) || (!tZ && tN==1)){if(P>.35) sigma=CrossSectionFormula(tZ,tN,P,lP);}
1210 else if(tZ<97 && tN<152) // General solution (*** Z/A limits ***)
1211 {
1212 HEthresh=1.E-4; // Default guess
1213 G4double pex=0.;
1214 G4double pos=0.;
1215 G4double wid=1.;
1216 G4int nn=NIso[tZ];
1217 G4bool nfound=true;
1218 if(nn) for (G4int in=0; in<nn; in++)
1219 {
1220 std::pair<G4int, const G4double*> curIs=Pars[tZ][in];
1221 if(curIs.first == tN)
1222 {
1223 const G4double* curT=curIs.second;
1224 HEthresh= curT[0];
1225 pex = curT[1];
1226 pos = curT[2];
1227 wid = curT[3];
1228 nfound = false;
1229 break;
1230 }
1231 }
1232 if(nfound) G4cout<<"-Warning-G4ChipsNeutronInelasticXS::CSLin: Z="<<tZ<<", N="
1233 <<tN<<" isotope is not implemented in CHIPS"<<G4endl;
1234 sigma=CrossSectionFormula(tZ,tN,P,lP);
1235 if(pex>0.)
1236 {
1237 G4double dp=P-pos;
1238 sigma+=pex*G4Exp(-dp*dp/wid);
1239 }
1240 }
1241 else
1242 {
1243 G4cerr<<"-Warning-G4ChipsNeutronNuclearCroSect::CSLin:*Bad A* Z="<<tZ<<", N="<<tN<<G4endl;
1244 sigma=0.;
1245 }
1246 if(sigma<0.) return 0.;
1247 return sigma;
1248}
1249
1250// Calculation formula for proton-nuclear inelastic cross-section (mb) log(P in GeV/c)
1252{
1253 G4double P=G4Exp(lP);
1254 return CrossSectionFormula(tZ, tN, P, lP);
1255}
1256// Calculation formula for proton-nuclear inelastic cross-section (mb) log(P in GeV/c)
1258 G4double P, G4double lP)
1259{
1260 G4double sigma=0.;
1261 if(tZ==1 && !tN) // np interaction from G4QuasiElasticRatios
1262 {
1263
1264 G4double El(0.), To(0.); // Uzhi
1265 if(P<0.1) // Copied from G4QuasiElasticRatios Uzhi / start
1266 {
1267 G4double p2=P*P;
1268 El=1./(0.00012+p2*(0.051+0.1*p2));
1269 To=El;
1270 }
1271 else if(P>1000.)
1272 {
1273 G4double lp=G4Log(P)-3.5;
1274 G4double lp2=lp*lp;
1275 El=0.0557*lp2+6.72;
1276 To=0.3 *lp2+38.2;
1277 }
1278 else
1279 {
1280 G4double p2=P*P;
1281 G4double LE=1./(0.00012+p2*(0.051+0.1*p2));
1282 G4double lp=G4Log(P)-3.5;
1283 G4double lp2=lp*lp;
1284 G4double rp2=1./p2;
1285 El=LE+(0.0557*lp2+6.72+30./P)/(1.+0.49*rp2/P);
1286 To=LE+(0.3 *lp2+38.2)/(1.+0.54*rp2*rp2);
1287 } // Copied from G4QuasiElasticRatios Uzhi / end
1288
1289/* // Uzhi 4.03.2013
1290 G4double p2=P*P;
1291 G4double lp=lP-3.5;
1292 G4double lp2=lp*lp;
1293 G4double rp2=1./p2;
1294 G4double El=(.0557*lp2+6.72+32.6/P)/(1.+rp2/P);
1295 G4double To=(.3*lp2+38.2+52.7*rp2)/(1.+2.72*rp2*rp2);
1296*/ // Uzhi 4.03.2013
1297 sigma=To-El;
1298 }
1299 else if(tZ<97 && tN<152) // General solution
1300 {
1301 //G4double lP=G4Log(P); // Already calculated
1302 G4double d=lP-4.2; //
1303 G4double p2=P*P; //
1304 G4double p4=p2*p2; //
1305 G4double a=tN+tZ; // A of the target
1306 G4double al=G4Log(a); //
1307 G4double sa=std::sqrt(a); //
1308 G4double a2=a*a; //
1309 G4double sa2=sa*a2; //
1310 G4double a3=a2*a; //
1311 G4double a4=a2*a2; //
1312 //G4double a5=a4*a;
1313 G4double a6=a4*a2; //
1314 G4double a7=a6*a; //
1315 G4double a8=a4*a4; //
1316 //G4double a12=a8*a4;
1317 //G4double a16=a8*a8;
1318 G4double c=(170.+3600./sa2)/(1.+65./sa2);
1319 G4double dl=al-3.;
1320 G4double dl2=dl*dl;
1321 G4double r=.21+.62*dl2/(1.+.5*dl2);
1322 G4double gg=42.*(G4Exp(al*0.8)+4.E-8*a4)/(1.+28./a)/(1.+5.E-5*a2);
1323 G4double e=5.*((a6+.021*a8)/(1.+.0013*a7)+.001*a3)/(1.+.0007*a2);
1324 G4double ss=5./(1.+144./a8);
1325 G4double h=HEthresh; // Individual
1326
1327 //G4double h=(.01/a4+2.5e-6/a)*(1.+7.e-8*a4)/(1.+6.e7/a12/a2);
1328 //sigma=(c+d*d)/(1.+r/p4)+(gg+e*G4Exp(-ss*P))/(1.+h/p4/p4);
1329 sigma=(c+d*d)/(1+r/p4)+(gg+e*G4Exp(-ss*P))/(1+h/p4/p4);
1330 }
1331 else
1332 {
1333 G4cerr<<"-Warning-G4ChipsNeutronNuclearCroSect::CSForm:*Bad A* Z="<<tZ<<", N="<<tN<<G4endl;
1334 sigma=0.;
1335 }
1336 if(sigma<0.) return 0.;
1337 return sigma;
1338}
1339
1341{
1342 if(DX<=0. || N<2)
1343 {
1344 G4cerr<<"***G4ChipsNeutronInelasticXS::EquLinearFit: DX="<<DX<<", N="<<N<<G4endl;
1345 return Y[0];
1346 }
1347
1348 G4int N2=N-2;
1349 G4double d=(X-X0)/DX;
1350 G4int jj=static_cast<int>(d);
1351 if (jj<0) jj=0;
1352 else if(jj>N2) jj=N2;
1353 d-=jj; // excess
1354 G4double yi=Y[jj];
1355 G4double sigma=yi+(Y[jj+1]-yi)*d;
1356
1357 return sigma;
1358}
@ LE
Definition: Evaluator.cc:65
G4_DECLARE_XS_FACTORY(G4ChipsNeutronInelasticXS)
G4double Y(G4double density)
static const G4double pos
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179
G4double G4Log(G4double x)
Definition: G4Log.hh:226
static const G4int nL
static const G4double THmin
static const G4int nH
static constexpr double millibarn
Definition: G4SIunits.hh:86
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
const G4double A[17]
G4GLOB_DLL std::ostream G4cerr
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
virtual G4bool IsIsoApplicable(const G4DynamicParticle *Pt, G4int Z, G4int A, const G4Element *elm, const G4Material *mat)
G4double CrossSectionFormula(G4int targZ, G4int targN, G4double P, G4double lP)
G4double CrossSectionLin(G4int targZ, G4int targN, G4double P)
std::vector< G4double * > * HEN
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
virtual G4double GetIsoCrossSection(const G4DynamicParticle *, G4int tgZ, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
std::vector< G4double * > * LEN
G4double EquLinearFit(G4double X, G4int N, G4double X0, G4double DX, G4double *Y)
virtual void CrossSectionDescription(std::ostream &) const
G4double CrossSectionLog(G4int targZ, G4int targN, G4double lP)
G4double CalculateCrossSection(G4int F, G4int I, G4int PDG, G4int Z, G4int N, G4double Momentum)
G4double GetTotalMomentum() const
const G4double al
Mysterious coefficient that appears in the wavefunctions.
static const G4double Z1[5]
Definition: paraMaker.cc:41
static double P[]