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