Geant4  10.01.p01
G4ChipsNeutronElasticXS.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: G4ChipsNeutronElasticXS.cc 88983 2015-03-17 10:24:43Z gcosmo $
28 //
29 //
30 // G4 Physics class: G4ChipsNeutronElasticXS for nA elastic cross sections
31 // Created: M.V. Kossov, CERN/ITEP(Moscow), 10-OCT-01
32 // The last update: M.V. Kossov, CERN/ITEP (Moscow) 12-Jan-10 (from G4QElCrSect)
33 //
34 // -------------------------------------------------------------------------------
35 // Short description: Interaction cross-sections for the elastic process.
36 // Class extracted from CHIPS and integrated in Geant4 by W.Pokorski
37 // -------------------------------------------------------------------------------
38 
39 
41 #include "G4SystemOfUnits.hh"
42 #include "G4DynamicParticle.hh"
43 #include "G4ParticleDefinition.hh"
44 #include "G4Neutron.hh"
45 #include "G4Nucleus.hh"
46 #include "G4ParticleTable.hh"
47 #include "G4NucleiProperties.hh"
48 #include "G4IonTable.hh"
49 
50 // factory
51 #include "G4CrossSectionFactory.hh"
52 //
54 
55 namespace {
56  G4double mNeut;
57  G4double mProt;
58  G4double mNeut2;
59 
60 }
61 
62 G4ChipsNeutronElasticXS::G4ChipsNeutronElasticXS():G4VCrossSectionDataSet(Default_Name()), nPoints(128), nLast(nPoints-1)
63 {
64  lPMin=-8.; // Min tabulated log Momentum (D)
65  lPMax= 8.; // Max tabulated log Momentum (D)
66  dlnP=(lPMax-lPMin)/nLast;// Log step in table (D)
67  onlyCS=true;// Flag to calc only CS (not Si/Bi)(L)
68  lastSIG=0.; // Last calculated cross section (L)
69  lastLP=-10.;// Last log(momOfIncidentHadron) (L)
70  lastTM=0.; // Last t_maximum (L)
71  theSS=0.; // The Last sq.slope of 1st difMax (L)
72  theS1=0.; // The Last mantissa of 1st difMax (L)
73  theB1=0.; // The Last slope of 1st difr. Max (L)
74  theS2=0.; // The Last mantissa of 2nd difMax (L)
75  theB2=0.; // The Last slope of 2nd difr. Max (L)
76  theS3=0.; // The Last mantissa of 3d difrMax (L)
77  theB3=0.; // The Last slope of 3d difructMax (L)
78  theS4=0.; // The Last mantissa of 4th difMax (L)
79  theB4=0.; // The Last slope of 4th difr. Max (L)
80  lastTZ=0; // Last atomic number of the target
81  lastTN=0; // Last # of neutrons in the target
82  lastPIN=0.; // Last initialized max momentum
83  lastCST=0; // Elastic cross-section table
84  lastPAR=0; // Parameters of FunctionalCalculation
85  lastSST=0; // E-dep of sq.slope of the 1st difMax
86  lastS1T=0; // E-dep of mantissa of the 1st difMax
87  lastB1T=0; // E-dep of theSlope of the 1st difMax
88  lastS2T=0; // E-dep of mantissa of the 2nd difMax
89  lastB2T=0; // E-dep of theSlope of the 2nd difMax
90  lastS3T=0; // E-dep of mantissa of the 3d difrMax
91  lastB3T=0; // E-dep of the slope of the 3d difMax
92  lastS4T=0; // E-dep of mantissa of the 4th difMax
93  lastB4T=0; // E-dep of theSlope of the 4th difMax
94  lastN=0; // The last N of calculated nucleus
95  lastZ=0; // The last Z of calculated nucleus
96  lastP=0.; // Last used in cross section Momentum
97  lastTH=0.; // Last threshold momentum
98  lastCS=0.; // Last value of the Cross Section
99  lastI=0; // The last position in the DAMDB
100 
101  mNeut= G4Neutron::Neutron()->GetPDGMass()*.001;// MeV to GeV
102  mProt= G4Proton::Proton()->GetPDGMass()*.001;// MeV to GeV
103  mNeut2= mNeut*mNeut;
104 }
105 
107 {
108  std::vector<G4double*>::iterator pos;
109  for (pos=CST.begin(); pos<CST.end(); pos++)
110  { delete [] *pos; }
111  CST.clear();
112  for (pos=PAR.begin(); pos<PAR.end(); pos++)
113  { delete [] *pos; }
114  PAR.clear();
115  for (pos=SST.begin(); pos<SST.end(); pos++)
116  { delete [] *pos; }
117  SST.clear();
118  for (pos=S1T.begin(); pos<S1T.end(); pos++)
119  { delete [] *pos; }
120  S1T.clear();
121  for (pos=B1T.begin(); pos<B1T.end(); pos++)
122  { delete [] *pos; }
123  B1T.clear();
124  for (pos=S2T.begin(); pos<S2T.end(); pos++)
125  { delete [] *pos; }
126  S2T.clear();
127  for (pos=B2T.begin(); pos<B2T.end(); pos++)
128  { delete [] *pos; }
129  B2T.clear();
130  for (pos=S3T.begin(); pos<S3T.end(); pos++)
131  { delete [] *pos; }
132  S3T.clear();
133  for (pos=B3T.begin(); pos<B3T.end(); pos++)
134  { delete [] *pos; }
135  B3T.clear();
136  for (pos=S4T.begin(); pos<S4T.end(); pos++)
137  { delete [] *pos; }
138  S4T.clear();
139  for (pos=B4T.begin(); pos<B4T.end(); pos++)
140  { delete [] *pos; }
141  B4T.clear();
142 }
143 
145  const G4Element*,
146  const G4Material*)
147 {
148  return true;
149 }
150 
152  const G4Isotope*,
153  const G4Element*,
154  const G4Material*)
155 {
156  G4double pMom=Pt->GetTotalMomentum();
157  G4int tgN = A - tgZ;
158 
159  return GetChipsCrossSection(pMom, tgZ, tgN, 2112);
160 }
161 
162 // The main member function giving the collision cross section (P is in IU, CS is in mb)
163 // Make pMom in independent units ! (Now it is MeV)
165 {
166 
167  G4double pEn=pMom;
168  onlyCS=false;
169 
170  G4bool in=false; // By default the isotope must be found in the AMDB
171  lastP = 0.; // New momentum history (nothing to compare with)
172  lastN = tgN; // The last N of the calculated nucleus
173  lastZ = tgZ; // The last Z of the calculated nucleus
174  lastI = colN.size(); // Size of the Associative Memory DB in the heap
175  if(lastI) for(G4int i=0; i<lastI; i++) // Loop over proj/tgZ/tgN lines of DB
176  { // The nucleus with projPDG is found in AMDB
177  if(colN[i]==tgN && colZ[i]==tgZ) // Isotope is foind in AMDB
178  {
179  lastI=i;
180  lastTH =colTH[i]; // Last THreshold (A-dependent)
181  if(pEn<=lastTH)
182  {
183  return 0.; // Energy is below the Threshold value
184  }
185  lastP =colP [i]; // Last Momentum (A-dependent)
186  lastCS =colCS[i]; // Last CrossSect (A-dependent)
187  // if(std::fabs(lastP/pMom-1.)<tolerance) //VI (do not use tolerance)
188  if(lastP == pMom) // Do not recalculate
189  {
190  CalculateCrossSection(false,-1,i,2112,lastZ,lastN,pMom); // Update param's only
191  return lastCS*millibarn; // Use theLastCS
192  }
193  in = true; // This is the case when the isotop is found in DB
194  // Momentum pMom is in IU ! @@ Units
195  lastCS=CalculateCrossSection(false,-1,i,2112,lastZ,lastN,pMom); // read & update
196  if(lastCS<=0. && pEn>lastTH) // Correct the threshold
197  {
198  lastTH=pEn;
199  }
200  break; // Go out of the LOOP with found lastI
201  }
202  }
203  if(!in) // This nucleus has not been calculated previously
204  {
206  lastCS=CalculateCrossSection(false,0,lastI,2112,lastZ,lastN,pMom);//calculate&create
207  if(lastCS<=0.)
208  {
209  lastTH = 0; // ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last
210  if(pEn>lastTH)
211  {
212  lastTH=pEn;
213  }
214  }
215  colN.push_back(tgN);
216  colZ.push_back(tgZ);
217  colP.push_back(pMom);
218  colTH.push_back(lastTH);
219  colCS.push_back(lastCS);
220  return lastCS*millibarn;
221  } // End of creation of the new set of parameters
222  else
223  {
224  colP[lastI]=pMom;
225  colCS[lastI]=lastCS;
226  }
227  return lastCS*millibarn;
228 }
229 
230 // Calculation of total elastic cross section (p in IU, CS in mb) @@ Units (?)
231 // F=0 - create AMDB, F=-1 - read&update AMDB, F=1 - update AMDB (sinchro with higher AMDB)
233  G4int PDG, G4int tgZ, G4int tgN, G4double pIU)
234 {
235 
236  G4double pMom=pIU/GeV; // All calculations are in GeV
237  onlyCS=CS; // Flag to calculate only CS (not Si/Bi)
238  lastLP=std::log(pMom); // Make a logarithm of the momentum for calculation
239  if(F) // This isotope was found in AMDB =>RETRIEVE/UPDATE
240  {
241  if(F<0) // the AMDB must be loded
242  {
243  lastPIN = PIN[I]; // Max log(P) initialised for this table set
244  lastPAR = PAR[I]; // Pointer to the parameter set
245  lastCST = CST[I]; // Pointer to the total sross-section table
246  lastSST = SST[I]; // Pointer to the first squared slope
247  lastS1T = S1T[I]; // Pointer to the first mantissa
248  lastB1T = B1T[I]; // Pointer to the first slope
249  lastS2T = S2T[I]; // Pointer to the second mantissa
250  lastB2T = B2T[I]; // Pointer to the second slope
251  lastS3T = S3T[I]; // Pointer to the third mantissa
252  lastB3T = B3T[I]; // Pointer to the rhird slope
253  lastS4T = S4T[I]; // Pointer to the 4-th mantissa
254  lastB4T = B4T[I]; // Pointer to the 4-th slope
255  }
256  if(lastLP>lastPIN && lastLP<lPMax)
257  {
258  lastPIN=GetPTables(lastLP,lastPIN,PDG,tgZ,tgN);// Can update upper logP-Limit in tabs
259  PIN[I]=lastPIN; // Remember the new P-Limit of the tables
260  }
261  }
262  else // This isotope wasn't initialized => CREATE
263  {
264  lastPAR = new G4double[nPoints]; // Allocate memory for parameters of CS function
265  lastPAR[nLast]=0; // Initialization for VALGRIND
266  lastCST = new G4double[nPoints]; // Allocate memory for Tabulated CS function
267  lastSST = new G4double[nPoints]; // Allocate memory for Tabulated first sqaredSlope
268  lastS1T = new G4double[nPoints]; // Allocate memory for Tabulated first mantissa
269  lastB1T = new G4double[nPoints]; // Allocate memory for Tabulated first slope
270  lastS2T = new G4double[nPoints]; // Allocate memory for Tabulated second mantissa
271  lastB2T = new G4double[nPoints]; // Allocate memory for Tabulated second slope
272  lastS3T = new G4double[nPoints]; // Allocate memory for Tabulated third mantissa
273  lastB3T = new G4double[nPoints]; // Allocate memory for Tabulated third slope
274  lastS4T = new G4double[nPoints]; // Allocate memory for Tabulated 4-th mantissa
275  lastB4T = new G4double[nPoints]; // Allocate memory for Tabulated 4-th slope
276  lastPIN = GetPTables(lastLP,lPMin,PDG,tgZ,tgN); // Returns the new P-limit for tables
277  PIN.push_back(lastPIN); // Fill parameters of CS function to AMDB
278  PAR.push_back(lastPAR); // Fill parameters of CS function to AMDB
279  CST.push_back(lastCST); // Fill Tabulated CS function to AMDB
280  SST.push_back(lastSST); // Fill Tabulated first sq.slope to AMDB
281  S1T.push_back(lastS1T); // Fill Tabulated first mantissa to AMDB
282  B1T.push_back(lastB1T); // Fill Tabulated first slope to AMDB
283  S2T.push_back(lastS2T); // Fill Tabulated second mantissa to AMDB
284  B2T.push_back(lastB2T); // Fill Tabulated second slope to AMDB
285  S3T.push_back(lastS3T); // Fill Tabulated third mantissa to AMDB
286  B3T.push_back(lastB3T); // Fill Tabulated third slope to AMDB
287  S4T.push_back(lastS4T); // Fill Tabulated 4-th mantissa to AMDB
288  B4T.push_back(lastB4T); // Fill Tabulated 4-th slope to AMDB
289  } // End of creation/update of the new set of parameters and tables
290  // =-------= NOW Update (if necessary) and Calculate the Cross Section =---------=
291  if(lastLP>lastPIN && lastLP<lPMax)
292  {
293  lastPIN = GetPTables(lastLP,lastPIN,PDG,tgZ,tgN);
294  }
295  if(!onlyCS) lastTM=GetQ2max(PDG, tgZ, tgN, pMom); // Calculate (-t)_max=Q2_max (GeV2)
296  if(lastLP>lPMin && lastLP<=lastPIN) // Linear fit is made using precalculated tables
297  {
298  if(lastLP==lastPIN)
299  {
300  G4double shift=(lastLP-lPMin)/dlnP+.000001; // Log distance from lPMin
301  G4int blast=static_cast<int>(shift); // this is a bin number of the lower edge (0)
302  if(blast<0 || blast>=nLast) G4cout<<"G4QNeutElCS::CCS:b="<<blast<<","<<nLast<<G4endl;
303  lastSIG = lastCST[blast];
304  if(!onlyCS) // Skip the differential cross-section parameters
305  {
306  theSS = lastSST[blast];
307  theS1 = lastS1T[blast];
308  theB1 = lastB1T[blast];
309  theS2 = lastS2T[blast];
310  theB2 = lastB2T[blast];
311  theS3 = lastS3T[blast];
312  theB3 = lastB3T[blast];
313  theS4 = lastS4T[blast];
314  theB4 = lastB4T[blast];
315  }
316  }
317  else
318  {
319  G4double shift=(lastLP-lPMin)/dlnP; // a shift from the beginning of the table
320  G4int blast=static_cast<int>(shift); // the lower bin number
321  if(blast<0) blast=0;
322  if(blast>=nLast) blast=nLast-1; // low edge of the last bin
323  shift-=blast; // step inside the unit bin
324  G4int lastL=blast+1; // the upper bin number
325  G4double SIGL=lastCST[blast]; // the basic value of the cross-section
326  lastSIG= SIGL+shift*(lastCST[lastL]-SIGL); // calculated total elastic cross-section
327  if(!onlyCS) // Skip the differential cross-section parameters
328  {
329  G4double SSTL=lastSST[blast]; // the low bin of the first squared slope
330  theSS=SSTL+shift*(lastSST[lastL]-SSTL); // the basic value of the first sq.slope
331  G4double S1TL=lastS1T[blast]; // the low bin of the first mantissa
332  theS1=S1TL+shift*(lastS1T[lastL]-S1TL); // the basic value of the first mantissa
333  G4double B1TL=lastB1T[blast]; // the low bin of the first slope
334  theB1=B1TL+shift*(lastB1T[lastL]-B1TL); // the basic value of the first slope
335  G4double S2TL=lastS2T[blast]; // the low bin of the second mantissa
336  theS2=S2TL+shift*(lastS2T[lastL]-S2TL); // the basic value of the second mantissa
337  G4double B2TL=lastB2T[blast]; // the low bin of the second slope
338  theB2=B2TL+shift*(lastB2T[lastL]-B2TL); // the basic value of the second slope
339  G4double S3TL=lastS3T[blast]; // the low bin of the third mantissa
340  theS3=S3TL+shift*(lastS3T[lastL]-S3TL); // the basic value of the third mantissa
341  G4double B3TL=lastB3T[blast]; // the low bin of the third slope
342  theB3=B3TL+shift*(lastB3T[lastL]-B3TL); // the basic value of the third slope
343  G4double S4TL=lastS4T[blast]; // the low bin of the 4-th mantissa
344  theS4=S4TL+shift*(lastS4T[lastL]-S4TL); // the basic value of the 4-th mantissa
345  G4double B4TL=lastB4T[blast]; // the low bin of the 4-th slope
346  theB4=B4TL+shift*(lastB4T[lastL]-B4TL); // the basic value of the 4-th slope
347  }
348  }
349  }
350  else lastSIG=GetTabValues(lastLP, PDG, tgZ, tgN); // Direct calculation beyond the table
351  if(lastSIG<0.) lastSIG = 0.; // @@ a Warning print can be added
352  return lastSIG;
353 }
354 
355 // It has parameter sets for all tZ/tN/PDG, using them the tables can be created/updated
357  G4int tgZ, G4int tgN)
358 {
359  // @@ At present all nA==pA ---------> Each neucleus can have not more than 51 parameters
360  static const G4double pwd=2727;
361  const G4int n_npel=24; // #of parameters for np-elastic (<nPoints=128)
362  const G4int n_ppel=32; // #of parameters for pp-elastic (<nPoints=128)
363  // -0- -1- -2- -3- -4- -5- -6- -7- -8- -9--10--11--12--13- -14-
364  G4double np_el[n_npel]={12.,.05,.0001,5.,.35,6.75,.14,19.,.6,6.75,.14,13.,.14,.6,.00013,
365  75.,.001,7.2,4.32,.012,2.5,0.0,12.,.34};
366  // -15--16--17- -18- -19--20--21--22--23-
367  // -0- -1- -2- -3- -4- -5- -6- -7- -8--9--10--11--12--13-
368  G4double pp_el[n_ppel]={2.865,18.9,.6461,3.,9.,.425,.4276,.0022,5.,74.,3.,3.4,.2,.17,
369  .001,8.,.055,3.64,5.e-5,4000.,1500.,.46,1.2e6,3.5e6,5.e-5,1.e10,
370  8.5e8,1.e10,1.1,3.4e6,6.8e6,0.};
371  // -14--15- -16- -17- -18- -19- -20- -21- -22- -23- -24- -25-
372  // -26- -27- -28- -29- -30- -31-
373  //==> n (Z=0)
374  static const G4int N0=1; // *** Not used (fake)***
375  static const G4double pZ0N1[7]={0., 0., 0., 0., 0., 0., 0.}; // Not used (fake)
376  static const std::pair<G4int, const G4double*> Z0N1(1,pZ0N1);
377  static const std::pair<G4int, const G4double*> Z0[N0]={Z0N1};
378  //==> H (Z=1) *** protons are treated separately ***
379  static const G4int N1=3;
380  static const G4double pZ1N0[7]={0., 0., 0., 0., 0., 0., 0.}; // Not used (fake)
381  static const std::pair<G4int, const G4double*> Z1N0(0,pZ1N0);
382  static const G4double pZ1N1[7]={6.E-5, 4., .055, 1.1E-8, .008, 1.2E-8, .019};
383  static const std::pair<G4int, const G4double*> Z1N1(1,pZ1N1);
384  static const G4double pZ1N2[7]={6.E-5, 2.2, .051, 1.E-8, .04, 9.E-8, .0075};
385  static const std::pair<G4int, const G4double*> Z1N2(2,pZ1N2);
386  static const std::pair<G4int, const G4double*> Z1[N1]={Z1N0, Z1N1, Z1N2};
387  //==> He(Z=2)
388  static const G4int N2=2;
389  static const G4double pZ2N1[7]={6.E-5, 3., .06, 4.E-9, .03, 7.E-8, .015};
390  static const std::pair<G4int, const G4double*> Z2N1(1,pZ2N1);
391  static const G4double pZ2N2[7]={3.E-4, .23, 1., 1.5E-9, 2.E-02, 1.E-8, .003};
392  static const std::pair<G4int, const G4double*> Z2N2(2,pZ2N2);
393  static const std::pair<G4int, const G4double*> Z2[N2]={Z2N1, Z2N2};
394  //==> Li(Z=3)
395  static const G4int N3=2;
396  static const G4double pZ3N3[7]={3.1E-7, 1.7, 1.3E-4, 1.E-8, .02, 1.1E-7, .0023};
397  static const std::pair<G4int, const G4double*> Z3N1(3,pZ3N3);
398  static const G4double pZ3N4[7]={1.3E-6, 1.8, 7.6E-4, 9.E-9, .03, 1.E-7, .0029};
399  static const std::pair<G4int, const G4double*> Z3N2(4,pZ3N4);
400  static const std::pair<G4int, const G4double*> Z3[N3]={Z3N1, Z3N2};
401  //==> Be(Z=4)
402  static const G4int N4=2;
403  static const G4double pZ4N3[7]={2.E-4, 1.4, 2.7, 0., .02, 5.E-8, 0.};
404  static const std::pair<G4int, const G4double*> Z4N3(3,pZ4N3);
405  static const G4double pZ4N5[7]={1.E-6, 5.7, .0011, 3.E-9, .007, 2.E-8, .016};
406  static const std::pair<G4int, const G4double*> Z4N5(5,pZ4N5);
407  static const std::pair<G4int, const G4double*> Z4[N4]={Z4N3,Z4N5};
408  //==> B (Z=5)
409  static const G4int N5=2;
410  static const G4double pZ5N5[7]={8.E-7, 5., 3.4E-4, 7.E-9, 1.E-02, 1.E-07, .0053};
411  static const std::pair<G4int, const G4double*> Z5N5(5,pZ5N5);
412  static const G4double pZ5N6[7]={4.8E-6, 6.6, .0035, 4.E-9, .003, 1.E-8, .012};
413  static const std::pair<G4int, const G4double*> Z5N6(6,pZ5N6);
414  static const std::pair<G4int, const G4double*> Z5[N5]={Z5N5, Z5N6};
415  //==> C (Z=6) *** Only nat (C13=C12=C_nat) ***
416  static const G4int N6=2;
417  static const G4double pZ6N6[7]={4.9E-6, 6.6, .0035, 4.E-9, .002, 6.E-9, .011};
418  static const std::pair<G4int, const G4double*> Z6N6(6,pZ6N6);
419  static const G4double pZ6N7[7]={4.9E-6, 6.6, .0035, 4.E-9, .002, 6.E-9, .011};
420  static const std::pair<G4int, const G4double*> Z6N7(7,pZ6N7);
421  static const std::pair<G4int, const G4double*> Z6[N6]={Z6N6, Z6N7};
422  //==> N (Z=7)
423  static const G4int N7=2;
424  static const G4double pZ7N7[7]={4.9E-6, 1.6, .03, .4E-9, .02, 6.E-8, .021};
425  static const std::pair<G4int, const G4double*> Z7N7(7,pZ7N7);
426  static const G4double pZ7N8[7]={2.5E-6, 5., .0021, 2.5E-9, .015, 5.E-8, .009};
427  static const std::pair<G4int, const G4double*> Z7N8(8,pZ7N8);
428  static const std::pair<G4int, const G4double*> Z7[N7]={Z7N7, Z7N8};
429  //==> O (Z=8) (O18=O17, No data)
430  static const G4int N8=3;
431  static const G4double pZ8N8[7]={2.5E-6, 5.3, .0018, 3.E-9, .01, 1.5E-8, .0075};
432  static const std::pair<G4int, const G4double*> Z8N8(8,pZ8N8);
433  static const G4double pZ8N9[7]={1.4E-6, 2.1, .0025, 1.3E-9, .02, 1.3E-7, .0072};
434  static const std::pair<G4int, const G4double*> Z8N9(9,pZ8N9);
435  static const G4double pZ8N10[7]={1.4E-6, 2.1, .0025, 1.3E-9, .02, 1.3E-7, .0072};
436  static const std::pair<G4int, const G4double*> Z8N10(10,pZ8N10);
437  static const std::pair<G4int, const G4double*> Z8[N8]={Z8N8, Z8N9, Z8N10};
438  //==> F (Z=9)
439  static const G4int N9=1;
440  static const G4double pZ9N10[7]={1.4E-6, 7.5, 6.7E-4, 4.E-9, 2.E-5, 7.E-12, .0066};
441  static const std::pair<G4int, const G4double*> Z9N10(10,pZ9N10);
442  static const std::pair<G4int, const G4double*> Z9[N9]={Z9N10};
443  //==> Ne(Z=10) *** No data *** (Ne20=Na22, Ne21=F19, Ne22=Na22)
444  static const G4int N10=3;
445  static const G4double pZ10N10[7]={1.4E-5, 7., .01, 0., 3.E-11, 7.E-24, .12};
446  static const std::pair<G4int, const G4double*> Z10N10(10,pZ10N10);
447  static const G4double pZ10N11[7]={1.4E-6, 7.5, 6.7E-4, 4.E-9, 2.E-5, 7.E-12, .0066};
448  static const std::pair<G4int, const G4double*> Z10N11(11,pZ10N11);
449  static const G4double pZ10N12[7]={1.4E-5, 7., .01, 0., 3.E-11, 7.E-24, .12};
450  static const std::pair<G4int, const G4double*> Z10N12(12,pZ10N12);
451  static const std::pair<G4int, const G4double*> Z10[N10]={Z10N10, Z10N11, Z10N12};
452  //==> Na(Z=11)
453  static const G4int N11=2;
454  static const G4double pZ11N11[7]={1.4E-5, 7., .01, 0., 3.E-11, 7.E-24, .12};
455  static const std::pair<G4int, const G4double*> Z11N11(11,pZ11N11);
456  static const G4double pZ11N12[7]={1.4E-6, 7.6, 6.E-4, 5.E-9, 7.E-9, 3.E-18, .0056};
457  static const std::pair<G4int, const G4double*> Z11N12(12,pZ11N12);
458  static const std::pair<G4int, const G4double*> Z11[N11]={Z11N11, Z11N12};
459  //==> Mg(Z=12)
460  static const G4int N12=3;
461  static const G4double pZ12N12[7]={8.E-7, 3., .001, 1.8E-9, .0015, .2E-9, .006};
462  static const std::pair<G4int, const G4double*> Z12N12(12,pZ12N12);
463  static const G4double pZ12N13[7]={8.E-7, 7., 3.E-4, 6.E-9, .006, 4.E-8, .0042};
464  static const std::pair<G4int, const G4double*> Z12N13(13,pZ12N13);
465  static const G4double pZ12N14[7]={1.2E-6, 6.8, 5.E-4, 5.E-9, .007, 2.E-8, .0044};
466  static const std::pair<G4int, const G4double*> Z12N14(14,pZ12N14);
467  static const std::pair<G4int, const G4double*> Z12[N12]={Z12N12, Z12N13, Z12N14};
468  //==> Al(Z=13)
469  static const G4int N13=1;
470  static const G4double pZ13N14[7]={3.E-7, 5., 8.4E-5, 7.E-9, .008, 2.E-8, .0022};
471  static const std::pair<G4int, const G4double*> Z13N14(14,pZ13N14);
472  static const std::pair<G4int, const G4double*> Z13[N13]={Z13N14};
473  //==> Si(Z=14)
474  static const G4int N14=3;
475  static const G4double pZ14N14[7]={1.2E-6, 6., 4.E-4, 6.E-9, .012, 8.E-8, .0029};
476  static const std::pair<G4int, const G4double*> Z14N14(14,pZ14N14);
477  static const G4double pZ14N15[7]={2.4E-6, 4., .0016, 3.E-9, .018, 6.E-8, .0037};
478  static const std::pair<G4int, const G4double*> Z14N15(15,pZ14N15);
479  static const G4double pZ14N16[7]={6.E-7, 4., 3.7E-4, 3.E-9, .018, 6.E-8, .0036};
480  static const std::pair<G4int, const G4double*> Z14N16(16,pZ14N16);
481  static const std::pair<G4int, const G4double*> Z14[N14]={Z14N14, Z14N15, Z14N16};
482  //==> P (Z=15)
483  static const G4int N15=1;
484  static const G4double pZ15N16[7]={6.E-7, 3., 8.2E-4, 1.4E-9, .03, 8.E-8, .0059};
485  static const std::pair<G4int, const G4double*> Z15N16(16,pZ15N16);
486  static const std::pair<G4int, const G4double*> Z15[N15]={Z15N16};
487  //==> S (Z=16)
488  static const G4int N16=4;
489  static const G4double pZ16N16[7]={6.E-7, 3., 1.9E-4, 5.E-9, .03, 6.E-8, .0013};
490  static const std::pair<G4int, const G4double*> Z16N16(16,pZ16N16);
491  static const G4double pZ16N17[7]={2.4E-6, 3., .0023, 2.E-9, .03, 6.5E-8, .004};
492  static const std::pair<G4int, const G4double*> Z16N17(17,pZ16N17);
493  static const G4double pZ16N18[7]={2.4E-6, 1.6, .0031, 1.4E-9, .03, 4.E-08, .0028};
494  static const std::pair<G4int, const G4double*> Z16N18(18,pZ16N18);
495  static const G4double pZ16N20[7]={2.4E-6, 3.1, .0017, 2.5E-9, .03, 5.E-08, .0029};
496  static const std::pair<G4int, const G4double*> Z16N20(20,pZ16N20);
497  static const std::pair<G4int, const G4double*> Z16[N16]={Z16N16, Z16N17, Z16N18, Z16N20};
498  //==> Cl(Z=17)
499  static const G4int N17=2;
500  static const G4double pZ17N18[7]={1.2E-7, .04, .062, 3.E-12, 3.E-02, 3.E-08, .027};
501  static const std::pair<G4int, const G4double*> Z17N18(18,pZ17N18);
502  static const G4double pZ17N20[7]={1.2E-7, 2., 6.8E-5, 2.7E-9, .03, 4.E-8, .0015};
503  static const std::pair<G4int, const G4double*> Z17N20(20,pZ17N20);
504  static const std::pair<G4int, const G4double*> Z17[N17]={Z17N18, Z17N20};
505  //==> Ar(Z=18)
506  static const G4int N18=3;
507  static const G4double pZ18N18[7]={1.2E-7, .52, .017, 1.1E-11, .03, 3.E-8, .095};
508  static const std::pair<G4int, const G4double*> Z18N18(18,pZ18N18);
509  static const G4double pZ18N20[7]={1.2E-07, .09, .012, 1.8E-11, .03, 3.E-8, .011};
510  static const std::pair<G4int, const G4double*> Z18N20(20,pZ18N20);
511  static const G4double pZ18N22[7]={1.2E-7, .65, 1.2E-4, 1.5E-9, .03, 5.E-8, 8.E-4};
512  static const std::pair<G4int, const G4double*> Z18N22(22,pZ18N22);
513  static const std::pair<G4int, const G4double*> Z18[N18]={Z18N18, Z18N20, Z18N22};
514  //==> K (Z=19)
515  static const G4int N19=3;
516  static const G4double pZ19N20[7]={1.2E-7, 1.3, 1.9E-4, .9E-9, .04, 5.5E-8, .0026};
517  static const std::pair<G4int, const G4double*> Z19N20(20,pZ19N20);
518  static const G4double pZ19N21[7]={1.6E-7, 1.2, 3.7E-4, .8E-9, .04, 6.5E-8, .0034};
519  static const std::pair<G4int, const G4double*> Z19N21(21,pZ19N21);
520  static const G4double pZ19N22[7]={6.E-8, 1.3, 1.2E-4, .9E-9, .04, 6.E-8, .0031};
521  static const std::pair<G4int, const G4double*> Z19N22(22,pZ19N22);
522  static const std::pair<G4int, const G4double*> Z19[N19]={Z19N20, Z19N21, Z19N22};
523  //==> Ca(Z=20)
524  static const G4int N20=6;
525  static const G4double pZ20N20[7]={2.4E-7, 3.4, 2.1E-4, 1.5E-9, .035, 6.E-8, .0037};
526  static const std::pair<G4int, const G4double*> Z20N20(20,pZ20N20);
527  static const G4double pZ20N22[7]={6.E-8, 2.7, 2.7E-5, 3.E-9, .035, 6.E-8, .0014};
528  static const std::pair<G4int, const G4double*> Z20N22(22,pZ20N22);
529  static const G4double pZ20N23[7]={1.5E-8, 1.8, 3.4E-5, .6E-9, .04, 6.E-8, .0049};
530  static const std::pair<G4int, const G4double*> Z20N23(23,pZ20N23);
531  static const G4double pZ20N24[7]={3.E-6, 5., .002, 2.E-9, .03, 7.E-8, .0038};
532  static const std::pair<G4int, const G4double*> Z20N24(24,pZ20N24);
533  static const G4double pZ20N26[7]={1.7E-5, 18., .0027, 1.E-8, 2.E-7, 7.E-17, .0047};
534  static const std::pair<G4int, const G4double*> Z20N26(26,pZ20N26);
535  static const G4double pZ20N28[7]={7.6E-6, .4, .07, .13E-9, .05, 4.E-8, .0042};
536  static const std::pair<G4int, const G4double*> Z20N28(28,pZ20N28);
537  static const std::pair<G4int, const G4double*> Z20[N20]={Z20N20, Z20N22, Z20N23,
538  Z20N24, Z20N26, Z20N28};
539  //==> Sc(Z=21)
540  static const G4int N21=1;
541  static const G4double pZ21N24[7]={3.6E-9, 1.5, 5.2E-5, .1E-9, .05, 1.E-7, .025};
542  static const std::pair<G4int, const G4double*> Z21N24(24,pZ21N24);
543  static const std::pair<G4int, const G4double*> Z21[N21]={Z21N24};
544  //==> Ti(Z=22)
545  static const G4int N22=5;
546  static const G4double pZ22N24[7]={2.8E-8, 1.8, 5.6E-5, .6E-9, .05, 8.E-8, .0042};
547  static const std::pair<G4int, const G4double*> Z22N24(24,pZ22N24);
548  static const G4double pZ22N25[7]={3.1E-9, 1.6, 6.E-6, .8E-9, .04, 8.E-8, .0036};
549  static const std::pair<G4int, const G4double*> Z22N25(25,pZ22N25);
550  static const G4double pZ22N26[7]={3.E-9, 4., 3.2E-6, 1.4E-9, .05, 2.E-7, .0048};
551  static const std::pair<G4int, const G4double*> Z22N26(26,pZ22N26);
552  static const G4double pZ22N27[7]={1.E-8, 2., 3.4E-6, 4.5E-9, .05, 8.E-8, 7.7E-4};
553  static const std::pair<G4int, const G4double*> Z22N27(27,pZ22N27);
554  static const G4double pZ22N28[7]={4.E-7, 4., 3.7E-4, 1.E-09, .05, 1.E-7, .0041};
555  static const std::pair<G4int, const G4double*> Z22N28(28,pZ22N28);
556  static const std::pair<G4int, const G4double*> Z22[N22]={Z22N24, Z22N25, Z22N26,
557  Z22N27, Z22N28};
558  //==> V (Z=23) *** Only nat *** (v50=v51=v_nat)
559  static const G4int N23=2;
560  static const G4double pZ23N27[7]={.3E-9, 2., 8.E-7, .55E-9, .07, 1.7E-7, .0055};
561  static const std::pair<G4int, const G4double*> Z23N27(27,pZ23N27);
562  static const G4double pZ23N28[7]={.3E-9, 2., 8.E-7, .55E-9, .07, 1.7E-7, .0055};
563  static const std::pair<G4int, const G4double*> Z23N28(28,pZ23N28);
564  static const std::pair<G4int, const G4double*> Z23[N23]={Z23N27, Z23N28};
565  //==> Cr(Z=24)
566  static const G4int N24=4;
567  static const G4double pZ24N26[7]={1.2E-9, 2.8, 1.E-6, 1.7E-9, .07, 1.7E-7, .0026};
568  static const std::pair<G4int, const G4double*> Z24N26(26,pZ24N26);
569  static const G4double pZ24N28[7]={4.4E-6, 11., .0012, 5.E-9, .04, 3.E-7, .0032};
570  static const std::pair<G4int, const G4double*> Z24N28(28,pZ24N28);
571  static const G4double pZ24N29[7]={1.8E-9, 2.4, 6.3E-6, .5E-9, .07, 2.E-7, .0085};
572  static const std::pair<G4int, const G4double*> Z24N29(29,pZ24N29);
573  static const G4double pZ24N30[7]={4.8E-8, 2.8, 4.4E-5, 1.4E-9, .07, 2.E-7, .0027};
574  static const std::pair<G4int, const G4double*> Z24N30(30,pZ24N30);
575  static const std::pair<G4int, const G4double*> Z24[N24]={Z24N26, Z24N28, Z24N29, Z24N30};
576  //==> Mn(Z=25)
577  static const G4int N25=1;
578  static const G4double pZ25N30[7]={6.5E-11, 1.4, 1.E-7, .8E-9, .07, 1.7E-7, .0022};
579  static const std::pair<G4int, const G4double*> Z25N30(30,pZ25N30);
580  static const std::pair<G4int, const G4double*> Z25[N25]={Z25N30};
581  //==> Fe(Z=26)
582  static const G4int N26=4;
583  static const G4double pZ26N28[7]={3.9E-8, 5., 1.7E-5, 3.E-9, .07, 3.E-7, .0023};
584  static const std::pair<G4int, const G4double*> Z26N28(28,pZ26N28);
585  static const G4double pZ26N30[7]={5.E-9, .4, 1.5E-4, 4.E-11, .1, 3.E-7, .012};
586  static const std::pair<G4int, const G4double*> Z26N30(30,pZ26N30);
587  static const G4double pZ26N31[7]={.5E-9, .5, 2.6E-6, .3E-9, .11, 5.E-7, .0027};
588  static const std::pair<G4int, const G4double*> Z26N31(31,pZ26N31);
589  static const G4double pZ26N32[7]={1.E-7, 3.1, 1.E-4, 1.3E-9, .11, 5.E-7, .0031};
590  static const std::pair<G4int, const G4double*> Z26N32(32,pZ26N32);
591  static const std::pair<G4int, const G4double*> Z26[N26]={Z26N28, Z26N30, Z26N31, Z26N32};
592  //==> Co(Z=27)
593  static const G4int N27=2;
594  static const G4double pZ27N31[7]={4.E-7, 3., .004, 0., .11, 4.5E-7, .07};
595  static const std::pair<G4int, const G4double*> Z27N31(31,pZ27N31);
596  static const G4double pZ27N32[7]={4.E-7, 5., 5.E-4, 1.2E-9, .13, 6.E-7, .006};
597  static const std::pair<G4int, const G4double*> Z27N32(32,pZ27N32);
598  static const std::pair<G4int, const G4double*> Z27[N27]={Z27N32, Z27N31};
599  //==> Ni(Z=28)
600  static const G4int N28=6;
601  static const G4double pZ28N30[7]={1.E-7, 2.5, .001, .14E-9, .13, 6.E-7, .025};
602  static const std::pair<G4int, const G4double*> Z28N30(30,pZ28N30);
603  static const G4double pZ28N31[7]={1.E-7, 19., 1.2E-5, 1.E-8, 4.E-12, 3.E-22, .0024};
604  static const std::pair<G4int, const G4double*> Z28N31(31,pZ28N31);
605  static const G4double pZ28N32[7]={1.E-8, 2.5, 3.9E-6, 3.5E-9, .13, 6.E-7, .001};
606  static const std::pair<G4int, const G4double*> Z28N32(32,pZ28N32);
607  static const G4double pZ28N33[7]={5.E-9, 2.6, 1.5E-5, .42E-9, .13, 7.E-7, .008};
608  static const std::pair<G4int, const G4double*> Z28N33(33,pZ28N33);
609  static const G4double pZ28N34[7]={.24E-9, 2., 1.2E-6, .25E-9, .13, 6.E-7, .0094};
610  static const std::pair<G4int, const G4double*> Z28N34(34,pZ28N34);
611  static const G4double pZ28N36[7]={1.E-8, 3., 5.5E-8, 2.8E-7, .12, 6.E-7, 1.6E-5};
612  static const std::pair<G4int, const G4double*> Z28N36(36,pZ28N36);
613  static const std::pair<G4int, const G4double*> Z28[N28]={Z28N30, Z28N31, Z28N32, Z28N33,
614  Z28N34, Z28N36};
615  //==> Cu(Z=29)
616  static const G4int N29=2;
617  static const G4double pZ29N34[7]={1.1E-7, 3.5, 1.6E-4, .9E-9, .13, 7.E-7, .005};
618  static const std::pair<G4int, const G4double*> Z29N34(34,pZ29N34);
619  static const G4double pZ29N36[7]={1.1E-7, 3.5, 4.3E-4, .3E-9, .13, 7.E-7, .013};
620  static const std::pair<G4int, const G4double*> Z29N36(36,pZ29N36);
621  static const std::pair<G4int, const G4double*> Z29[N29]={Z29N34, Z29N36};
622  //==> Zn(Z=30) *** Only nat *** (zn64=zn66=zn67=zn68=zn70=zn_nat)
623  static const G4int N30=5;
624  static const G4double pZ30N34[7]={1.1E-7, 4., 1.2E-4, 1.2E-9, .17, 7.E-7, .004};
625  static const std::pair<G4int, const G4double*> Z30N34(34,pZ30N34);
626  static const G4double pZ30N36[7]={1.1E-7, 4., 1.2E-4, 1.2E-9, .17, 7.E-7, .004};
627  static const std::pair<G4int, const G4double*> Z30N36(36,pZ30N36);
628  static const G4double pZ30N37[7]={1.1E-7, 4., 1.2E-4, 1.2E-9, .17, 7.E-7, .004};
629  static const std::pair<G4int, const G4double*> Z30N37(37,pZ30N37);
630  static const G4double pZ30N38[7]={1.1E-7, 4., 1.2E-4, 1.2E-9, .17, 7.E-7, .004};
631  static const std::pair<G4int, const G4double*> Z30N38(38,pZ30N38);
632  static const G4double pZ30N40[7]={1.1E-7, 4., 1.2E-4, 1.2E-9, .17, 7.E-7, .004};
633  static const std::pair<G4int, const G4double*> Z30N40(40,pZ30N40);
634  static const std::pair<G4int, const G4double*> Z30[N30]={Z30N34, Z30N36, Z30N37,
635  Z30N38, Z30N40};
636  //==> Ga(Z=31)
637  static const G4int N31=2;
638  static const G4double pZ31N38[7]={5.E-8, 3.7, 1.1E-4, .55E-9, .17, 8.4E-7, .0076};
639  static const std::pair<G4int, const G4double*> Z31N38(38,pZ31N38);
640  static const G4double pZ31N40[7]={1.E-8, 3.1, 1.7E-5, .7E-9, .17, 9.E-7, .0048};
641  static const std::pair<G4int, const G4double*> Z31N40(40,pZ31N40);
642  static const std::pair<G4int, const G4double*> Z31[N31]={Z31N38, Z31N40};
643  //==> Ge(Z=32)
644  static const G4int N32=5;
645  static const G4double pZ32N38[7]={5.E-5, 4., .17, .35E-9, .17, 9.E-7, .013};
646  static const std::pair<G4int, const G4double*> Z32N38(38,pZ32N38);
647  static const G4double pZ32N40[7]={5.E-7, 4.4, .001, .6E-9, .17, 9.E-7, .008};
648  static const std::pair<G4int, const G4double*> Z32N40(40,pZ32N40);
649  static const G4double pZ32N41[7]={5.E-9, 3., 8.E-6, .7E-9, .17, 1.E-6, .0043};
650  static const std::pair<G4int, const G4double*> Z32N41(41,pZ32N41);
651  static const G4double pZ32N42[7]={1.E-7, 4.2, 1.7E-4, .7E-9, .17, 1.E-6, .0065};
652  static const std::pair<G4int, const G4double*> Z32N42(42,pZ32N42);
653  static const G4double pZ32N44[7]={1.E-6, 4.6, .0018, .6E-9, .17, 1.E-6, .0073};
654  static const std::pair<G4int, const G4double*> Z32N44(44,pZ32N44);
655  static const std::pair<G4int, const G4double*> Z32[N32]={Z32N38, Z32N40, Z32N41,
656  Z32N42, Z32N44};
657  //==> As(Z=33)
658  static const G4int N33=2;
659  static const G4double pZ33N41[7]={1.E-8, 3.4, 1.5E-5, .72E-9, .17, 1.E-6, .0045};
660  static const std::pair<G4int, const G4double*> Z33N41(41,pZ33N41);
661  static const G4double pZ33N42[7]={1.E-8, 4.1, 1.3E-5, .75E-9, .2, 1.2E-6, .0048};
662  static const std::pair<G4int, const G4double*> Z33N42(42,pZ33N42);
663  static const std::pair<G4int, const G4double*> Z33[N33]={Z33N41, Z33N42};
664  //==> Se(Z=34)
665  static const G4int N34=7;
666  static const G4double pZ34N40[7]={6.E-8, 7.2, 6.E-5, 1.E-9, .32, 2.E-6, .0063};
667  static const std::pair<G4int, const G4double*> Z34N40(40,pZ34N40);
668  static const G4double pZ34N42[7]={4.E-5, 7.4, .1, .43E-9, .34, 2.1E-6, .016};
669  static const std::pair<G4int, const G4double*> Z34N42(42,pZ34N42);
670  static const G4double pZ34N43[7]={1.E-7, 6.2, 1.4E-4, .9E-9, .34, 2.1E-6, .0075};
671  static const std::pair<G4int, const G4double*> Z34N43(43,pZ34N43);
672  static const G4double pZ34N44[7]={1.E-7, 6.6, 1.3E-4, .9E-9, .34, 2.1E-6, .0075};
673  static const std::pair<G4int, const G4double*> Z34N44(44,pZ34N44);
674  static const G4double pZ34N45[7]={5.E-8, 6.6, 4.8E-5, 1.2E-9, .4, 2.6E-6, .0055};
675  static const std::pair<G4int, const G4double*> Z34N45(45,pZ34N45);
676  static const G4double pZ34N46[7]={2.E-7, 7.7, 1.3E-4, 1.7E-9, .34, 2.1E-6, .0043};
677  static const std::pair<G4int, const G4double*> Z34N46(46,pZ34N46);
678  static const G4double pZ34N48[7]={2.E-7, 8.3, 1.2E-4, 1.7E-9, .34, 2.1E-6, .0043};
679  static const std::pair<G4int, const G4double*> Z34N48(48,pZ34N48);
680  static const std::pair<G4int, const G4double*> Z34[N34]={Z34N40, Z34N42, Z34N43, Z34N44,
681  Z34N45, Z34N46, Z34N48};
682  //==> Br(Z=35)
683  static const G4int N35=2;
684  static const G4double pZ35N44[7]={5.E-8, 6., 2.8E-5, 2.E-9, .34, 2.1E-6, .0028};
685  static const std::pair<G4int, const G4double*> Z35N44(44,pZ35N44);
686  static const G4double pZ35N46[7]={4.E-8, 6.2, 3.7E-5, 1.1E-9, .34, 2.1E-6, .0049};
687  static const std::pair<G4int, const G4double*> Z35N46(46,pZ35N46);
688  static const std::pair<G4int, const G4double*> Z35[N35]={Z35N44, Z35N46};
689  //==> Kr(Z=36)
690  static const G4int N36=7;
691  static const G4double pZ36N42[7]={1.6E-7, 6.8, 2.E-4, .8E-9, .35, 2.1E-6, .0076};
692  static const std::pair<G4int, const G4double*> Z36N42(42,pZ36N42);
693  static const G4double pZ36N44[7]={1.6E-7, 7.3, 1.6E-4, 1.E-9, .35, 2.1E-6, .0062};
694  static const std::pair<G4int, const G4double*> Z36N44(44,pZ36N44);
695  static const G4double pZ36N46[7]={1.6E-7, 7.3, 3.3E-4, .7E-9, .35, 2.1E-6, .013};
696  static const std::pair<G4int, const G4double*> Z36N46(46,pZ36N46);
697  static const G4double pZ36N47[7]={1.6E-6, 7.3, .003, .6E-9, .35, 2.1E-6, .011};
698  static const std::pair<G4int, const G4double*> Z36N47(47,pZ36N47);
699  static const G4double pZ36N48[7]={1.6E-7, 7.8, 7.6E-5, 2.E-9, .35, 2.1E-6, .0031};
700  static const std::pair<G4int, const G4double*> Z36N48(48,pZ36N48);
701  static const G4double pZ36N49[7]={6.E-7, 8., 4.8E-4, 1.4E-9, .27, 2.1E-6, .0053};
702  static const std::pair<G4int, const G4double*> Z36N49(49,pZ36N49);
703  static const G4double pZ36N50[7]={4.E-7, 8.1, 2.7E-4, 1.6E-9, .35, 2.1E-6, .0045};
704  static const std::pair<G4int, const G4double*> Z36N50(50,pZ36N50);
705  static const std::pair<G4int, const G4double*> Z36[N36]={Z36N42, Z36N44, Z36N46,
706  Z36N47, Z36N48, Z36N49, Z36N50};
707  //==> Rb(Z=37)
708  static const G4int N37=3;
709  static const G4double pZ37N48[7]={1.6E-7, 7.2, 1.4E-4, 1.2E-9, .35, 2.1E-6, .0052};
710  static const std::pair<G4int, const G4double*> Z37N48(48,pZ37N48);
711  static const G4double pZ37N49[7]={8.E-8, 7.1, 4.7E-5, 1.6E-9, .27, 2.1E-6, .0034};
712  static const std::pair<G4int, const G4double*> Z37N49(49,pZ37N49);
713  static const G4double pZ37N50[7]={1.E-7, 8., 5.5E-5, 1.9E-9, .27, 1.5E-6, .0036};
714  static const std::pair<G4int, const G4double*> Z37N50(50,pZ37N50);
715  static const std::pair<G4int, const G4double*> Z37[N37]={Z37N48, Z37N49, Z37N50};
716  //==> Sr(Z=38)
717  static const G4int N38=6;
718  static const G4double pZ38N46[7]={8.E-8, 7.3, 6.E-5, 1.3E-9, .27, 2.E-6, .0045};
719  static const std::pair<G4int, const G4double*> Z38N46(46,pZ38N46);
720  static const G4double pZ38N48[7]={8.E-8, 9.7, 2.3E-5, 3.5E-9, .4, 2.7E-6, .0023};
721  static const std::pair<G4int, const G4double*> Z38N48(48,pZ38N48);
722  static const G4double pZ38N49[7]={2.6E-7, 9.5, 1.9E-4, 1.5E-9, .4, 2.7E-6, .0057};
723  static const std::pair<G4int, const G4double*> Z38N49(49,pZ38N49);
724  static const G4double pZ38N50[7]={2.6E-7, 9.5, 2.E-4, 1.4E-9, .37, 3.2E-6, .0059};
725  static const std::pair<G4int, const G4double*> Z38N50(50,pZ38N50);
726  static const G4double pZ38N51[7]={1.3E-7, 9.9, 7.5E-5, 1.7E-9, .37, 3.2E-6, .0046};
727  static const std::pair<G4int, const G4double*> Z38N51(51,pZ38N51);
728  static const G4double pZ38N52[7]={2.6E-7, 9.6, 1.6E-4, 1.8E-9, .37, 2.7E06, .0047};
729  static const std::pair<G4int, const G4double*> Z38N52(52,pZ38N52);
730  static const std::pair<G4int, const G4double*> Z38[N38]={Z38N46, Z38N48, Z38N49, Z38N50,
731  Z38N51, Z38N52};
732  //==> Y (Z=39)
733  static const G4int N39=3;
734  static const G4double pZ39N50[7]={2.6E-7, 9.9, 2.E-4, 1.1E-9, .37, 3.2E-6, .0062};
735  static const std::pair<G4int, const G4double*> Z39N50(50,pZ39N50);
736  static const G4double pZ39N51[7]={2.7E-5, 20., .013, 2.2E-9, .37, 1.9E-6, .0078};
737  static const std::pair<G4int, const G4double*> Z39N51(51,pZ39N51);
738  static const G4double pZ39N52[7]={2.E-7, 9.6, 1.2E-4, 1.7E-9, .37, 3.E-6, .0046};
739  static const std::pair<G4int, const G4double*> Z39N52(52,pZ39N52);
740  static const std::pair<G4int, const G4double*> Z39[N39]={Z39N50, Z39N51, Z39N52};
741  //==> Zr(Z=40)
742  static const G4int N40=7;
743  static const G4double pZ40N50[7]={1.E-7, 9., 6.2E-5, 1.7E-9, .3, 3.E-6, .0044};
744  static const std::pair<G4int, const G4double*> Z40N50(50,pZ40N50);
745  static const G4double pZ40N51[7]={5.E-7, 9.8, 5.E-4, 1.E-9, .25, 2.1E-6, .0079};
746  static const std::pair<G4int, const G4double*> Z40N51(51,pZ40N51);
747  static const G4double pZ40N52[7]={3.E-7, 9.6, 2.2E-4, 1.2E-9, .25, 2.2E-6, .0056};
748  static const std::pair<G4int, const G4double*> Z40N52(52,pZ40N52);
749  static const G4double pZ40N53[7]={2.E-7, 9.6, 1.2E-4, 1.6E-9, .38, 2.9E-6, .0046};
750  static const std::pair<G4int, const G4double*> Z40N53(53,pZ40N53);
751  static const G4double pZ40N54[7]={2.E-7, 9.6, 1.8E-4, 1.1E-9, .25, 2.1E-6, .0067};
752  static const std::pair<G4int, const G4double*> Z40N54(54,pZ40N54);
753  static const G4double pZ40N55[7]={1.8E-7, 9.4, 1.1E-4, 1.6E-9, .33, 2.3E-6, .0045};
754  static const std::pair<G4int, const G4double*> Z40N55(55,pZ40N55);
755  static const G4double pZ40N56[7]={1.8E-7, 9.4, 1.1E-4, 1.6E-9, .2, 1.5E-6, .0045};
756  static const std::pair<G4int, const G4double*> Z40N56(56,pZ40N56);
757  static const std::pair<G4int, const G4double*> Z40[N40]={Z40N50, Z40N51, Z40N52, Z40N53,
758  Z40N54, Z40N55, Z40N56};
759  //==> Nb(Z=41)
760  static const G4int N41=3;
761  static const G4double pZ41N52[7]={2.6E-7, 8.3, 2.E-4, 1.2E-9, .4, 4.E-6, .0051};
762  static const std::pair<G4int, const G4double*> Z41N52(52,pZ41N52);
763  static const G4double pZ41N53[7]={2.E-7, 8.3, 1.6E-4, 1.4E-9, .35, 2.5E-6, .0051};
764  static const std::pair<G4int, const G4double*> Z41N53(53,pZ41N53);
765  static const G4double pZ41N54[7]={1.5E-7, 8.6, 1.E-4, 1.5E-9, .35, 2.5E-6, .0045};
766  static const std::pair<G4int, const G4double*> Z41N54(54,pZ41N54);
767  static const std::pair<G4int, const G4double*> Z41[N41]={Z41N52, Z41N52, Z41N52};
768  //==> Mo(Z=42)
769  static const G4int N42=8;
770  static const G4double pZ42N50[7]={2.E-7, 10., 1.1E-4, 1.8E-9, .3, 2.7E-6, .0044};
771  static const std::pair<G4int, const G4double*> Z42N50(50,pZ42N50);
772  static const G4double pZ42N52[7]={2.1E-7, 10., 1.2E-4, 1.7E-9, .3, 2.8E-6, .0046};
773  static const std::pair<G4int, const G4double*> Z42N52(52,pZ42N52);
774  static const G4double pZ42N53[7]={3.E-7, 10., 1.9E-4, 1.5E-9, .29, 3.E-6, .005};
775  static const std::pair<G4int, const G4double*> Z42N53(53,pZ42N53);
776  static const G4double pZ42N54[7]={1.5E-7, 10., 7.1E-5, 2.1E-9, .29, 2.9E-6, .0037};
777  static const std::pair<G4int, const G4double*> Z42N54(54,pZ42N54);
778  static const G4double pZ42N55[7]={1.9E-7, 9., 1.4E-4, 1.3E-9, .29, 2.8E-6, .0052};
779  static const std::pair<G4int, const G4double*> Z42N55(55,pZ42N55);
780  static const G4double pZ42N56[7]={1.9E-7, 9.9, 1.1E-4, 1.8E-9, .29, 2.4E-6, .0044};
781  static const std::pair<G4int, const G4double*> Z42N56(56,pZ42N56);
782  static const G4double pZ42N57[7]={1.4E-7, 8., 1.E-4, 1.4E-9, .34, 2.5E-6, .0044};
783  static const std::pair<G4int, const G4double*> Z42N57(57,pZ42N57);
784  static const G4double pZ42N58[7]={1.8E-7, 9.5, 1.E-4, 1.7E-9, .27, 2.2E-6, .0041};
785  static const std::pair<G4int, const G4double*> Z42N58(58,pZ42N58);
786  static const std::pair<G4int, const G4double*> Z42[N42]={Z42N50, Z42N52, Z42N53, Z42N54,
787  Z42N55, Z42N56, Z42N57, Z42N58};
788  //==> Tc(Z=43)
789  static const G4int N43=1;
790  static const G4double pZ43N56[7]={1.E-7, 8., 7.2E-5, 1.4E-9, .24, 2.5E-6, .0044};
791  static const std::pair<G4int, const G4double*> Z43N56(56,pZ43N56);
792  static const std::pair<G4int, const G4double*> Z43[N43]={Z43N56};
793  //==> Ru(Z=44)
794  static const G4int N44=9;
795  static const G4double pZ44N52[7]={1.9E-7, 10., 1.E-4, 2.1E-9, .4, 4.E-6, .004};
796  static const std::pair<G4int, const G4double*> Z44N52(52,pZ44N52);
797  static const G4double pZ44N54[7]={1.5E-7, 10., 7.7E-5, 2.1E-9, .29, 2.9E-6, .004};
798  static const std::pair<G4int, const G4double*> Z44N54(54,pZ44N54);
799  static const G4double pZ44N55[7]={1.8E-7, 10., 6.6E-5, 2.6E-9, .47, 4.6E-6, .0028};
800  static const std::pair<G4int, const G4double*> Z44N55(55,pZ44N55);
801  static const G4double pZ44N56[7]={1.8E-6, 10., .0017, 1.1E-9, .47, 6.E-6, .0073};
802  static const std::pair<G4int, const G4double*> Z44N56(56,pZ44N56);
803  static const G4double pZ44N57[7]={1.8E-7, 7.8, 1.3E-4, 1.4E-9, .42, 5.E-6, .0043};
804  static const std::pair<G4int, const G4double*> Z44N57(57,pZ44N57);
805  static const G4double pZ44N58[7]={1.7E-6, 9.8, .0015, 1.2E-9, .32, 4.E-6, .0065};
806  static const std::pair<G4int, const G4double*> Z44N58(58,pZ44N58);
807  static const G4double pZ44N59[7]={3.3E-7, 8.7, 1.9E-4, 1.6E-9, .32, 3.8E-6, .0038};
808  static const std::pair<G4int, const G4double*> Z44N59(59,pZ44N59);
809  static const G4double pZ44N60[7]={3.E-7, 8.7, 1.8E-4, 1.6E-9, .3, 3.2E-6, .004};
810  static const std::pair<G4int, const G4double*> Z44N60(60,pZ44N60);
811  static const G4double pZ44N61[7]={3.E-7, 8.8, 1.4E-4, 1.9E-9, .3, 3.2E-6, .003};
812  static const std::pair<G4int, const G4double*> Z44N61(61,pZ44N61);
813  static const std::pair<G4int, const G4double*> Z44[N44]={Z44N52, Z44N54, Z44N55, Z44N56,
814  Z44N57, Z44N58, Z44N59, Z44N60,
815  Z44N61};
816  //==> Rh(Z=45)
817  static const G4int N45=2;
818  static const G4double pZ45N58[7]={8.E-8, 8.7, 4.E-5, 1.8E-9, .29, 2.9E-6, .0033};
819  static const std::pair<G4int, const G4double*> Z45N58(58,pZ45N58);
820  static const G4double pZ45N60[7]={8.E-8, 8.7, .09, 1.3E-12, .29, 2.9E-6, 7.};
821  static const std::pair<G4int, const G4double*> Z45N60(60,pZ45N60);
822  static const std::pair<G4int, const G4double*> Z45[N45]={Z45N58, Z45N60};
823  //==> Pd(Z=46)
824  static const G4int N46=7;
825  static const G4double pZ46N56[7]={2.E-7, 9.9, 1.2E-4, 1.5E-9, .35, 3.3E-6, .0045};
826  static const std::pair<G4int, const G4double*> Z46N56(56,pZ46N56);
827  static const G4double pZ46N58[7]={2.E-7, 9.9, 9.5E-5, 1.8E-9, .4, 4.E-6, .0036};
828  static const std::pair<G4int, const G4double*> Z46N58(58,pZ46N58);
829  static const G4double pZ46N59[7]={5.6E-7, 9., 4.6E-4, 1.2E-9, .5, 4.8E-6, .0056};
830  static const std::pair<G4int, const G4double*> Z46N59(59,pZ46N59);
831  static const G4double pZ46N60[7]={2.4E-7, 9.2, 1.2E-4, 1.8E-9, .47, 4.6E-6, .0035};
832  static const std::pair<G4int, const G4double*> Z46N60(60,pZ46N60);
833  static const G4double pZ46N61[7]={1.2E-7, 9.2, 4.4E-5, 2.8E-9, .5, 4.3E-6, .0025};
834  static const std::pair<G4int, const G4double*> Z46N61(61,pZ46N61);
835  static const G4double pZ46N62[7]={1.2E-7, 9.2, 3.2E-5, 3.4E-9, .48, 4.5E-6, .0018};
836  static const std::pair<G4int, const G4double*> Z46N62(62,pZ46N62);
837  static const G4double pZ46N64[7]={4.E-7, 9.1, 2.5E-4, 1.5E-9, .48, 4.7E-6, .0042};
838  static const std::pair<G4int, const G4double*> Z46N64(64,pZ46N64);
839  static const std::pair<G4int, const G4double*> Z46[N46]={Z46N56, Z46N58, Z46N59,
840  Z46N60, Z46N61, Z46N62, Z46N64};
841  //==> Ag(Z=47)
842  static const G4int N47=4;
843  static const G4double pZ47N60[7]={1.4E-6, 9.7, .0011, 1.4E-9, .55, 5.E-6, .0056};
844  static const std::pair<G4int, const G4double*> Z47N60(60,pZ47N60);
845  static const G4double pZ47N62[7]={3.E-8, 8.7, 8.5E-6, 3.5E-9, .6, 5.6E-6, .0018};
846  static const std::pair<G4int, const G4double*> Z47N62(62,pZ47N62);
847  static const G4double pZ47N63[7]={3.E-6, 9.5, .002, 1.5E-9, .58, 5.E-6, .0047};
848  static const std::pair<G4int, const G4double*> Z47N63(63,pZ47N63);
849  static const G4double pZ47N64[7]={1.5E-7, 9., 9.E-5, 1.7E-9, .58, 5.6E-6, .0039};
850  static const std::pair<G4int, const G4double*> Z47N64(64,pZ47N64);
851  static const std::pair<G4int, const G4double*> Z47[N47]={Z47N60, Z47N62, Z47N63, Z47N64};
852  //==> Cd(Z=48)
853  static const G4int N48=9;
854  static const G4double pZ48N58[7]={2.9E-7, 10., 1.3E-4, 1.9E-9, .4, 3.8E-6, .0034};
855  static const std::pair<G4int, const G4double*> Z48N58(58,pZ48N58);
856  static const G4double pZ48N60[7]={2.3E-7, 10., 8.2E-5, 2.5E-9, .5, 4.7E-6, .0026};
857  static const std::pair<G4int, const G4double*> Z48N60(60,pZ48N60);
858  static const G4double pZ48N62[7]={2.3E-7, 10., 9.9E-5, 2.5E-9, .5, 4.7E-6, .0031};
859  static const std::pair<G4int, const G4double*> Z48N62(62,pZ48N62);
860  static const G4double pZ48N63[7]={8.4E-7, 11., 4.3E-4, 1.8E-9, .5, 4.5E-6, .0042};
861  static const std::pair<G4int, const G4double*> Z48N63(63,pZ48N63);
862  static const G4double pZ48N64[7]={4.E-7, 11., 1.8E-4, 1.8E-9, .5, 4.6E-6, .0036};
863  static const std::pair<G4int, const G4double*> Z48N64(64,pZ48N64);
864  static const G4double pZ48N65[7]={1.6E-6, 12., .001, 0., .5, 4.6E-6, .013};
865  static const std::pair<G4int, const G4double*> Z48N65(65,pZ48N65);
866  static const G4double pZ48N66[7]={3.E-7, 11., 1.2E-4, 1.9E-9, .5, 4.6E-6, .0031};
867  static const std::pair<G4int, const G4double*> Z48N66(66,pZ48N66);
868  static const G4double pZ48N67[7]={3.8E-7, 11., 1.7E-4, 2.E-9, .6, 6.6E-6, .0035};
869  static const std::pair<G4int, const G4double*> Z48N67(67,pZ48N67);
870  static const G4double pZ48N68[7]={6.E-7, 11., 3.3E-4, 1.9E-9, .5, 4.6E-6, .0043};
871  static const std::pair<G4int, const G4double*> Z48N68(68,pZ48N68);
872  static const std::pair<G4int, const G4double*> Z48[N48]={Z48N58, Z48N60, Z48N62, Z48N63,
873  Z48N64, Z48N65, Z48N66, Z48N67,
874  Z48N68};
875  //==> In(Z=49)
876  static const G4int N49=2;
877  static const G4double pZ49N64[7]={2.7E-7, 12., 8.1E-5, 2.7E-9, .5, 5.E-6, .0026};
878  static const std::pair<G4int, const G4double*> Z49N64(64,pZ49N64);
879  static const G4double pZ49N66[7]={2.7E-7, 12., 5.5E-5, 4.E-9, .5, 5.E-6, .0018};
880  static const std::pair<G4int, const G4double*> Z49N66(66,pZ49N66);
881  static const std::pair<G4int, const G4double*> Z49[N49]={Z49N64, Z49N66};
882  //==> Sn(Z=50)
883  static const G4int N50=14;
884  static const G4double pZ50N62[7]={4.E-7, 11., 1.6E-4, 2.2E-9, .5, 4.5E-6, .0032};
885  static const std::pair<G4int, const G4double*> Z50N62(62,pZ50N62);
886  static const G4double pZ50N63[7]={4.1E-7, 11., 1.6E-4, 2.4E-9, .54, 6.E-6, .0031};
887  static const std::pair<G4int, const G4double*> Z50N63(63,pZ50N63);
888  static const G4double pZ50N64[7]={5.E-7, 12., 1.9E-4, 2.2E-9, .5, 4.4E-6, .0032};
889  static const std::pair<G4int, const G4double*> Z50N64(64,pZ50N64);
890  static const G4double pZ50N65[7]={1.E-5, 12., .0077, 1.4E-9, .5, 5.E-6, .0066};
891  static const std::pair<G4int, const G4double*> Z50N65(65,pZ50N65);
892  static const G4double pZ50N66[7]={5.E-7, 12., 1.8E-4, 2.4E-9, .5, 5.E-6, .0031};
893  static const std::pair<G4int, const G4double*> Z50N66(66,pZ50N66);
894  static const G4double pZ50N67[7]={1.E-6, 12., 4.4E-4, 1.8E-9, .5, 5.E-6, .0037};
895  static const std::pair<G4int, const G4double*> Z50N67(67,pZ50N67);
896  static const G4double pZ50N68[7]={5.E-7, 12., 2.E-4, 2.4E-9, .5, 5.E-6, .0033};
897  static const std::pair<G4int, const G4double*> Z50N68(68,pZ50N68);
898  static const G4double pZ50N69[7]={6.E-7, 12., 2.5E-4, 2.E-9, .5, 5.E-6, .0035};
899  static const std::pair<G4int, const G4double*> Z50N69(69,pZ50N69);
900  static const G4double pZ50N70[7]={1.E-6, 12., 4.7E-4, 2.E-9, .5, 5.E-6, .0039};
901  static const std::pair<G4int, const G4double*> Z50N70(70,pZ50N70);
902  static const G4double pZ50N72[7]={1.E-6, 12., 3.7E-4, 2.2E-9, .5, 5.E-6, .0031};
903  static const std::pair<G4int, const G4double*> Z50N72(72,pZ50N72);
904  static const G4double pZ50N73[7]={5.E-7, 12., 1.7E-4, 2.8E-9, .5, 5.E-6, .0028};
905  static const std::pair<G4int, const G4double*> Z50N73(73,pZ50N73);
906  static const G4double pZ50N74[7]={5.E-7, 12., 2.E-4, 2.E-9, .5, 5.E-6, .0033};
907  static const std::pair<G4int, const G4double*> Z50N74(74,pZ50N74);
908  static const G4double pZ50N75[7]={5.E-7, 12., 1.9E-4, 2.8E-9, .5, 5.E-6, .003};
909  static const std::pair<G4int, const G4double*> Z50N75(75,pZ50N75);
910  static const G4double pZ50N76[7]={5.E-7, 12., 1.7E-4, 2.8E-9, .5, 5.E-6, .0028};
911  static const std::pair<G4int, const G4double*> Z50N76(76,pZ50N76);
912  static const std::pair<G4int, const G4double*> Z50[N50]={Z50N62, Z50N63, Z50N64, Z50N65,
913  Z50N66, Z50N67, Z50N68, Z50N69,
914  Z50N70, Z50N72, Z50N73, Z50N74,
915  Z50N75, Z50N76};
916  //==> Sb(Z=51)
917  static const G4int N51=5;
918  static const G4double pZ51N70[7]={6.E-7, 12., 2.E-4, 2.8E-9, .5, 5.E-6, .0028};
919  static const std::pair<G4int, const G4double*> Z51N70(70,pZ51N70);
920  static const G4double pZ51N72[7]={6.E-7, 12., 1.9E-4, 3.E-9, .5, 5.E-6, .0025};
921  static const std::pair<G4int, const G4double*> Z51N72(72,pZ51N72);
922  static const G4double pZ51N73[7]={1.1E-6, 12., 3.5E-4, 2.9E-9, .5, 5.E-6, .0026};
923  static const std::pair<G4int, const G4double*> Z51N73(73,pZ51N73);
924  static const G4double pZ51N74[7]={5.5E-7, 12., 1.9E-4, 2.9E-9, .5, 5.E-6, .0027};
925  static const std::pair<G4int, const G4double*> Z51N74(74,pZ51N74);
926  static const G4double pZ51N75[7]={6.E-7, 12., 2.E-4, 2.9E-9, .5, 5.E-6, .0027};
927  static const std::pair<G4int, const G4double*> Z51N75(75,pZ51N75);
928  static const std::pair<G4int, const G4double*> Z51[N51]={Z51N70, Z51N72, Z51N73, Z51N74,
929  Z51N75};
930  //==> Te(Z=52)
931  static const G4int N52=11;
932  static const G4double pZ52N68[7]={2.7E-7, 12., 8.4E-5, 3.2E-9, 1., 8.E-6, .0026};
933  static const std::pair<G4int, const G4double*> Z52N68(68,pZ52N68);
934  static const G4double pZ52N70[7]={2.7E-7, 12., 3.8E-5, 6.E-9, 1., 8.E-6, .0012};
935  static const std::pair<G4int, const G4double*> Z52N70(70,pZ52N70);
936  static const G4double pZ52N71[7]={2.7E-8, 12., 1.8E-6, 2.E-8, 1., 8.E-6, 4.8E-4};
937  static const std::pair<G4int, const G4double*> Z52N71(71,pZ52N71);
938  static const G4double pZ52N72[7]={2.6E-6, 14., .0014, 2.E-9, 1., 9.E-6, .005};
939  static const std::pair<G4int, const G4double*> Z52N72(72,pZ52N72);
940  static const G4double pZ52N73[7]={1.E-6, 14., 2.4E-4, 3.9E-9, 1., 9.E-6, .0022};
941  static const std::pair<G4int, const G4double*> Z52N73(73,pZ52N73);
942  static const G4double pZ52N74[7]={8.E-7, 14., 2.3E-4, 3.6E-9, 1.4, 1.3E-5, .0028};
943  static const std::pair<G4int, const G4double*> Z52N74(74,pZ52N74);
944  static const G4double pZ52N75[7]={8.E-7, 14., 2.1E-4, 3.6E-9, 1.4, 1.3E-5, .0025};
945  static const std::pair<G4int, const G4double*> Z52N75(75,pZ52N75);
946  static const G4double pZ52N76[7]={8.E-7, 14., 2.5E-4, 3.E-9, 1.4, 1.3E-5, .003};
947  static const std::pair<G4int, const G4double*> Z52N76(76,pZ52N76);
948  static const G4double pZ52N77[7]={5.E-7, 15., 1.2E-4, 4.3E-9, 1.4, 1.4E-5, .0023};
949  static const std::pair<G4int, const G4double*> Z52N77(77,pZ52N77);
950  static const G4double pZ52N78[7]={8.E-7, 14., 2.7E-4, 2.7E-9, 1.4, 1.3E-5, .0031};
951  static const std::pair<G4int, const G4double*> Z52N78(78,pZ52N78);
952  static const G4double pZ52N80[7]={4.7E-7, 14., 1.8E-4, 2.2E-9, .83, 1.E-5, .0036};
953  static const std::pair<G4int, const G4double*> Z52N80(80,pZ52N80);
954  static const std::pair<G4int, const G4double*> Z52[N52]={Z52N68, Z52N70, Z52N71, Z52N72,
955  Z52N73, Z52N74, Z52N75, Z52N76,
956  Z52N77, Z52N78, Z52N80};
957  //==> I (Z=53)
958  static const G4int N53=5;
959  static const G4double pZ53N74[7]={9.4E-7, 14., 2.5E-4, 3.E-9, .7, 7.3E-6, .0025};
960  static const std::pair<G4int, const G4double*> Z53N74(74,pZ53N74);
961  static const G4double pZ53N76[7]={2.1E-5, 14., .015, 1.1E-9, 1.1, 1.E-5, .007};
962  static const std::pair<G4int, const G4double*> Z53N76(76,pZ53N76);
963  static const G4double pZ53N77[7]={1.1E-6, 14., 2.4E-4, 3.3E-9, .9, 1.E-5, .0021};
964  static const std::pair<G4int, const G4double*> Z53N77(77,pZ53N77);
965  static const G4double pZ53N78[7]={5.5E-7, 14., 1.5E-4, 3.7E-9, 1.2, 1.2E-5, .0024};
966  static const std::pair<G4int, const G4double*> Z53N78(78,pZ53N78);
967  static const G4double pZ53N82[7]={3.2E-6, 14., .0017, 1.8E-9, .8, 8.E-6, .0024};
968  static const std::pair<G4int, const G4double*> Z53N82(82,pZ53N82);
969  static const std::pair<G4int, const G4double*> Z53[N53]={Z53N74, Z53N76, Z53N77, Z53N78,
970  Z53N82};
971  //==> Xe(Z=54)
972  static const G4int N54=12;
973  static const G4double pZ54N69[7]={3.E-6, 14., 8.E-4, 3.7E-9, .9, 1.1E-5, .15};
974  static const std::pair<G4int, const G4double*> Z54N69(69,pZ54N69);
975  static const G4double pZ54N70[7]={1.5E-7, 14., 1.4E-6, 9.E-8, .7, 8.E-6, 9.5E-5};
976  static const std::pair<G4int, const G4double*> Z54N70(70,pZ54N70);
977  static const G4double pZ54N72[7]={1.5E-6, 14., 5.6E-4, 3.E-9, 1.2, 1.1E-5, .0036};
978  static const std::pair<G4int, const G4double*> Z54N72(72,pZ54N72);
979  static const G4double pZ54N74[7]={1.8E-6, 14., 8.8E-4, 2.E-9, 1.3, 1.2E-5, .0047};
980  static const std::pair<G4int, const G4double*> Z54N74(74,pZ54N74);
981  static const G4double pZ54N75[7]={1.E-6, 14., 2.6E-4, 3.7E-9, 1.5, 1.4E-5, .0024};
982  static const std::pair<G4int, const G4double*> Z54N75(75,pZ54N75);
983  static const G4double pZ54N76[7]={1.8E-6, 14., 8.E-4, 2.E-9, 1.2, 1.4E-5, .0042};
984  static const std::pair<G4int, const G4double*> Z54N76(76,pZ54N76);
985  static const G4double pZ54N77[7]={2.3E-7, 14., 1.9E-5, 9.E-9, 1.2, 1.4E-5, 7.7E-4};
986  static const std::pair<G4int, const G4double*> Z54N77(77,pZ54N77);
987  static const G4double pZ54N78[7]={6.E-7, 14., 1.6E-4, 3.E-9, 1.2, 1.4E-5, .0025};
988  static const std::pair<G4int, const G4double*> Z54N78(78,pZ54N78);
989  static const G4double pZ54N79[7]={6.E-7, 14., 1.6E-4, 3.3E-9, 1.6, 1.5E-5, .0024};
990  static const std::pair<G4int, const G4double*> Z54N79(79,pZ54N79);
991  static const G4double pZ54N80[7]={6.6E-7, 14., 2.1E-4, 2.5E-9, 1.2, 1.4E-5, .003};
992  static const std::pair<G4int, const G4double*> Z54N80(80,pZ54N80);
993  static const G4double pZ54N81[7]={.03, 40., 2.1, 2.5E-9, 1.E-16, 6.E-36, 140.};
994  static const std::pair<G4int, const G4double*> Z54N81(81,pZ54N81);
995  static const G4double pZ54N82[7]={3.1E-6, 14., .0019, 1.6E-9, 1., 1.3E-5, .0054};
996  static const std::pair<G4int, const G4double*> Z54N82(82,pZ54N82);
997  static const std::pair<G4int, const G4double*> Z54[N54]={Z54N69, Z54N70, Z54N72, Z54N74,
998  Z54N75, Z54N76, Z54N77, Z54N78,
999  Z54N79, Z54N80, Z54N81, Z54N82};
1000  //==> Cs(Z=55)
1001  static const G4int N55=5;
1002  static const G4double pZ55N78[7]={1.4E-6, 14., 4.E-4, 3.E-9, 1.2, 1.4E-5, .0026};
1003  static const std::pair<G4int, const G4double*> Z55N78(78,pZ55N78);
1004  static const G4double pZ55N79[7]={.028, 14., 44., .5E-9, 1.2, 1.3E-5, .015};
1005  static const std::pair<G4int, const G4double*> Z55N79(79,pZ55N79);
1006  static const G4double pZ55N80[7]={2.E-6, 14., 9.5E-4, 2.E-9, 1.2, 1.4E-5, .0042};
1007  static const std::pair<G4int, const G4double*> Z55N80(80,pZ55N80);
1008  static const G4double pZ55N81[7]={2.5E-7, 14., 6.5E-5, 3.8E-9, 1.2, 1.4E-5, .0023};
1009  static const std::pair<G4int, const G4double*> Z55N81(81,pZ55N81);
1010  static const G4double pZ55N82[7]={2.5E-7, 14., 6.5E-5, 3.8E-9, 1.2, 1.4E-5, .0023};
1011  static const std::pair<G4int, const G4double*> Z55N82(82,pZ55N82);
1012  static const std::pair<G4int, const G4double*> Z55[N55]={Z55N78, Z55N79, Z55N80, Z55N81,
1013  Z55N82};
1014  //==> Ba(Z=56)
1015  static const G4int N56=9;
1016  static const G4double pZ56N74[7]={4.E-7, 14., 2.8E-5, 1.2E-8, 1.2, 1.5E-5, 6.6E-4};
1017  static const std::pair<G4int, const G4double*> Z56N74(74,pZ56N74);
1018  static const G4double pZ56N76[7]={4.E-6, 14., .0022, 1.4E-9, 1.3, 1.6E-5, .0053};
1019  static const std::pair<G4int, const G4double*> Z56N76(76,pZ56N76);
1020  static const G4double pZ56N77[7]={2.E-7, 14., 3.7E-5, 5.E-9, 1.1, 1.5E-5, .0016};
1021  static const std::pair<G4int, const G4double*> Z56N77(77,pZ56N77);
1022  static const G4double pZ56N78[7]={1.6E-6, 14., 6.E-4, 2.E-9, 1.3, 1.6E-5, .0033};
1023  static const std::pair<G4int, const G4double*> Z56N78(78,pZ56N78);
1024  static const G4double pZ56N79[7]={5.E-7, 17., 8.E-5, 4.5E-9, 1.3, 1.6E-5, .0018};
1025  static const std::pair<G4int, const G4double*> Z56N79(79,pZ56N79);
1026  static const G4double pZ56N80[7]={2.E-6, 20., 3.E-4, 6.E-9, 1.3, 1.8E-5, .0019};
1027  static const std::pair<G4int, const G4double*> Z56N80(80,pZ56N80);
1028  static const G4double pZ56N81[7]={5.8E-6, 20., .0018, 3.E-9, 1.3, 1.7E-5, .0041};
1029  static const std::pair<G4int, const G4double*> Z56N81(81,pZ56N81);
1030  static const G4double pZ56N82[7]={2.7E-6, 20., 5.5E-4, 4.E-9, 1.4, 2.E-5, .0027};
1031  static const std::pair<G4int, const G4double*> Z56N82(82,pZ56N82);
1032  static const G4double pZ56N84[7]={1.1E-6, 21., 1.E-4, 9.E-9, 2., 2.7E-5, .0012};
1033  static const std::pair<G4int, const G4double*> Z56N84(84,pZ56N84);
1034  static const std::pair<G4int, const G4double*> Z56[N56]={Z56N74, Z56N76, Z56N77, Z56N78,
1035  Z56N79, Z56N80, Z56N81, Z56N82,
1036  Z56N84};
1037  //==> La(Z=57)
1038  static const G4int N57=3;
1039  static const G4double pZ57N81[7]={2.7E-6, 20., .0017, 1.1E-9, 1.4, 2.E-5, .0083};
1040  static const std::pair<G4int, const G4double*> Z57N81(81,pZ57N81);
1041  static const G4double pZ57N82[7]={5.4E-6, 20., .0027, 1.5E-9, 1., 1.5E-5, .0065};
1042  static const std::pair<G4int, const G4double*> Z57N82(82,pZ57N82);
1043  static const G4double pZ57N83[7]={2.7E-6, 20., 2.6E-4, 6.E-9, 1.4, 2.E-5, .0012};
1044  static const std::pair<G4int, const G4double*> Z57N83(83,pZ57N83);
1045  static const std::pair<G4int, const G4double*> Z57[N57]={Z57N81, Z57N82, Z57N83};
1046  //==> Ce(Z=58)
1047  static const G4int N58=8;
1048  static const G4double pZ58N78[7]={1.8E-6, 20., 3.7E-4, 4.E-9, 1.4, 2.E-5, .0028};
1049  static const std::pair<G4int, const G4double*> Z58N78(78,pZ58N78);
1050  static const G4double pZ58N80[7]={1.8E-6, 18., 2.6E-4, 6.E-9, 1.3, 2.1E-5, .0017};
1051  static const std::pair<G4int, const G4double*> Z58N80(80,pZ58N80);
1052  static const G4double pZ58N81[7]={.0018, 18., 2.9, .6E-9, 1.3, 2.E-5, .02};
1053  static const std::pair<G4int, const G4double*> Z58N81(81,pZ58N81);
1054  static const G4double pZ58N82[7]={1.8E-6, 18., 3.7E-4, 5.E-9, 1.3, 2.E-5, .0024};
1055  static const std::pair<G4int, const G4double*> Z58N82(82,pZ58N82);
1056  static const G4double pZ58N83[7]={7.2E-6, 20., .0025, 2.3E-9, 1.1, 1.7E-5, .0045};
1057  static const std::pair<G4int, const G4double*> Z58N83(83,pZ58N83);
1058  static const G4double pZ58N84[7]={1.2E-6, 18., 2.E-4, 6.E-9, 1.5, 1.9E-5, .0018};
1059  static const std::pair<G4int, const G4double*> Z58N84(84,pZ58N84);
1060  static const G4double pZ58N85[7]={1.2E-6, 16., 6.E-4, 1.7E-9, 1.4, 2.E-5, .0053};
1061  static const std::pair<G4int, const G4double*> Z58N85(85,pZ58N85);
1062  static const G4double pZ58N86[7]={6.E-7, 18., 1.E-4, 6.E-9, 1.5, 1.9E-5, .0018};
1063  static const std::pair<G4int, const G4double*> Z58N86(86,pZ58N86);
1064  static const std::pair<G4int, const G4double*> Z58[N58]={Z58N78, Z58N80, Z58N81, Z58N82,
1065  Z58N83, Z58N84, Z58N85, Z58N86};
1066  //==> Pr(Z=59)
1067  static const G4int N59=3;
1068  static const G4double pZ59N82[7]={9.5E-7, 16., 1.6E-4, 4.E-9, 1.4, 2.E-5, .0017};
1069  static const std::pair<G4int, const G4double*> Z59N82(82,pZ59N82);
1070  static const G4double pZ59N83[7]={9.5E-7, 16., 1.9E-4, 4.E-9, 1.4, 1.9E-5, .0021};
1071  static const std::pair<G4int, const G4double*> Z59N83(83,pZ59N83);
1072  static const G4double pZ59N84[7]={9.5E-6, 16., .019, .4E-9, 2., 2.4E-5, .021};
1073  static const std::pair<G4int, const G4double*> Z59N84(84,pZ59N84);
1074  static const std::pair<G4int, const G4double*> Z59[N59]={Z59N82, Z59N83, Z59N84};
1075  //==> Nd(Z=60)
1076  static const G4int N60=8;
1077  static const G4double pZ60N82[7]={9.6E-6, 21., .0036, 2.3E-9, 1.4, 2.E-5, .0052};
1078  static const std::pair<G4int, const G4double*> Z60N82(82,pZ60N82);
1079  static const G4double pZ60N83[7]={9.6E-4, 20., 4., .25E-9, 1.4, 2.E-5, .052};
1080  static const std::pair<G4int, const G4double*> Z60N83(83,pZ60N83);
1081  static const G4double pZ60N84[7]={4.8E-7, 21., 3.3E-5, 1.E-08, 1.3, 2.2E-5, 9.E-4};
1082  static const std::pair<G4int, const G4double*> Z60N84(84,pZ60N84);
1083  static const G4double pZ60N85[7]={.0048, 20., 4.5, .9E-9, 1.3, 2.E-5, .012};
1084  static const std::pair<G4int, const G4double*> Z60N85(85,pZ60N85);
1085  static const G4double pZ60N86[7]={1.2E-6, 16., 7.7E-4, 1.5E-9, 1.3, 1.8E-5, .0066};
1086  static const std::pair<G4int, const G4double*> Z60N86(86,pZ60N86);
1087  static const G4double pZ60N87[7]={.0012, 15., 8.4, .1E-9, 1.3, 1.5E-5, .071};
1088  static const std::pair<G4int, const G4double*> Z60N87(87,pZ60N87);
1089  static const G4double pZ60N88[7]={1.5E-7, 16., 4.1E-5, 2.5E-9, 1.3, 1.6E-5, .0027};
1090  static const std::pair<G4int, const G4double*> Z60N88(88,pZ60N88);
1091  static const G4double pZ60N90[7]={1.5E-7, 16., 4.3E-5, 2.5E-9, 1.3, 1.6E-5, .0029};
1092  static const std::pair<G4int, const G4double*> Z60N90(90,pZ60N90);
1093  static const std::pair<G4int, const G4double*> Z60[N60]={Z60N82, Z60N83, Z60N84, Z60N85,
1094  Z60N86, Z60N87, Z60N88, Z60N90};
1095  //==> Pm(Z=61)
1096  static const G4int N61=3;
1097  static const G4double pZ61N86[7]={6.E-7, 16., 8.E-4, .6E-9, 3., 2.8E-5, .014};
1098  static const std::pair<G4int, const G4double*> Z61N86(86,pZ61N86);
1099  static const G4double pZ61N87[7]={6.2E-8, 16., 1.2E-5, 4.E-9, 2.2, 2.5E-5, .0019};
1100  static const std::pair<G4int, const G4double*> Z61N87(87,pZ61N87);
1101  static const G4double pZ61N88[7]={3.2E-8, 16., 6.4E-6, 4.E-9, 2.2, 2.5E-5, .002};
1102  static const std::pair<G4int, const G4double*> Z61N88(88,pZ61N88);
1103  static const std::pair<G4int, const G4double*> Z61[N61]={Z61N86, Z61N87, Z61N88};
1104  //==> Sm(Z=62)
1105  static const G4int N62=9;
1106  static const G4double pZ62N82[7]={1.2E-7, 16., 2.1E-5, 5.E-9, 1.4, 2.E-5, .0017};
1107  static const std::pair<G4int, const G4double*> Z62N82(82,pZ62N82);
1108  static const G4double pZ62N85[7]={1.2E-7, 16., 5.3E-5, 1.5E-9, 1.3, 1.7E-5, .0045};
1109  static const std::pair<G4int, const G4double*> Z62N85(85,pZ62N85);
1110  static const G4double pZ62N86[7]={6.E-8, 16., 1.7E-5, 3.E-9, 1.3, 1.7E-5, .0028};
1111  static const std::pair<G4int, const G4double*> Z62N86(86,pZ62N86);
1112  static const G4double pZ62N87[7]={6.E-8, 15., 5.2E-4, .11E-9, 1.3, 1.5E-5, .074};
1113  static const std::pair<G4int, const G4double*> Z62N87(87,pZ62N87);
1114  static const G4double pZ62N88[7]={6.E-7, 16., 8.6E-4, .7E-9, 1.3, 1.7E-5, .015};
1115  static const std::pair<G4int, const G4double*> Z62N88(88,pZ62N88);
1116  static const G4double pZ62N89[7]={6.E-7, 16., 5.E-4, 0., 1.3, 1.6E-5, .053};
1117  static const std::pair<G4int, const G4double*> Z62N89(89,pZ62N89);
1118  static const G4double pZ62N90[7]={6.E-8, 15., 1.3E-5, 4.5E-9, 1.3, 1.7E-5, .0019};
1119  static const std::pair<G4int, const G4double*> Z62N90(90,pZ62N90);
1120  static const G4double pZ62N91[7]={6.E-8, 15., 1.5E-5, 2.E-9, 1.3, 1.6E-5, .0024};
1121  static const std::pair<G4int, const G4double*> Z62N91(91,pZ62N91);
1122  static const G4double pZ62N92[7]={1.2E-7, 15., 8.6E-5, 1.2E-9, 1.3, 1.6E-5, .007};
1123  static const std::pair<G4int, const G4double*> Z62N92(92,pZ62N92);
1124  static const std::pair<G4int, const G4double*> Z62[N62]={Z62N82, Z62N85, Z62N86, Z62N87,
1125  Z62N88, Z62N89, Z62N90, Z62N91,
1126  Z62N92};
1127  //==> Eu(Z=63)
1128  static const G4int N63=7;
1129  static const G4double pZ63N88[7]={6.E-8, 15., 2.8E-5, 2.E-9, 1.3, 1.5E-5, .0046};
1130  static const std::pair<G4int, const G4double*> Z63N88(88,pZ63N88);
1131  static const G4double pZ63N89[7]={6.E-7, 15., .0011, .5E-9, 2.4, 2.4E-5, .017};
1132  static const std::pair<G4int, const G4double*> Z63N89(89,pZ63N89);
1133  static const G4double pZ63N90[7]={3.E-7, 15., 1.8E-4, 1.1E-9, 1., 1.2E-5, .0054};
1134  static const std::pair<G4int, const G4double*> Z63N90(90,pZ63N90);
1135  static const G4double pZ63N91[7]={4.1E-7, 15., 1.4E-4, 1.9E-9, 1., 1.4E-5, .0032};
1136  static const std::pair<G4int, const G4double*> Z63N91(91,pZ63N91);
1137  static const G4double pZ63N92[7]={5.E-8, 15., 2.4E-5, 2.8E-9, 1., 1.3E-5, .0037};
1138  static const std::pair<G4int, const G4double*> Z63N92(92,pZ63N92);
1139  static const G4double pZ63N93[7]={4.1E-8, 17., 1.6E-5, 2.E-9, 3.3, 3.4E-5, .004};
1140  static const std::pair<G4int, const G4double*> Z63N93(93,pZ63N93);
1141  static const G4double pZ63N94[7]={4.2E-8, 17., 1.6E-5, 2.E-9, 1.2, 1.6E-5, .004};
1142  static const std::pair<G4int, const G4double*> Z63N94(94,pZ63N94);
1143  static const std::pair<G4int, const G4double*> Z63[N63]={Z63N88, Z63N89, Z63N90, Z63N91,
1144  Z63N92, Z63N93, Z63N94};
1145  //==> Gd(Z=64)
1146  static const G4int N64=8;
1147  static const G4double pZ64N88[7]={4.2E-8, 14., 2.E-4, 0., 1.2, 1.3E-5, .19};
1148  static const std::pair<G4int, const G4double*> Z64N88(88,pZ64N88);
1149  static const G4double pZ64N89[7]={2.E-6, 14., .0016, 1.4E-9, 1.6, 1.6E-5, .0057};
1150  static const std::pair<G4int, const G4double*> Z64N89(89,pZ64N89);
1151  static const G4double pZ64N90[7]={1.7E-7, 12., 8.4E-5, 2.E-9, 1.8, 2.2E-5, .0035};
1152  static const std::pair<G4int, const G4double*> Z64N90(90,pZ64N90);
1153  static const G4double pZ64N91[7]={1.7E-7, 13., 5.E-4, .3E-9, 1.7, 1.9E-5, .026};
1154  static const std::pair<G4int, const G4double*> Z64N91(91,pZ64N91);
1155  static const G4double pZ64N92[7]={1.7E-7, 13., 7.E-5, 2.5E-9, 1.8, 2.2E-5, .003};
1156  static const std::pair<G4int, const G4double*> Z64N92(92,pZ64N92);
1157  static const G4double pZ64N93[7]={1.7E-6, 12., .002, 0., 1.7, 1.8E-5, .47};
1158  static const std::pair<G4int, const G4double*> Z64N93(93,pZ64N93);
1159  static const G4double pZ64N94[7]={3.4E-7, 13., 1.5E-4, 2.E-9, 1.8, 2.3E-5, .0034};
1160  static const std::pair<G4int, const G4double*> Z64N94(94,pZ64N94);
1161  static const G4double pZ64N96[7]={2.6E-6, 13., .0019, 1.2E-9, 1., 1.2E-5, .0056};
1162  static const std::pair<G4int, const G4double*> Z64N96(96,pZ64N96);
1163  static const std::pair<G4int, const G4double*> Z64[N64]={Z64N88, Z64N89, Z64N90, Z64N91,
1164  Z64N92, Z64N93, Z64N94, Z64N96};
1165  //==> Tb(Z=65)
1166  static const G4int N65=2;
1167  static const G4double pZ65N94[7]={9.E-7, 16., 3.9E-4, 1.7E-9, 2., 2.2E-5, .0042};
1168  static const std::pair<G4int, const G4double*> Z65N94(94,pZ65N94);
1169  static const G4double pZ65N95[7]={4.5E-7, 16., 1.1E-4, 3.E-9, 1.7, 2.2E-5, .0024};
1170  static const std::pair<G4int, const G4double*> Z65N95(95,pZ65N95);
1171  static const std::pair<G4int, const G4double*> Z65[N65]={Z65N94, Z65N94};
1172  //==> Dy(Z=66)
1173  static const G4int N66=7;
1174  static const G4double pZ66N90[7]={1.2E-7, 13., 4.E-5, 3.E-9, 1.2, 1.4E-5, .0025};
1175  static const std::pair<G4int, const G4double*> Z66N90(90,pZ66N90);
1176  static const G4double pZ66N92[7]={1.2E-7, 13., 6.7E-5, 2.E-9, 1., 1.1E-5, .004};
1177  static const std::pair<G4int, const G4double*> Z66N92(92,pZ66N92);
1178  static const G4double pZ66N94[7]={1.2E-7, 13., 5.3E-5, 1.6E-9, 1., 1.1E-5, .0034};
1179  static const std::pair<G4int, const G4double*> Z66N94(94,pZ66N94);
1180  static const G4double pZ66N95[7]={1.2E-6, 13., .0017, .7E-9, 1.3, 1.3E-5, .011};
1181  static const std::pair<G4int, const G4double*> Z66N95(95,pZ66N95);
1182  static const G4double pZ66N96[7]={1.2E-7, 13., 8.E-6, 1.5E-7, 1., 1.1E-5, 1.E-4};
1183  static const std::pair<G4int, const G4double*> Z66N96(96,pZ66N96);
1184  static const G4double pZ66N97[7]={1.5E-7, 13., 4.E-5, 4.E-9, 1.3, 1.3E-5, .002};
1185  static const std::pair<G4int, const G4double*> Z66N97(97,pZ66N97);
1186  static const G4double pZ66N98[7]={3.E-7, 13., .001, 4.E-9, 1.3, 1.3E-5, .23};
1187  static const std::pair<G4int, const G4double*> Z66N98(98,pZ66N98);
1188  static const std::pair<G4int, const G4double*> Z66[N66]={Z66N90, Z66N92, Z66N94, Z66N95,
1189  Z66N96, Z66N97, Z66N98};
1190  //==> Ho(Z=67)
1191  static const G4int N67=2;
1192  static const G4double pZ67N98[7]={3.E-7, 13., 2.2E-4, 1.5E-9, 1., 1.E-5, .0054};
1193  static const std::pair<G4int, const G4double*> Z67N98(98,pZ67N98);
1194  static const G4double pZ67N99[7]={7.5E-8, 13., 2.6E-5, 4.5E-9, 1.5, 1.5E-5, .0021};
1195  static const std::pair<G4int, const G4double*> Z67N99(99,pZ67N99);
1196  static const std::pair<G4int, const G4double*> Z67[N67]={Z67N98, Z67N99};
1197  //==> Er(Z=68)
1198  static const G4int N68=6;
1199  static const G4double pZ68N94[7]={1.2E-7, 13., 7.8E-5, 1.6E-9, .9, 9.E-6, .005};
1200  static const std::pair<G4int, const G4double*> Z68N94(94,pZ68N94);
1201  static const G4double pZ68N96[7]={1.2E-7, 13., 8.5E-5, 1.2E-9, .9, 8.E-6, .0055};
1202  static const std::pair<G4int, const G4double*> Z68N96(96,pZ68N96);
1203  static const G4double pZ68N98[7]={1.E-6, 13., .0011, .8E-9, .9, 8.E-6, .0087};
1204  static const std::pair<G4int, const G4double*> Z68N98(98,pZ68N98);
1205  static const G4double pZ68N99[7]={1.2E-7, 13., 2.5E-5, 4.5E-9, .9, 9.E-6, .0015};
1206  static const std::pair<G4int, const G4double*> Z68N99(99,pZ68N99);
1207  static const G4double pZ68N100[7]={2.E-6, 13., .0015, 1.1E-9, .9, 8.E-6, .0058};
1208  static const std::pair<G4int, const G4double*> Z68N100(100,pZ68N100);
1209  static const G4double pZ68N102[7]={2.E-6, 13., .0018, 1.E-9, .9, 8.E-6, .007};
1210  static const std::pair<G4int, const G4double*> Z68N102(102,pZ68N102);
1211  static const std::pair<G4int, const G4double*> Z68[N68]={Z68N94, Z68N96, Z68N98,
1212  Z68N99, Z68N100, Z68N102};
1213  //==> Tm(Z=69) *** No data *** (Tm169=Er167)
1214  static const G4int N69=1;
1215  static const G4double pZ69N100[7]={1.2E-7, 13., 2.5E-5, 4.5E-9, .9, 9.E-6, .0015};
1216  static const std::pair<G4int, const G4double*> Z69N100(100,pZ69N100);
1217  static const std::pair<G4int, const G4double*> Z69[N69]={Z69N100};
1218  //==> Yb(Z=70) *** No data *** (Yb168=Er166, Yb170=Er168, Yb171=Er167, Yb172=Er170,
1219  // Yb173=Hf177, Yb174=Hf176, Yb176=Hf178)
1220  static const G4int N70=7;
1221  static const G4double pZ70N98[7]={1.E-6, 13., .0011, .8E-9, .9, 8.E-6, .0087};
1222  static const std::pair<G4int, const G4double*> Z70N98(98,pZ70N98);
1223  static const G4double pZ70N100[7]={2.E-6, 13., .0015, 1.1E-9, .9, 8.E-6, .0058};
1224  static const std::pair<G4int, const G4double*> Z70N100(100,pZ70N100);
1225  static const G4double pZ70N101[7]={1.2E-7, 13., 2.5E-5, 4.5E-9, .9, 9.E-6, .0015};
1226  static const std::pair<G4int, const G4double*> Z70N101(101,pZ70N101);
1227  static const G4double pZ70N102[7]={2.E-6, 13., .0018, 1.E-9, .9, 8.E-6, .007};
1228  static const std::pair<G4int, const G4double*> Z70N102(102,pZ70N102);
1229  static const G4double pZ70N103[7]={5.E-7, 18., .01, 1.7E-6, 1.2, 1.4E-5, 1.4E-5};
1230  static const std::pair<G4int, const G4double*> Z70N103(103,pZ70N103);
1231  static const G4double pZ70N104[7]={5.E-7, 18., 1.9E-4, 2.5E-9, 1.2, 1.4E-5, .004};
1232  static const std::pair<G4int, const G4double*> Z70N104(104,pZ70N104);
1233  static const G4double pZ70N106[7]={5.E-7, 18., 1.3E-4, 2.E-9, 1.2, 1.4E-5, .0027};
1234  static const std::pair<G4int, const G4double*> Z70N106(106,pZ70N106);
1235  static const std::pair<G4int, const G4double*> Z70[N70]={Z70N98, Z70N100, Z70N101,
1236  Z70N102, Z70N103, Z70N104,
1237  Z70N106};
1238  //==> Lu(Z=71)
1239  static const G4int N71=2;
1240  static const G4double pZ71N104[7]={5.E-7, 18., 1.8E-4, 2.E-9, .9, 9.E-6, .0036};
1241  static const std::pair<G4int, const G4double*> Z71N104(104,pZ71N104);
1242  static const G4double pZ71N105[7]={2.5E-7, 18., 9.E-5, 1.E-8, .9, 9.E-6, .0016};
1243  static const std::pair<G4int, const G4double*> Z71N105(105,pZ71N105);
1244  static const std::pair<G4int, const G4double*> Z71[N71]={Z71N104, Z71N105};
1245  //==> Hf(Z=72)
1246  static const G4int N72=6;
1247  static const G4double pZ72N102[7]={1.E-6, 18., 8.8E-4, .8E-9, 1., 1.1E-5, .0092};
1248  static const std::pair<G4int, const G4double*> Z72N102(102,pZ72N102);
1249  static const G4double pZ72N104[7]={5.E-7, 18., 1.9E-4, 2.5E-9, 1.2, 1.4E-5, .004};
1250  static const std::pair<G4int, const G4double*> Z72N104(104,pZ72N104);
1251  static const G4double pZ72N105[7]={5.E-7, 18., .01, 1.7E-6, 1.2, 1.4E-5, 1.4E-5};
1252  static const std::pair<G4int, const G4double*> Z72N105(105,pZ72N105);
1253  static const G4double pZ72N106[7]={5.E-7, 18., 1.3E-4, 2.E-9, 1.2, 1.4E-5, .0027};
1254  static const std::pair<G4int, const G4double*> Z72N106(106,pZ72N106);
1255  static const G4double pZ72N107[7]={2.5E-7, 18., 1.E-4, 2.E-9, 1.2, 1.5E-5, .0041};
1256  static const std::pair<G4int, const G4double*> Z72N107(107,pZ72N107);
1257  static const G4double pZ72N108[7]={1.E-6, 18., .0012, .6E-9, 1.2, 1.5E-5, .012};
1258  static const std::pair<G4int, const G4double*> Z72N108(108,pZ72N108);
1259  static const std::pair<G4int, const G4double*> Z72[N72]={Z72N102, Z72N104, Z72N105,
1260  Z72N106, Z72N107, Z72N108};
1261  //==> Ta(Z=73)
1262  static const G4int N73=2;
1263  static const G4double pZ73N108[7]={5.E-7, 18., 1.7E-4, 2.E-9, 1.2, 1.4E-5, .0035};
1264  static const std::pair<G4int, const G4double*> Z73N108(108,pZ73N108);
1265  static const G4double pZ73N109[7]={1.E-6, 14., .002, .3E-9, 1.3, 1.5E-5, .016};
1266  static const std::pair<G4int, const G4double*> Z73N109(109,pZ73N109);
1267  static const std::pair<G4int, const G4double*> Z73[N73]={Z73N108, Z73N108};
1268  //==> W (Z=74) *** W180 only bad TENDL-2008 *** (W180=Hf178)
1269  static const G4int N74=5;
1270  static const G4double pZ74N106[7]={5.E-7, 18., 1.3E-4, 2.E-9, 1.2, 1.4E-5, .0027};
1271  static const std::pair<G4int, const G4double*> Z74N106(106,pZ74N106);
1272  static const G4double pZ74N108[7]={4.E-6, 14., .0034, .9E-9, 1.3, 1.4E-5, .0067};
1273  static const std::pair<G4int, const G4double*> Z74N108(108,pZ74N108);
1274  static const G4double pZ74N109[7]={1.2E-7, 14., 3.E-5, 3.E-9, 1.3, 1.4E-5, .0019};
1275  static const std::pair<G4int, const G4double*> Z74N109(109,pZ74N109);
1276  static const G4double pZ74N110[7]={1.2E-7, 14., 3.6E-5, 2.E-9, 1.3, 1.3E-5, .0024};
1277  static const std::pair<G4int, const G4double*> Z74N110(110,pZ74N110);
1278  static const G4double pZ74N112[7]={1.2E-7, 14., 3.E-5, 1.3E-7, 1.3, 1.3E-5, 1.4E-4};
1279  static const std::pair<G4int, const G4double*> Z74N112(112,pZ74N112);
1280  static const std::pair<G4int, const G4double*> Z74[N74]={Z74N106, Z74N108, Z74N109,
1281  Z74N110, Z74N112};
1282  //==> Re(Z=75)
1283  static const G4int N75=2;
1284  static const G4double pZ75N110[7]={1.2E-7, 14., 8.E-5, 1.2E-9, 1.3, 1.5E-5, .005};
1285  static const std::pair<G4int, const G4double*> Z75N110(110,pZ75N110);
1286  static const G4double pZ75N112[7]={1.2E-7, 14., 8.8E-5, 1.1E-9, 1.3, 1.5E-5, .0055};
1287  static const std::pair<G4int, const G4double*> Z75N112(112,pZ75N112);
1288  static const std::pair<G4int, const G4double*> Z75[N75]={Z75N110, Z75N112};
1289  //==> Os(Z=76) *** No data *** (Os184=W182, Os186=W184, Os187=Re187, Os188=W186,
1290  // Os189=Re187, Os190=Os192=W186)
1291  static const G4int N76=7;
1292  static const G4double pZ76N108[7]={4.E-6, 14., .0034, .9E-9, 1.3, 1.4E-5, .0067};
1293  static const std::pair<G4int, const G4double*> Z76N108(108,pZ76N108);
1294  static const G4double pZ76N110[7]={1.2E-7, 14., 3.6E-5, 2.E-9, 1.3, 1.3E-5, .0024};
1295  static const std::pair<G4int, const G4double*> Z76N110(110,pZ76N110);
1296  static const G4double pZ76N111[7]={1.2E-7, 14., 8.8E-5, 1.1E-9, 1.3, 1.5E-5, .0055};
1297  static const std::pair<G4int, const G4double*> Z76N111(111,pZ76N111);
1298  static const G4double pZ76N112[7]={1.2E-7, 14., 3.E-5, 1.3E-7, 1.3, 1.3E-5, 1.4E-4};
1299  static const std::pair<G4int, const G4double*> Z76N112(112,pZ76N112);
1300  static const G4double pZ76N113[7]={1.2E-7, 14., 8.8E-5, 1.1E-9, 1.3, 1.5E-5, .0055};
1301  static const std::pair<G4int, const G4double*> Z76N113(113,pZ76N113);
1302  static const G4double pZ76N114[7]={1.2E-7, 14., 3.E-5, 1.3E-7, 1.3, 1.3E-5, 1.4E-4};
1303  static const std::pair<G4int, const G4double*> Z76N114(114,pZ76N114);
1304  static const G4double pZ76N116[7]={1.2E-7, 14., 3.E-5, 1.3E-7, 1.3, 1.3E-5, 1.4E-4};
1305  static const std::pair<G4int, const G4double*> Z76N116(116,pZ76N116);
1306  static const std::pair<G4int, const G4double*> Z76[N76]={Z76N108, Z76N110, Z76N111,
1307  Z76N112, Z76N113, Z76N114,
1308  Z76N116};
1309  //==> Ir(Z=77)
1310  static const G4int N77=2;
1311  static const G4double pZ77N114[7]={4.8E-7, 14., 5.2E-4, .7E-9, 1.5, 1.7E-5, .0082};
1312  static const std::pair<G4int, const G4double*> Z77N114(114,pZ77N114);
1313  static const G4double pZ77N116[7]={4.8E-7, 14., 4.5E-4, .8E-9, 1.8, 2.3E-5, .0073};
1314  static const std::pair<G4int, const G4double*> Z77N116(116,pZ77N116);
1315  static const std::pair<G4int, const G4double*> Z77[N77]={Z77N114, Z77N116};
1316  //==> Pt(Z=78) *** No data *** (Pt190=Pt192=Pt194=Hg196, Pt195=Hg199, Pt196=Hg198,
1317  // Pt198=Hg200)
1318  static const G4int N78=6;
1319  static const G4double pZ78N112[7]={6.E-8, 19., 3.3E-4, .1E-9, 1.6, 1.8E-5, .06};
1320  static const std::pair<G4int, const G4double*> Z78N112(112,pZ78N112);
1321  static const G4double pZ78N114[7]={6.E-8, 19., 3.3E-4, .1E-9, 1.6, 1.8E-5, .06};
1322  static const std::pair<G4int, const G4double*> Z78N114(114,pZ78N114);
1323  static const G4double pZ78N116[7]={6.E-8, 19., 3.3E-4, .1E-9, 1.6, 1.8E-5, .06};
1324  static const std::pair<G4int, const G4double*> Z78N116(116,pZ78N116);
1325  static const G4double pZ78N117[7]={9.6E-7, 20., .001, .2E-9, 1.6, 2.E-5, .037};
1326  static const std::pair<G4int, const G4double*> Z78N117(117,pZ78N117);
1327  static const G4double pZ78N118[7]={2.4E-7, 20., 1.6E-4, 1.3E-9, 1.6, 1.8E-5, .007};
1328  static const std::pair<G4int, const G4double*> Z78N118(118,pZ78N118);
1329  static const G4double pZ78N120[7]={2.E-6, 19., .0015, .9E-9, 1.6, 1.8E-5, .0078};
1330  static const std::pair<G4int, const G4double*> Z78N120(120,pZ78N120);
1331  static const std::pair<G4int, const G4double*> Z78[N78]={Z78N112, Z78N114, Z78N116,
1332  Z78N117, Z78N118, Z78N120};
1333  //==> Au(Z=79)
1334  static const G4int N79=1;
1335  static const G4double pZ79N118[7]={2.4E-7, 19., 1.E-4, 1.4E-9, 1.3, 1.7E-5, .0042};
1336  static const std::pair<G4int, const G4double*> Z79N118(118,pZ79N118);
1337  static const std::pair<G4int, const G4double*> Z79[N79]={Z79N118};
1338  //==> Hg(Z=80)
1339  static const G4int N80=7;
1340  static const G4double pZ80N116[7]={6.E-8, 19., 3.3E-4, .1E-9, 1.6, 1.8E-5, .06};
1341  static const std::pair<G4int, const G4double*> Z80N116(116,pZ80N116);
1342  static const G4double pZ80N118[7]={2.4E-7, 20., 1.6E-4, 1.3E-9, 1.6, 1.8E-5, .007};
1343  static const std::pair<G4int, const G4double*> Z80N118(118,pZ80N118);
1344  static const G4double pZ80N119[7]={9.6E-7, 20., .001, .2E-9, 1.6, 2.E-5, .037};
1345  static const std::pair<G4int, const G4double*> Z80N119(119,pZ80N119);
1346  static const G4double pZ80N120[7]={2.E-6, 19., .0015, .9E-9, 1.6, 1.8E-5, .0078};
1347  static const std::pair<G4int, const G4double*> Z80N120(120,pZ80N120);
1348  static const G4double pZ80N121[7]={1.E-6, 20., 7.E-4, 1.E-9, 1.6, 1.8E-5, .0076};
1349  static const std::pair<G4int, const G4double*> Z80N121(121,pZ80N121);
1350  static const G4double pZ80N122[7]={2.E-6, 18., .0016, .8E-9, 1.6, 1.8E-5, .0078};
1351  static const std::pair<G4int, const G4double*> Z80N122(122,pZ80N122);
1352  static const G4double pZ80N124[7]={2.0E-6, 18., .0032, .4E-9, 1.6, 1.8E-5, .016};
1353  static const std::pair<G4int, const G4double*> Z80N124(124,pZ80N124);
1354  static const std::pair<G4int, const G4double*> Z80[N80]={Z80N116, Z80N118, Z80N119,
1355  Z80N120, Z80N121, Z80N122,
1356  Z80N124};
1357  //==> Tl(Z=81) *** No data *** (Tl203=Au196, Tl198=Bi209)
1358  static const G4int N81=2;
1359  static const G4double pZ81N122[7]={2.4E-7, 19., 1.E-4, 1.4E-9, 1.3, 1.7E-5, .0042};
1360  static const std::pair<G4int, const G4double*> Z81N122(122,pZ81N122);
1361  static const G4double pZ81N124[7]={};
1362  static const std::pair<G4int, const G4double*> Z81N124(124,pZ81N124);
1363  static const std::pair<G4int, const G4double*> Z81[N81]={Z81N122, Z81N124};
1364  //==> Pb(Z=82)
1365  static const G4int N82=4;
1366  static const G4double pZ82N122[7]={4.E-6, 20., .0022, 1.E-9, 1.6, 1.8E-5, .0058};
1367  static const std::pair<G4int, const G4double*> Z82N122(122,pZ82N122);
1368  static const G4double pZ82N124[7]={4.E-6, 20., .0022, 1.E-9, 1.6, 1.8E-5, .0058};
1369  static const std::pair<G4int, const G4double*> Z82N124(124,pZ82N124);
1370  static const G4double pZ82N125[7]={2.E-6, 20., .0011, 1.2E-9, 1.6, 1.8E-5, .0056};
1371  static const std::pair<G4int, const G4double*> Z82N125(125,pZ82N125);
1372  static const G4double pZ82N126[7]={4.E-6, 20., .0023, 1.2E-9, 1.6, 1.8E-5, .0058};
1373  static const std::pair<G4int, const G4double*> Z82N126(126,pZ82N126);
1374  static const std::pair<G4int, const G4double*> Z82[N82]={Z82N122, Z82N124, Z82N125,
1375  Z82N126};
1376  //==> Bi(Z=83)
1377  static const G4int N83=1;
1378  static const G4double pZ83N126[7]={8.E-7, 23., 3.3E-4, 1.8E-9, 1.6, 1.8E-5, .005};
1379  static const std::pair<G4int, const G4double*> Z83N126(126,pZ83N126);
1380  static const std::pair<G4int, const G4double*> Z83[N83]={Z83N126};
1381  //==> Po(Z=84) *** No data *** (Po209=Pb207)
1382  static const G4int N84=1;
1383  static const G4double pZ84N125[7]={2.E-6, 20., .0011, 1.2E-9, 1.6, 1.8E-5, .0056};
1384  static const std::pair<G4int, const G4double*> Z84N125(125,pZ84N125);
1385  static const std::pair<G4int, const G4double*> Z84[N84]={Z84N125};
1386  //==> At(Z=85) *** No data *** (At210=Pb207)
1387  static const G4int N85=1;
1388  static const G4double pZ85N125[7]={2.E-6, 20., .0011, 1.2E-9, 1.6, 1.8E-5, .0056};
1389  static const std::pair<G4int, const G4double*> Z85N125(125,pZ85N125);
1390  static const std::pair<G4int, const G4double*> Z85[N85]={Z85N125};
1391  //==> Rn(Z=86) *** No data *** (Rn222=Ra224)
1392  static const G4int N86=1;
1393  static const G4double pZ86N136[7]={1.E-7, 23., 5.5E-5, 1.2E-9, 1.6, 1.8E-5, .0062};
1394  static const std::pair<G4int, const G4double*> Z86N136(136,pZ86N136);
1395  static const std::pair<G4int, const G4double*> Z86[N86]={Z86N136};
1396  //==> Fr(Z=87) *** No data *** (Fr223=Ac225)
1397  static const G4int N87=1;
1398  static const G4double pZ87N136[7]={2.E-7, 23., 1.1E-4, 1.2E-9, 1.6, 1.8E-5, .0062};
1399  static const std::pair<G4int, const G4double*> Z87N136(136,pZ87N136);
1400  static const std::pair<G4int, const G4double*> Z87[N87]={Z87N136};
1401  //==> Ra(Z=88)
1402  static const G4int N88=4;
1403  static const G4double pZ88N135[7]={1.E-7, 23., 5.5E-5, 1.2E-9, 1.6, 1.8E-5, .0062};
1404  static const std::pair<G4int, const G4double*> Z88N135(135,pZ88N135);
1405  static const G4double pZ88N136[7]={1.E-7, 23., 5.5E-5, 1.2E-9, 1.6, 1.8E-5, .0062};
1406  static const std::pair<G4int, const G4double*> Z88N136(136,pZ88N136);
1407  static const G4double pZ88N137[7]={1.E-7, 23., 5.5E-5, 1.2E-9, 1.6, 1.8E-5, .0062};
1408  static const std::pair<G4int, const G4double*> Z88N137(137,pZ88N137);
1409  static const G4double pZ88N138[7]={4.E-7, 23., 1.7E-4, 1.5E-9, 1.6, 1.8E-5, .005};
1410  static const std::pair<G4int, const G4double*> Z88N138(138,pZ88N138);
1411  static const std::pair<G4int, const G4double*> Z88[N88]={Z88N135, Z88N136, Z88N137,
1412  Z88N138};
1413  //==> Ac(Z=89)
1414  static const G4int N89=3;
1415  static const G4double pZ89N136[7]={2.E-7, 23., 1.1E-4, 1.2E-9, 1.6, 1.8E-5, .0062};
1416  static const std::pair<G4int, const G4double*> Z89N136(136,pZ89N136);
1417  static const G4double pZ89N137[7]={4.E-7, 23., 2.2E-4, 1.2E-9, 1.6, 1.8E-5, .0062};
1418  static const std::pair<G4int, const G4double*> Z89N137(137,pZ89N137);
1419  static const G4double pZ89N138[7]={1.E-7, 23., 5.5E-5, 1.2E-9, 1.6, 1.8E-5, .0062};
1420  static const std::pair<G4int, const G4double*> Z89N138(138,pZ89N138);
1421  static const std::pair<G4int, const G4double*> Z89[N89]={Z89N136, Z89N137, Z89N138};
1422  //==> Th(Z=90)
1423  static const G4int N90=7;
1424  static const G4double pZ90N137[7]={4.E-7, 23., 2.2E-4, 1.2E-9, 1.6, 1.8E-5, .0062};
1425  static const std::pair<G4int, const G4double*> Z90N137(137,pZ90N137);
1426  static const G4double pZ90N138[7]={1.E-6, 23., .0016, .4E-9, 3., 3.E-5, .019};
1427  static const std::pair<G4int, const G4double*> Z90N138(138,pZ90N138);
1428  static const G4double pZ90N139[7]={2.5E-7, 23., 1.1E-4, 1.4E-9, 2.4, 2.7E-5, .0049};
1429  static const std::pair<G4int, const G4double*> Z90N139(139,pZ90N139);
1430  static const G4double pZ90N140[7]={1.2E-7, 23., 3.E-5, 2.E-9, 3., 3.E-5, .003};
1431  static const std::pair<G4int, const G4double*> Z90N140(140,pZ90N140);
1432  static const G4double pZ90N142[7]={4.E-6, 23., .0023, 1.1E-9, 1.8, 2.3E-5, .0064};
1433  static const std::pair<G4int, const G4double*> Z90N142(142,pZ90N142);
1434  static const G4double pZ90N143[7]={9.4E-7, 23., 5.4E-4, 1.1E-9, 3., 3.E-5, .0066};
1435  static const std::pair<G4int, const G4double*> Z90N143(143,pZ90N143);
1436  static const G4double pZ90N144[7]={2.5E-7, 23., 1.4E-4, 1.1E-9, 3., 3.E-5, .0066};
1437  static const std::pair<G4int, const G4double*> Z90N144(144,pZ90N144);
1438  static const std::pair<G4int, const G4double*> Z90[N90]={Z90N137, Z90N138, Z90N139,
1439  Z90N140, Z90N142, Z90N143,
1440  Z90N144};
1441  //==> Pa(Z=91)
1442  static const G4int N91=3;
1443  static const G4double pZ91N140[7]={1.E-5, 23., .0052, 1.6E-9, 1.8, 2.3E-5, .0057};
1444  static const std::pair<G4int, const G4double*> Z91N140(140,pZ91N140);
1445  static const G4double pZ91N141[7]={8.E-6, 23., .006, 0., 3.5, 3.5E-5, .021};
1446  static const std::pair<G4int, const G4double*> Z91N141(141,pZ91N141);
1447  static const G4double pZ91N142[7]={8.E-6, 23., .0042, 1.E-9, 2., 2.5E-5, .006};
1448  static const std::pair<G4int, const G4double*> Z91N142(142,pZ91N142);
1449  static const std::pair<G4int, const G4double*> Z91[N91]={Z91N140, Z91N141, Z91N142};
1450  //==> U (Z=92)
1451  static const G4int N92=10;
1452  static const G4double pZ92N140[7]={1.4E-6, 20., 8.E-4, 1.5E-9, 2.5, 2.8E-5, .0055};
1453  static const std::pair<G4int, const G4double*> Z92N140(140,pZ92N140);
1454  static const G4double pZ92N141[7]={5.6E-6, 20., .0033, 1.E-9, 2.5, 2.8E-5, .006};
1455  static const std::pair<G4int, const G4double*> Z92N141(141,pZ92N141);
1456  static const G4double pZ92N142[7]={5.6E-6, 20., .0034, 0., 2.5, 2.8E-5, .0072};
1457  static const std::pair<G4int, const G4double*> Z92N142(142,pZ92N142);
1458  static const G4double pZ92N143[7]={5.6E-6, 20., .0032, 0., 2., 2.3E-5, .006};
1459  static const std::pair<G4int, const G4double*> Z92N143(143,pZ92N143);
1460  static const G4double pZ92N144[7]={3.6E-7, 20., 1.6E-4, 1.3E-9, 2.2, 2.7E-5, .0043};
1461  static const std::pair<G4int, const G4double*> Z92N144(144,pZ92N144);
1462  static const G4double pZ92N145[7]={3.6E-6, 20., .003, 0., 2.2, 2.7E-5, .045};
1463  static const std::pair<G4int, const G4double*> Z92N145(145,pZ92N145);
1464  static const G4double pZ92N146[7]={3.6E-7, 20., 1.6E-4, 1.3E-9, 2.2, 2.7E-5, .0043};
1465  static const std::pair<G4int, const G4double*> Z92N146(146,pZ92N146);
1466  static const G4double pZ92N147[7]={3.6E-6, 20., .0014, 1.3E-9, 2.2, 2.7E-5, 12.};
1467  static const std::pair<G4int, const G4double*> Z92N147(147,pZ92N147);
1468  static const G4double pZ92N148[7]={3.4E-7, 20., 1.3E-4, 1.3E-9, 2.2, 2.8E-5, .0036};
1469  static const std::pair<G4int, const G4double*> Z92N148(148,pZ92N148);
1470  static const G4double pZ92N149[7]={3.3E-7, 20., 1.5E-4, 1.2E-9, 3., 3.4E-5, .0044};
1471  static const std::pair<G4int, const G4double*> Z92N149(149,pZ92N149);
1472  static const std::pair<G4int, const G4double*> Z92[N92]={Z92N140, Z92N141, Z92N142,
1473  Z92N143, Z92N144, Z92N145,
1474  Z92N146, Z92N147, Z92N148,
1475  Z92N146};
1476  //==> Np(Z=93)
1477  static const G4int N93=5;
1478  static const G4double pZ93N142[7]={3.4E-6, 20., .002, 1.3E-9, 3., 3.3E-5, .0056};
1479  static const std::pair<G4int, const G4double*> Z93N142(142,pZ93N142);
1480  static const G4double pZ93N143[7]={3.4E-6, 20., .002, 1.6E-9, 3.5, 3.6E-5, .005};
1481  static const std::pair<G4int, const G4double*> Z93N143(143,pZ93N143);
1482  static const G4double pZ93N144[7]={6.8E-6, 18., .0052, .8E-9, 2.4, 3.E-5, .0072};
1483  static const std::pair<G4int, const G4double*> Z93N144(144,pZ93N144);
1484  static const G4double pZ93N145[7]={3.4E-6, 20., .002, 1.E-9, 3.5, 3.6E-5, .006};
1485  static const std::pair<G4int, const G4double*> Z93N145(145,pZ93N145);
1486  static const G4double pZ93N146[7]={3.4E-6, 20., .002, 1.5E-9, 3.5, 3.6E-5, .0053};
1487  static const std::pair<G4int, const G4double*> Z93N146(146,pZ93N146);
1488  static const std::pair<G4int, const G4double*> Z93[N93]={Z93N142, Z93N143, Z93N144,
1489  Z93N145, Z93N146};
1490  //==> Pu(Z=94)
1491  static const G4int N94=10;
1492  static const G4double pZ94N142[7]={6.8E-7, 16., 4.5E-4, 1.7E-9, 2.6, 3.E-5, .0047};
1493  static const std::pair<G4int, const G4double*> Z94N142(142,pZ94N142);
1494  static const G4double pZ94N143[7]={6.8E-6, 18., .0044, .9E-9, 3.3, 3.5E-5, .0058};
1495  static const std::pair<G4int, const G4double*> Z94N143(143,pZ94N143);
1496  static const G4double pZ94N144[7]={6.8E-7, 16., 6.E-4, 0., 2.7, 2.6E-5, .0082};
1497  static const std::pair<G4int, const G4double*> Z94N144(144,pZ94N144);
1498  static const G4double pZ94N145[7]={2.6E-6, 16., .0017, 1.8E-9, 1.8, 2.E-5, .004};
1499  static const std::pair<G4int, const G4double*> Z94N145(145,pZ94N145);
1500  static const G4double pZ94N146[7]={2.5E-7, 20., 9.E-5, 3.6E-8, 3.4, 3.8E-5, 5.4E-4};
1501  static const std::pair<G4int, const G4double*> Z94N146(146,pZ94N146);
1502  static const G4double pZ94N147[7]={1.4E-5, 16., .01, .8E-9, 2.7, 2.6E-5, .0055};
1503  static const std::pair<G4int, const G4double*> Z94N147(147,pZ94N147);
1504  static const G4double pZ94N148[7]={3.4E-7, 20., 1.3E-4, 1.2E-9, 3.2, 3.E-5, .0036};
1505  static const std::pair<G4int, const G4double*> Z94N148(148,pZ94N148);
1506  static const G4double pZ94N149[7]={5.2E-6, 20., .0035, .4E-9, 2.3, 3.E-5, .0095};
1507  static const std::pair<G4int, const G4double*> Z94N149(149,pZ94N149);
1508  static const G4double pZ94N150[7]={3.3E-7, 20., 1.6E-4, 1.2E-9, 3., 3.E-5, .0046};
1509  static const std::pair<G4int, const G4double*> Z94N150(150,pZ94N150);
1510  static const G4double pZ94N152[7]={2.5E-6, 16., .0018, 1.2E-9, 3., 3.1E-5, .0052};
1511  static const std::pair<G4int, const G4double*> Z94N152(152,pZ94N152);
1512  static const std::pair<G4int, const G4double*> Z94[N94]={Z94N142, Z94N143, Z94N144,
1513  Z94N145, Z94N146, Z94N147,
1514  Z94N148, Z94N149, Z94N150,
1515  Z94N152};
1516  //==> Am(Z=95)
1517  static const G4int N95=4;
1518  static const G4double pZ95N156[7]={2.5E-6, 18., .0016, .9E-9, 2., 2.3E-5, .0058};
1519  static const std::pair<G4int, const G4double*> Z95N156(156,pZ95N156);
1520  static const G4double pZ95N157[7]={5.E-6, 18., .003, 2.7E-9, 2., 2.3E-5, .0039};
1521  static const std::pair<G4int, const G4double*> Z95N157(157,pZ95N157);
1522  static const G4double pZ95N158[7]={5.E-6, 19., .0033, 2.6E-9, 2., 2.3E-5, .0044};
1523  static const std::pair<G4int, const G4double*> Z95N158(158,pZ95N158);
1524  static const G4double pZ95N159[7]={5.E-5, 20., .029, 1.1E-9, 2., 2.3E-5, .0057};
1525  static const std::pair<G4int, const G4double*> Z95N159(159,pZ95N159);
1526  static const std::pair<G4int, const G4double*> Z95[N95]={Z95N156, Z95N157, Z95N158,
1527  Z95N159};
1528  //==> Cm(Z=96)
1529  static const G4int N96=10;
1530  static const G4double pZ96N145[7]={5.E-5, 22., .027, 1.1E-9, 2.2, 2.2E-5, .006};
1531  static const std::pair<G4int, const G4double*> Z96N145(145,pZ96N145);
1532  static const G4double pZ96N146[7]={5.E-5, 24., .027, 2.E-9, 2.2, 2.2E-5, .0055};
1533  static const std::pair<G4int, const G4double*> Z96N146(146,pZ96N146);
1534  static const G4double pZ96N147[7]={5.E-5, 22., .025, 2.5E-9, 2.2, 2.4E-5, .0044};
1535  static const std::pair<G4int, const G4double*> Z96N147(147,pZ96N147);
1536  static const G4double pZ96N148[7]={5.E-5, 23., .028, 1.9E-9, 2.2, 3.E-5, .0055};
1537  static const std::pair<G4int, const G4double*> Z96N148(148,pZ96N148);
1538  static const G4double pZ96N149[7]={5.E-5, 23., .025, 1.6E-9, 3., 3.5E-5, .0054};
1539  static const std::pair<G4int, const G4double*> Z96N149(149,pZ96N149);
1540  static const G4double pZ96N150[7]={5.E-5, 24., .026, 2.E-9, 3., 3.6E-5, .0045};
1541  static const std::pair<G4int, const G4double*> Z96N150(150,pZ96N150);
1542  static const G4double pZ96N151[7]={5.E-5, 24., .022, 2.4E-9, 3., 3.6E-5, .0039};
1543  static const std::pair<G4int, const G4double*> Z96N151(151,pZ96N151);
1544  static const G4double pZ96N152[7]={6.5E-7, 25., 2.E-4, 3.4E-9, 3., 3.6E-5, .003};
1545  static const std::pair<G4int, const G4double*> Z96N152(152,pZ96N152);
1546  static const G4double pZ96N153[7]={1.6E-6, 21., 7.E-4, 1.4E-9, 3., 3.6E-5, .0045};
1547  static const std::pair<G4int, const G4double*> Z96N153(153,pZ96N153);
1548  static const G4double pZ96N154[7]={1.3E-5, 16., .016, 0., 3., 3.6E-5, .017};
1549  static const std::pair<G4int, const G4double*> Z96N154(154,pZ96N154);
1550  static const std::pair<G4int, const G4double*> Z96[N96]={Z96N145, Z96N146, Z96N147,
1551  Z96N148, Z96N149, Z96N150,
1552  Z96N151, Z96N152, Z96N153,
1553  Z96N154};
1554  //==> Bk(Z=97)
1555  static const G4int N97=2;
1556  static const G4double pZ97N152[7]={6.5E-7, 22., 3.5E-4, 2.7E-9, 3., 4.E-5, .004};
1557  static const std::pair<G4int, const G4double*> Z97N152(152,pZ97N152);
1558  static const G4double pZ97N153[7]={6.5E-6, 22., .0036, 1.E-9, 2.7, 4.E-5, .006};
1559  static const std::pair<G4int, const G4double*> Z97N153(153,pZ97N153);
1560  static const std::pair<G4int, const G4double*> Z97[N97]={Z97N152, Z97N153};
1561  //==> Cf(Z=98)
1562  static const G4int N98=6;
1563  static const G4double pZ98N151[7]={6.5E-6, 22., .0035, .9E-9, 3., 4.E-5, .0068};
1564  static const std::pair<G4int, const G4double*> Z98N151(151,pZ98N151);
1565  static const G4double pZ98N152[7]={1.3E-6, 22., 7.E-4, 2.E-9, 2.7, 4.E-5, .0045};
1566  static const std::pair<G4int, const G4double*> Z98N152(152,pZ98N152);
1567  static const G4double pZ98N153[7]={2.6E-6, 22., .0014, 2.1E-9, 2.7, 4.E-5, .0044};
1568  static const std::pair<G4int, const G4double*> Z98N153(153,pZ98N153);
1569  static const G4double pZ98N154[7]={2.6E-6, 22., .0014, 1.3E-9, 2.7, 4.E-5, .0054};
1570  static const std::pair<G4int, const G4double*> Z98N154(154,pZ98N154);
1571  static const G4double pZ98N155[7]={2.6E-5, 22., .03, 0., 2.7, 4.E-5, .03};
1572  static const std::pair<G4int, const G4double*> Z98N155(155,pZ98N155);
1573  static const G4double pZ98N156[7]={5.2E-7, 22., 2.6E-4, 1.3E-9, 2.7, 4.E-5, .005};
1574  static const std::pair<G4int, const G4double*> Z98N156(156,pZ98N156);
1575  static const std::pair<G4int, const G4double*> Z98[N98]={Z98N151, Z98N152, Z98N153,
1576  Z98N154, Z98N155, Z98N156};
1577 
1578  static const G4int NZ=99; // #of Elements covered by CHIPS elastic
1579  static const std::pair<G4int, const G4double*>* Pars[NZ]={Z0,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,
1580  Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18,Z19,Z20,Z21,Z22,Z23,Z24,Z25,Z26,Z27,Z28,Z29,Z30,
1581  Z31,Z32,Z33,Z34,Z35,Z36,Z37,Z38,Z39,Z40,Z41,Z42,Z43,Z44,Z45,Z46,Z47,Z48,Z49,Z50,Z51,
1582  Z52,Z53,Z54,Z55,Z56,Z57,Z58,Z59,Z60,Z61,Z62,Z63,Z64,Z65,Z66,Z67,Z68,Z69,Z70,Z71,Z72,
1583  Z73,Z74,Z75,Z76,Z77,Z78,Z79,Z80,Z81,Z82,Z83,Z84,Z85,Z86,Z87,Z88,Z89,Z90,Z91,Z92,Z93,
1584  Z94,Z95,Z96,Z97,Z98};
1585  static const G4int NIso[NZ]={N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15,N16,
1586  N17,N18,N19,N20,N21,N22,N23,N24,N25,N26,N27,N28,N29,N30,N31,N32,N33,N34,N35,N36,N37,
1587  N38,N39,N40,N41,N42,N43,N44,N45,N46,N47,N48,N49,N50,N51,N52,N53,N54,N55,N56,N57,N58,
1588  N59,N60,N61,N62,N63,N64,N65,N66,N67,N68,N69,N70,N71,N72,N73,N74,N75,N76,N77,N78,N79,
1589  N80,N81,N82,N83,N84,N85,N86,N87,N88,N89,N90,N91,N92,N93,N94,N95,N96,N97,N98};
1590  if(PDG==2112)
1591  {
1592  // --- Total np elastic cross section cs & s1/b1 (t), s2/b2 (u) --- NotTuned for highE
1593  //p2=p*p;p3=p2*p;sp=sqrt(p);p2s=p2*sp;lp=log(p);dl1=lp-(5.=par(3));p4=p2*p2; p=|3-mom|
1594  //CS=12./(p2s+.05*p+.0001/sqrt(sp))+.35/p+(6.75+.14*dl1*dl1+19./p)/(1.+.6/p4);
1595  // par(0) par(1) par(2) par(4) par(5) par(6) par(7) par(8)
1596  //s1=(6.75+.14*dl2*dl2+13./p)/(1.+.14/p4)+.6/(p4+.00013), s2=(75.+.001/p4/p)/p3
1597  // par(9) par(10) par(11) par(12) par(13) par(14) par(15) par(16)
1598  //b1=(7.2+4.32/(p4*p4+.012*p3))/(1.+2.5/p4), ss=0., b2=12./(p*sp+.34)
1599  //par(17) par(18) par(19) par(20) par(21) par(22) par(23)
1600  //
1601  if(lastPAR[nLast]!=pwd) // A unique flag to avoid the repeatable definition
1602  {
1603  if ( tgZ == 1 && tgN == 0 )
1604  {
1605  for (G4int ip=0; ip<n_npel; ip++) lastPAR[ip]=np_el[ip]; // np
1606  }
1607  else if ( tgZ == 0 && tgN == 1 )
1608  {
1609  for (G4int ip=0; ip<n_ppel; ip++) lastPAR[ip]=pp_el[ip]; // nn
1610  }
1611  else
1612  {
1613  G4double a=tgZ+tgN;
1614  G4double ala=std::log(a); // for powers of a
1615  G4double sa=std::sqrt(a);
1616  G4double ssa=std::sqrt(sa);
1617  G4double asa=a*sa;
1618  G4double a2=a*a;
1619  G4double a3=a2*a;
1620  G4double a4=a3*a;
1621  G4double a5=a4*a;
1622  G4double a6=a4*a2;
1623  G4double a7=a6*a;
1624  G4double a8=a7*a;
1625  G4double a9=a8*a;
1626  G4double a10=a5*a5;
1627  G4double a12=a6*a6;
1628  G4double a14=a7*a7;
1629  G4double a16=a8*a8;
1630  G4double a17=a16*a;
1631  G4double a32=a16*a16;
1632  // Reaction cross-section parameters (na_el.f)
1633  lastPAR[ 0]=5./(1.+22./asa); // p1
1634  lastPAR[ 1]=4.8*std::exp(ala*1.14)/(1.+3.6/a3); // p2
1635  lastPAR[ 2]=1./(1.+.004*a4)+2.E-6*a3/(1.+1.3E-6*a3); // p3
1636  lastPAR[ 3]=.07*asa/(1.+.009*a2); // o4
1637  lastPAR[ 5]=1.7*a; // p5
1638  lastPAR[ 6]=5.5E-6*std::exp(ala*1.3); // p6
1639  lastPAR[13]=0.; // reserved
1640  lastPAR[14]=0.; // reserved
1641  G4int nn=NIso[tgZ];
1642  G4bool nfound=true;
1643  if(nn) for (G4int in=0; in<nn; in++)
1644  {
1645  std::pair<G4int, const G4double*> curIs=Pars[tgZ][in];
1646  G4int cn=curIs.first;
1647  if(cn == tgN)
1648  {
1649  const G4double* curT=curIs.second;
1650  lastPAR[ 4]=curT[0]; // p4
1651  lastPAR[ 7]=curT[1]; // p7
1652  lastPAR[ 8]=curT[2]; // p8
1653  lastPAR[ 9]=curT[3]; // p9
1654  lastPAR[10]=curT[4]; // p10
1655  lastPAR[11]=curT[5]; // p11
1656  lastPAR[12]=curT[6]; // p12
1657  nfound = false;
1658  break;
1659  }
1660  }
1661  if(nfound)
1662  {
1663  G4cout<<"-Warning-G4ChipsNeutronElasticXS::CalcCS: Z="<<tgZ<<", N="<<tgN
1664  <<" isotope is not implemented in CHIPS"<<G4endl; // Put default values:
1665  lastPAR[ 4]=5.2E-7; // p4
1666  lastPAR[ 7]=22.; // p7
1667  lastPAR[ 8]=.00026; // p8
1668  lastPAR[ 9]=1.3E-9; // p9
1669  lastPAR[10]=2.7; // p10
1670  lastPAR[11]=4.E-5; // p11
1671  lastPAR[12]=.005; // p12
1672  }
1673  // @@ the differential cross-section is parameterized separately for A>6 & A<7
1674  if(a<6.5)
1675  {
1676  G4double a28=a16*a12;
1677  // The main pre-exponent (pel_sg)
1678  lastPAR[15]=4000*a; // p1
1679  lastPAR[16]=1.2e7*a8+380*a17; // p2
1680  lastPAR[17]=.7/(1.+4.e-12*a16); // p3
1681  lastPAR[18]=2.5/a8/(a4+1.e-16*a32); // p4
1682  lastPAR[19]=.28*a; // p5
1683  lastPAR[20]=1.2*a2+2.3; // p6
1684  lastPAR[21]=3.8/a; // p7
1685  // The main slope (pel_sl)
1686  lastPAR[22]=.01/(1.+.0024*a5); // p1
1687  lastPAR[23]=.2*a; // p2
1688  lastPAR[24]=9.e-7/(1.+.035*a5); // p3
1689  lastPAR[25]=(42.+2.7e-11*a16)/(1.+.14*a); // p4
1690  // The main quadratic (pel_sh)
1691  lastPAR[26]=2.25*a3; // p1
1692  lastPAR[27]=18.; // p2
1693  lastPAR[28]=.0024*a8/(1.+2.6e-4*a7); // p3
1694  lastPAR[29]=3.5e-36*a32*a8/(1.+5.e-15*a32/a); // p4
1695  lastPAR[30]=1.e5/(a8+2.5e12/a16); // p1
1696  lastPAR[31]=8.e7/(a12+1.e-27*a28*a28); // p2
1697  lastPAR[32]=.0006*a3; // p3
1698  // The 1st max slope (pel_qs)
1699  lastPAR[33]=10.+4.e-8*a12*a; // p1
1700  lastPAR[34]=.114; // p2
1701  lastPAR[35]=.003; // p3
1702  lastPAR[36]=2.e-23; // p4
1703  // The effective pre-exponent (pel_ss)
1704  lastPAR[37]=1./(1.+.0001*a8); // p1
1705  lastPAR[38]=1.5e-4/(1.+5.e-6*a12); // p2
1706  lastPAR[39]=.03; // p3
1707  // The effective slope (pel_sb)
1708  lastPAR[40]=a/2; // p1
1709  lastPAR[41]=2.e-7*a4; // p2
1710  lastPAR[42]=4.; // p3
1711  lastPAR[43]=64./a3; // p4
1712  // The gloria pre-exponent (pel_us)
1713  lastPAR[44]=1.e8*std::exp(.32*asa); // p1
1714  lastPAR[45]=20.*std::exp(.45*asa); // p2
1715  lastPAR[46]=7.e3+2.4e6/a5; // p3
1716  lastPAR[47]=2.5e5*std::exp(.085*a3); // p4
1717  lastPAR[48]=2.5*a; // p5
1718  // The gloria slope (pel_ub)
1719  lastPAR[49]=920.+.03*a8*a3; // p1
1720  lastPAR[50]=93.+.0023*a12; // p2
1721  }
1722  else
1723  {
1724  G4double p1a10=2.2e-28*a10;
1725  G4double r4a16=6.e14/a16;
1726  G4double s4a16=r4a16*r4a16;
1727  // a24
1728  // a36
1729  // The main pre-exponent (peh_sg)
1730  lastPAR[15]=4.5*std::pow(a,1.15); // p1
1731  lastPAR[16]=.06*std::pow(a,.6); // p2
1732  lastPAR[17]=.6*a/(1.+2.e15/a16); // p3
1733  lastPAR[18]=.17/(a+9.e5/a3+1.5e33/a32); // p4
1734  lastPAR[19]=(.001+7.e-11*a5)/(1.+4.4e-11*a5); // p5
1735  lastPAR[20]=(p1a10*p1a10+2.e-29)/(1.+2.e-22*a12); // p6
1736  // The main slope (peh_sl)
1737  lastPAR[21]=400./a12+2.e-22*a9; // p1
1738  lastPAR[22]=1.e-32*a12/(1.+5.e22/a14); // p2
1739  lastPAR[23]=1000./a2+9.5*sa*ssa; // p3
1740  lastPAR[24]=4.e-6*a*asa+1.e11/a16; // p4
1741  lastPAR[25]=(120./a+.002*a2)/(1.+2.e14/a16); // p5
1742  lastPAR[26]=9.+100./a; // p6
1743  // The main quadratic (peh_sh)
1744  lastPAR[27]=.002*a3+3.e7/a6; // p1
1745  lastPAR[28]=7.e-15*a4*asa; // p2
1746  lastPAR[29]=9000./a4; // p3
1747  // The 1st max pre-exponent (peh_qq)
1748  lastPAR[30]=.0011*asa/(1.+3.e34/a32/a4); // p1
1749  lastPAR[31]=1.e-5*a2+2.e14/a16; // p2
1750  lastPAR[32]=1.2e-11*a2/(1.+1.5e19/a12); // p3
1751  lastPAR[33]=.016*asa/(1.+5.e16/a16); // p4
1752  // The 1st max slope (peh_qs)
1753  lastPAR[34]=.002*a4/(1.+7.e7/std::pow(a-6.83,14)); // p1
1754  lastPAR[35]=2.e6/a6+7.2/std::pow(a,.11); // p2
1755  lastPAR[36]=11.*a3/(1.+7.e23/a16/a8); // p3
1756  lastPAR[37]=100./asa; // p4
1757  // The 2nd max pre-exponent (peh_ss)
1758  lastPAR[38]=(.1+4.4e-5*a2)/(1.+5.e5/a4); // p1
1759  lastPAR[39]=3.5e-4*a2/(1.+1.e8/a8); // p2
1760  lastPAR[40]=1.3+3.e5/a4; // p3
1761  lastPAR[41]=500./(a2+50.)+3; // p4
1762  lastPAR[42]=1.e-9/a+s4a16*s4a16; // p5
1763  // The 2nd max slope (peh_sb)
1764  lastPAR[43]=.4*asa+3.e-9*a6; // p1
1765  lastPAR[44]=.0005*a5; // p2
1766  lastPAR[45]=.002*a5; // p3
1767  lastPAR[46]=10.; // p4
1768  // The effective pre-exponent (peh_us)
1769  lastPAR[47]=.05+.005*a; // p1
1770  lastPAR[48]=7.e-8/sa; // p2
1771  lastPAR[49]=.8*sa; // p3
1772  lastPAR[50]=.02*sa; // p4
1773  lastPAR[51]=1.e8/a3; // p5
1774  lastPAR[52]=3.e32/(a32+1.e32); // p6
1775  // The effective slope (peh_ub)
1776  lastPAR[53]=24.; // p1
1777  lastPAR[54]=20./sa; // p2
1778  lastPAR[55]=7.e3*a/(sa+1.); // p3
1779  lastPAR[56]=900.*sa/(1.+500./a3); // p4
1780  }
1781  // Parameter for lowEnergyNeutrons
1782  lastPAR[57]=1.e15+2.e27/a4/(1.+2.e-18*a16);
1783  }
1784  lastPAR[nLast]=pwd;
1785  // and initialize the zero element of the table
1786  G4double lp=lPMin; // ln(momentum)
1787  G4bool memCS=onlyCS; // ??
1788  onlyCS=false;
1789  lastCST[0]=GetTabValues(lp, PDG, tgZ, tgN); // Calculate AMDB tables
1790  onlyCS=memCS;
1791  lastSST[0]=theSS;
1792  lastS1T[0]=theS1;
1793  lastB1T[0]=theB1;
1794  lastS2T[0]=theS2;
1795  lastB2T[0]=theB2;
1796  lastS3T[0]=theS3;
1797  lastB3T[0]=theB3;
1798  lastS4T[0]=theS4;
1799  lastB4T[0]=theB4;
1800  }
1801  if(LP>ILP)
1802  {
1803  G4int ini = static_cast<int>((ILP-lPMin+.000001)/dlnP)+1; // already inited till this
1804  if(ini<0) ini=0;
1805  if(ini<nPoints)
1806  {
1807  G4int fin = static_cast<int>((LP-lPMin)/dlnP)+1; // final bin of initialization
1808  if(fin>=nPoints) fin=nLast; // Limit of the tabular initialization
1809  if(fin>=ini)
1810  {
1811  G4double lp=0.;
1812  for(G4int ip=ini; ip<=fin; ip++) // Calculate tabular CS,S1,B1,S2,B2,S3,B3
1813  {
1814  lp=lPMin+ip*dlnP; // ln(momentum)
1815  G4bool memCS=onlyCS;
1816  onlyCS=false;
1817  lastCST[ip]=GetTabValues(lp, PDG, tgZ, tgN); // Calculate AMDB tables (ret CS)
1818  onlyCS=memCS;
1819  lastSST[ip]=theSS;
1820  lastS1T[ip]=theS1;
1821  lastB1T[ip]=theB1;
1822  lastS2T[ip]=theS2;
1823  lastB2T[ip]=theB2;
1824  lastS3T[ip]=theS3;
1825  lastB3T[ip]=theB3;
1826  lastS4T[ip]=theS4;
1827  lastB4T[ip]=theB4;
1828  }
1829  return lp;
1830  }
1831  else G4cout<<"*Warning*G4ChipsNeutronElasticXS::GetPTables: PDG="<<PDG
1832  <<", Z="<<tgZ<<", N="<<tgN<<", i="<<ini<<" > fin="<<fin<<", LP="<<LP
1833  <<" > ILP="<<ILP<<" nothing is done!"<<G4endl;
1834  }
1835  else G4cout<<"*Warning*G4ChipsNeutronElasticXS::GetPTables: PDG="<<PDG<<", Z="
1836  <<tgZ<<", N="<<tgN<<", i="<<ini<<">= max="<<nPoints<<", LP="<<LP
1837  <<" > ILP="<<ILP<<", lPMax="<<lPMax<<" nothing is done!"<<G4endl;
1838  }
1839  }
1840  else
1841  {
1842  // G4cout<<"*Error*G4ChipsNeutronElasticXS::GetPTables: PDG="<<PDG<<", Z="<<tgZ
1843  // <<", N="<<tgN<<", while it is defined only for PDG=2112(n)"<<G4endl;
1844  // throw G4QException("G4ChipsNeutronElasticXS::GetPTables:only nA're implemented");
1846  ed << "PDG = " << PDG << ", Z = " << tgZ <<", N = " << tgN
1847  << ", while it is defined only for PDG=2112 (n)" << G4endl;
1848  G4Exception("G4ChipsNeutronElasticXS::GetPTables()", "HAD_CHPS_0000",
1849  FatalException, ed);
1850  }
1851  return ILP;
1852 }
1853 
1854 // Returns Q2=-t in independent units (MeV^2) (all internal calculations are in GeV)
1856 {
1857  static const G4double GeVSQ=gigaelectronvolt*gigaelectronvolt;
1858  static const G4double third=1./3.;
1859  static const G4double fifth=1./5.;
1860  static const G4double sevth=1./7.;
1861  if(PDG!=2112) G4cout<<"*Warning*G4ChipsNeutronElasticXS::GetExT:PDG="<<PDG<<G4endl;
1862  if(onlyCS) G4cout<<"*Warning*G4ChipsNeutronElasticXS::GetExchangeT:onCS=1"<<G4endl;
1863  if(lastLP<-4.3) return lastTM*GeVSQ*G4UniformRand();// S-wave for p<14 MeV/c (kinE<.1MeV)
1864  G4double q2=0.;
1865  if(tgZ==1 && tgN==0) // ===> n+p=n+p
1866  {
1867  G4double E1=lastTM*theB1;
1868  G4double R1=(1.-std::exp(-E1));
1869  G4double E2=lastTM*theB2;
1870  G4double R2=(1.-std::exp(-E2));
1871  G4double I1=R1*theS1;
1872  G4double I2=R2*theS2/theB2;
1873  //G4double I3=R3*theS3/theB3;
1874  G4double I12=I1+I2;
1875  //G4double rand=(I12+I3)*G4UniformRand();
1876  G4double rand=I12*G4UniformRand();
1877  if (rand<I1 )
1878  {
1879  G4double ran=R1*G4UniformRand();
1880  if(ran>1.) ran=1.;
1881  q2=-std::log(1.-ran)/theB1; // t-chan
1882  }
1883  else
1884  {
1885  G4double ran=R2*G4UniformRand();
1886  if(ran>1.) ran=1.;
1887  q2=lastTM+std::log(1.-ran)/theB2; // u-chan (ChEx)
1888  }
1889  }
1890  else
1891  {
1892  G4double a=tgZ+tgN;
1894  G4double R1=(1.-std::exp(-E1));
1895  G4double tss=theSS+theSS; // for future solution of quadratic equation (imediate check)
1896  G4double tm2=lastTM*lastTM;
1897  G4double E2=lastTM*tm2*theB2; // power 3 for lowA, 5 for HighA (1st)
1898  if(a>6.5)E2*=tm2; // for heavy nuclei
1899  G4double R2=(1.-std::exp(-E2));
1900  G4double E3=lastTM*theB3;
1901  if(a>6.5)E3*=tm2*tm2*tm2; // power 1 for lowA, 7 (2nd) for HighA
1902  G4double R3=(1.-std::exp(-E3));
1903  G4double E4=lastTM*theB4;
1904  G4double R4=(1.-std::exp(-E4));
1905  G4double I1=R1*theS1;
1906  G4double I2=R2*theS2;
1907  G4double I3=R3*theS3;
1908  G4double I4=R4*theS4;
1909  G4double I12=I1+I2;
1910  G4double I13=I12+I3;
1911  G4double rand=(I13+I4)*G4UniformRand();
1912  if(rand<I1)
1913  {
1914  G4double ran=R1*G4UniformRand();
1915  if(ran>1.) ran=1.;
1916  q2=-std::log(1.-ran)/theB1;
1917  if(std::fabs(tss)>1.e-7) q2=(std::sqrt(theB1*(theB1+(tss+tss)*q2))-theB1)/tss;
1918  }
1919  else if(rand<I12)
1920  {
1921  G4double ran=R2*G4UniformRand();
1922  if(ran>1.) ran=1.;
1923  q2=-std::log(1.-ran)/theB2;
1924  if(q2<0.) q2=0.;
1925  if(a<6.5) q2=std::pow(q2,third);
1926  else q2=std::pow(q2,fifth);
1927  }
1928  else if(rand<I13)
1929  {
1930  G4double ran=R3*G4UniformRand();
1931  if(ran>1.) ran=1.;
1932  q2=-std::log(1.-ran)/theB3;
1933  if(q2<0.) q2=0.;
1934  if(a>6.5) q2=std::pow(q2,sevth);
1935  }
1936  else
1937  {
1938  G4double ran=R4*G4UniformRand();
1939  if(ran>1.) ran=1.;
1940  q2=-std::log(1.-ran)/theB4;
1941  if(a<6.5) q2=lastTM-q2; // u reduced for lightA (starts from 0)
1942  }
1943  }
1944  if(q2<0.) q2=0.;
1945  if(!(q2>=-1.||q2<=1.)) G4cout<<"*NAN*G4QNeutronElCroSect::GetExchangeT: -t="<<q2<<G4endl;
1946  if(q2>lastTM)
1947  {
1948  q2=lastTM;
1949  }
1950  return q2*GeVSQ;
1951 }
1952 
1953 // Returns B in independent units (MeV^-2) (all internal calculations are in GeV) see ExT
1955 {
1956  static const G4double GeVSQ=gigaelectronvolt*gigaelectronvolt;
1957 
1958  if(onlyCS) G4cout<<"Warning*G4ChipsNeutronElasticXS::GetSlope:onlyCS=true"<<G4endl;
1959  if(lastLP<-4.3) return 0.; // S-wave for p<14 MeV/c (kinE<.1MeV)
1960  if(PDG!=2112)
1961  {
1962  // G4cout<<"*Error*G4ChipsNeutronElasticXS::GetSlope: PDG="<<PDG<<", Z="<<tgZ
1963  // <<", N="<<tgN<<", while it is defined only for PDG=2112"<<G4endl;
1964  // throw G4QException("G4ChipsNeutronElasticXS::GetSlope: only nA are implemented");
1966  ed << "PDG = " << PDG << ", Z = " << tgZ << ", N = " << tgN
1967  <<", while it is defined only for PDG=2112 (n) " << G4endl;
1968  G4Exception("G4ChipsNeutronElasticXS::GetSlope()", "HAD_CHPS_0000",
1969  FatalException, ed);
1970  }
1971  if(theB1<0.) theB1=0.;
1972  if(!(theB1>=-1.||theB1<=1.))G4cout<<"*NAN*G4QNeutElasticCrosS::Getslope:"<<theB1<<G4endl;
1973  return theB1/GeVSQ;
1974 }
1975 
1976 // Returns half max(Q2=-t) in independent units (MeV^2)
1978 {
1979  static const G4double HGeVSQ=gigaelectronvolt*gigaelectronvolt/2.;
1980  return lastTM*HGeVSQ;
1981 }
1982 
1983 // lastLP is used, so calculating tables, one need to remember and then recover lastLP
1985  G4int tgN)
1986 {
1987  if(PDG!=2112) G4cout<<"*Warning*G4ChipsNeutronElasticXS::GetTaV:PDG="<<PDG<<G4endl;
1988  if(tgZ<0 || tgZ>92)
1989  {
1990  G4cout<<"*Warning*G4QNElasticCrS::GetTabValue: (1-92) No isotopes for Z="<<tgZ<<G4endl;
1991  return 0.;
1992  }
1993  G4int iZ=tgZ-1; // Z index
1994  if(iZ<0)
1995  {
1996  iZ=0; // conversion of the neutron target to the proton target
1997  tgZ=1;
1998  tgN=0;
1999  }
2000  G4double p=std::exp(lp); // momentum
2001  G4double sp=std::sqrt(p); // sqrt(p)
2002  G4double p2=p*p;
2003  G4double p3=p2*p;
2004  G4double p4=p3*p;
2005  if ( tgZ == 1 && tgN == 0 ) // np
2006  {
2007  G4double ssp=std::sqrt(sp); // sqrt(sqrt(p))=p^.25
2008  G4double p2s=p2*sp;
2009  G4double dl1=lp-lastPAR[3];
2010  theSS=lastPAR[27];
2011  theS1=(lastPAR[9]+lastPAR[10]*dl1*dl1+lastPAR[11]/p)/(1.+lastPAR[12]/p4)
2012  +lastPAR[13]/(p4+lastPAR[14]);
2013  theB1=(lastPAR[17]+lastPAR[18]/(p4*p4+lastPAR[19]*p3))/(1.+lastPAR[20]/p4);
2014  theS2=(lastPAR[15]+lastPAR[16]/p4/p)/p3;
2015  theB2=lastPAR[22]/(p*sp+lastPAR[23]);
2016  theS3=0.;
2017  theB3=0.;
2018  theS4=0.;
2019  theB4=0.;
2020  // Returns the total elastic pp cross-section (to avoid spoiling lastSIG)
2021  return lastPAR[0]/(p2s+lastPAR[1]*p+lastPAR[2]/ssp)+lastPAR[4]/p
2022  +(lastPAR[5]+lastPAR[6]*dl1*dl1+lastPAR[7]/p)/(1.+lastPAR[8]/p4);
2023 
2024  }
2025  else
2026  {
2027  G4double p5=p4*p;
2028  G4double p6=p5*p;
2029  G4double p8=p6*p2;
2030  G4double p10=p8*p2;
2031  G4double p12=p10*p2;
2032  G4double p16=p8*p8;
2033  G4double dl=lp-5.;
2034  G4double a=tgZ+tgN;
2035  if(a<6.5)
2036  {
2037  G4double pah=std::pow(p,a/2);
2038  G4double pa=pah*pah;
2039  G4double pa2=pa*pa;
2040 
2041  theS1=lastPAR[15]/(1.+lastPAR[16]*p4*pa)+lastPAR[17]/(p4+lastPAR[18]*p4/pa2)+
2042  (lastPAR[19]*dl*dl+lastPAR[20])/(1.+lastPAR[21]/p2);
2043  theB1=(lastPAR[22]+lastPAR[23]*p2)/(p4+lastPAR[24]/pah)+lastPAR[25];
2044  theSS=lastPAR[26]/(1.+lastPAR[27]/p2)+lastPAR[28]/(p6/pa+lastPAR[29]/p16);
2045  theS2=lastPAR[30]/(pa/p2+lastPAR[31]/p4)+lastPAR[32];
2046  theB2=lastPAR[33]*std::pow(p,lastPAR[34])+lastPAR[35]/(p8+lastPAR[36]/p16);
2047  theS3=lastPAR[37]/(pa*p+lastPAR[38]/pa)+lastPAR[39];
2048  theB3=lastPAR[40]/(p3+lastPAR[41]/p6)+lastPAR[42]/(1.+lastPAR[43]/p2);
2049  theS4=p2*(pah*lastPAR[44]*std::exp(-pah*lastPAR[45])+
2050  lastPAR[46]/(1.+lastPAR[47]*std::pow(p,lastPAR[48])));
2051  theB4=lastPAR[49]*pa/p2/(1.+pa*lastPAR[50]);
2052  }
2053  else
2054  {
2055  theS1=lastPAR[15]/(1.+lastPAR[16]/p4)+lastPAR[17]/(p4+lastPAR[18]/p2)+
2056  lastPAR[19]/(p5+lastPAR[20]/p16);
2057  theB1=(lastPAR[21]/p8+lastPAR[25])/(p+lastPAR[22]/std::pow(p,lastPAR[26]))+
2058  lastPAR[23]/(1.+lastPAR[24]/p4);
2059  theSS=lastPAR[27]/(p4/std::pow(p,lastPAR[29])+lastPAR[28]/p4);
2060  theS2=lastPAR[30]/p4/(std::pow(p,lastPAR[31])+lastPAR[32]/p12)+lastPAR[33];
2061  theB2=lastPAR[34]/std::pow(p,lastPAR[35])+lastPAR[36]/std::pow(p,lastPAR[37]);
2062  theS3=lastPAR[38]/std::pow(p,lastPAR[41])/(1.+lastPAR[42]/p12)+
2063  lastPAR[39]/(1.+lastPAR[40]/p6);
2064  theB3=lastPAR[43]/p8+lastPAR[44]/p2+lastPAR[45]/(1.+lastPAR[46]/p8);
2065  theS4=(lastPAR[47]/p4+lastPAR[52]/p)/(1.+lastPAR[48]/p10)+
2066  (lastPAR[49]+lastPAR[50]*dl*dl)/(1.+lastPAR[51]/p12);
2067  theB4=lastPAR[53]/(1.+lastPAR[54]/p)+lastPAR[55]*p4/(1.+lastPAR[56]*p5);
2068  }
2069  // Returns the total elastic (n/p)A cross-section (to avoid spoiling lastSIG)
2070  // p1(p6) p2(p7) p3(p4) o4(p8) (p9)p5
2071  return (lastPAR[0]*dl*dl+lastPAR[1])/(1.+lastPAR[2]/p+lastPAR[3]/p4)+lastPAR[5]/
2072  (p3+lastPAR[6]/p3)+lastPAR[7]/(p2+lastPAR[4]/(p2+lastPAR[8])+lastPAR[9]/p)+
2073  lastPAR[10]/(p5+lastPAR[11]/p2)+lastPAR[12]/p;
2074  // p10 p11 p12
2075  }
2076  return 0.;
2077 } // End of GetTableValues
2078 
2079 // Returns max -t=Q2 (GeV^2) for the momentum pP(GeV) and the target nucleus (tgN,tgZ)
2081  G4double pP)
2082 {
2083 
2084  G4double pP2=pP*pP; // squared momentum of the projectile
2085  if(tgZ==0 && tgN==1)
2086  {
2087  G4double tMid=std::sqrt(pP2+mNeut2)*mNeut-mNeut2; // CMS 90deg value of -t=Q2 (GeV^2)
2088  return tMid+tMid;
2089  }
2090  else if(tgZ || tgN) // ---> nA
2091  {
2092  G4double mt=mProt; // Target mass in GeV
2093  if(tgN||tgZ>1) mt=G4ParticleTable::GetParticleTable()->GetIonTable()->GetIon(tgZ,tgZ+tgN,0)->GetPDGMass()*.001; // Target mass in GeV
2094  G4double dmt=mt+mt;
2095  G4double mds=dmt*std::sqrt(pP2+mNeut2)+mNeut2+mt*mt; // Mondelstam mds (in GeV^2)
2096  return dmt*dmt*pP2/mds;
2097  }
2098  else
2099  {
2100  // G4cout<<"*Error*G4ChipsNeutronElasticXS::GetQ2max:PDG="<<PDG<<", Z="<<tgZ<<", N="
2101  // <<tgN<<", while it is defined only for n projectiles & Z_target>0"<<G4endl;
2102  // throw G4QException("G4ChipsNeutronElasticXS::GetQ2max: only nA implemented");
2104  ed << "PDG = " << PDG << ", Z = " << tgZ << ", N =" << tgN
2105  <<", while it is defined only for n projectiles & Z_target>0" << G4endl;
2106  G4Exception("G4ChipsNeutronElasticXS::GetQ2max()", "HAD_CHPS_0000",
2107  FatalException, ed);
2108  return 0;
2109  }
2110 }
G4double GetTabValues(G4double lp, G4int pPDG, G4int tgZ, G4int tgN)
std::vector< G4double > colP
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
std::vector< G4double * > PAR
virtual G4double GetIsoCrossSection(const G4DynamicParticle *, G4int tgZ, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
std::vector< G4double * > SST
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:463
virtual G4bool IsIsoApplicable(const G4DynamicParticle *Pt, G4int Z, G4int A, const G4Element *elm, const G4Material *mat)
std::vector< G4double * > B3T
static const G4double a4
G4double a
Definition: TRTMaterials.hh:39
std::vector< G4double * > B2T
int G4int
Definition: G4Types.hh:78
std::vector< G4double * > B1T
G4double GetTotalMomentum() const
std::vector< G4double * > S3T
G4IonTable * GetIonTable() const
#define G4UniformRand()
Definition: Randomize.hh:95
G4GLOB_DLL std::ostream G4cout
bool G4bool
Definition: G4Types.hh:79
std::vector< G4double > PIN
G4double GetPTables(G4double lpP, G4double lPm, G4int PDG, G4int tZ, G4int tN)
std::vector< G4double * > B4T
static G4Proton * Proton()
Definition: G4Proton.cc:93
static const double GeV
Definition: G4SIunits.hh:196
static G4Neutron * Neutron()
Definition: G4Neutron.cc:104
G4_DECLARE_XS_FACTORY(G4ChipsNeutronElasticXS)
static const G4double A[nN]
std::vector< G4double > colCS
static const G4double a3
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
std::vector< G4double * > S2T
std::vector< G4double * > S4T
G4double GetQ2max(G4int pPDG, G4int tgZ, G4int tgN, G4double pP)
G4double GetPDGMass() const
static G4ParticleTable * GetParticleTable()
std::vector< G4double * > CST
static const double gigaelectronvolt
Definition: G4SIunits.hh:188
static const double millibarn
Definition: G4SIunits.hh:96
G4double GetSlope(G4int tZ, G4int tN, G4int pPDG)
#define G4endl
Definition: G4ios.hh:61
static const G4double a5
double G4double
Definition: G4Types.hh:76
G4double CalculateCrossSection(G4bool CS, G4int F, G4int I, G4int pPDG, G4int Z, G4int N, G4double pP)
static const G4double pos
G4double GetExchangeT(G4int tZ, G4int tN, G4int pPDG)
static const G4double a2
std::vector< G4double * > S1T
std::vector< G4double > colTH