Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/cross_sections/src/G4ChipsNeutronElasticXS.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/hadronic/cross_sections/src/G4ChipsNeutronElasticXS.cc (Version 11.3.0) and /processes/hadronic/cross_sections/src/G4ChipsNeutronElasticXS.cc (Version 9.2.p3)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 //                                                
 27 //                                                
 28 //                                                
 29 // G4 Physics class: G4ChipsNeutronElasticXS f    
 30 // Created: M.V. Kossov, CERN/ITEP(Moscow), 10    
 31 // The last update: M.V. Kossov, CERN/ITEP (Mo    
 32 //                                                
 33 // -------------------------------------------    
 34 // Short description: Interaction cross-sectio    
 35 // Class extracted from CHIPS and integrated i    
 36 // -------------------------------------------    
 37                                                   
 38                                                   
 39 #include "G4ChipsNeutronElasticXS.hh"             
 40 #include "G4SystemOfUnits.hh"                     
 41 #include "G4DynamicParticle.hh"                   
 42 #include "G4ParticleDefinition.hh"                
 43 #include "G4Neutron.hh"                           
 44 #include "G4Nucleus.hh"                           
 45 #include "G4ParticleTable.hh"                     
 46 #include "G4NucleiProperties.hh"                  
 47 #include "G4IonTable.hh"                          
 48                                                   
 49 // factory                                        
 50 #include "G4CrossSectionFactory.hh"               
 51 //                                                
 52 G4_DECLARE_XS_FACTORY(G4ChipsNeutronElasticXS)    
 53                                                   
 54 namespace {                                       
 55     G4double mNeut;                               
 56     G4double mProt;                               
 57     G4double mNeut2;                              
 58                                                   
 59 }                                                 
 60                                                   
 61 G4ChipsNeutronElasticXS::G4ChipsNeutronElastic    
 62 {                                                 
 63   lPMin=-8.;  // Min tabulated log Momentum       
 64   lPMax= 8.;  // Max tabulated log Momentum       
 65   dlnP=(lPMax-lPMin)/nLast;// Log step in tabl    
 66   onlyCS=true;// Flag to calc only CS (not Si/    
 67   lastSIG=0.; // Last calculated cross section    
 68   lastLP=-10.;// Last log(momOfIncidentHadron)    
 69   lastTM=0.;  // Last t_maximum                   
 70   theSS=0.;   // The Last sq.slope of 1st difM    
 71   theS1=0.;   // The Last mantissa of 1st difM    
 72   theB1=0.;   // The Last slope of 1st difr. M    
 73   theS2=0.;   // The Last mantissa of 2nd difM    
 74   theB2=0.;   // The Last slope of 2nd difr. M    
 75   theS3=0.;   // The Last mantissa of 3d difrM    
 76   theB3=0.;   // The Last slope of 3d difructM    
 77   theS4=0.;   // The Last mantissa of 4th difM    
 78   theB4=0.;   // The Last slope of 4th difr. M    
 79   lastTZ=0;   // Last atomic number of the tar    
 80   lastTN=0;   // Last # of neutrons in the tar    
 81   lastPIN=0.; // Last initialized max momentum    
 82   lastCST=0;  // Elastic cross-section table      
 83   lastPAR=0;  // Parameters of FunctionalCalcu    
 84   lastSST=0;  // E-dep of sq.slope of the 1st     
 85   lastS1T=0;  // E-dep of mantissa of the 1st     
 86   lastB1T=0;  // E-dep of theSlope of the 1st     
 87   lastS2T=0;  // E-dep of mantissa of the 2nd     
 88   lastB2T=0;  // E-dep of theSlope of the 2nd     
 89   lastS3T=0;  // E-dep of mantissa of the 3d d    
 90   lastB3T=0;  // E-dep of the slope of the 3d     
 91   lastS4T=0;  // E-dep of mantissa of the 4th     
 92   lastB4T=0;  // E-dep of theSlope of the 4th     
 93   lastN=0;    // The last N of calculated nucl    
 94   lastZ=0;    // The last Z of calculated nucl    
 95   lastP=0.;   // Last used in cross section Mo    
 96   lastTH=0.;  // Last threshold momentum          
 97   lastCS=0.;  // Last value of the Cross Secti    
 98   lastI=0;    // The last position in the DAMD    
 99                                                   
100     mNeut= G4Neutron::Neutron()->GetPDGMass()*    
101     mProt= G4Proton::Proton()->GetPDGMass()*.0    
102     mNeut2= mNeut*mNeut;                          
103 }                                                 
104                                                   
105 G4ChipsNeutronElasticXS::~G4ChipsNeutronElasti    
106 {                                                 
107   std::vector<G4double*>::iterator pos;           
108   for (pos=CST.begin(); pos<CST.end(); pos++)     
109   { delete [] *pos; }                             
110   CST.clear();                                    
111   for (pos=PAR.begin(); pos<PAR.end(); pos++)     
112   { delete [] *pos; }                             
113   PAR.clear();                                    
114   for (pos=SST.begin(); pos<SST.end(); pos++)     
115   { delete [] *pos; }                             
116   SST.clear();                                    
117   for (pos=S1T.begin(); pos<S1T.end(); pos++)     
118   { delete [] *pos; }                             
119   S1T.clear();                                    
120   for (pos=B1T.begin(); pos<B1T.end(); pos++)     
121   { delete [] *pos; }                             
122   B1T.clear();                                    
123   for (pos=S2T.begin(); pos<S2T.end(); pos++)     
124   { delete [] *pos; }                             
125   S2T.clear();                                    
126   for (pos=B2T.begin(); pos<B2T.end(); pos++)     
127   { delete [] *pos; }                             
128   B2T.clear();                                    
129   for (pos=S3T.begin(); pos<S3T.end(); pos++)     
130   { delete [] *pos; }                             
131   S3T.clear();                                    
132   for (pos=B3T.begin(); pos<B3T.end(); pos++)     
133   { delete [] *pos; }                             
134   B3T.clear();                                    
135   for (pos=S4T.begin(); pos<S4T.end(); pos++)     
136   { delete [] *pos; }                             
137   S4T.clear();                                    
138   for (pos=B4T.begin(); pos<B4T.end(); pos++)     
139   { delete [] *pos; }                             
140   B4T.clear();                                    
141 }                                                 
142                                                   
143 void                                              
144 G4ChipsNeutronElasticXS::CrossSectionDescripti    
145 {                                                 
146     outFile << "G4ChipsNeutronElasticXS provid    
147             << "section for neutron nucleus sc    
148             << "momentum. The cross section is    
149             << "CHIPS parameterization of cros    
150 }                                                 
151                                                   
152 G4bool G4ChipsNeutronElasticXS::IsIsoApplicabl    
153          const G4Element*,                        
154          const G4Material*)                       
155 {                                                 
156   return true;                                    
157 }                                                 
158                                                   
159 G4double G4ChipsNeutronElasticXS::GetIsoCrossS    
160               const G4Isotope*,                   
161               const G4Element*,                   
162               const G4Material*)                  
163 {                                                 
164   G4double pMom=Pt->GetTotalMomentum();           
165   G4int tgN = A - tgZ;                            
166                                                   
167   return GetChipsCrossSection(pMom, tgZ, tgN,     
168 }                                                 
169                                                   
170 // The main member function giving the collisi    
171 // Make pMom in independent units ! (Now it is    
172 G4double G4ChipsNeutronElasticXS::GetChipsCros    
173 {                                                 
174                                                   
175   G4double pEn=pMom;                              
176   onlyCS=false;                                   
177                                                   
178   G4bool in=false;                   // By def    
179   lastP   = 0.;                      // New mo    
180   lastN   = tgN;                     // The la    
181   lastZ   = tgZ;                     // The la    
182   lastI   = (G4int)colN.size();      // Size o    
183   if(lastI) for(G4int i=0; i<lastI; ++i) // Lo    
184   {                                  // The nu    
185     if(colN[i]==tgN && colZ[i]==tgZ) // Isotop    
186     {                                             
187       lastI=i;                                    
188       lastTH =colTH[i];              // Last T    
189       if(pEn<=lastTH)                             
190       {                                           
191         return 0.;                   // Energy    
192       }                                           
193       lastP  =colP [i];                // Last    
194       lastCS =colCS[i];                // Last    
195       //  if(std::fabs(lastP/pMom-1.)<toleranc    
196       if(lastP == pMom)              // Do not    
197       {                                           
198         CalculateCrossSection(false,-1,i,2112,    
199         return lastCS*millibarn;     // Use th    
200       }                                           
201       in = true;                       // This    
202       // Momentum pMom is in IU ! @@ Units        
203       lastCS=CalculateCrossSection(false,-1,i,    
204       if(lastCS<=0. && pEn>lastTH)    // Corre    
205       {                                           
206         lastTH=pEn;                               
207       }                                           
208       break;                           // Go o    
209     }                                             
210   }                                               
211   if(!in)                            // This n    
212   {                                               
213     //!!The slave functions must provide cross    
214     lastCS=CalculateCrossSection(false,0,lastI    
215     if(lastCS<=0.)                                
216     {                                             
217       lastTH = 0; // ThresholdEnergy(tgZ, tgN)    
218       if(pEn>lastTH)                              
219       {                                           
220         lastTH=pEn;                               
221       }                                           
222     }                                             
223     colN.push_back(tgN);                          
224     colZ.push_back(tgZ);                          
225     colP.push_back(pMom);                         
226     colTH.push_back(lastTH);                      
227     colCS.push_back(lastCS);                      
228     return lastCS*millibarn;                      
229   } // End of creation of the new set of param    
230   else                                            
231   {                                               
232     colP[lastI]=pMom;                             
233     colCS[lastI]=lastCS;                          
234   }                                               
235   return lastCS*millibarn;                        
236 }                                                 
237                                                   
238 // Calculation of total elastic cross section     
239 // F=0 - create AMDB, F=-1 - read&update AMDB,    
240 G4double G4ChipsNeutronElasticXS::CalculateCro    
241                                              G    
242 {                                                 
243                                                   
244   G4double pMom=pIU/GeV;                // All    
245   onlyCS=CS;                            // Fla    
246   lastLP=std::log(pMom);                // Mak    
247   if(F)                                 // Thi    
248   {                                               
249     if(F<0)                             // the    
250     {                                             
251       lastPIN = PIN[I];                 // Max    
252       lastPAR = PAR[I];                 // Poi    
253       lastCST = CST[I];                 // Poi    
254       lastSST = SST[I];                 // Poi    
255       lastS1T = S1T[I];                 // Poi    
256       lastB1T = B1T[I];                 // Poi    
257       lastS2T = S2T[I];                 // Poi    
258       lastB2T = B2T[I];                 // Poi    
259       lastS3T = S3T[I];                 // Poi    
260       lastB3T = B3T[I];                 // Poi    
261       lastS4T = S4T[I];                 // Poi    
262       lastB4T = B4T[I];                 // Poi    
263     }                                             
264     if(lastLP>lastPIN && lastLP<lPMax)            
265     {                                             
266       lastPIN=GetPTables(lastLP,lastPIN,PDG,tg    
267       PIN[I]=lastPIN;                   // Rem    
268     }                                             
269   }                                               
270   else                                  // Thi    
271   {                                               
272     lastPAR = new G4double[nPoints];    // All    
273     lastPAR[nLast]=0;                   // Ini    
274     lastCST = new G4double[nPoints];    // All    
275     lastSST = new G4double[nPoints];    // All    
276     lastS1T = new G4double[nPoints];    // All    
277     lastB1T = new G4double[nPoints];    // All    
278     lastS2T = new G4double[nPoints];    // All    
279     lastB2T = new G4double[nPoints];    // All    
280     lastS3T = new G4double[nPoints];    // All    
281     lastB3T = new G4double[nPoints];    // All    
282     lastS4T = new G4double[nPoints];    // All    
283     lastB4T = new G4double[nPoints];    // All    
284     lastPIN = GetPTables(lastLP,lPMin,PDG,tgZ,    
285     PIN.push_back(lastPIN);             // Fil    
286     PAR.push_back(lastPAR);             // Fil    
287     CST.push_back(lastCST);             // Fil    
288     SST.push_back(lastSST);             // Fil    
289     S1T.push_back(lastS1T);             // Fil    
290     B1T.push_back(lastB1T);             // Fil    
291     S2T.push_back(lastS2T);             // Fil    
292     B2T.push_back(lastB2T);             // Fil    
293     S3T.push_back(lastS3T);             // Fil    
294     B3T.push_back(lastB3T);             // Fil    
295     S4T.push_back(lastS4T);             // Fil    
296     B4T.push_back(lastB4T);             // Fil    
297   } // End of creation/update of the new set o    
298   // =-------= NOW Update (if necessary) and C    
299   if(lastLP>lastPIN && lastLP<lPMax)              
300   {                                               
301     lastPIN = GetPTables(lastLP,lastPIN,PDG,tg    
302   }                                               
303   if(!onlyCS) lastTM=GetQ2max(PDG, tgZ, tgN, p    
304   if(lastLP>lPMin && lastLP<=lastPIN)   // Lin    
305   {                                               
306     if(lastLP==lastPIN)                           
307     {                                             
308       G4double shift=(lastLP-lPMin)/dlnP+.0000    
309       G4int    blast=static_cast<int>(shift);     
310       if(blast<0 || blast>=nLast) G4cout<<"G4Q    
311       lastSIG = lastCST[blast];                   
312       if(!onlyCS)                       // Ski    
313       {                                           
314         theSS  = lastSST[blast];                  
315         theS1  = lastS1T[blast];                  
316         theB1  = lastB1T[blast];                  
317         theS2  = lastS2T[blast];                  
318         theB2  = lastB2T[blast];                  
319         theS3  = lastS3T[blast];                  
320         theB3  = lastB3T[blast];                  
321         theS4  = lastS4T[blast];                  
322         theB4  = lastB4T[blast];                  
323       }                                           
324     }                                             
325     else                                          
326     {                                             
327       G4double shift=(lastLP-lPMin)/dlnP;         
328       G4int    blast=static_cast<int>(shift);     
329       if(blast<0)   blast=0;                      
330       if(blast>=nLast) blast=nLast-1;             
331       shift-=blast;                               
332       G4int lastL=blast+1;                        
333       G4double SIGL=lastCST[blast];               
334       lastSIG= SIGL+shift*(lastCST[lastL]-SIGL    
335       if(!onlyCS)                       // Ski    
336       {                                           
337         G4double SSTL=lastSST[blast];             
338         theSS=SSTL+shift*(lastSST[lastL]-SSTL)    
339         G4double S1TL=lastS1T[blast];             
340         theS1=S1TL+shift*(lastS1T[lastL]-S1TL)    
341         G4double B1TL=lastB1T[blast];             
342         theB1=B1TL+shift*(lastB1T[lastL]-B1TL)    
343         G4double S2TL=lastS2T[blast];             
344         theS2=S2TL+shift*(lastS2T[lastL]-S2TL)    
345         G4double B2TL=lastB2T[blast];             
346         theB2=B2TL+shift*(lastB2T[lastL]-B2TL)    
347         G4double S3TL=lastS3T[blast];             
348         theS3=S3TL+shift*(lastS3T[lastL]-S3TL)    
349         G4double B3TL=lastB3T[blast];             
350         theB3=B3TL+shift*(lastB3T[lastL]-B3TL)    
351         G4double S4TL=lastS4T[blast];             
352         theS4=S4TL+shift*(lastS4T[lastL]-S4TL)    
353         G4double B4TL=lastB4T[blast];             
354         theB4=B4TL+shift*(lastB4T[lastL]-B4TL)    
355       }                                           
356     }                                             
357   }                                               
358   else lastSIG=GetTabValues(lastLP, PDG, tgZ,     
359   if(lastSIG<0.) lastSIG = 0.;                    
360   return lastSIG;                                 
361 }                                                 
362                                                   
363 // It has parameter sets for all tZ/tN/PDG, us    
364 G4double G4ChipsNeutronElasticXS::GetPTables(G    
365                                                   
366 {                                                 
367   // @@ At present all nA==pA ---------> Each     
368   static const G4double pwd=2727;                 
369   const G4int n_npel=24;                // #of    
370   const G4int n_ppel=32;                // #of    
371   //                      -0- -1-  -2- -3- -4-    
372   G4double np_el[n_npel]={12.,.05,.0001,5.,.35    
373                           75.,.001,7.2,4.32,.0    
374   //                      -15--16--17- -18- -1    
375   //                       -0-   -1-  -2- -3-     
376   G4double pp_el[n_ppel]={2.865,18.9,.6461,3.,    
377                           .001,8.,.055,3.64,5.    
378                           8.5e8,1.e10,1.1,3.4e    
379   //                      -14--15- -16- -17- -    
380   //                       -26- -27-  -28- -29    
381   //==> n (Z=0)                                   
382   static const G4int N0=1; // *** Not used (fa    
383   static const G4double pZ0N1[7]={0., 0., 0.,     
384   static const std::pair<G4int, const G4double    
385   static const std::pair<G4int, const G4double    
386   //==> H (Z=1) *** protons are treated separa    
387   static const G4int N1=3;                        
388   static const G4double pZ1N0[7]={0., 0., 0.,     
389   static const std::pair<G4int, const G4double    
390   static const G4double pZ1N1[7]={6.E-5, 4., .    
391   static const std::pair<G4int, const G4double    
392   static const G4double pZ1N2[7]={6.E-5, 2.2,     
393   static const std::pair<G4int, const G4double    
394   static const std::pair<G4int, const G4double    
395   //==> He(Z=2)                                   
396   static const G4int N2=2;                        
397   static const G4double pZ2N1[7]={6.E-5, 3., .    
398   static const std::pair<G4int, const G4double    
399   static const G4double pZ2N2[7]={3.E-4, .23,     
400   static const std::pair<G4int, const G4double    
401   static const std::pair<G4int, const G4double    
402   //==> Li(Z=3)                                   
403   static const G4int N3=2;                        
404   static const G4double pZ3N3[7]={3.1E-7, 1.7,    
405   static const std::pair<G4int, const G4double    
406   static const G4double pZ3N4[7]={1.3E-6, 1.8,    
407   static const std::pair<G4int, const G4double    
408   static const std::pair<G4int, const G4double    
409   //==> Be(Z=4)                                   
410   static const G4int N4=2;                        
411   static const G4double pZ4N3[7]={2.E-4, 1.4,     
412   static const std::pair<G4int, const G4double    
413   static const G4double pZ4N5[7]={1.E-6, 5.7,     
414   static const std::pair<G4int, const G4double    
415   static const std::pair<G4int, const G4double    
416   //==> B (Z=5)                                   
417   static const G4int N5=2;                        
418   static const G4double pZ5N5[7]={8.E-7, 5., 3    
419   static const std::pair<G4int, const G4double    
420   static const G4double pZ5N6[7]={4.8E-6, 6.6,    
421   static const std::pair<G4int, const G4double    
422   static const std::pair<G4int, const G4double    
423   //==> C (Z=6) *** Only nat (C13=C12=C_nat) *    
424   static const G4int N6=2;                        
425   static const G4double pZ6N6[7]={4.9E-6, 6.6,    
426   static const std::pair<G4int, const G4double    
427   static const G4double pZ6N7[7]={4.9E-6, 6.6,    
428   static const std::pair<G4int, const G4double    
429   static const std::pair<G4int, const G4double    
430   //==> N (Z=7)                                   
431   static const G4int N7=2;                        
432   static const G4double pZ7N7[7]={4.9E-6, 1.6,    
433   static const std::pair<G4int, const G4double    
434   static const G4double pZ7N8[7]={2.5E-6, 5.,     
435   static const std::pair<G4int, const G4double    
436   static const std::pair<G4int, const G4double    
437   //==> O (Z=8) (O18=O17, No data)                
438   static const G4int N8=3;                        
439   static const G4double pZ8N8[7]={2.5E-6, 5.3,    
440   static const std::pair<G4int, const G4double    
441   static const G4double pZ8N9[7]={1.4E-6, 2.1,    
442   static const std::pair<G4int, const G4double    
443   static const G4double pZ8N10[7]={1.4E-6, 2.1    
444   static const std::pair<G4int, const G4double    
445   static const std::pair<G4int, const G4double    
446   //==> F (Z=9)                                   
447   static const G4int N9=1;                        
448   static const G4double pZ9N10[7]={1.4E-6, 7.5    
449   static const std::pair<G4int, const G4double    
450   static const std::pair<G4int, const G4double    
451   //==> Ne(Z=10) *** No data *** (Ne20=Na22, N    
452   static const G4int N10=3;                       
453   static const G4double pZ10N10[7]={1.4E-5, 7.    
454   static const std::pair<G4int, const G4double    
455   static const G4double pZ10N11[7]={1.4E-6, 7.    
456   static const std::pair<G4int, const G4double    
457   static const G4double pZ10N12[7]={1.4E-5, 7.    
458   static const std::pair<G4int, const G4double    
459   static const std::pair<G4int, const G4double    
460   //==> Na(Z=11)                                  
461   static const G4int N11=2;                       
462   static const G4double pZ11N11[7]={1.4E-5, 7.    
463   static const std::pair<G4int, const G4double    
464   static const G4double pZ11N12[7]={1.4E-6, 7.    
465   static const std::pair<G4int, const G4double    
466   static const std::pair<G4int, const G4double    
467   //==> Mg(Z=12)                                  
468   static const G4int N12=3;                       
469   static const G4double pZ12N12[7]={8.E-7, 3.,    
470   static const std::pair<G4int, const G4double    
471   static const G4double pZ12N13[7]={8.E-7, 7.,    
472   static const std::pair<G4int, const G4double    
473   static const G4double pZ12N14[7]={1.2E-6, 6.    
474   static const std::pair<G4int, const G4double    
475   static const std::pair<G4int, const G4double    
476   //==> Al(Z=13)                                  
477   static const G4int N13=1;                       
478   static const G4double pZ13N14[7]={3.E-7, 5.,    
479   static const std::pair<G4int, const G4double    
480   static const std::pair<G4int, const G4double    
481   //==> Si(Z=14)                                  
482   static const G4int N14=3;                       
483   static const G4double pZ14N14[7]={1.2E-6, 6.    
484   static const std::pair<G4int, const G4double    
485   static const G4double pZ14N15[7]={2.4E-6, 4.    
486   static const std::pair<G4int, const G4double    
487   static const G4double pZ14N16[7]={6.E-7, 4.,    
488   static const std::pair<G4int, const G4double    
489   static const std::pair<G4int, const G4double    
490   //==> P (Z=15)                                  
491   static const G4int N15=1;                       
492   static const G4double pZ15N16[7]={6.E-7, 3.,    
493   static const std::pair<G4int, const G4double    
494   static const std::pair<G4int, const G4double    
495   //==> S (Z=16)                                  
496   static const G4int N16=4;                       
497   static const G4double pZ16N16[7]={6.E-7, 3.,    
498   static const std::pair<G4int, const G4double    
499   static const G4double pZ16N17[7]={2.4E-6, 3.    
500   static const std::pair<G4int, const G4double    
501   static const G4double pZ16N18[7]={2.4E-6, 1.    
502   static const std::pair<G4int, const G4double    
503   static const G4double pZ16N20[7]={2.4E-6, 3.    
504   static const std::pair<G4int, const G4double    
505   static const std::pair<G4int, const G4double    
506   //==> Cl(Z=17)                                  
507   static const G4int N17=2;                       
508   static const G4double pZ17N18[7]={1.2E-7, .0    
509   static const std::pair<G4int, const G4double    
510   static const G4double pZ17N20[7]={1.2E-7, 2.    
511   static const std::pair<G4int, const G4double    
512   static const std::pair<G4int, const G4double    
513   //==> Ar(Z=18)                                  
514   static const G4int N18=3;                       
515   static const G4double pZ18N18[7]={1.2E-7, .5    
516   static const std::pair<G4int, const G4double    
517   static const G4double pZ18N20[7]={1.2E-07, .    
518   static const std::pair<G4int, const G4double    
519   static const G4double pZ18N22[7]={1.2E-7, .6    
520   static const std::pair<G4int, const G4double    
521   static const std::pair<G4int, const G4double    
522   //==> K (Z=19)                                  
523   static const G4int N19=3;                       
524   static const G4double pZ19N20[7]={1.2E-7, 1.    
525   static const std::pair<G4int, const G4double    
526   static const G4double pZ19N21[7]={1.6E-7, 1.    
527   static const std::pair<G4int, const G4double    
528   static const G4double pZ19N22[7]={6.E-8, 1.3    
529   static const std::pair<G4int, const G4double    
530   static const std::pair<G4int, const G4double    
531   //==> Ca(Z=20)                                  
532   static const G4int N20=6;                       
533   static const G4double pZ20N20[7]={2.4E-7, 3.    
534   static const std::pair<G4int, const G4double    
535   static const G4double pZ20N22[7]={6.E-8, 2.7    
536   static const std::pair<G4int, const G4double    
537   static const G4double pZ20N23[7]={1.5E-8, 1.    
538   static const std::pair<G4int, const G4double    
539   static const G4double pZ20N24[7]={3.E-6, 5.,    
540   static const std::pair<G4int, const G4double    
541   static const G4double pZ20N26[7]={1.7E-5, 18    
542   static const std::pair<G4int, const G4double    
543   static const G4double pZ20N28[7]={7.6E-6, .4    
544   static const std::pair<G4int, const G4double    
545   static const std::pair<G4int, const G4double    
546                                                   
547   //==> Sc(Z=21)                                  
548   static const G4int N21=1;                       
549   static const G4double pZ21N24[7]={3.6E-9, 1.    
550   static const std::pair<G4int, const G4double    
551   static const std::pair<G4int, const G4double    
552   //==> Ti(Z=22)                                  
553   static const G4int N22=5;                       
554   static const G4double pZ22N24[7]={2.8E-8, 1.    
555   static const std::pair<G4int, const G4double    
556   static const G4double pZ22N25[7]={3.1E-9, 1.    
557   static const std::pair<G4int, const G4double    
558   static const G4double pZ22N26[7]={3.E-9, 4.,    
559   static const std::pair<G4int, const G4double    
560   static const G4double pZ22N27[7]={1.E-8, 2.,    
561   static const std::pair<G4int, const G4double    
562   static const G4double pZ22N28[7]={4.E-7, 4.,    
563   static const std::pair<G4int, const G4double    
564   static const std::pair<G4int, const G4double    
565                                                   
566   //==> V (Z=23) *** Only nat *** (v50=v51=v_n    
567   static const G4int N23=2;                       
568   static const G4double pZ23N27[7]={.3E-9, 2.,    
569   static const std::pair<G4int, const G4double    
570   static const G4double pZ23N28[7]={.3E-9, 2.,    
571   static const std::pair<G4int, const G4double    
572   static const std::pair<G4int, const G4double    
573   //==> Cr(Z=24)                                  
574   static const G4int N24=4;                       
575   static const G4double pZ24N26[7]={1.2E-9, 2.    
576   static const std::pair<G4int, const G4double    
577   static const G4double pZ24N28[7]={4.4E-6, 11    
578   static const std::pair<G4int, const G4double    
579   static const G4double pZ24N29[7]={1.8E-9, 2.    
580   static const std::pair<G4int, const G4double    
581   static const G4double pZ24N30[7]={4.8E-8, 2.    
582   static const std::pair<G4int, const G4double    
583   static const std::pair<G4int, const G4double    
584   //==> Mn(Z=25)                                  
585   static const G4int N25=1;                       
586   static const G4double pZ25N30[7]={6.5E-11, 1    
587   static const std::pair<G4int, const G4double    
588   static const std::pair<G4int, const G4double    
589   //==> Fe(Z=26)                                  
590   static const G4int N26=4;                       
591   static const G4double pZ26N28[7]={3.9E-8, 5.    
592   static const std::pair<G4int, const G4double    
593   static const G4double pZ26N30[7]={5.E-9, .4,    
594   static const std::pair<G4int, const G4double    
595   static const G4double pZ26N31[7]={.5E-9, .5,    
596   static const std::pair<G4int, const G4double    
597   static const G4double pZ26N32[7]={1.E-7, 3.1    
598   static const std::pair<G4int, const G4double    
599   static const std::pair<G4int, const G4double    
600   //==> Co(Z=27)                                  
601   static const G4int N27=2;                       
602   static const G4double pZ27N31[7]={4.E-7, 3.,    
603   static const std::pair<G4int, const G4double    
604   static const G4double pZ27N32[7]={4.E-7, 5.,    
605   static const std::pair<G4int, const G4double    
606   static const std::pair<G4int, const G4double    
607   //==> Ni(Z=28)                                  
608   static const G4int N28=6;                       
609   static const G4double pZ28N30[7]={1.E-7, 2.5    
610   static const std::pair<G4int, const G4double    
611   static const G4double pZ28N31[7]={1.E-7, 19.    
612   static const std::pair<G4int, const G4double    
613   static const G4double pZ28N32[7]={1.E-8, 2.5    
614   static const std::pair<G4int, const G4double    
615   static const G4double pZ28N33[7]={5.E-9, 2.6    
616   static const std::pair<G4int, const G4double    
617   static const G4double pZ28N34[7]={.24E-9, 2.    
618   static const std::pair<G4int, const G4double    
619   static const G4double pZ28N36[7]={1.E-8, 3.,    
620   static const std::pair<G4int, const G4double    
621   static const std::pair<G4int, const G4double    
622                                                   
623   //==> Cu(Z=29)                                  
624   static const G4int N29=2;                       
625   static const G4double pZ29N34[7]={1.1E-7, 3.    
626   static const std::pair<G4int, const G4double    
627   static const G4double pZ29N36[7]={1.1E-7, 3.    
628   static const std::pair<G4int, const G4double    
629   static const std::pair<G4int, const G4double    
630   //==> Zn(Z=30) *** Only nat *** (zn64=zn66=z    
631   static const G4int N30=5;                       
632   static const G4double pZ30N34[7]={1.1E-7, 4.    
633   static const std::pair<G4int, const G4double    
634   static const G4double pZ30N36[7]={1.1E-7, 4.    
635   static const std::pair<G4int, const G4double    
636   static const G4double pZ30N37[7]={1.1E-7, 4.    
637   static const std::pair<G4int, const G4double    
638   static const G4double pZ30N38[7]={1.1E-7, 4.    
639   static const std::pair<G4int, const G4double    
640   static const G4double pZ30N40[7]={1.1E-7, 4.    
641   static const std::pair<G4int, const G4double    
642   static const std::pair<G4int, const G4double    
643                                                   
644   //==> Ga(Z=31)                                  
645   static const G4int N31=2;                       
646   static const G4double pZ31N38[7]={5.E-8, 3.7    
647   static const std::pair<G4int, const G4double    
648   static const G4double pZ31N40[7]={1.E-8, 3.1    
649   static const std::pair<G4int, const G4double    
650   static const std::pair<G4int, const G4double    
651   //==> Ge(Z=32)                                  
652   static const G4int N32=5;                       
653   static const G4double pZ32N38[7]={5.E-5, 4.,    
654   static const std::pair<G4int, const G4double    
655   static const G4double pZ32N40[7]={5.E-7, 4.4    
656   static const std::pair<G4int, const G4double    
657   static const G4double pZ32N41[7]={5.E-9, 3.,    
658   static const std::pair<G4int, const G4double    
659   static const G4double pZ32N42[7]={1.E-7, 4.2    
660   static const std::pair<G4int, const G4double    
661   static const G4double pZ32N44[7]={1.E-6, 4.6    
662   static const std::pair<G4int, const G4double    
663   static const std::pair<G4int, const G4double    
664                                                   
665   //==> As(Z=33)                                  
666   static const G4int N33=2;                       
667   static const G4double pZ33N41[7]={1.E-8, 3.4    
668   static const std::pair<G4int, const G4double    
669   static const G4double pZ33N42[7]={1.E-8, 4.1    
670   static const std::pair<G4int, const G4double    
671   static const std::pair<G4int, const G4double    
672   //==> Se(Z=34)                                  
673   static const G4int N34=7;                       
674   static const G4double pZ34N40[7]={6.E-8, 7.2    
675   static const std::pair<G4int, const G4double    
676   static const G4double pZ34N42[7]={4.E-5, 7.4    
677   static const std::pair<G4int, const G4double    
678   static const G4double pZ34N43[7]={1.E-7, 6.2    
679   static const std::pair<G4int, const G4double    
680   static const G4double pZ34N44[7]={1.E-7, 6.6    
681   static const std::pair<G4int, const G4double    
682   static const G4double pZ34N45[7]={5.E-8, 6.6    
683   static const std::pair<G4int, const G4double    
684   static const G4double pZ34N46[7]={2.E-7, 7.7    
685   static const std::pair<G4int, const G4double    
686   static const G4double pZ34N48[7]={2.E-7, 8.3    
687   static const std::pair<G4int, const G4double    
688   static const std::pair<G4int, const G4double    
689                                                   
690   //==> Br(Z=35)                                  
691   static const G4int N35=2;                       
692   static const G4double pZ35N44[7]={5.E-8, 6.,    
693   static const std::pair<G4int, const G4double    
694   static const G4double pZ35N46[7]={4.E-8, 6.2    
695   static const std::pair<G4int, const G4double    
696   static const std::pair<G4int, const G4double    
697   //==> Kr(Z=36)                                  
698   static const G4int N36=7;                       
699   static const G4double pZ36N42[7]={1.6E-7, 6.    
700   static const std::pair<G4int, const G4double    
701   static const G4double pZ36N44[7]={1.6E-7, 7.    
702   static const std::pair<G4int, const G4double    
703   static const G4double pZ36N46[7]={1.6E-7, 7.    
704   static const std::pair<G4int, const G4double    
705   static const G4double pZ36N47[7]={1.6E-6, 7.    
706   static const std::pair<G4int, const G4double    
707   static const G4double pZ36N48[7]={1.6E-7, 7.    
708   static const std::pair<G4int, const G4double    
709   static const G4double pZ36N49[7]={6.E-7, 8.,    
710   static const std::pair<G4int, const G4double    
711   static const G4double pZ36N50[7]={4.E-7, 8.1    
712   static const std::pair<G4int, const G4double    
713   static const std::pair<G4int, const G4double    
714                                                   
715   //==> Rb(Z=37)                                  
716   static const G4int N37=3;                       
717   static const G4double pZ37N48[7]={1.6E-7, 7.    
718   static const std::pair<G4int, const G4double    
719   static const G4double pZ37N49[7]={8.E-8, 7.1    
720   static const std::pair<G4int, const G4double    
721   static const G4double pZ37N50[7]={1.E-7, 8.,    
722   static const std::pair<G4int, const G4double    
723   static const std::pair<G4int, const G4double    
724   //==> Sr(Z=38)                                  
725   static const G4int N38=6;                       
726   static const G4double pZ38N46[7]={8.E-8, 7.3    
727   static const std::pair<G4int, const G4double    
728   static const G4double pZ38N48[7]={8.E-8, 9.7    
729   static const std::pair<G4int, const G4double    
730   static const G4double pZ38N49[7]={2.6E-7, 9.    
731   static const std::pair<G4int, const G4double    
732   static const G4double pZ38N50[7]={2.6E-7, 9.    
733   static const std::pair<G4int, const G4double    
734   static const G4double pZ38N51[7]={1.3E-7, 9.    
735   static const std::pair<G4int, const G4double    
736   static const G4double pZ38N52[7]={2.6E-7, 9.    
737   static const std::pair<G4int, const G4double    
738   static const std::pair<G4int, const G4double    
739                                                   
740   //==> Y (Z=39)                                  
741   static const G4int N39=3;                       
742   static const G4double pZ39N50[7]={2.6E-7, 9.    
743   static const std::pair<G4int, const G4double    
744   static const G4double pZ39N51[7]={2.7E-5, 20    
745   static const std::pair<G4int, const G4double    
746   static const G4double pZ39N52[7]={2.E-7, 9.6    
747   static const std::pair<G4int, const G4double    
748   static const std::pair<G4int, const G4double    
749   //==> Zr(Z=40)                                  
750   static const G4int N40=7;                       
751   static const G4double pZ40N50[7]={1.E-7, 9.,    
752   static const std::pair<G4int, const G4double    
753   static const G4double pZ40N51[7]={5.E-7, 9.8    
754   static const std::pair<G4int, const G4double    
755   static const G4double pZ40N52[7]={3.E-7, 9.6    
756   static const std::pair<G4int, const G4double    
757   static const G4double pZ40N53[7]={2.E-7, 9.6    
758   static const std::pair<G4int, const G4double    
759   static const G4double pZ40N54[7]={2.E-7, 9.6    
760   static const std::pair<G4int, const G4double    
761   static const G4double pZ40N55[7]={1.8E-7, 9.    
762   static const std::pair<G4int, const G4double    
763   static const G4double pZ40N56[7]={1.8E-7, 9.    
764   static const std::pair<G4int, const G4double    
765   static const std::pair<G4int, const G4double    
766                                                   
767   //==> Nb(Z=41)                                  
768   static const G4int N41=3;                       
769   static const G4double pZ41N52[7]={2.6E-7, 8.    
770   static const std::pair<G4int, const G4double    
771   //static const G4double pZ41N53[7]={2.E-7, 8    
772   //static const std::pair<G4int, const G4doub    
773   //static const G4double pZ41N54[7]={1.5E-7,     
774   //static const std::pair<G4int, const G4doub    
775   static const std::pair<G4int, const G4double    
776   //==> Mo(Z=42)                                  
777   static const G4int N42=8;                       
778   static const G4double pZ42N50[7]={2.E-7, 10.    
779   static const std::pair<G4int, const G4double    
780   static const G4double pZ42N52[7]={2.1E-7, 10    
781   static const std::pair<G4int, const G4double    
782   static const G4double pZ42N53[7]={3.E-7, 10.    
783   static const std::pair<G4int, const G4double    
784   static const G4double pZ42N54[7]={1.5E-7, 10    
785   static const std::pair<G4int, const G4double    
786   static const G4double pZ42N55[7]={1.9E-7, 9.    
787   static const std::pair<G4int, const G4double    
788   static const G4double pZ42N56[7]={1.9E-7, 9.    
789   static const std::pair<G4int, const G4double    
790   static const G4double pZ42N57[7]={1.4E-7, 8.    
791   static const std::pair<G4int, const G4double    
792   static const G4double pZ42N58[7]={1.8E-7, 9.    
793   static const std::pair<G4int, const G4double    
794   static const std::pair<G4int, const G4double    
795                                                   
796   //==> Tc(Z=43)                                  
797   static const G4int N43=1;                       
798   static const G4double pZ43N56[7]={1.E-7, 8.,    
799   static const std::pair<G4int, const G4double    
800   static const std::pair<G4int, const G4double    
801   //==> Ru(Z=44)                                  
802   static const G4int N44=9;                       
803   static const G4double pZ44N52[7]={1.9E-7, 10    
804   static const std::pair<G4int, const G4double    
805   static const G4double pZ44N54[7]={1.5E-7, 10    
806   static const std::pair<G4int, const G4double    
807   static const G4double pZ44N55[7]={1.8E-7, 10    
808   static const std::pair<G4int, const G4double    
809   static const G4double pZ44N56[7]={1.8E-6, 10    
810   static const std::pair<G4int, const G4double    
811   static const G4double pZ44N57[7]={1.8E-7, 7.    
812   static const std::pair<G4int, const G4double    
813   static const G4double pZ44N58[7]={1.7E-6, 9.    
814   static const std::pair<G4int, const G4double    
815   static const G4double pZ44N59[7]={3.3E-7, 8.    
816   static const std::pair<G4int, const G4double    
817   static const G4double pZ44N60[7]={3.E-7, 8.7    
818   static const std::pair<G4int, const G4double    
819   static const G4double pZ44N61[7]={3.E-7, 8.8    
820   static const std::pair<G4int, const G4double    
821   static const std::pair<G4int, const G4double    
822                                                   
823                                                   
824   //==> Rh(Z=45)                                  
825   static const G4int N45=2;                       
826   static const G4double pZ45N58[7]={8.E-8, 8.7    
827   static const std::pair<G4int, const G4double    
828   static const G4double pZ45N60[7]={8.E-8, 8.7    
829   static const std::pair<G4int, const G4double    
830   static const std::pair<G4int, const G4double    
831   //==> Pd(Z=46)                                  
832   static const G4int N46=7;                       
833   static const G4double pZ46N56[7]={2.E-7, 9.9    
834   static const std::pair<G4int, const G4double    
835   static const G4double pZ46N58[7]={2.E-7, 9.9    
836   static const std::pair<G4int, const G4double    
837   static const G4double pZ46N59[7]={5.6E-7, 9.    
838   static const std::pair<G4int, const G4double    
839   static const G4double pZ46N60[7]={2.4E-7, 9.    
840   static const std::pair<G4int, const G4double    
841   static const G4double pZ46N61[7]={1.2E-7, 9.    
842   static const std::pair<G4int, const G4double    
843   static const G4double pZ46N62[7]={1.2E-7, 9.    
844   static const std::pair<G4int, const G4double    
845   static const G4double pZ46N64[7]={4.E-7, 9.1    
846   static const std::pair<G4int, const G4double    
847   static const std::pair<G4int, const G4double    
848                                                   
849   //==> Ag(Z=47)                                  
850   static const G4int N47=4;                       
851   static const G4double pZ47N60[7]={1.4E-6, 9.    
852   static const std::pair<G4int, const G4double    
853   static const G4double pZ47N62[7]={3.E-8, 8.7    
854   static const std::pair<G4int, const G4double    
855   static const G4double pZ47N63[7]={3.E-6, 9.5    
856   static const std::pair<G4int, const G4double    
857   static const G4double pZ47N64[7]={1.5E-7, 9.    
858   static const std::pair<G4int, const G4double    
859   static const std::pair<G4int, const G4double    
860   //==> Cd(Z=48)                                  
861   static const G4int N48=9;                       
862   static const G4double pZ48N58[7]={2.9E-7, 10    
863   static const std::pair<G4int, const G4double    
864   static const G4double pZ48N60[7]={2.3E-7, 10    
865   static const std::pair<G4int, const G4double    
866   static const G4double pZ48N62[7]={2.3E-7, 10    
867   static const std::pair<G4int, const G4double    
868   static const G4double pZ48N63[7]={8.4E-7, 11    
869   static const std::pair<G4int, const G4double    
870   static const G4double pZ48N64[7]={4.E-7, 11.    
871   static const std::pair<G4int, const G4double    
872   static const G4double pZ48N65[7]={1.6E-6, 12    
873   static const std::pair<G4int, const G4double    
874   static const G4double pZ48N66[7]={3.E-7, 11.    
875   static const std::pair<G4int, const G4double    
876   static const G4double pZ48N67[7]={3.8E-7, 11    
877   static const std::pair<G4int, const G4double    
878   static const G4double pZ48N68[7]={6.E-7, 11.    
879   static const std::pair<G4int, const G4double    
880   static const std::pair<G4int, const G4double    
881                                                   
882                                                   
883   //==> In(Z=49)                                  
884   static const G4int N49=2;                       
885   static const G4double pZ49N64[7]={2.7E-7, 12    
886   static const std::pair<G4int, const G4double    
887   static const G4double pZ49N66[7]={2.7E-7, 12    
888   static const std::pair<G4int, const G4double    
889   static const std::pair<G4int, const G4double    
890   //==> Sn(Z=50)                                  
891   static const G4int N50=14;                      
892   static const G4double pZ50N62[7]={4.E-7, 11.    
893   static const std::pair<G4int, const G4double    
894   static const G4double pZ50N63[7]={4.1E-7, 11    
895   static const std::pair<G4int, const G4double    
896   static const G4double pZ50N64[7]={5.E-7, 12.    
897   static const std::pair<G4int, const G4double    
898   static const G4double pZ50N65[7]={1.E-5, 12.    
899   static const std::pair<G4int, const G4double    
900   static const G4double pZ50N66[7]={5.E-7, 12.    
901   static const std::pair<G4int, const G4double    
902   static const G4double pZ50N67[7]={1.E-6, 12.    
903   static const std::pair<G4int, const G4double    
904   static const G4double pZ50N68[7]={5.E-7, 12.    
905   static const std::pair<G4int, const G4double    
906   static const G4double pZ50N69[7]={6.E-7, 12.    
907   static const std::pair<G4int, const G4double    
908   static const G4double pZ50N70[7]={1.E-6, 12.    
909   static const std::pair<G4int, const G4double    
910   static const G4double pZ50N72[7]={1.E-6, 12.    
911   static const std::pair<G4int, const G4double    
912   static const G4double pZ50N73[7]={5.E-7, 12.    
913   static const std::pair<G4int, const G4double    
914   static const G4double pZ50N74[7]={5.E-7, 12.    
915   static const std::pair<G4int, const G4double    
916   static const G4double pZ50N75[7]={5.E-7, 12.    
917   static const std::pair<G4int, const G4double    
918   static const G4double pZ50N76[7]={5.E-7, 12.    
919   static const std::pair<G4int, const G4double    
920   static const std::pair<G4int, const G4double    
921                                                   
922                                                   
923                                                   
924   //==> Sb(Z=51)                                  
925   static const G4int N51=5;                       
926   static const G4double pZ51N70[7]={6.E-7, 12.    
927   static const std::pair<G4int, const G4double    
928   static const G4double pZ51N72[7]={6.E-7, 12.    
929   static const std::pair<G4int, const G4double    
930   static const G4double pZ51N73[7]={1.1E-6, 12    
931   static const std::pair<G4int, const G4double    
932   static const G4double pZ51N74[7]={5.5E-7, 12    
933   static const std::pair<G4int, const G4double    
934   static const G4double pZ51N75[7]={6.E-7, 12.    
935   static const std::pair<G4int, const G4double    
936   static const std::pair<G4int, const G4double    
937                                                   
938   //==> Te(Z=52)                                  
939   static const G4int N52=11;                      
940   static const G4double pZ52N68[7]={2.7E-7, 12    
941   static const std::pair<G4int, const G4double    
942   static const G4double pZ52N70[7]={2.7E-7, 12    
943   static const std::pair<G4int, const G4double    
944   static const G4double pZ52N71[7]={2.7E-8, 12    
945   static const std::pair<G4int, const G4double    
946   static const G4double pZ52N72[7]={2.6E-6, 14    
947   static const std::pair<G4int, const G4double    
948   static const G4double pZ52N73[7]={1.E-6, 14.    
949   static const std::pair<G4int, const G4double    
950   static const G4double pZ52N74[7]={8.E-7, 14.    
951   static const std::pair<G4int, const G4double    
952   static const G4double pZ52N75[7]={8.E-7, 14.    
953   static const std::pair<G4int, const G4double    
954   static const G4double pZ52N76[7]={8.E-7, 14.    
955   static const std::pair<G4int, const G4double    
956   static const G4double pZ52N77[7]={5.E-7, 15.    
957   static const std::pair<G4int, const G4double    
958   static const G4double pZ52N78[7]={8.E-7, 14.    
959   static const std::pair<G4int, const G4double    
960   static const G4double pZ52N80[7]={4.7E-7, 14    
961   static const std::pair<G4int, const G4double    
962   static const std::pair<G4int, const G4double    
963                                                   
964                                                   
965   //==> I (Z=53)                                  
966   static const G4int N53=5;                       
967   static const G4double pZ53N74[7]={9.4E-7, 14    
968   static const std::pair<G4int, const G4double    
969   static const G4double pZ53N76[7]={2.1E-5, 14    
970   static const std::pair<G4int, const G4double    
971   static const G4double pZ53N77[7]={1.1E-6, 14    
972   static const std::pair<G4int, const G4double    
973   static const G4double pZ53N78[7]={5.5E-7, 14    
974   static const std::pair<G4int, const G4double    
975   static const G4double pZ53N82[7]={3.2E-6, 14    
976   static const std::pair<G4int, const G4double    
977   static const std::pair<G4int, const G4double    
978                                                   
979   //==> Xe(Z=54)                                  
980   static const G4int N54=12;                      
981   static const G4double pZ54N69[7]={3.E-6, 14.    
982   static const std::pair<G4int, const G4double    
983   static const G4double pZ54N70[7]={1.5E-7, 14    
984   static const std::pair<G4int, const G4double    
985   static const G4double pZ54N72[7]={1.5E-6, 14    
986   static const std::pair<G4int, const G4double    
987   static const G4double pZ54N74[7]={1.8E-6, 14    
988   static const std::pair<G4int, const G4double    
989   static const G4double pZ54N75[7]={1.E-6, 14.    
990   static const std::pair<G4int, const G4double    
991   static const G4double pZ54N76[7]={1.8E-6, 14    
992   static const std::pair<G4int, const G4double    
993   static const G4double pZ54N77[7]={2.3E-7, 14    
994   static const std::pair<G4int, const G4double    
995   static const G4double pZ54N78[7]={6.E-7, 14.    
996   static const std::pair<G4int, const G4double    
997   static const G4double pZ54N79[7]={6.E-7, 14.    
998   static const std::pair<G4int, const G4double    
999   static const G4double pZ54N80[7]={6.6E-7, 14    
1000   static const std::pair<G4int, const G4doubl    
1001   static const G4double pZ54N81[7]={.03, 40.,    
1002   static const std::pair<G4int, const G4doubl    
1003   static const G4double pZ54N82[7]={3.1E-6, 1    
1004   static const std::pair<G4int, const G4doubl    
1005   static const std::pair<G4int, const G4doubl    
1006                                                  
1007                                                  
1008   //==> Cs(Z=55)                                 
1009   static const G4int N55=5;                      
1010   static const G4double pZ55N78[7]={1.4E-6, 1    
1011   static const std::pair<G4int, const G4doubl    
1012   static const G4double pZ55N79[7]={.028, 14.    
1013   static const std::pair<G4int, const G4doubl    
1014   static const G4double pZ55N80[7]={2.E-6, 14    
1015   static const std::pair<G4int, const G4doubl    
1016   static const G4double pZ55N81[7]={2.5E-7, 1    
1017   static const std::pair<G4int, const G4doubl    
1018   static const G4double pZ55N82[7]={2.5E-7, 1    
1019   static const std::pair<G4int, const G4doubl    
1020   static const std::pair<G4int, const G4doubl    
1021                                                  
1022   //==> Ba(Z=56)                                 
1023   static const G4int N56=9;                      
1024   static const G4double pZ56N74[7]={4.E-7, 14    
1025   static const std::pair<G4int, const G4doubl    
1026   static const G4double pZ56N76[7]={4.E-6, 14    
1027   static const std::pair<G4int, const G4doubl    
1028   static const G4double pZ56N77[7]={2.E-7, 14    
1029   static const std::pair<G4int, const G4doubl    
1030   static const G4double pZ56N78[7]={1.6E-6, 1    
1031   static const std::pair<G4int, const G4doubl    
1032   static const G4double pZ56N79[7]={5.E-7, 17    
1033   static const std::pair<G4int, const G4doubl    
1034   static const G4double pZ56N80[7]={2.E-6, 20    
1035   static const std::pair<G4int, const G4doubl    
1036   static const G4double pZ56N81[7]={5.8E-6, 2    
1037   static const std::pair<G4int, const G4doubl    
1038   static const G4double pZ56N82[7]={2.7E-6, 2    
1039   static const std::pair<G4int, const G4doubl    
1040   static const G4double pZ56N84[7]={1.1E-6, 2    
1041   static const std::pair<G4int, const G4doubl    
1042   static const std::pair<G4int, const G4doubl    
1043                                                  
1044                                                  
1045   //==> La(Z=57)                                 
1046   static const G4int N57=3;                      
1047   static const G4double pZ57N81[7]={2.7E-6, 2    
1048   static const std::pair<G4int, const G4doubl    
1049   static const G4double pZ57N82[7]={5.4E-6, 2    
1050   static const std::pair<G4int, const G4doubl    
1051   static const G4double pZ57N83[7]={2.7E-6, 2    
1052   static const std::pair<G4int, const G4doubl    
1053   static const std::pair<G4int, const G4doubl    
1054   //==> Ce(Z=58)                                 
1055   static const G4int N58=8;                      
1056   static const G4double pZ58N78[7]={1.8E-6, 2    
1057   static const std::pair<G4int, const G4doubl    
1058   static const G4double pZ58N80[7]={1.8E-6, 1    
1059   static const std::pair<G4int, const G4doubl    
1060   static const G4double pZ58N81[7]={.0018, 18    
1061   static const std::pair<G4int, const G4doubl    
1062   static const G4double pZ58N82[7]={1.8E-6, 1    
1063   static const std::pair<G4int, const G4doubl    
1064   static const G4double pZ58N83[7]={7.2E-6, 2    
1065   static const std::pair<G4int, const G4doubl    
1066   static const G4double pZ58N84[7]={1.2E-6, 1    
1067   static const std::pair<G4int, const G4doubl    
1068   static const G4double pZ58N85[7]={1.2E-6, 1    
1069   static const std::pair<G4int, const G4doubl    
1070   static const G4double pZ58N86[7]={6.E-7, 18    
1071   static const std::pair<G4int, const G4doubl    
1072   static const std::pair<G4int, const G4doubl    
1073                                                  
1074   //==> Pr(Z=59)                                 
1075   static const G4int N59=3;                      
1076   static const G4double pZ59N82[7]={9.5E-7, 1    
1077   static const std::pair<G4int, const G4doubl    
1078   static const G4double pZ59N83[7]={9.5E-7, 1    
1079   static const std::pair<G4int, const G4doubl    
1080   static const G4double pZ59N84[7]={9.5E-6, 1    
1081   static const std::pair<G4int, const G4doubl    
1082   static const std::pair<G4int, const G4doubl    
1083   //==> Nd(Z=60)                                 
1084   static const G4int N60=8;                      
1085   static const G4double pZ60N82[7]={9.6E-6, 2    
1086   static const std::pair<G4int, const G4doubl    
1087   static const G4double pZ60N83[7]={9.6E-4, 2    
1088   static const std::pair<G4int, const G4doubl    
1089   static const G4double pZ60N84[7]={4.8E-7, 2    
1090   static const std::pair<G4int, const G4doubl    
1091   static const G4double pZ60N85[7]={.0048, 20    
1092   static const std::pair<G4int, const G4doubl    
1093   static const G4double pZ60N86[7]={1.2E-6, 1    
1094   static const std::pair<G4int, const G4doubl    
1095   static const G4double pZ60N87[7]={.0012, 15    
1096   static const std::pair<G4int, const G4doubl    
1097   static const G4double pZ60N88[7]={1.5E-7, 1    
1098   static const std::pair<G4int, const G4doubl    
1099   static const G4double pZ60N90[7]={1.5E-7, 1    
1100   static const std::pair<G4int, const G4doubl    
1101   static const std::pair<G4int, const G4doubl    
1102                                                  
1103   //==> Pm(Z=61)                                 
1104   static const G4int N61=3;                      
1105   static const G4double pZ61N86[7]={6.E-7, 16    
1106   static const std::pair<G4int, const G4doubl    
1107   static const G4double pZ61N87[7]={6.2E-8, 1    
1108   static const std::pair<G4int, const G4doubl    
1109   static const G4double pZ61N88[7]={3.2E-8, 1    
1110   static const std::pair<G4int, const G4doubl    
1111   static const std::pair<G4int, const G4doubl    
1112   //==> Sm(Z=62)                                 
1113   static const G4int N62=9;                      
1114   static const G4double pZ62N82[7]={1.2E-7, 1    
1115   static const std::pair<G4int, const G4doubl    
1116   static const G4double pZ62N85[7]={1.2E-7, 1    
1117   static const std::pair<G4int, const G4doubl    
1118   static const G4double pZ62N86[7]={6.E-8, 16    
1119   static const std::pair<G4int, const G4doubl    
1120   static const G4double pZ62N87[7]={6.E-8, 15    
1121   static const std::pair<G4int, const G4doubl    
1122   static const G4double pZ62N88[7]={6.E-7, 16    
1123   static const std::pair<G4int, const G4doubl    
1124   static const G4double pZ62N89[7]={6.E-7, 16    
1125   static const std::pair<G4int, const G4doubl    
1126   static const G4double pZ62N90[7]={6.E-8, 15    
1127   static const std::pair<G4int, const G4doubl    
1128   static const G4double pZ62N91[7]={6.E-8, 15    
1129   static const std::pair<G4int, const G4doubl    
1130   static const G4double pZ62N92[7]={1.2E-7, 1    
1131   static const std::pair<G4int, const G4doubl    
1132   static const std::pair<G4int, const G4doubl    
1133                                                  
1134                                                  
1135   //==> Eu(Z=63)                                 
1136   static const G4int N63=7;                      
1137   static const G4double pZ63N88[7]={6.E-8, 15    
1138   static const std::pair<G4int, const G4doubl    
1139   static const G4double pZ63N89[7]={6.E-7, 15    
1140   static const std::pair<G4int, const G4doubl    
1141   static const G4double pZ63N90[7]={3.E-7, 15    
1142   static const std::pair<G4int, const G4doubl    
1143   static const G4double pZ63N91[7]={4.1E-7, 1    
1144   static const std::pair<G4int, const G4doubl    
1145   static const G4double pZ63N92[7]={5.E-8, 15    
1146   static const std::pair<G4int, const G4doubl    
1147   static const G4double pZ63N93[7]={4.1E-8, 1    
1148   static const std::pair<G4int, const G4doubl    
1149   static const G4double pZ63N94[7]={4.2E-8, 1    
1150   static const std::pair<G4int, const G4doubl    
1151   static const std::pair<G4int, const G4doubl    
1152                                                  
1153   //==> Gd(Z=64)                                 
1154   static const G4int N64=8;                      
1155   static const G4double pZ64N88[7]={4.2E-8, 1    
1156   static const std::pair<G4int, const G4doubl    
1157   static const G4double pZ64N89[7]={2.E-6, 14    
1158   static const std::pair<G4int, const G4doubl    
1159   static const G4double pZ64N90[7]={1.7E-7, 1    
1160   static const std::pair<G4int, const G4doubl    
1161   static const G4double pZ64N91[7]={1.7E-7, 1    
1162   static const std::pair<G4int, const G4doubl    
1163   static const G4double pZ64N92[7]={1.7E-7, 1    
1164   static const std::pair<G4int, const G4doubl    
1165   static const G4double pZ64N93[7]={1.7E-6, 1    
1166   static const std::pair<G4int, const G4doubl    
1167   static const G4double pZ64N94[7]={3.4E-7, 1    
1168   static const std::pair<G4int, const G4doubl    
1169   static const G4double pZ64N96[7]={2.6E-6, 1    
1170   static const std::pair<G4int, const G4doubl    
1171   static const std::pair<G4int, const G4doubl    
1172                                                  
1173   //==> Tb(Z=65)                                 
1174   static const G4int N65=2;                      
1175   static const G4double pZ65N94[7]={9.E-7, 16    
1176   static const std::pair<G4int, const G4doubl    
1177   //static const G4double pZ65N95[7]={4.5E-7,    
1178   //static const std::pair<G4int, const G4dou    
1179   static const std::pair<G4int, const G4doubl    
1180   //==> Dy(Z=66)                                 
1181   static const G4int N66=7;                      
1182   static const G4double pZ66N90[7]={1.2E-7, 1    
1183   static const std::pair<G4int, const G4doubl    
1184   static const G4double pZ66N92[7]={1.2E-7, 1    
1185   static const std::pair<G4int, const G4doubl    
1186   static const G4double pZ66N94[7]={1.2E-7, 1    
1187   static const std::pair<G4int, const G4doubl    
1188   static const G4double pZ66N95[7]={1.2E-6, 1    
1189   static const std::pair<G4int, const G4doubl    
1190   static const G4double pZ66N96[7]={1.2E-7, 1    
1191   static const std::pair<G4int, const G4doubl    
1192   static const G4double pZ66N97[7]={1.5E-7, 1    
1193   static const std::pair<G4int, const G4doubl    
1194   static const G4double pZ66N98[7]={3.E-7, 13    
1195   static const std::pair<G4int, const G4doubl    
1196   static const std::pair<G4int, const G4doubl    
1197                                                  
1198   //==> Ho(Z=67)                                 
1199   static const G4int N67=2;                      
1200   static const G4double pZ67N98[7]={3.E-7, 13    
1201   static const std::pair<G4int, const G4doubl    
1202   static const G4double pZ67N99[7]={7.5E-8, 1    
1203   static const std::pair<G4int, const G4doubl    
1204   static const std::pair<G4int, const G4doubl    
1205   //==> Er(Z=68)                                 
1206   static const G4int N68=6;                      
1207   static const G4double pZ68N94[7]={1.2E-7, 1    
1208   static const std::pair<G4int, const G4doubl    
1209   static const G4double pZ68N96[7]={1.2E-7, 1    
1210   static const std::pair<G4int, const G4doubl    
1211   static const G4double pZ68N98[7]={1.E-6, 13    
1212   static const std::pair<G4int, const G4doubl    
1213   static const G4double pZ68N99[7]={1.2E-7, 1    
1214   static const std::pair<G4int, const G4doubl    
1215   static const G4double pZ68N100[7]={2.E-6, 1    
1216   static const std::pair<G4int, const G4doubl    
1217   static const G4double pZ68N102[7]={2.E-6, 1    
1218   static const std::pair<G4int, const G4doubl    
1219   static const std::pair<G4int, const G4doubl    
1220                                                  
1221   //==> Tm(Z=69) *** No data *** (Tm169=Er167    
1222   static const G4int N69=1;                      
1223   static const G4double pZ69N100[7]={1.2E-7,     
1224   static const std::pair<G4int, const G4doubl    
1225   static const std::pair<G4int, const G4doubl    
1226   //==> Yb(Z=70) *** No data *** (Yb168=Er166    
1227   //                              Yb173=Hf177    
1228   static const G4int N70=7;                      
1229   static const G4double pZ70N98[7]={1.E-6, 13    
1230   static const std::pair<G4int, const G4doubl    
1231   static const G4double pZ70N100[7]={2.E-6, 1    
1232   static const std::pair<G4int, const G4doubl    
1233   static const G4double pZ70N101[7]={1.2E-7,     
1234   static const std::pair<G4int, const G4doubl    
1235   static const G4double pZ70N102[7]={2.E-6, 1    
1236   static const std::pair<G4int, const G4doubl    
1237   static const G4double pZ70N103[7]={5.E-7, 1    
1238   static const std::pair<G4int, const G4doubl    
1239   static const G4double pZ70N104[7]={5.E-7, 1    
1240   static const std::pair<G4int, const G4doubl    
1241   static const G4double pZ70N106[7]={5.E-7, 1    
1242   static const std::pair<G4int, const G4doubl    
1243   static const std::pair<G4int, const G4doubl    
1244                                                  
1245                                                  
1246   //==> Lu(Z=71)                                 
1247   static const G4int N71=2;                      
1248   static const G4double pZ71N104[7]={5.E-7, 1    
1249   static const std::pair<G4int, const G4doubl    
1250   static const G4double pZ71N105[7]={2.5E-7,     
1251   static const std::pair<G4int, const G4doubl    
1252   static const std::pair<G4int, const G4doubl    
1253   //==> Hf(Z=72)                                 
1254   static const G4int N72=6;                      
1255   static const G4double pZ72N102[7]={1.E-6, 1    
1256   static const std::pair<G4int, const G4doubl    
1257   static const G4double pZ72N104[7]={5.E-7, 1    
1258   static const std::pair<G4int, const G4doubl    
1259   static const G4double pZ72N105[7]={5.E-7, 1    
1260   static const std::pair<G4int, const G4doubl    
1261   static const G4double pZ72N106[7]={5.E-7, 1    
1262   static const std::pair<G4int, const G4doubl    
1263   static const G4double pZ72N107[7]={2.5E-7,     
1264   static const std::pair<G4int, const G4doubl    
1265   static const G4double pZ72N108[7]={1.E-6, 1    
1266   static const std::pair<G4int, const G4doubl    
1267   static const std::pair<G4int, const G4doubl    
1268                                                  
1269   //==> Ta(Z=73)                                 
1270   static const G4int N73=2;                      
1271   static const G4double pZ73N108[7]={5.E-7, 1    
1272   static const std::pair<G4int, const G4doubl    
1273   //static const G4double pZ73N109[7]={1.E-6,    
1274   //static const std::pair<G4int, const G4dou    
1275   static const std::pair<G4int, const G4doubl    
1276   //==> W (Z=74) *** W180 only bad TENDL-2008    
1277   static const G4int N74=5;                      
1278   static const G4double pZ74N106[7]={5.E-7, 1    
1279   static const std::pair<G4int, const G4doubl    
1280   static const G4double pZ74N108[7]={4.E-6, 1    
1281   static const std::pair<G4int, const G4doubl    
1282   static const G4double pZ74N109[7]={1.2E-7,     
1283   static const std::pair<G4int, const G4doubl    
1284   static const G4double pZ74N110[7]={1.2E-7,     
1285   static const std::pair<G4int, const G4doubl    
1286   static const G4double pZ74N112[7]={1.2E-7,     
1287   static const std::pair<G4int, const G4doubl    
1288   static const std::pair<G4int, const G4doubl    
1289                                                  
1290   //==> Re(Z=75)                                 
1291   static const G4int N75=2;                      
1292   static const G4double pZ75N110[7]={1.2E-7,     
1293   static const std::pair<G4int, const G4doubl    
1294   static const G4double pZ75N112[7]={1.2E-7,     
1295   static const std::pair<G4int, const G4doubl    
1296   static const std::pair<G4int, const G4doubl    
1297   //==> Os(Z=76) *** No data *** (Os184=W182,    
1298   //                              Os189=Re187    
1299   static const G4int N76=7;                      
1300   static const G4double pZ76N108[7]={4.E-6, 1    
1301   static const std::pair<G4int, const G4doubl    
1302   static const G4double pZ76N110[7]={1.2E-7,     
1303   static const std::pair<G4int, const G4doubl    
1304   static const G4double pZ76N111[7]={1.2E-7,     
1305   static const std::pair<G4int, const G4doubl    
1306   static const G4double pZ76N112[7]={1.2E-7,     
1307   static const std::pair<G4int, const G4doubl    
1308   static const G4double pZ76N113[7]={1.2E-7,     
1309   static const std::pair<G4int, const G4doubl    
1310   static const G4double pZ76N114[7]={1.2E-7,     
1311   static const std::pair<G4int, const G4doubl    
1312   static const G4double pZ76N116[7]={1.2E-7,     
1313   static const std::pair<G4int, const G4doubl    
1314   static const std::pair<G4int, const G4doubl    
1315                                                  
1316                                                  
1317   //==> Ir(Z=77)                                 
1318   static const G4int N77=2;                      
1319   static const G4double pZ77N114[7]={4.8E-7,     
1320   static const std::pair<G4int, const G4doubl    
1321   static const G4double pZ77N116[7]={4.8E-7,     
1322   static const std::pair<G4int, const G4doubl    
1323   static const std::pair<G4int, const G4doubl    
1324   //==> Pt(Z=78) *** No data *** (Pt190=Pt192    
1325   //                              Pt198=Hg200    
1326   static const G4int N78=6;                      
1327   static const G4double pZ78N112[7]={6.E-8, 1    
1328   static const std::pair<G4int, const G4doubl    
1329   static const G4double pZ78N114[7]={6.E-8, 1    
1330   static const std::pair<G4int, const G4doubl    
1331   static const G4double pZ78N116[7]={6.E-8, 1    
1332   static const std::pair<G4int, const G4doubl    
1333   static const G4double pZ78N117[7]={9.6E-7,     
1334   static const std::pair<G4int, const G4doubl    
1335   static const G4double pZ78N118[7]={2.4E-7,     
1336   static const std::pair<G4int, const G4doubl    
1337   static const G4double pZ78N120[7]={2.E-6, 1    
1338   static const std::pair<G4int, const G4doubl    
1339   static const std::pair<G4int, const G4doubl    
1340                                                  
1341   //==> Au(Z=79)                                 
1342   static const G4int N79=1;                      
1343   static const G4double pZ79N118[7]={2.4E-7,     
1344   static const std::pair<G4int, const G4doubl    
1345   static const std::pair<G4int, const G4doubl    
1346   //==> Hg(Z=80)                                 
1347   static const G4int N80=7;                      
1348   static const G4double pZ80N116[7]={6.E-8, 1    
1349   static const std::pair<G4int, const G4doubl    
1350   static const G4double pZ80N118[7]={2.4E-7,     
1351   static const std::pair<G4int, const G4doubl    
1352   static const G4double pZ80N119[7]={9.6E-7,     
1353   static const std::pair<G4int, const G4doubl    
1354   static const G4double pZ80N120[7]={2.E-6, 1    
1355   static const std::pair<G4int, const G4doubl    
1356   static const G4double pZ80N121[7]={1.E-6, 2    
1357   static const std::pair<G4int, const G4doubl    
1358   static const G4double pZ80N122[7]={2.E-6, 1    
1359   static const std::pair<G4int, const G4doubl    
1360   static const G4double pZ80N124[7]={2.0E-6,     
1361   static const std::pair<G4int, const G4doubl    
1362   static const std::pair<G4int, const G4doubl    
1363                                                  
1364                                                  
1365   //==> Tl(Z=81) *** No data *** (Tl203=Au196    
1366   static const G4int N81=2;                      
1367   static const G4double pZ81N122[7]={2.4E-7,     
1368   static const std::pair<G4int, const G4doubl    
1369   static const G4double pZ81N124[7]={};          
1370   static const std::pair<G4int, const G4doubl    
1371   static const std::pair<G4int, const G4doubl    
1372   //==> Pb(Z=82)                                 
1373   static const G4int N82=4;                      
1374   static const G4double pZ82N122[7]={4.E-6, 2    
1375   static const std::pair<G4int, const G4doubl    
1376   static const G4double pZ82N124[7]={4.E-6, 2    
1377   static const std::pair<G4int, const G4doubl    
1378   static const G4double pZ82N125[7]={2.E-6, 2    
1379   static const std::pair<G4int, const G4doubl    
1380   static const G4double pZ82N126[7]={4.E-6, 2    
1381   static const std::pair<G4int, const G4doubl    
1382   static const std::pair<G4int, const G4doubl    
1383                                                  
1384   //==> Bi(Z=83)                                 
1385   static const G4int N83=1;                      
1386   static const G4double pZ83N126[7]={8.E-7, 2    
1387   static const std::pair<G4int, const G4doubl    
1388   static const std::pair<G4int, const G4doubl    
1389   //==> Po(Z=84) *** No data *** (Po209=Pb207    
1390   static const G4int N84=1;                      
1391   static const G4double pZ84N125[7]={2.E-6, 2    
1392   static const std::pair<G4int, const G4doubl    
1393   static const std::pair<G4int, const G4doubl    
1394   //==> At(Z=85) *** No data *** (At210=Pb207    
1395   static const G4int N85=1;                      
1396   static const G4double pZ85N125[7]={2.E-6, 2    
1397   static const std::pair<G4int, const G4doubl    
1398   static const std::pair<G4int, const G4doubl    
1399   //==> Rn(Z=86) *** No data *** (Rn222=Ra224    
1400   static const G4int N86=1;                      
1401   static const G4double pZ86N136[7]={1.E-7, 2    
1402   static const std::pair<G4int, const G4doubl    
1403   static const std::pair<G4int, const G4doubl    
1404   //==> Fr(Z=87) *** No data *** (Fr223=Ac225    
1405   static const G4int N87=1;                      
1406   static const G4double pZ87N136[7]={2.E-7, 2    
1407   static const std::pair<G4int, const G4doubl    
1408   static const std::pair<G4int, const G4doubl    
1409   //==> Ra(Z=88)                                 
1410   static const G4int N88=4;                      
1411   static const G4double pZ88N135[7]={1.E-7, 2    
1412   static const std::pair<G4int, const G4doubl    
1413   static const G4double pZ88N136[7]={1.E-7, 2    
1414   static const std::pair<G4int, const G4doubl    
1415   static const G4double pZ88N137[7]={1.E-7, 2    
1416   static const std::pair<G4int, const G4doubl    
1417   static const G4double pZ88N138[7]={4.E-7, 2    
1418   static const std::pair<G4int, const G4doubl    
1419   static const std::pair<G4int, const G4doubl    
1420                                                  
1421   //==> Ac(Z=89)                                 
1422   static const G4int N89=3;                      
1423   static const G4double pZ89N136[7]={2.E-7, 2    
1424   static const std::pair<G4int, const G4doubl    
1425   static const G4double pZ89N137[7]={4.E-7, 2    
1426   static const std::pair<G4int, const G4doubl    
1427   static const G4double pZ89N138[7]={1.E-7, 2    
1428   static const std::pair<G4int, const G4doubl    
1429   static const std::pair<G4int, const G4doubl    
1430   //==> Th(Z=90)                                 
1431   static const G4int N90=7;                      
1432   static const G4double pZ90N137[7]={4.E-7, 2    
1433   static const std::pair<G4int, const G4doubl    
1434   static const G4double pZ90N138[7]={1.E-6, 2    
1435   static const std::pair<G4int, const G4doubl    
1436   static const G4double pZ90N139[7]={2.5E-7,     
1437   static const std::pair<G4int, const G4doubl    
1438   static const G4double pZ90N140[7]={1.2E-7,     
1439   static const std::pair<G4int, const G4doubl    
1440   static const G4double pZ90N142[7]={4.E-6, 2    
1441   static const std::pair<G4int, const G4doubl    
1442   static const G4double pZ90N143[7]={9.4E-7,     
1443   static const std::pair<G4int, const G4doubl    
1444   static const G4double pZ90N144[7]={2.5E-7,     
1445   static const std::pair<G4int, const G4doubl    
1446   static const std::pair<G4int, const G4doubl    
1447                                                  
1448                                                  
1449   //==> Pa(Z=91)                                 
1450   static const G4int N91=3;                      
1451   static const G4double pZ91N140[7]={1.E-5, 2    
1452   static const std::pair<G4int, const G4doubl    
1453   static const G4double pZ91N141[7]={8.E-6, 2    
1454   static const std::pair<G4int, const G4doubl    
1455   static const G4double pZ91N142[7]={8.E-6, 2    
1456   static const std::pair<G4int, const G4doubl    
1457   static const std::pair<G4int, const G4doubl    
1458   //==> U (Z=92)                                 
1459   static const G4int N92=10;                     
1460   static const G4double pZ92N140[7]={1.4E-6,     
1461   static const std::pair<G4int, const G4doubl    
1462   static const G4double pZ92N141[7]={5.6E-6,     
1463   static const std::pair<G4int, const G4doubl    
1464   static const G4double pZ92N142[7]={5.6E-6,     
1465   static const std::pair<G4int, const G4doubl    
1466   static const G4double pZ92N143[7]={5.6E-6,     
1467   static const std::pair<G4int, const G4doubl    
1468   static const G4double pZ92N144[7]={3.6E-7,     
1469   static const std::pair<G4int, const G4doubl    
1470   static const G4double pZ92N145[7]={3.6E-6,     
1471   static const std::pair<G4int, const G4doubl    
1472   static const G4double pZ92N146[7]={3.6E-7,     
1473   static const std::pair<G4int, const G4doubl    
1474   static const G4double pZ92N147[7]={3.6E-6,     
1475   static const std::pair<G4int, const G4doubl    
1476   static const G4double pZ92N148[7]={3.4E-7,     
1477   static const std::pair<G4int, const G4doubl    
1478   //static const G4double pZ92N149[7]={3.3E-7    
1479   //static const std::pair<G4int, const G4dou    
1480   static const std::pair<G4int, const G4doubl    
1481                                                  
1482                                                  
1483                                                  
1484   //==> Np(Z=93)                                 
1485   static const G4int N93=5;                      
1486   static const G4double pZ93N142[7]={3.4E-6,     
1487   static const std::pair<G4int, const G4doubl    
1488   static const G4double pZ93N143[7]={3.4E-6,     
1489   static const std::pair<G4int, const G4doubl    
1490   static const G4double pZ93N144[7]={6.8E-6,     
1491   static const std::pair<G4int, const G4doubl    
1492   static const G4double pZ93N145[7]={3.4E-6,     
1493   static const std::pair<G4int, const G4doubl    
1494   static const G4double pZ93N146[7]={3.4E-6,     
1495   static const std::pair<G4int, const G4doubl    
1496   static const std::pair<G4int, const G4doubl    
1497                                                  
1498   //==> Pu(Z=94)                                 
1499   static const G4int N94=10;                     
1500   static const G4double pZ94N142[7]={6.8E-7,     
1501   static const std::pair<G4int, const G4doubl    
1502   static const G4double pZ94N143[7]={6.8E-6,     
1503   static const std::pair<G4int, const G4doubl    
1504   static const G4double pZ94N144[7]={6.8E-7,     
1505   static const std::pair<G4int, const G4doubl    
1506   static const G4double pZ94N145[7]={2.6E-6,     
1507   static const std::pair<G4int, const G4doubl    
1508   static const G4double pZ94N146[7]={2.5E-7,     
1509   static const std::pair<G4int, const G4doubl    
1510   static const G4double pZ94N147[7]={1.4E-5,     
1511   static const std::pair<G4int, const G4doubl    
1512   static const G4double pZ94N148[7]={3.4E-7,     
1513   static const std::pair<G4int, const G4doubl    
1514   static const G4double pZ94N149[7]={5.2E-6,     
1515   static const std::pair<G4int, const G4doubl    
1516   static const G4double pZ94N150[7]={3.3E-7,     
1517   static const std::pair<G4int, const G4doubl    
1518   static const G4double pZ94N152[7]={2.5E-6,     
1519   static const std::pair<G4int, const G4doubl    
1520   static const std::pair<G4int, const G4doubl    
1521                                                  
1522                                                  
1523                                                  
1524   //==> Am(Z=95)                                 
1525   static const G4int N95=4;                      
1526   static const G4double pZ95N156[7]={2.5E-6,     
1527   static const std::pair<G4int, const G4doubl    
1528   static const G4double pZ95N157[7]={5.E-6, 1    
1529   static const std::pair<G4int, const G4doubl    
1530   static const G4double pZ95N158[7]={5.E-6, 1    
1531   static const std::pair<G4int, const G4doubl    
1532   static const G4double pZ95N159[7]={5.E-5, 2    
1533   static const std::pair<G4int, const G4doubl    
1534   static const std::pair<G4int, const G4doubl    
1535                                                  
1536   //==> Cm(Z=96)                                 
1537   static const G4int N96=10;                     
1538   static const G4double pZ96N145[7]={5.E-5, 2    
1539   static const std::pair<G4int, const G4doubl    
1540   static const G4double pZ96N146[7]={5.E-5, 2    
1541   static const std::pair<G4int, const G4doubl    
1542   static const G4double pZ96N147[7]={5.E-5, 2    
1543   static const std::pair<G4int, const G4doubl    
1544   static const G4double pZ96N148[7]={5.E-5, 2    
1545   static const std::pair<G4int, const G4doubl    
1546   static const G4double pZ96N149[7]={5.E-5, 2    
1547   static const std::pair<G4int, const G4doubl    
1548   static const G4double pZ96N150[7]={5.E-5, 2    
1549   static const std::pair<G4int, const G4doubl    
1550   static const G4double pZ96N151[7]={5.E-5, 2    
1551   static const std::pair<G4int, const G4doubl    
1552   static const G4double pZ96N152[7]={6.5E-7,     
1553   static const std::pair<G4int, const G4doubl    
1554   static const G4double pZ96N153[7]={1.6E-6,     
1555   static const std::pair<G4int, const G4doubl    
1556   static const G4double pZ96N154[7]={1.3E-5,     
1557   static const std::pair<G4int, const G4doubl    
1558   static const std::pair<G4int, const G4doubl    
1559                                                  
1560                                                  
1561                                                  
1562   //==> Bk(Z=97)                                 
1563   static const G4int N97=2;                      
1564   static const G4double pZ97N152[7]={6.5E-7,     
1565   static const std::pair<G4int, const G4doubl    
1566   static const G4double pZ97N153[7]={6.5E-6,     
1567   static const std::pair<G4int, const G4doubl    
1568   static const std::pair<G4int, const G4doubl    
1569   //==> Cf(Z=98)                                 
1570   static const G4int N98=6;                      
1571   static const G4double pZ98N151[7]={6.5E-6,     
1572   static const std::pair<G4int, const G4doubl    
1573   static const G4double pZ98N152[7]={1.3E-6,     
1574   static const std::pair<G4int, const G4doubl    
1575   static const G4double pZ98N153[7]={2.6E-6,     
1576   static const std::pair<G4int, const G4doubl    
1577   static const G4double pZ98N154[7]={2.6E-6,     
1578   static const std::pair<G4int, const G4doubl    
1579   static const G4double pZ98N155[7]={2.6E-5,     
1580   static const std::pair<G4int, const G4doubl    
1581   static const G4double pZ98N156[7]={5.2E-7,     
1582   static const std::pair<G4int, const G4doubl    
1583   static const std::pair<G4int, const G4doubl    
1584                                                  
1585                                                  
1586   static const G4int NZ=99; // #of Elements c    
1587   static const std::pair<G4int, const G4doubl    
1588     Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18,Z19,Z    
1589     Z31,Z32,Z33,Z34,Z35,Z36,Z37,Z38,Z39,Z40,Z    
1590     Z52,Z53,Z54,Z55,Z56,Z57,Z58,Z59,Z60,Z61,Z    
1591     Z73,Z74,Z75,Z76,Z77,Z78,Z79,Z80,Z81,Z82,Z    
1592     Z94,Z95,Z96,Z97,Z98};                        
1593   static const G4int NIso[NZ]={N0,N1,N2,N3,N4    
1594     N17,N18,N19,N20,N21,N22,N23,N24,N25,N26,N    
1595     N38,N39,N40,N41,N42,N43,N44,N45,N46,N47,N    
1596     N59,N60,N61,N62,N63,N64,N65,N66,N67,N68,N    
1597     N80,N81,N82,N83,N84,N85,N86,N87,N88,N89,N    
1598   if(PDG==2112)                                  
1599   {                                              
1600     // --- Total np elastic cross section cs     
1601     //p2=p*p;p3=p2*p;sp=sqrt(p);p2s=p2*sp;lp=    
1602     //CS=12./(p2s+.05*p+.0001/sqrt(sp))+.35/p    
1603     //  par(0)   par(1) par(2)        par(4)     
1604     //s1=(6.75+.14*dl2*dl2+13./p)/(1.+.14/p4)    
1605     //  par(9) par(10)   par(11)     par(12)     
1606     //b1=(7.2+4.32/(p4*p4+.012*p3))/(1.+2.5/p    
1607     //par(17) par(18)    par(19)       par(20    
1608     //                                           
1609     if(lastPAR[nLast]!=pwd) // A unique flag     
1610     {                                            
1611       if ( tgZ == 1 && tgN == 0 )                
1612       {                                          
1613         for (G4int ip=0; ip<n_npel; ip++) las    
1614       }                                          
1615       else if ( tgZ == 0 && tgN == 1 )           
1616       {                                          
1617         for (G4int ip=0; ip<n_ppel; ip++) las    
1618       }                                          
1619       else                                       
1620       {                                          
1621         G4double a=tgZ+tgN;                      
1622         G4double ala=std::log(a); // for powe    
1623         G4double sa=std::sqrt(a);                
1624         G4double ssa=std::sqrt(sa);              
1625         G4double asa=a*sa;                       
1626         G4double a2=a*a;                         
1627         G4double a3=a2*a;                        
1628         G4double a4=a3*a;                        
1629         G4double a5=a4*a;                        
1630         G4double a6=a4*a2;                       
1631         G4double a7=a6*a;                        
1632         G4double a8=a7*a;                        
1633         G4double a9=a8*a;                        
1634         G4double a10=a5*a5;                      
1635         G4double a12=a6*a6;                      
1636         G4double a14=a7*a7;                      
1637         G4double a16=a8*a8;                      
1638         G4double a17=a16*a;                      
1639         G4double a32=a16*a16;                    
1640         // Reaction cross-section parameters     
1641         lastPAR[ 0]=5./(1.+22./asa);             
1642         lastPAR[ 1]=4.8*std::exp(ala*1.14)/(1    
1643         lastPAR[ 2]=1./(1.+.004*a4)+2.E-6*a3/    
1644         lastPAR[ 3]=.07*asa/(1.+.009*a2);        
1645         lastPAR[ 5]=1.7*a;                       
1646         lastPAR[ 6]=5.5E-6*std::exp(ala*1.3);    
1647         lastPAR[13]=0.;                          
1648         lastPAR[14]=0.;                          
1649         G4int nn=NIso[tgZ];                      
1650         G4bool nfound=true;                      
1651         if(nn) for (G4int in=0; in<nn; in++)     
1652         {                                        
1653           std::pair<G4int, const G4double*> c    
1654           G4int cn=curIs.first;                  
1655           if(cn == tgN)                          
1656           {                                      
1657             const G4double* curT=curIs.second    
1658             lastPAR[ 4]=curT[0];                 
1659             lastPAR[ 7]=curT[1];                 
1660             lastPAR[ 8]=curT[2];                 
1661             lastPAR[ 9]=curT[3];                 
1662             lastPAR[10]=curT[4];                 
1663             lastPAR[11]=curT[5];                 
1664             lastPAR[12]=curT[6];                 
1665             nfound = false;                      
1666             break;                               
1667           }                                      
1668         }                                        
1669         if(nfound)                               
1670         {                                        
1671           //AR-24Apr2018 Switch to allow tran    
1672           const G4bool isHeavyElementAllowed     
1673           if ( ! isHeavyElementAllowed ) {       
1674             G4cout<<"-Warning-G4ChipsNeutronE    
1675                   <<" isotope is not implemen    
1676           }                                      
1677           // Put default values:                 
1678           lastPAR[ 4]=5.2E-7;                    
1679           lastPAR[ 7]=22.;                       
1680           lastPAR[ 8]=.00026;                    
1681           lastPAR[ 9]=1.3E-9;                    
1682           lastPAR[10]=2.7;                       
1683           lastPAR[11]=4.E-5;                     
1684           lastPAR[12]=.005;                      
1685         }                                        
1686         // @@ the differential cross-section     
1687         if(a<6.5)                                
1688         {                                        
1689           G4double a28=a16*a12;                  
1690           // The main pre-exponent      (pel_    
1691           lastPAR[15]=4000*a;                    
1692           lastPAR[16]=1.2e7*a8+380*a17;          
1693           lastPAR[17]=.7/(1.+4.e-12*a16);        
1694           lastPAR[18]=2.5/a8/(a4+1.e-16*a32);    
1695           lastPAR[19]=.28*a;                     
1696           lastPAR[20]=1.2*a2+2.3;                
1697           lastPAR[21]=3.8/a;                     
1698           // The main slope             (pel_    
1699           lastPAR[22]=.01/(1.+.0024*a5);         
1700           lastPAR[23]=.2*a;                      
1701           lastPAR[24]=9.e-7/(1.+.035*a5);        
1702           lastPAR[25]=(42.+2.7e-11*a16)/(1.+.    
1703           // The main quadratic         (pel_    
1704           lastPAR[26]=2.25*a3;                   
1705           lastPAR[27]=18.;                       
1706           lastPAR[28]=.0024*a8/(1.+2.6e-4*a7)    
1707           lastPAR[29]=3.5e-36*a32*a8/(1.+5.e-    
1708           lastPAR[30]=1.e5/(a8+2.5e12/a16);      
1709           lastPAR[31]=8.e7/(a12+1.e-27*a28*a2    
1710           lastPAR[32]=.0006*a3;                  
1711           // The 1st max slope          (pel_    
1712           lastPAR[33]=10.+4.e-8*a12*a;           
1713           lastPAR[34]=.114;                      
1714           lastPAR[35]=.003;                      
1715           lastPAR[36]=2.e-23;                    
1716           // The effective pre-exponent (pel_    
1717           lastPAR[37]=1./(1.+.0001*a8);          
1718           lastPAR[38]=1.5e-4/(1.+5.e-6*a12);     
1719           lastPAR[39]=.03;                       
1720           // The effective slope        (pel_    
1721           lastPAR[40]=a/2;                       
1722           lastPAR[41]=2.e-7*a4;                  
1723           lastPAR[42]=4.;                        
1724           lastPAR[43]=64./a3;                    
1725           // The gloria pre-exponent    (pel_    
1726           lastPAR[44]=1.e8*std::exp(.32*asa);    
1727           lastPAR[45]=20.*std::exp(.45*asa);     
1728           lastPAR[46]=7.e3+2.4e6/a5;             
1729           lastPAR[47]=2.5e5*std::exp(.085*a3)    
1730           lastPAR[48]=2.5*a;                     
1731           // The gloria slope           (pel_    
1732           lastPAR[49]=920.+.03*a8*a3;            
1733           lastPAR[50]=93.+.0023*a12;             
1734         }                                        
1735         else                                     
1736         {                                        
1737           G4double p1a10=2.2e-28*a10;            
1738           G4double r4a16=6.e14/a16;              
1739           G4double s4a16=r4a16*r4a16;            
1740           // a24                                 
1741           // a36                                 
1742           // The main pre-exponent      (peh_    
1743           lastPAR[15]=4.5*std::pow(a,1.15);      
1744           lastPAR[16]=.06*std::pow(a,.6);        
1745           lastPAR[17]=.6*a/(1.+2.e15/a16);       
1746           lastPAR[18]=.17/(a+9.e5/a3+1.5e33/a    
1747           lastPAR[19]=(.001+7.e-11*a5)/(1.+4.    
1748           lastPAR[20]=(p1a10*p1a10+2.e-29)/(1    
1749           // The main slope             (peh_    
1750           lastPAR[21]=400./a12+2.e-22*a9;        
1751           lastPAR[22]=1.e-32*a12/(1.+5.e22/a1    
1752           lastPAR[23]=1000./a2+9.5*sa*ssa;       
1753           lastPAR[24]=4.e-6*a*asa+1.e11/a16;     
1754           lastPAR[25]=(120./a+.002*a2)/(1.+2.    
1755           lastPAR[26]=9.+100./a;                 
1756           // The main quadratic         (peh_    
1757           lastPAR[27]=.002*a3+3.e7/a6;           
1758           lastPAR[28]=7.e-15*a4*asa;             
1759           lastPAR[29]=9000./a4;                  
1760           // The 1st max pre-exponent   (peh_    
1761           lastPAR[30]=.0011*asa/(1.+3.e34/a32    
1762           lastPAR[31]=1.e-5*a2+2.e14/a16;        
1763           lastPAR[32]=1.2e-11*a2/(1.+1.5e19/a    
1764           lastPAR[33]=.016*asa/(1.+5.e16/a16)    
1765           // The 1st max slope          (peh_    
1766           lastPAR[34]=.002*a4/(1.+7.e7/std::p    
1767           lastPAR[35]=2.e6/a6+7.2/std::pow(a,    
1768           lastPAR[36]=11.*a3/(1.+7.e23/a16/a8    
1769           lastPAR[37]=100./asa;                  
1770           // The 2nd max pre-exponent   (peh_    
1771           lastPAR[38]=(.1+4.4e-5*a2)/(1.+5.e5    
1772           lastPAR[39]=3.5e-4*a2/(1.+1.e8/a8);    
1773           lastPAR[40]=1.3+3.e5/a4;               
1774           lastPAR[41]=500./(a2+50.)+3;           
1775           lastPAR[42]=1.e-9/a+s4a16*s4a16;       
1776           // The 2nd max slope          (peh_    
1777           lastPAR[43]=.4*asa+3.e-9*a6;           
1778           lastPAR[44]=.0005*a5;                  
1779           lastPAR[45]=.002*a5;                   
1780           lastPAR[46]=10.;                       
1781           // The effective pre-exponent (peh_    
1782           lastPAR[47]=.05+.005*a;                
1783           lastPAR[48]=7.e-8/sa;                  
1784           lastPAR[49]=.8*sa;                     
1785           lastPAR[50]=.02*sa;                    
1786           lastPAR[51]=1.e8/a3;                   
1787           lastPAR[52]=3.e32/(a32+1.e32);         
1788           // The effective slope        (peh_    
1789           lastPAR[53]=24.;                       
1790           lastPAR[54]=20./sa;                    
1791           lastPAR[55]=7.e3*a/(sa+1.);            
1792           lastPAR[56]=900.*sa/(1.+500./a3);      
1793         }                                        
1794         // Parameter for lowEnergyNeutrons       
1795         lastPAR[57]=1.e15+2.e27/a4/(1.+2.e-18    
1796       }                                          
1797       lastPAR[nLast]=pwd;                        
1798       // and initialize the zero element of t    
1799       G4double lp=lPMin;                         
1800       G4bool memCS=onlyCS;                       
1801       onlyCS=false;                              
1802       lastCST[0]=GetTabValues(lp, PDG, tgZ, t    
1803       onlyCS=memCS;                              
1804       lastSST[0]=theSS;                          
1805       lastS1T[0]=theS1;                          
1806       lastB1T[0]=theB1;                          
1807       lastS2T[0]=theS2;                          
1808       lastB2T[0]=theB2;                          
1809       lastS3T[0]=theS3;                          
1810       lastB3T[0]=theB3;                          
1811       lastS4T[0]=theS4;                          
1812       lastB4T[0]=theB4;                          
1813     }                                            
1814     if(LP>ILP)                                   
1815     {                                            
1816       G4int ini = static_cast<int>((ILP-lPMin    
1817       if(ini<0) ini=0;                           
1818       if(ini<nPoints)                            
1819       {                                          
1820         G4int fin = static_cast<int>((LP-lPMi    
1821         if(fin>=nPoints) fin=nLast;              
1822         if(fin>=ini)                             
1823         {                                        
1824           G4double lp=0.;                        
1825           for(G4int ip=ini; ip<=fin; ip++)       
1826           {                                      
1827             lp=lPMin+ip*dlnP;                    
1828             G4bool memCS=onlyCS;                 
1829             onlyCS=false;                        
1830             lastCST[ip]=GetTabValues(lp, PDG,    
1831             onlyCS=memCS;                        
1832             lastSST[ip]=theSS;                   
1833             lastS1T[ip]=theS1;                   
1834             lastB1T[ip]=theB1;                   
1835             lastS2T[ip]=theS2;                   
1836             lastB2T[ip]=theB2;                   
1837             lastS3T[ip]=theS3;                   
1838             lastB3T[ip]=theB3;                   
1839             lastS4T[ip]=theS4;                   
1840             lastB4T[ip]=theB4;                   
1841           }                                      
1842           return lp;                             
1843         }                                        
1844         else G4cout<<"*Warning*G4ChipsNeutron    
1845                    <<", Z="<<tgZ<<", N="<<tgN    
1846                    <<" > ILP="<<ILP<<" nothin    
1847       }                                          
1848       else G4cout<<"*Warning*G4ChipsNeutronEl    
1849                  <<tgZ<<", N="<<tgN<<", i="<<    
1850                  <<" > ILP="<<ILP<<", lPMax="    
1851     }                                            
1852   }                                              
1853   else                                           
1854   {                                              
1855     // G4cout<<"*Error*G4ChipsNeutronElasticX    
1856     //       <<", N="<<tgN<<", while it is de    
1857     // throw G4QException("G4ChipsNeutronElas    
1858     G4ExceptionDescription ed;                   
1859     ed << "PDG = " << PDG << ", Z = " << tgZ     
1860        << ", while it is defined only for PDG    
1861     G4Exception("G4ChipsNeutronElasticXS::Get    
1862                 FatalException, ed);             
1863   }                                              
1864   return ILP;                                    
1865 }                                                
1866                                                  
1867 // Returns Q2=-t in independent units (MeV^2)    
1868 G4double G4ChipsNeutronElasticXS::GetExchange    
1869 {                                                
1870   static const G4double GeVSQ=gigaelectronvol    
1871   static const G4double third=1./3.;             
1872   static const G4double fifth=1./5.;             
1873   static const G4double sevth=1./7.;             
1874   if(PDG!=2112) G4cout<<"*Warning*G4ChipsNeut    
1875   if(onlyCS) G4cout<<"*Warning*G4ChipsNeutron    
1876   if(lastLP<-4.3) return lastTM*GeVSQ*G4Unifo    
1877   G4double q2=0.;                                
1878   if(tgZ==1 && tgN==0)                // ===>    
1879   {                                              
1880     G4double E1=lastTM*theB1;                    
1881     G4double R1=(1.-std::exp(-E1));              
1882     G4double E2=lastTM*theB2;                    
1883     G4double R2=(1.-std::exp(-E2));              
1884     G4double I1=R1*theS1;                        
1885     G4double I2=R2*theS2/theB2;                  
1886     //G4double I3=R3*theS3/theB3;                
1887     G4double I12=I1+I2;                          
1888     //G4double rand=(I12+I3)*G4UniformRand();    
1889     G4double rand=I12*G4UniformRand();           
1890     if     (rand<I1 )                            
1891     {                                            
1892       G4double ran=R1*G4UniformRand();           
1893       if(ran>1.) ran=1.;                         
1894       q2=-std::log(1.-ran)/theB1;       // t-    
1895     }                                            
1896     else                                         
1897     {                                            
1898       G4double ran=R2*G4UniformRand();           
1899       if(ran>1.) ran=1.;                         
1900       q2=lastTM+std::log(1.-ran)/theB2; // u-    
1901     }                                            
1902   }                                              
1903   else                                           
1904   {                                              
1905     G4double a=tgZ+tgN;                          
1906     G4double E1=lastTM*(theB1+lastTM*theSS);     
1907     G4double R1=(1.-std::exp(-E1));              
1908     G4double tss=theSS+theSS; // for future s    
1909     G4double tm2=lastTM*lastTM;                  
1910     G4double E2=lastTM*tm2*theB2;                
1911     if(a>6.5)E2*=tm2;                            
1912     G4double R2=(1.-std::exp(-E2));              
1913     G4double E3=lastTM*theB3;                    
1914     if(a>6.5)E3*=tm2*tm2*tm2;                    
1915     G4double R3=(1.-std::exp(-E3));              
1916     G4double E4=lastTM*theB4;                    
1917     G4double R4=(1.-std::exp(-E4));              
1918     G4double I1=R1*theS1;                        
1919     G4double I2=R2*theS2;                        
1920     G4double I3=R3*theS3;                        
1921     G4double I4=R4*theS4;                        
1922     G4double I12=I1+I2;                          
1923     G4double I13=I12+I3;                         
1924     G4double rand=(I13+I4)*G4UniformRand();      
1925     if(rand<I1)                                  
1926     {                                            
1927       G4double ran=R1*G4UniformRand();           
1928       if(ran>1.) ran=1.;                         
1929       q2=-std::log(1.-ran)/theB1;                
1930       if(std::fabs(tss)>1.e-7) q2=(std::sqrt(    
1931     }                                            
1932     else if(rand<I12)                            
1933     {                                            
1934       G4double ran=R2*G4UniformRand();           
1935       if(ran>1.) ran=1.;                         
1936       q2=-std::log(1.-ran)/theB2;                
1937       if(q2<0.) q2=0.;                           
1938       if(a<6.5) q2=std::pow(q2,third);           
1939       else      q2=std::pow(q2,fifth);           
1940     }                                            
1941     else if(rand<I13)                            
1942     {                                            
1943       G4double ran=R3*G4UniformRand();           
1944       if(ran>1.) ran=1.;                         
1945       q2=-std::log(1.-ran)/theB3;                
1946       if(q2<0.) q2=0.;                           
1947       if(a>6.5) q2=std::pow(q2,sevth);           
1948     }                                            
1949     else                                         
1950     {                                            
1951       G4double ran=R4*G4UniformRand();           
1952       if(ran>1.) ran=1.;                         
1953       q2=-std::log(1.-ran)/theB4;                
1954       if(a<6.5) q2=lastTM-q2;                    
1955     }                                            
1956   }                                              
1957   if(q2<0.) q2=0.;                               
1958   if(!(q2>=-1.||q2<=1.)) G4cout<<"*NAN*G4QNeu    
1959   if(q2>lastTM)                                  
1960   {                                              
1961     q2=lastTM;                                   
1962   }                                              
1963   return q2*GeVSQ;                               
1964 }                                                
1965                                                  
1966 // Returns B in independent units (MeV^-2) (a    
1967 G4double G4ChipsNeutronElasticXS::GetSlope(G4    
1968 {                                                
1969   static const G4double GeVSQ=gigaelectronvol    
1970                                                  
1971   if(onlyCS) G4cout<<"Warning*G4ChipsNeutronE    
1972   if(lastLP<-4.3) return 0.;          // S-wa    
1973   if(PDG!=2112)                                  
1974   {                                              
1975     // G4cout<<"*Error*G4ChipsNeutronElasticX    
1976     //       <<", N="<<tgN<<", while it is de    
1977     // throw G4QException("G4ChipsNeutronElas    
1978     G4ExceptionDescription ed;                   
1979     ed << "PDG = " << PDG << ", Z = " << tgZ     
1980        <<", while it is defined only for PDG=    
1981     G4Exception("G4ChipsNeutronElasticXS::Get    
1982                 FatalException, ed);             
1983   }                                              
1984   if(theB1<0.) theB1=0.;                         
1985   if(!(theB1>=-1.||theB1<=1.))G4cout<<"*NAN*G    
1986   return theB1/GeVSQ;                            
1987 }                                                
1988                                                  
1989 // Returns half max(Q2=-t) in independent uni    
1990 G4double G4ChipsNeutronElasticXS::GetHMaxT()     
1991 {                                                
1992   static const G4double HGeVSQ=gigaelectronvo    
1993   return lastTM*HGeVSQ;                          
1994 }                                                
1995                                                  
1996 // lastLP is used, so calculating tables, one    
1997 G4double G4ChipsNeutronElasticXS::GetTabValue    
1998                                                  
1999 {                                                
2000   if(PDG!=2112) G4cout<<"*Warning*G4ChipsNeut    
2001                                                  
2002   //AR-24Apr2018 Switch to allow transuranic     
2003   const G4bool isHeavyElementAllowed = true;     
2004   if(tgZ<0 || ( !isHeavyElementAllowed && tgZ    
2005   {                                              
2006     G4cout<<"*Warning*G4QNElasticCrS::GetTabV    
2007     return 0.;                                   
2008   }                                              
2009   G4int iZ=tgZ-1; // Z index                     
2010   if(iZ<0)                                       
2011   {                                              
2012     iZ=0;         // conversion of the neutro    
2013     tgZ=1;                                       
2014     tgN=0;                                       
2015   }                                              
2016   G4double p=std::exp(lp);              // mo    
2017   G4double sp=std::sqrt(p);             // sq    
2018   G4double p2=p*p;                               
2019   G4double p3=p2*p;                              
2020   G4double p4=p3*p;                              
2021   if ( tgZ == 1 && tgN == 0 )  // np             
2022   {                                              
2023     G4double ssp=std::sqrt(sp);           //     
2024     G4double p2s=p2*sp;                          
2025     G4double dl1=lp-lastPAR[3];                  
2026     theSS=lastPAR[27];                           
2027     theS1=(lastPAR[9]+lastPAR[10]*dl1*dl1+las    
2028           +lastPAR[13]/(p4+lastPAR[14]);         
2029     theB1=(lastPAR[17]+lastPAR[18]/(p4*p4+las    
2030     theS2=(lastPAR[15]+lastPAR[16]/p4/p)/p3;     
2031     theB2=lastPAR[22]/(p*sp+lastPAR[23]);        
2032     theS3=0.;                                    
2033     theB3=0.;                                    
2034     theS4=0.;                                    
2035     theB4=0.;                                    
2036     // Returns the total elastic pp cross-sec    
2037     return lastPAR[0]/(p2s+lastPAR[1]*p+lastP    
2038            +(lastPAR[5]+lastPAR[6]*dl1*dl1+la    
2039                                                  
2040   }                                              
2041   else                                           
2042   {                                              
2043     G4double p5=p4*p;                            
2044     G4double p6=p5*p;                            
2045     G4double p8=p6*p2;                           
2046     G4double p10=p8*p2;                          
2047     G4double p12=p10*p2;                         
2048     G4double p16=p8*p8;                          
2049     G4double dl=lp-5.;                           
2050     G4double a=tgZ+tgN;                          
2051     if(a<6.5)                                    
2052     {                                            
2053     G4double pah=std::pow(p,a/2);                
2054     G4double pa=pah*pah;                         
2055     G4double pa2=pa*pa;                          
2056                                                  
2057       theS1=lastPAR[15]/(1.+lastPAR[16]*p4*pa    
2058             (lastPAR[19]*dl*dl+lastPAR[20])/(    
2059       theB1=(lastPAR[22]+lastPAR[23]*p2)/(p4+    
2060       theSS=lastPAR[26]/(1.+lastPAR[27]/p2)+l    
2061       theS2=lastPAR[30]/(pa/p2+lastPAR[31]/p4    
2062       theB2=lastPAR[33]*std::pow(p,lastPAR[34    
2063       theS3=lastPAR[37]/(pa*p+lastPAR[38]/pa)    
2064       theB3=lastPAR[40]/(p3+lastPAR[41]/p6)+l    
2065       theS4=p2*(pah*lastPAR[44]*std::exp(-pah    
2066                 lastPAR[46]/(1.+lastPAR[47]*s    
2067       theB4=lastPAR[49]*pa/p2/(1.+pa*lastPAR[    
2068     }                                            
2069     else                                         
2070     {                                            
2071       theS1=lastPAR[15]/(1.+lastPAR[16]/p4)+l    
2072             lastPAR[19]/(p5+lastPAR[20]/p16);    
2073       theB1=(lastPAR[21]/p8+lastPAR[25])/(p+l    
2074             lastPAR[23]/(1.+lastPAR[24]/p4);     
2075       theSS=lastPAR[27]/(p4/std::pow(p,lastPA    
2076       theS2=lastPAR[30]/p4/(std::pow(p,lastPA    
2077       theB2=lastPAR[34]/std::pow(p,lastPAR[35    
2078       theS3=lastPAR[38]/std::pow(p,lastPAR[41    
2079             lastPAR[39]/(1.+lastPAR[40]/p6);     
2080       theB3=lastPAR[43]/p8+lastPAR[44]/p2+las    
2081       theS4=(lastPAR[47]/p4+lastPAR[52]/p)/(1    
2082             (lastPAR[49]+lastPAR[50]*dl*dl)/(    
2083       theB4=lastPAR[53]/(1.+lastPAR[54]/p)+la    
2084     }                                            
2085     // Returns the total elastic (n/p)A cross    
2086     //         p1(p6)          p2(p7)            
2087     return (lastPAR[0]*dl*dl+lastPAR[1])/(1.+    
2088        (p3+lastPAR[6]/p3)+lastPAR[7]/(p2+last    
2089            lastPAR[10]/(p5+lastPAR[11]/p2)+la    
2090     //         p10             p11               
2091   }                                              
2092   return 0.;                                     
2093 } // End of GetTableValues                       
2094                                                  
2095 // Returns max -t=Q2 (GeV^2) for the momentum    
2096 G4double G4ChipsNeutronElasticXS::GetQ2max(G4    
2097                                                  
2098 {                                                
2099                                                  
2100   G4double pP2=pP*pP;                            
2101   if(tgZ==0 && tgN==1)                           
2102   {                                              
2103     G4double tMid=std::sqrt(pP2+mNeut2)*mNeut    
2104     return tMid+tMid;                            
2105   }                                              
2106   else if(tgZ || tgN)                   // --    
2107   {                                              
2108     G4double mt=mProt;                           
2109     if(tgN||tgZ>1) mt=G4ParticleTable::GetPar    
2110     G4double dmt=mt+mt;                          
2111     G4double mds=dmt*std::sqrt(pP2+mNeut2)+mN    
2112     return dmt*dmt*pP2/mds;                      
2113   }                                              
2114   else                                           
2115   {                                              
2116     // G4cout<<"*Error*G4ChipsNeutronElasticX    
2117     //       <<tgN<<", while it is defined on    
2118     // throw G4QException("G4ChipsNeutronElas    
2119     G4ExceptionDescription ed;                   
2120     ed << "PDG = " << PDG << ", Z = " << tgZ     
2121        <<", while it is defined only for n pr    
2122     G4Exception("G4ChipsNeutronElasticXS::Get    
2123                 FatalException, ed);             
2124     return 0;                                    
2125   }                                              
2126 }                                                
2127