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