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