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