Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/cross_sections/src/G4ChipsNeutronInelasticXS.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/G4ChipsNeutronInelasticXS.cc (Version 11.3.0) and /processes/hadronic/cross_sections/src/G4ChipsNeutronInelasticXS.cc (Version 4.0.p1)


  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 // The lust update: M.V. Kossov, CERN/ITEP(Mos    
 28 //                                                
 29 //                                                
 30 // G4 Physics class: G4ChipsNeutronInelasticXS    
 31 // Created: M.V. Kossov, CERN/ITEP(Moscow), 17    
 32 // The last update: M.V. Kossov, CERN/ITEP (Mo    
 33 //                                                
 34 // *******************************************    
 35 // Short description: Cross-sections extracted    
 36 // neutron-nuclear  interactions. Original aut    
 37 // -------------------------------------------    
 38 //                                                
 39                                                   
 40 #include "G4ChipsNeutronInelasticXS.hh"           
 41 #include "G4SystemOfUnits.hh"                     
 42 #include "G4DynamicParticle.hh"                   
 43 #include "G4ParticleDefinition.hh"                
 44 #include "G4Neutron.hh"                           
 45 #include "G4Log.hh"                               
 46 #include "G4Exp.hh"                               
 47                                                   
 48                                                   
 49 // factory                                        
 50 #include "G4CrossSectionFactory.hh"               
 51 //                                                
 52 G4_DECLARE_XS_FACTORY(G4ChipsNeutronInelasticX    
 53                                                   
 54 // Initialization of the                          
 55                                                   
 56 G4ChipsNeutronInelasticXS::G4ChipsNeutronInela    
 57 {                                                 
 58   lastLEN=0; // Pointer to the lastArray of Lo    
 59   lastHEN=0; // Pointer to the lastArray of Hi    
 60   lastN=0;   // The last N of calculated nucle    
 61   lastZ=0;   // The last Z of calculated nucle    
 62   lastP=0.;  // Last used in cross section Mom    
 63   lastTH=0.; // Last threshold momentum           
 64   lastCS=0.; // Last value of the Cross Sectio    
 65   lastI=0;   // The last position in the DAMDB    
 66   HEthresh=0.;// HE threshold for the CS calcu    
 67   LEN = new std::vector<G4double*>;               
 68   HEN = new std::vector<G4double*>;               
 69 }                                                 
 70                                                   
 71 G4ChipsNeutronInelasticXS::~G4ChipsNeutronInel    
 72 {                                                 
 73   std::size_t lens=LEN->size();                   
 74   for(std::size_t i=0; i<lens; ++i) delete[] (    
 75   delete LEN;                                     
 76   std::size_t hens=HEN->size();                   
 77   for(std::size_t i=0; i<hens; ++i) delete[] (    
 78   delete HEN;                                     
 79 }                                                 
 80                                                   
 81 void                                              
 82 G4ChipsNeutronInelasticXS::CrossSectionDescrip    
 83 {                                                 
 84     outFile << "G4ChipsNeutronInelasticXS prov    
 85             << "section for neutron nucleus sc    
 86             << "momentum. The cross section is    
 87             << "CHIPS parameterization of cros    
 88 }                                                 
 89                                                   
 90 G4bool G4ChipsNeutronInelasticXS::IsIsoApplica    
 91          const G4Element*,                        
 92          const G4Material*)                       
 93 {                                                 
 94   return true;                                    
 95 }                                                 
 96                                                   
 97                                                   
 98 G4double G4ChipsNeutronInelasticXS::GetIsoCros    
 99                    const G4Isotope*,              
100                    const G4Element*,              
101                    const G4Material*)             
102 {                                                 
103   G4double pMom=Pt->GetTotalMomentum();           
104   G4int tgN = A - tgZ;                            
105                                                   
106   return GetChipsCrossSection(pMom, tgZ, tgN,     
107 }                                                 
108                                                   
109 // The main member function giving the collisi    
110 // Make pMom in independent units ! (Now it is    
111 G4double G4ChipsNeutronInelasticXS::GetChipsCr    
112 {                                                 
113                                                   
114   G4bool in=false;                     // By d    
115   if(tgN!=lastN || tgZ!=lastZ)         // The     
116   {                                               
117     in = false;                        // By d    
118     lastP   = 0.;                      // New     
119     lastN   = tgN;                     // The     
120     lastZ   = tgZ;                     // The     
121     lastI   = (G4int)colN.size();      // Size    
122     j  = 0;                            // A#0f    
123     if(lastI) for(G4int i=0; i<lastI; ++i) //     
124     {                                             
125       if(colN[i]==tgN && colZ[i]==tgZ) // Try     
126       {                                           
127         lastI=i;                       // Reme    
128         lastTH =colTH[i];              // The     
129         if(pMom<=lastTH)                          
130         {                                         
131           return 0.;                   // Ener    
132         }                                         
133         lastP  =colP [i];              // Last    
134         lastCS =colCS[i];              // Last    
135         in = true;                     // This    
136         // Momentum pMom is in IU ! @@ Units      
137         lastCS=CalculateCrossSection(-1,j,2112    
138         if(lastCS<=0. && pMom>lastTH)  // Corr    
139         {                                         
140           lastCS=0.;                              
141           lastTH=pMom;                            
142         }                                         
143         break;                         // Go o    
144       }                                           
145       j++;                             // Incr    
146     }                                             
147     if(!in)                            // This    
148     {                                             
149       //!!The slave functions must provide cro    
150       lastCS=CalculateCrossSection(0,j,2112,la    
151       //if(lastCS>0.)                   // It     
152       //{                                         
153                                                   
154       lastTH = 0; //ThresholdEnergy(tgZ, tgN);    
155         colN.push_back(tgN);                      
156         colZ.push_back(tgZ);                      
157         colP.push_back(pMom);                     
158         colTH.push_back(lastTH);                  
159         colCS.push_back(lastCS);                  
160   //} // M.K. Presence of H1 with high thresho    
161       return lastCS*millibarn;                    
162     } // End of creation of the new set of par    
163     else                                          
164     {                                             
165       colP[lastI]=pMom;                           
166       colCS[lastI]=lastCS;                        
167     }                                             
168   } // End of parameters udate                    
169   else if(pMom<=lastTH)                           
170   {                                               
171     return 0.;                         // Mome    
172   }                                               
173   else                                 // It i    
174   {                                               
175     lastCS=CalculateCrossSection(1,j,2112,last    
176     lastP=pMom;                                   
177   }                                               
178   return lastCS*millibarn;                        
179 }                                                 
180                                                   
181 // The main member function giving the gamma-A    
182 G4double G4ChipsNeutronInelasticXS::CalculateC    
183                                         G4int,    
184 {                                                 
185   static const G4double THmin=1.;      // defa    
186   static const G4double THmiG=THmin*.001; // m    
187   static const G4double dP=10.;        // step    
188   static const G4double dPG=dP*.001;   // step    
189   static const G4int    nL=105;        // A#of    
190   static const G4double Pmin=THmin+(nL-1)*dP;     
191   static const G4double Pmax=227000.;  // maxP    
192   static const G4int    nH=224;        // A#of    
193   static const G4double milP=G4Log(Pmin);// Lo    
194   static const G4double malP=G4Log(Pmax);// Hi    
195   static const G4double dlP=(malP-milP)/(nH-1)    
196   static const G4double milPG=G4Log(.001*Pmin)    
197   //                                              
198   if(F<=0)                             // This    
199   {                                               
200     if(F<0)                            // This    
201     {                                             
202       G4int sync=(G4int)LEN->size();              
203       if(sync<=I) G4cerr<<"*!*G4ChipsNetronNuc    
204       lastLEN=(*LEN)[I];               // Poin    
205       lastHEN=(*HEN)[I];               // Poin    
206     }                                             
207     else                               // This    
208     {                                             
209       lastLEN = new G4double[nL];      // Allo    
210       lastHEN = new G4double[nH];      // Allo    
211       // --- Instead of making a separate func    
212       G4double P=THmiG;                // Tabl    
213       for(G4int k=0; k<nL; k++)                   
214       {                                           
215         lastLEN[k] = CrossSectionLin(targZ, ta    
216         P+=dPG;                                   
217       }                                           
218       G4double lP=milPG;                          
219       for(G4int n=0; n<nH; n++)                   
220       {                                           
221         lastHEN[n] = CrossSectionLog(targZ, ta    
222         lP+=dlP;                                  
223       }                                           
224       // --- End of possible separate function    
225       // *** The synchronization check ***        
226       G4int sync=(G4int)LEN->size();              
227       if(sync!=I)                                 
228       {                                           
229         G4cerr<<"***G4ChipsNetronNuclearCS::Ca    
230               <<", N="<<targN<<", F="<<F<<G4en    
231         //G4Exception("G4ProtonNuclearCS::Calc    
232       }                                           
233       LEN->push_back(lastLEN);          // rem    
234       HEN->push_back(lastHEN);          // rem    
235     } // End of creation of the new set of par    
236   } // End of parameters udate                    
237   // =------------------= NOW the Magic Formul    
238   G4double sigma;                                 
239   if (Momentum<lastTH) return 0.;      // It m    
240   else if (Momentum<Pmin)              // High    
241   {                                               
242     sigma=EquLinearFit(Momentum,nL,THmin,dP,la    
243   }                                               
244   else if (Momentum<Pmax)              // High    
245   {                                               
246     G4double lP=G4Log(Momentum);                  
247     sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN)    
248   }                                               
249   else                                 // UHE     
250   {                                               
251     G4double P=0.001*Momentum;         // Appr    
252     sigma=CrossSectionFormula(targZ, targN, P,    
253   }                                               
254   if(sigma<0.) return 0.;                         
255   return sigma;                                   
256 }                                                 
257                                                   
258 // Calculation formula for proton-nuclear inel    
259 G4double G4ChipsNeutronInelasticXS::CrossSecti    
260 {                                                 
261   //==> n (Z=0)                                   
262   static const G4int N0=1;                        
263   static const G4double pZ0N1[4]={1., 0., 0.,     
264   static const std::pair<G4int, const G4double    
265   static const std::pair<G4int, const G4double    
266   //==> H (Z=1) *** no protons, which are trea    
267   static const G4int N1=2;                        
268   static const G4double pZ1N1[4]={6.E-8, 0., 0    
269   static const std::pair<G4int, const G4double    
270   static const G4double pZ1N2[4]={9.E-8, 0., 0    
271   static const std::pair<G4int, const G4double    
272   static const std::pair<G4int, const G4double    
273   //==> He(Z=2)                                   
274   static const G4int N2=2;                        
275   static const G4double pZ2N1[4]={1.E-13, 9000    
276   static const std::pair<G4int, const G4double    
277   static const G4double pZ2N2[4]={7.E-4, 0., 0    
278   static const std::pair<G4int, const G4double    
279   static const std::pair<G4int, const G4double    
280   //==> Li(Z=3)                                   
281   static const G4int N3=2;                        
282   static const G4double pZ3N3[4]={1.E-9, 3200.    
283   static const std::pair<G4int, const G4double    
284   static const G4double pZ3N4[4]={3.E-9, 200.,    
285   static const std::pair<G4int, const G4double    
286   static const std::pair<G4int, const G4double    
287   //==> Be(Z=4)                                   
288   static const G4int N4=1;                        
289   static const G4double pZ4N5[4]={9.E-9, 400.,    
290   static const std::pair<G4int, const G4double    
291   static const std::pair<G4int, const G4double    
292   //==> B (Z=5)                                   
293   static const G4int N5=2;                        
294   static const G4double pZ5N5[4]={2.E-10, 2700    
295   static const std::pair<G4int, const G4double    
296   static const G4double pZ5N6[4]={2.E-8, 110.,    
297   static const std::pair<G4int, const G4double    
298   static const std::pair<G4int, const G4double    
299   //==> C (Z=6)                                   
300   static const G4int N6=2;                        
301   static const G4double pZ6N6[4]={1.5E-7, 300.    
302   static const std::pair<G4int, const G4double    
303   static const G4double pZ6N7[4]={1.5E-7, 300.    
304   static const std::pair<G4int, const G4double    
305   static const std::pair<G4int, const G4double    
306   //==> N (Z=7)                                   
307   static const G4int N7=2;                        
308   static const G4double pZ7N7[4]={5.E-8, 500.,    
309   static const std::pair<G4int, const G4double    
310   static const G4double pZ7N8[4]={5.E-8, 140.,    
311   static const std::pair<G4int, const G4double    
312   static const std::pair<G4int, const G4double    
313   //==> O (Z=8)                                   
314   static const G4int N8=3;                        
315   static const G4double pZ8N8[4]={7.E-8, 0., .    
316   static const std::pair<G4int, const G4double    
317   static const G4double pZ8N9[4]={2.E-8, 170.,    
318   static const std::pair<G4int, const G4double    
319   static const G4double pZ8N10[4]={1.E-9, 0.,     
320   static const std::pair<G4int, const G4double    
321   static const std::pair<G4int, const G4double    
322   //==> F (Z=9)                                   
323   static const G4int N9=1;                        
324   static const G4double pZ9N10[4]={1.E-11, 300    
325   static const std::pair<G4int, const G4double    
326   static const std::pair<G4int, const G4double    
327   //==> Ne(Z=10)                                  
328   static const G4int N10=3;                       
329   static const G4double pZ10N10[4]={4.E-8, 0.,    
330   static const std::pair<G4int, const G4double    
331   static const G4double pZ10N11[4]={4.E-8, 0.,    
332   static const std::pair<G4int, const G4double    
333   static const G4double pZ10N12[4]={4.E-8, 0.,    
334   static const std::pair<G4int, const G4double    
335   static const std::pair<G4int, const G4double    
336   //==> Na(Z=11)                                  
337   static const G4int N11=1;                       
338   static const G4double pZ11N12[4]={8.E-10, 50    
339   static const std::pair<G4int, const G4double    
340   static const std::pair<G4int, const G4double    
341   //==> Mg(Z=12)                                  
342   static const G4int N12=3;                       
343   static const G4double pZ12N12[4]={2.E-9, 350    
344   static const std::pair<G4int, const G4double    
345   static const G4double pZ12N13[4]={2.E-9, 350    
346   static const std::pair<G4int, const G4double    
347   static const G4double pZ12N14[4]={2.E-9, 0.,    
348   static const std::pair<G4int, const G4double    
349   static const std::pair<G4int, const G4double    
350   //==> Al(Z=13)                                  
351   static const G4int N13=1;                       
352   static const G4double pZ13N14[4]={9.E-9, 500    
353   static const std::pair<G4int, const G4double    
354   static const std::pair<G4int, const G4double    
355   //==> Si(Z=14)                                  
356   static const G4int N14=3;                       
357   static const G4double pZ14N14[4]={4.E-9, 200    
358   static const std::pair<G4int, const G4double    
359   static const G4double pZ14N15[4]={6.E-9, 500    
360   static const std::pair<G4int, const G4double    
361   static const G4double pZ14N16[4]={4.E-9, 200    
362   static const std::pair<G4int, const G4double    
363   static const std::pair<G4int, const G4double    
364   //==> P (Z=15)                                  
365   static const G4int N15=1;                       
366   static const G4double pZ15N16[4]={6.E-9, 550    
367   static const std::pair<G4int, const G4double    
368   static const std::pair<G4int, const G4double    
369   //==> S (Z=16)                                  
370   static const G4int N16=4;                       
371   static const G4double pZ16N16[4]={1.5E-8, 50    
372   static const std::pair<G4int, const G4double    
373   static const G4double pZ16N17[4]={1.E-8, 300    
374   static const std::pair<G4int, const G4double    
375   static const G4double pZ16N18[4]={2.E-8, 300    
376   static const std::pair<G4int, const G4double    
377   static const G4double pZ16N20[4]={2.E-8, 200    
378   static const std::pair<G4int, const G4double    
379   static const std::pair<G4int, const G4double    
380   //==> Cl(Z=17)                                  
381   static const G4int N17=2;                       
382   static const G4double pZ17N18[4]={3.E-9, 300    
383   static const std::pair<G4int, const G4double    
384   static const G4double pZ17N20[4]={5.E-9, 0.,    
385   static const std::pair<G4int, const G4double    
386   static const std::pair<G4int, const G4double    
387   //==> Ar(Z=18)                                  
388   static const G4int N18=3;                       
389   static const G4double pZ18N18[4]={2.5E-9, 30    
390   static const std::pair<G4int, const G4double    
391   static const G4double pZ18N20[4]={2.E-8, 400    
392   static const std::pair<G4int, const G4double    
393   static const G4double pZ18N22[4]={1.E-9, 100    
394   static const std::pair<G4int, const G4double    
395   static const std::pair<G4int, const G4double    
396   //==> K (Z=19)                                  
397   static const G4int N19=3;                       
398   static const G4double pZ19N20[4]={3.E-9, 4.,    
399   static const std::pair<G4int, const G4double    
400   static const G4double pZ19N21[4]={3.E-9, 500    
401   static const std::pair<G4int, const G4double    
402   static const G4double pZ19N22[4]={3.E-9, 400    
403   static const std::pair<G4int, const G4double    
404   static const std::pair<G4int, const G4double    
405   //==> Ca(Z=20)                                  
406   static const G4int N20=6;                       
407   static const G4double pZ20N20[4]={3.E-9, 0.,    
408   static const std::pair<G4int, const G4double    
409   static const G4double pZ20N22[4]={2.E-9, 400    
410   static const std::pair<G4int, const G4double    
411   static const G4double pZ20N23[4]={.3E-9, 280    
412   static const std::pair<G4int, const G4double    
413   static const G4double pZ20N24[4]={1.E-9, 300    
414   static const std::pair<G4int, const G4double    
415   static const G4double pZ20N26[4]={1.5E-8, 40    
416   static const std::pair<G4int, const G4double    
417   static const G4double pZ20N28[4]={7.E-9, 0.,    
418   static const std::pair<G4int, const G4double    
419   static const std::pair<G4int, const G4double    
420                                                   
421   //==> Sc(Z=21)                                  
422   static const G4int N21=1;                       
423   static const G4double pZ21N24[4]={5.E-9, 100    
424   static const std::pair<G4int, const G4double    
425   static const std::pair<G4int, const G4double    
426   //==> Ti(Z=22)                                  
427   static const G4int N22=5;                       
428   static const G4double pZ22N24[4]={4.E-9, 900    
429   static const std::pair<G4int, const G4double    
430   static const G4double pZ22N25[4]={4.E-9, 100    
431   static const std::pair<G4int, const G4double    
432   static const G4double pZ22N26[4]={4.E-9, 900    
433   static const std::pair<G4int, const G4double    
434   static const G4double pZ22N27[4]={4.E-9, 800    
435   static const std::pair<G4int, const G4double    
436   static const G4double pZ22N28[4]={4.E-9, 550    
437   static const std::pair<G4int, const G4double    
438   static const std::pair<G4int, const G4double    
439                                                   
440   //==> V (Z=23)                                  
441   static const G4int N23=2;                       
442   static const G4double pZ23N27[4]={4.E-9, 700    
443   static const std::pair<G4int, const G4double    
444   static const G4double pZ23N28[4]={4.E-9, 700    
445   static const std::pair<G4int, const G4double    
446   static const std::pair<G4int, const G4double    
447   //==> Cr(Z=24)                                  
448   static const G4int N24=4;                       
449   static const G4double pZ24N26[4]={1.E-9, 750    
450   static const std::pair<G4int, const G4double    
451   static const G4double pZ24N28[4]={1.E-9, 350    
452   static const std::pair<G4int, const G4double    
453   static const G4double pZ24N29[4]={.4E-9, 650    
454   static const std::pair<G4int, const G4double    
455   static const G4double pZ24N30[4]={1.E-9, 700    
456   static const std::pair<G4int, const G4double    
457   static const std::pair<G4int, const G4double    
458   //==> Mn(Z=25)                                  
459   static const G4int N25=1;                       
460   static const G4double pZ25N30[4]={.3E-9, 650    
461   static const std::pair<G4int, const G4double    
462   static const std::pair<G4int, const G4double    
463   //==> Fe(Z=26)                                  
464   static const G4int N26=4;                       
465   static const G4double pZ26N28[4]={.9E-9, 200    
466   static const std::pair<G4int, const G4double    
467   static const G4double pZ26N30[4]={.9E-9, 150    
468   static const std::pair<G4int, const G4double    
469   static const G4double pZ26N31[4]={.9E-9, 110    
470   static const std::pair<G4int, const G4double    
471   static const G4double pZ26N32[4]={.9E-9, 500    
472   static const std::pair<G4int, const G4double    
473   static const std::pair<G4int, const G4double    
474   //==> Co(Z=27)                                  
475   static const G4int N27=1;                       
476   static const G4double pZ27N32[4]={.2E-9, 21.    
477   static const std::pair<G4int, const G4double    
478   static const std::pair<G4int, const G4double    
479   //==> Ni(Z=28)                                  
480   static const G4int N28=5;                       
481   static const G4double pZ28N30[4]={.3E-9, 0.,    
482   static const std::pair<G4int, const G4double    
483   static const G4double pZ28N32[4]={.3E-9, 0.,    
484   static const std::pair<G4int, const G4double    
485   static const G4double pZ28N33[4]={.3E-9, 0.,    
486   static const std::pair<G4int, const G4double    
487   static const G4double pZ28N34[4]={.3E-9, 700    
488   static const std::pair<G4int, const G4double    
489   static const G4double pZ28N36[4]={.3E-9, 75.    
490   static const std::pair<G4int, const G4double    
491   static const std::pair<G4int, const G4double    
492                                                   
493   //==> Cu(Z=29)                                  
494   static const G4int N29=2;                       
495   static const G4double pZ29N34[4]={.1E-9, 35.    
496   static const std::pair<G4int, const G4double    
497   static const G4double pZ29N36[4]={.2E-9, 23.    
498   static const std::pair<G4int, const G4double    
499   static const std::pair<G4int, const G4double    
500   //==> Zn(Z=30)                                  
501   static const G4int N30=5;                       
502   static const G4double pZ30N34[4]={.2E-9, 140    
503   static const std::pair<G4int, const G4double    
504   static const G4double pZ30N36[4]={.2E-9, 140    
505   static const std::pair<G4int, const G4double    
506   static const G4double pZ30N37[4]={.2E-9, 140    
507   static const std::pair<G4int, const G4double    
508   static const G4double pZ30N38[4]={.2E-9, 140    
509   static const std::pair<G4int, const G4double    
510   static const G4double pZ30N40[4]={.2E-9, 140    
511   static const std::pair<G4int, const G4double    
512   static const std::pair<G4int, const G4double    
513                                                   
514   //==> Ga(Z=31)                                  
515   static const G4int N31=2;                       
516   static const G4double pZ31N38[4]={.3E-9, 450    
517   static const std::pair<G4int, const G4double    
518   static const G4double pZ31N40[4]={.3E-9, 600    
519   static const std::pair<G4int, const G4double    
520   static const std::pair<G4int, const G4double    
521   //==> Ge(Z=32)                                  
522   static const G4int N32=5;                       
523   static const G4double pZ32N38[4]={.2E-9, 200    
524   static const std::pair<G4int, const G4double    
525   static const G4double pZ32N40[4]={.2E-9, 600    
526   static const std::pair<G4int, const G4double    
527   static const G4double pZ32N41[4]={1.5E-11, 6    
528   static const std::pair<G4int, const G4double    
529   static const G4double pZ32N42[4]={9.E-11, 40    
530   static const std::pair<G4int, const G4double    
531   static const G4double pZ32N44[4]={9.E-11, 40    
532   static const std::pair<G4int, const G4double    
533   static const std::pair<G4int, const G4double    
534                                                   
535   //==> As(Z=33)                                  
536   static const G4int N33=1;                       
537   static const G4double pZ33N42[4]={1.E-11, 10    
538   static const std::pair<G4int, const G4double    
539   static const std::pair<G4int, const G4double    
540   //==> Se(Z=34)                                  
541   static const G4int N34=6;                       
542   static const G4double pZ34N40[4]={3.E-12, 50    
543   static const std::pair<G4int, const G4double    
544   static const G4double pZ34N42[4]={3.E-12, 50    
545   static const std::pair<G4int, const G4double    
546   static const G4double pZ34N43[4]={3.E-12, 50    
547   static const std::pair<G4int, const G4double    
548   static const G4double pZ34N44[4]={3.E-12, 50    
549   static const std::pair<G4int, const G4double    
550   static const G4double pZ34N46[4]={3.E-12, 50    
551   static const std::pair<G4int, const G4double    
552   static const G4double pZ34N48[4]={3.E-12, 50    
553   static const std::pair<G4int, const G4double    
554   static const std::pair<G4int, const G4double    
555                                                   
556   //==> Br(Z=35)                                  
557   static const G4int N35=2;                       
558   static const G4double pZ35N44[4]={3.E-12, 50    
559   static const std::pair<G4int, const G4double    
560   static const G4double pZ35N46[4]={3.E-12, 50    
561   static const std::pair<G4int, const G4double    
562   static const std::pair<G4int, const G4double    
563   //==> Kr(Z=36)                                  
564   static const G4int N36=6;                       
565   static const G4double pZ36N42[4]={3.E-12, 50    
566   static const std::pair<G4int, const G4double    
567   static const G4double pZ36N44[4]={3.E-12, 50    
568   static const std::pair<G4int, const G4double    
569   static const G4double pZ36N46[4]={3.E-12, 50    
570   static const std::pair<G4int, const G4double    
571   static const G4double pZ36N47[4]={3.E-12, 50    
572   static const std::pair<G4int, const G4double    
573   static const G4double pZ36N48[4]={3.E-12, 50    
574   static const std::pair<G4int, const G4double    
575   static const G4double pZ36N50[4]={3.E-12, 50    
576   static const std::pair<G4int, const G4double    
577   static const std::pair<G4int, const G4double    
578                                                   
579   //==> Rb(Z=37)                                  
580   static const G4int N37=2;                       
581   static const G4double pZ37N48[4]={3.E-12, 50    
582   static const std::pair<G4int, const G4double    
583   static const G4double pZ37N50[4]={3.E-12, 50    
584   static const std::pair<G4int, const G4double    
585   static const std::pair<G4int, const G4double    
586   //==> Sr(Z=38)                                  
587   static const G4int N38=4;                       
588   static const G4double pZ38N46[4]={3.E-12, 50    
589   static const std::pair<G4int, const G4double    
590   static const G4double pZ38N48[4]={3.E-12, 50    
591   static const std::pair<G4int, const G4double    
592   static const G4double pZ38N49[4]={3.E-12, 50    
593   static const std::pair<G4int, const G4double    
594   static const G4double pZ38N50[4]={3.E-12, 50    
595   static const std::pair<G4int, const G4double    
596   static const std::pair<G4int, const G4double    
597   //==> Y (Z=39)                                  
598   static const G4int N39=1;                       
599   static const G4double pZ39N50[4]={3.E-12, 50    
600   static const std::pair<G4int, const G4double    
601   static const std::pair<G4int, const G4double    
602   //==> Zr(Z=40)                                  
603   static const G4int N40=5;                       
604   static const G4double pZ40N50[4]={3.E-12, 50    
605   static const std::pair<G4int, const G4double    
606   static const G4double pZ40N51[4]={3.E-12, 50    
607   static const std::pair<G4int, const G4double    
608   static const G4double pZ40N52[4]={3.E-12, 50    
609   static const std::pair<G4int, const G4double    
610   static const G4double pZ40N54[4]={3.E-12, 50    
611   static const std::pair<G4int, const G4double    
612   static const G4double pZ40N56[4]={3.E-12, 50    
613   static const std::pair<G4int, const G4double    
614   static const std::pair<G4int, const G4double    
615                                                   
616   //==> Nb(Z=41)                                  
617   static const G4int N41=1;                       
618   static const G4double pZ41N52[4]={3.E-12, 50    
619   static const std::pair<G4int, const G4double    
620   static const std::pair<G4int, const G4double    
621   //==> Mo(Z=42)                                  
622   static const G4int N42=7;                       
623   static const G4double pZ42N50[4]={3.E-12, 50    
624   static const std::pair<G4int, const G4double    
625   static const G4double pZ42N52[4]={3.E-12, 50    
626   static const std::pair<G4int, const G4double    
627   static const G4double pZ42N53[4]={3.E-12, 50    
628   static const std::pair<G4int, const G4double    
629   static const G4double pZ42N54[4]={3.E-12, 50    
630   static const std::pair<G4int, const G4double    
631   static const G4double pZ42N55[4]={3.E-12, 50    
632   static const std::pair<G4int, const G4double    
633   static const G4double pZ42N56[4]={3.E-12, 50    
634   static const std::pair<G4int, const G4double    
635   static const G4double pZ42N58[4]={3.E-12, 50    
636   static const std::pair<G4int, const G4double    
637   static const std::pair<G4int, const G4double    
638                                                   
639   //==> Mo(Z=43)                                  
640   static const G4int N43=1;                       
641   static const G4double pZ43N0[4]={3.E-12, 500    
642   static const std::pair<G4int, const G4double    
643   static const std::pair<G4int, const G4double    
644   //==> Ru(Z=44)                                  
645   static const G4int N44=7;                       
646   static const G4double pZ44N52[4]={3.E-12, 50    
647   static const std::pair<G4int, const G4double    
648   static const G4double pZ44N54[4]={3.E-12, 50    
649   static const std::pair<G4int, const G4double    
650   static const G4double pZ44N55[4]={3.E-12, 50    
651   static const std::pair<G4int, const G4double    
652   static const G4double pZ44N56[4]={3.E-12, 50    
653   static const std::pair<G4int, const G4double    
654   static const G4double pZ44N57[4]={3.E-12, 50    
655   static const std::pair<G4int, const G4double    
656   static const G4double pZ44N58[4]={3.E-12, 50    
657   static const std::pair<G4int, const G4double    
658   static const G4double pZ44N60[4]={3.E-12, 50    
659   static const std::pair<G4int, const G4double    
660   static const std::pair<G4int, const G4double    
661                                                   
662   //==> Rh(Z=45)                                  
663   static const G4int N45=1;                       
664   static const G4double pZ45N58[4]={3.E-12, 50    
665   static const std::pair<G4int, const G4double    
666   static const std::pair<G4int, const G4double    
667   //==> Pd(Z=46)                                  
668   static const G4int N46=6;                       
669   static const G4double pZ46N56[4]={3.E-12, 50    
670   static const std::pair<G4int, const G4double    
671   static const G4double pZ46N58[4]={3.E-12, 50    
672   static const std::pair<G4int, const G4double    
673   static const G4double pZ46N59[4]={3.E-12, 50    
674   static const std::pair<G4int, const G4double    
675   static const G4double pZ46N60[4]={3.E-12, 50    
676   static const std::pair<G4int, const G4double    
677   static const G4double pZ46N62[4]={3.E-12, 50    
678   static const std::pair<G4int, const G4double    
679   static const G4double pZ46N64[4]={3.E-12, 50    
680   static const std::pair<G4int, const G4double    
681   static const std::pair<G4int, const G4double    
682                                                   
683   //==> Ag(Z=47)                                  
684   static const G4int N47=2;                       
685   static const G4double pZ47N60[4]={3.E-12, 50    
686   static const std::pair<G4int, const G4double    
687   static const G4double pZ47N62[4]={3.E-12, 48    
688   static const std::pair<G4int, const G4double    
689   static const std::pair<G4int, const G4double    
690   //==> Cd(Z=48)                                  
691   static const G4int N48=8;                       
692   static const G4double pZ48N58[4]={3.E-12, 50    
693   static const std::pair<G4int, const G4double    
694   static const G4double pZ48N60[4]={3.E-12, 50    
695   static const std::pair<G4int, const G4double    
696   static const G4double pZ48N62[4]={3.E-12, 50    
697   static const std::pair<G4int, const G4double    
698   static const G4double pZ48N63[4]={3.E-12, 50    
699   static const std::pair<G4int, const G4double    
700   static const G4double pZ48N64[4]={3.E-12, 50    
701   static const std::pair<G4int, const G4double    
702   static const G4double pZ48N65[4]={3.E-12, 50    
703   static const std::pair<G4int, const G4double    
704   static const G4double pZ48N66[4]={3.E-12, 50    
705   static const std::pair<G4int, const G4double    
706   static const G4double pZ48N68[4]={3.E-12, 50    
707   static const std::pair<G4int, const G4double    
708   static const std::pair<G4int, const G4double    
709                                                   
710   //==> In(Z=49)                                  
711   static const G4int N49=2;                       
712   static const G4double pZ49N64[4]={3.E-12, 50    
713   static const std::pair<G4int, const G4double    
714   static const G4double pZ49N66[4]={3.E-12, 50    
715   static const std::pair<G4int, const G4double    
716   static const std::pair<G4int, const G4double    
717   //==> Sn(Z=50)                                  
718   static const G4int N50=10;                      
719   static const G4double pZ50N62[4]={3.E-12, 50    
720   static const std::pair<G4int, const G4double    
721   static const G4double pZ50N64[4]={3.E-12, 50    
722   static const std::pair<G4int, const G4double    
723   static const G4double pZ50N65[4]={3.E-12, 50    
724   static const std::pair<G4int, const G4double    
725   static const G4double pZ50N66[4]={3.E-12, 50    
726   static const std::pair<G4int, const G4double    
727   static const G4double pZ50N67[4]={3.E-12, 50    
728   static const std::pair<G4int, const G4double    
729   static const G4double pZ50N68[4]={3.E-12, 50    
730   static const std::pair<G4int, const G4double    
731   static const G4double pZ50N69[4]={3.E-12, 50    
732   static const std::pair<G4int, const G4double    
733   static const G4double pZ50N70[4]={3.E-12, 50    
734   static const std::pair<G4int, const G4double    
735   static const G4double pZ50N72[4]={3.E-12, 50    
736   static const std::pair<G4int, const G4double    
737   static const G4double pZ50N74[4]={3.E-12, 50    
738   static const std::pair<G4int, const G4double    
739   static const std::pair<G4int, const G4double    
740                                                   
741                                                   
742   //==> Sb(Z=51)                                  
743   static const G4int N51=2;                       
744   static const G4double pZ51N70[4]={3.E-12, 50    
745   static const std::pair<G4int, const G4double    
746   static const G4double pZ51N72[4]={3.E-12, 50    
747   static const std::pair<G4int, const G4double    
748   static const std::pair<G4int, const G4double    
749   //==> Te(Z=52)                                  
750   static const G4int N52=8;                       
751   static const G4double pZ52N68[4]={3.E-12, 50    
752   static const std::pair<G4int, const G4double    
753   static const G4double pZ52N70[4]={3.E-12, 50    
754   static const std::pair<G4int, const G4double    
755   static const G4double pZ52N71[4]={3.E-12, 50    
756   static const std::pair<G4int, const G4double    
757   static const G4double pZ52N72[4]={3.E-12, 50    
758   static const std::pair<G4int, const G4double    
759   static const G4double pZ52N73[4]={3.E-12, 50    
760   static const std::pair<G4int, const G4double    
761   static const G4double pZ52N74[4]={3.E-12, 50    
762   static const std::pair<G4int, const G4double    
763   static const G4double pZ52N76[4]={3.E-12, 50    
764   static const std::pair<G4int, const G4double    
765   static const G4double pZ52N78[4]={3.E-12, 50    
766   static const std::pair<G4int, const G4double    
767   static const std::pair<G4int, const G4double    
768                                                   
769   //==> I (Z=53)                                  
770   static const G4int N53=1;                       
771   static const G4double pZ53N74[4]={3.E-12, 50    
772   static const std::pair<G4int, const G4double    
773   static const std::pair<G4int, const G4double    
774   //==> Xe(Z=54)                                  
775   static const G4int N54=9;                       
776   static const G4double pZ54N70[4]={3.E-12, 50    
777   static const std::pair<G4int, const G4double    
778   static const G4double pZ54N72[4]={3.E-12, 50    
779   static const std::pair<G4int, const G4double    
780   static const G4double pZ54N74[4]={3.E-12, 50    
781   static const std::pair<G4int, const G4double    
782   static const G4double pZ54N75[4]={3.E-12, 50    
783   static const std::pair<G4int, const G4double    
784   static const G4double pZ54N76[4]={3.E-12, 50    
785   static const std::pair<G4int, const G4double    
786   static const G4double pZ54N77[4]={3.E-12, 50    
787   static const std::pair<G4int, const G4double    
788   static const G4double pZ54N78[4]={3.E-12, 50    
789   static const std::pair<G4int, const G4double    
790   static const G4double pZ54N80[4]={3.E-12, 50    
791   static const std::pair<G4int, const G4double    
792   static const G4double pZ54N82[4]={3.E-12, 50    
793   static const std::pair<G4int, const G4double    
794   static const std::pair<G4int, const G4double    
795                                                   
796                                                   
797   //==> Cs(Z=55)                                  
798   static const G4int N55=1;                       
799   static const G4double pZ55N78[4]={3.E-12, 50    
800   static const std::pair<G4int, const G4double    
801   static const std::pair<G4int, const G4double    
802   //==> Ba(Z=56)                                  
803   static const G4int N56=7;                       
804   static const G4double pZ56N74[4]={3.E-12, 50    
805   static const std::pair<G4int, const G4double    
806   static const G4double pZ56N76[4]={3.E-12, 50    
807   static const std::pair<G4int, const G4double    
808   static const G4double pZ56N78[4]={3.E-12, 50    
809   static const std::pair<G4int, const G4double    
810   static const G4double pZ56N79[4]={3.E-12, 50    
811   static const std::pair<G4int, const G4double    
812   static const G4double pZ56N80[4]={3.E-12, 50    
813   static const std::pair<G4int, const G4double    
814   static const G4double pZ56N81[4]={3.E-12, 50    
815   static const std::pair<G4int, const G4double    
816   static const G4double pZ56N82[4]={3.E-12, 50    
817   static const std::pair<G4int, const G4double    
818   static const std::pair<G4int, const G4double    
819                                                   
820   //==> La(Z=57)                                  
821   static const G4int N57=2;                       
822   static const G4double pZ57N81[4]={3.E-12, 50    
823   static const std::pair<G4int, const G4double    
824   static const G4double pZ57N82[4]={3.E-12, 50    
825   static const std::pair<G4int, const G4double    
826   static const std::pair<G4int, const G4double    
827   //==> Ce(Z=58)                                  
828   static const G4int N58=4;                       
829   static const G4double pZ58N78[4]={3.E-12, 50    
830   static const std::pair<G4int, const G4double    
831   static const G4double pZ58N80[4]={3.E-12, 50    
832   static const std::pair<G4int, const G4double    
833   static const G4double pZ58N82[4]={3.E-12, 50    
834   static const std::pair<G4int, const G4double    
835   static const G4double pZ58N84[4]={3.E-12, 50    
836   static const std::pair<G4int, const G4double    
837   static const std::pair<G4int, const G4double    
838   //==> Pr(Z=59)                                  
839   static const G4int N59=1;                       
840   static const G4double pZ59N82[4]={3.E-12, 50    
841   static const std::pair<G4int, const G4double    
842   static const std::pair<G4int, const G4double    
843   //==> Nd(Z=60)                                  
844   static const G4int N60=7;                       
845   static const G4double pZ60N82[4]={3.E-12, 50    
846   static const std::pair<G4int, const G4double    
847   static const G4double pZ60N83[4]={3.E-12, 50    
848   static const std::pair<G4int, const G4double    
849   static const G4double pZ60N84[4]={3.E-12, 50    
850   static const std::pair<G4int, const G4double    
851   static const G4double pZ60N85[4]={3.E-12, 50    
852   static const std::pair<G4int, const G4double    
853   static const G4double pZ60N86[4]={3.E-12, 50    
854   static const std::pair<G4int, const G4double    
855   static const G4double pZ60N88[4]={3.E-12, 50    
856   static const std::pair<G4int, const G4double    
857   static const G4double pZ60N90[4]={3.E-12, 50    
858   static const std::pair<G4int, const G4double    
859   static const std::pair<G4int, const G4double    
860                                                   
861   //==> Mo(Z=61)                                  
862   static const G4int N61=1;                       
863   static const G4double pZ61N0[4]={3.E-12, 500    
864   static const std::pair<G4int, const G4double    
865   static const std::pair<G4int, const G4double    
866   //==> Sm(Z=62)                                  
867   static const G4int N62=7;                       
868   static const G4double pZ62N82[4]={3.E-12, 50    
869   static const std::pair<G4int, const G4double    
870   static const G4double pZ62N85[4]={3.E-12, 50    
871   static const std::pair<G4int, const G4double    
872   static const G4double pZ62N86[4]={3.E-12, 50    
873   static const std::pair<G4int, const G4double    
874   static const G4double pZ62N87[4]={3.E-12, 50    
875   static const std::pair<G4int, const G4double    
876   static const G4double pZ62N88[4]={3.E-12, 50    
877   static const std::pair<G4int, const G4double    
878   static const G4double pZ62N90[4]={3.E-12, 50    
879   static const std::pair<G4int, const G4double    
880   static const G4double pZ62N92[4]={3.E-12, 50    
881   static const std::pair<G4int, const G4double    
882   static const std::pair<G4int, const G4double    
883                                                   
884   //==> Eu(Z=63)                                  
885   static const G4int N63=2;                       
886   static const G4double pZ63N88[4]={3.E-12, 50    
887   static const std::pair<G4int, const G4double    
888   static const G4double pZ63N90[4]={3.E-12, 50    
889   static const std::pair<G4int, const G4double    
890   static const std::pair<G4int, const G4double    
891   //==> Gd(Z=64)                                  
892   static const G4int N64=7;                       
893   static const G4double pZ64N88[4]={3.E-12, 50    
894   static const std::pair<G4int, const G4double    
895   static const G4double pZ64N90[4]={3.E-12, 50    
896   static const std::pair<G4int, const G4double    
897   static const G4double pZ64N91[4]={3.E-12, 50    
898   static const std::pair<G4int, const G4double    
899   static const G4double pZ64N92[4]={3.E-12, 50    
900   static const std::pair<G4int, const G4double    
901   static const G4double pZ64N93[4]={3.E-12, 50    
902   static const std::pair<G4int, const G4double    
903   static const G4double pZ64N94[4]={3.E-12, 50    
904   static const std::pair<G4int, const G4double    
905   static const G4double pZ64N96[4]={3.E-12, 50    
906   static const std::pair<G4int, const G4double    
907   static const std::pair<G4int, const G4double    
908                                                   
909   //==> Tb(Z=65)                                  
910   static const G4int N65=1;                       
911   static const G4double pZ65N94[4]={3.E-12, 50    
912   static const std::pair<G4int, const G4double    
913   static const std::pair<G4int, const G4double    
914   //==> Dy(Z=66)                                  
915   static const G4int N66=7;                       
916   static const G4double pZ66N90[4]={3.E-12, 50    
917   static const std::pair<G4int, const G4double    
918   static const G4double pZ66N92[4]={3.E-12, 50    
919   static const std::pair<G4int, const G4double    
920   static const G4double pZ66N94[4]={3.E-12, 50    
921   static const std::pair<G4int, const G4double    
922   static const G4double pZ66N95[4]={3.E-12, 50    
923   static const std::pair<G4int, const G4double    
924   static const G4double pZ66N96[4]={3.E-12, 50    
925   static const std::pair<G4int, const G4double    
926   static const G4double pZ66N97[4]={3.E-12, 50    
927   static const std::pair<G4int, const G4double    
928   static const G4double pZ66N98[4]={3.E-12, 50    
929   static const std::pair<G4int, const G4double    
930   static const std::pair<G4int, const G4double    
931                                                   
932   //==> Ho(Z=67)                                  
933   static const G4int N67=1;                       
934   static const G4double pZ67N98[4]={3.E-12, 50    
935   static const std::pair<G4int, const G4double    
936   static const std::pair<G4int, const G4double    
937   //==> Er(Z=68)                                  
938   static const G4int N68=6;                       
939   static const G4double pZ68N94[4]={3.E-12, 50    
940   static const std::pair<G4int, const G4double    
941   static const G4double pZ68N96[4]={3.E-12, 50    
942   static const std::pair<G4int, const G4double    
943   static const G4double pZ68N98[4]={3.E-12, 50    
944   static const std::pair<G4int, const G4double    
945   static const G4double pZ68N99[4]={3.E-12, 50    
946   static const std::pair<G4int, const G4double    
947   static const G4double pZ68N100[4]={3.E-12, 5    
948   static const std::pair<G4int, const G4double    
949   static const G4double pZ68N102[4]={3.E-12, 5    
950   static const std::pair<G4int, const G4double    
951   static const std::pair<G4int, const G4double    
952                                                   
953   //==> Tm(Z=69)                                  
954   static const G4int N69=1;                       
955   static const G4double pZ69N100[4]={3.E-12, 5    
956   static const std::pair<G4int, const G4double    
957   static const std::pair<G4int, const G4double    
958   //==> Yb(Z=70)                                  
959   static const G4int N70=7;                       
960   static const G4double pZ70N98[4]={3.E-12, 50    
961   static const std::pair<G4int, const G4double    
962   static const G4double pZ70N100[4]={3.E-12, 5    
963   static const std::pair<G4int, const G4double    
964   static const G4double pZ70N101[4]={3.E-12, 5    
965   static const std::pair<G4int, const G4double    
966   static const G4double pZ70N102[4]={3.E-12, 5    
967   static const std::pair<G4int, const G4double    
968   static const G4double pZ70N103[4]={3.E-12, 5    
969   static const std::pair<G4int, const G4double    
970   static const G4double pZ70N104[4]={3.E-12, 5    
971   static const std::pair<G4int, const G4double    
972   static const G4double pZ70N106[4]={3.E-12, 5    
973   static const std::pair<G4int, const G4double    
974   static const std::pair<G4int, const G4double    
975                                                   
976                                                   
977   //==> Lu(Z=71)                                  
978   static const G4int N71=2;                       
979   static const G4double pZ71N104[4]={3.E-12, 5    
980   static const std::pair<G4int, const G4double    
981   static const G4double pZ71N105[4]={3.E-12, 5    
982   static const std::pair<G4int, const G4double    
983   static const std::pair<G4int, const G4double    
984   //==> Hf(Z=72)                                  
985   static const G4int N72=6;                       
986   static const G4double pZ72N102[4]={3.E-12, 5    
987   static const std::pair<G4int, const G4double    
988   static const G4double pZ72N104[4]={3.E-12, 5    
989   static const std::pair<G4int, const G4double    
990   static const G4double pZ72N105[4]={3.E-12, 5    
991   static const std::pair<G4int, const G4double    
992   static const G4double pZ72N106[4]={3.E-12, 5    
993   static const std::pair<G4int, const G4double    
994   static const G4double pZ72N107[4]={3.E-12, 5    
995   static const std::pair<G4int, const G4double    
996   static const G4double pZ72N108[4]={3.E-12, 5    
997   static const std::pair<G4int, const G4double    
998   static const std::pair<G4int, const G4double    
999                                                   
1000   //==> Ta(Z=73)                                 
1001   static const G4int N73=1;                      
1002   static const G4double pZ73N108[4]={4.E-12,     
1003   static const std::pair<G4int, const G4doubl    
1004   static const std::pair<G4int, const G4doubl    
1005   //==> W (Z=74)                                 
1006   static const G4int N74=5;                      
1007   static const G4double pZ74N106[4]={7.E-12,     
1008   static const std::pair<G4int, const G4doubl    
1009   static const G4double pZ74N108[4]={7.E-12,     
1010   static const std::pair<G4int, const G4doubl    
1011   static const G4double pZ74N109[4]={2.E-12,     
1012   static const std::pair<G4int, const G4doubl    
1013   static const G4double pZ74N110[4]={7.E-12,     
1014   static const std::pair<G4int, const G4doubl    
1015   static const G4double pZ74N112[4]={7.E-12,     
1016   static const std::pair<G4int, const G4doubl    
1017   static const std::pair<G4int, const G4doubl    
1018                                                  
1019   //==> Re(Z=75)                                 
1020   static const G4int N75=2;                      
1021   static const G4double pZ75N110[4]={5.E-12,     
1022   static const std::pair<G4int, const G4doubl    
1023   static const G4double pZ75N112[4]={5.E-12,     
1024   static const std::pair<G4int, const G4doubl    
1025   static const std::pair<G4int, const G4doubl    
1026   //==> Os(Z=76)                                 
1027   static const G4int N76=7;                      
1028   static const G4double pZ76N108[4]={3.E-12,     
1029   static const std::pair<G4int, const G4doubl    
1030   static const G4double pZ76N110[4]={3.E-12,     
1031   static const std::pair<G4int, const G4doubl    
1032   static const G4double pZ76N111[4]={3.E-12,     
1033   static const std::pair<G4int, const G4doubl    
1034   static const G4double pZ76N112[4]={3.E-12,     
1035   static const std::pair<G4int, const G4doubl    
1036   static const G4double pZ76N113[4]={3.E-12,     
1037   static const std::pair<G4int, const G4doubl    
1038   static const G4double pZ76N114[4]={3.E-12,     
1039   static const std::pair<G4int, const G4doubl    
1040   static const G4double pZ76N116[4]={3.E-12,     
1041   static const std::pair<G4int, const G4doubl    
1042   static const std::pair<G4int, const G4doubl    
1043                                                  
1044                                                  
1045   //==> Ir(Z=77)                                 
1046   static const G4int N77=2;                      
1047   static const G4double pZ77N114[4]={4.E-12,     
1048   static const std::pair<G4int, const G4doubl    
1049   static const G4double pZ77N116[4]={5.E-12,     
1050   static const std::pair<G4int, const G4doubl    
1051   static const std::pair<G4int, const G4doubl    
1052   //==> Pt(Z=78)                                 
1053   static const G4int N78=6;                      
1054   static const G4double pZ78N112[4]={3.E-12,     
1055   static const std::pair<G4int, const G4doubl    
1056   static const G4double pZ78N114[4]={3.E-12,     
1057   static const std::pair<G4int, const G4doubl    
1058   static const G4double pZ78N116[4]={3.E-12,     
1059   static const std::pair<G4int, const G4doubl    
1060   static const G4double pZ78N117[4]={3.E-12,     
1061   static const std::pair<G4int, const G4doubl    
1062   static const G4double pZ78N118[4]={3.E-12,     
1063   static const std::pair<G4int, const G4doubl    
1064   static const G4double pZ78N120[4]={3.E-12,     
1065   static const std::pair<G4int, const G4doubl    
1066   static const std::pair<G4int, const G4doubl    
1067                                                  
1068   //==> Au(Z=79)                                 
1069   static const G4int N79=1;                      
1070   static const G4double pZ79N118[4]={.2E-9, 1    
1071   static const std::pair<G4int, const G4doubl    
1072   static const std::pair<G4int, const G4doubl    
1073   //==> Hg(Z=80)                                 
1074   static const G4int N80=7;                      
1075   static const G4double pZ80N116[4]={6.E-8, 2    
1076   static const std::pair<G4int, const G4doubl    
1077   static const G4double pZ80N118[4]={6.E-8, 2    
1078   static const std::pair<G4int, const G4doubl    
1079   static const G4double pZ80N119[4]={6.E-8, 2    
1080   static const std::pair<G4int, const G4doubl    
1081   static const G4double pZ80N120[4]={6.E-8, 2    
1082   static const std::pair<G4int, const G4doubl    
1083   static const G4double pZ80N121[4]={1.5E-7,     
1084   static const std::pair<G4int, const G4doubl    
1085   static const G4double pZ80N122[4]={6.E-8, 2    
1086   static const std::pair<G4int, const G4doubl    
1087   static const G4double pZ80N124[4]={6.E-8, 2    
1088   static const std::pair<G4int, const G4doubl    
1089   static const std::pair<G4int, const G4doubl    
1090                                                  
1091                                                  
1092   //==> Tl(Z=81)                                 
1093   static const G4int N81=2;                      
1094   static const G4double pZ81N122[4]={3.E-12,     
1095   static const std::pair<G4int, const G4doubl    
1096   static const G4double pZ81N124[4]={3.E-12,     
1097   static const std::pair<G4int, const G4doubl    
1098   static const std::pair<G4int, const G4doubl    
1099   //==> Pb(Z=82)                                 
1100   static const G4int N82=4;                      
1101   static const G4double pZ82N122[4]={.2E-9, 4    
1102   static const std::pair<G4int, const G4doubl    
1103   static const G4double pZ82N124[4]={6.E-9, 1    
1104   static const std::pair<G4int, const G4doubl    
1105   static const G4double pZ82N125[4]={.2E-9, 7    
1106   static const std::pair<G4int, const G4doubl    
1107   static const G4double pZ82N126[4]={4.E-9, 0    
1108   static const std::pair<G4int, const G4doubl    
1109   static const std::pair<G4int, const G4doubl    
1110                                                  
1111   //==> Bi(Z=83)                                 
1112   static const G4int N83=1;                      
1113   static const G4double pZ83N126[4]={1.5E-9,     
1114   static const std::pair<G4int, const G4doubl    
1115   static const std::pair<G4int, const G4doubl    
1116   //==> Po(Z=84)                                 
1117   static const G4int N84=1;                      
1118   static const G4double pZ84N0[4]={3.E-12, 50    
1119   static const std::pair<G4int, const G4doubl    
1120   static const std::pair<G4int, const G4doubl    
1121   //==> At(Z=85)                                 
1122   static const G4int N85=1;                      
1123   static const G4double pZ85N0[4]={3.E-12, 50    
1124   static const std::pair<G4int, const G4doubl    
1125   static const std::pair<G4int, const G4doubl    
1126   //==> Rn(Z=86)                                 
1127   static const G4int N86=1;                      
1128   static const G4double pZ86N0[4]={3.E-12, 50    
1129   static const std::pair<G4int, const G4doubl    
1130   static const std::pair<G4int, const G4doubl    
1131   //==> Fr(Z=87)                                 
1132   static const G4int N87=1;                      
1133   static const G4double pZ87N0[4]={3.E-12, 50    
1134   static const std::pair<G4int, const G4doubl    
1135   static const std::pair<G4int, const G4doubl    
1136   //==> Ra(Z=88)                                 
1137   static const G4int N88=1;                      
1138   static const G4double pZ88N138[4]={3.E-9, 2    
1139   static const std::pair<G4int, const G4doubl    
1140   static const std::pair<G4int, const G4doubl    
1141   //==> Ac(Z=89)                                 
1142   static const G4int N89=1;                      
1143   static const G4double pZ89N0[4]={3.E-12, 50    
1144   static const std::pair<G4int, const G4doubl    
1145   static const std::pair<G4int, const G4doubl    
1146   //==> Th(Z=90)                                 
1147   static const G4int N90=1;                      
1148   static const G4double pZ90N142[4]={1.E-11,     
1149   static const std::pair<G4int, const G4doubl    
1150   static const std::pair<G4int, const G4doubl    
1151   //==> Pa(Z=91)                                 
1152   static const G4int N91=1;                      
1153   static const G4double pZ91N0[4]={3.E-12, 50    
1154   static const std::pair<G4int, const G4doubl    
1155   static const std::pair<G4int, const G4doubl    
1156   //==> U (Z=92)                                 
1157   static const G4int N92=2;                      
1158   static const G4double pZ92N143[4]={2.E-11,     
1159   static const std::pair<G4int, const G4doubl    
1160   static const G4double pZ92N146[4]={1.E-11,     
1161   static const std::pair<G4int, const G4doubl    
1162   static const std::pair<G4int, const G4doubl    
1163   //==> Np(Z=93)                                 
1164   static const G4int N93=1;                      
1165   static const G4double pZ93N144[4]={4.E-8, 3    
1166   static const std::pair<G4int, const G4doubl    
1167   static const std::pair<G4int, const G4doubl    
1168   //==> Pu(Z=94)                                 
1169   static const G4int N94=3;                      
1170   static const G4double pZ94N145[4]={8.E-11,     
1171   static const std::pair<G4int, const G4doubl    
1172   static const G4double pZ94N148[4]={9.E-12,     
1173   static const std::pair<G4int, const G4doubl    
1174   static const G4double pZ94N150[4]={4.E-12,     
1175   static const std::pair<G4int, const G4doubl    
1176   static const std::pair<G4int, const G4doubl    
1177   //==> Am(Z=95)                                 
1178   static const G4int N95=1;                      
1179   static const G4double pZ95N0[4]={3.E-12, 50    
1180   static const std::pair<G4int, const G4doubl    
1181   static const std::pair<G4int, const G4doubl    
1182   //==> Cm(Z=96)                                 
1183   static const G4int N96=1;                      
1184   static const G4double pZ96N151[4]={1.5E-8,     
1185   static const std::pair<G4int, const G4doubl    
1186   static const std::pair<G4int, const G4doubl    
1187                                                  
1188   static const G4int NZ=97; // #of Elements c    
1189   static const std::pair<G4int, const G4doubl    
1190     Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18,Z19,Z    
1191     Z31,Z32,Z33,Z34,Z35,Z36,Z37,Z38,Z39,Z40,Z    
1192     Z52,Z53,Z54,Z55,Z56,Z57,Z58,Z59,Z60,Z61,Z    
1193     Z73,Z74,Z75,Z76,Z77,Z78,Z79,Z80,Z81,Z82,Z    
1194     Z94,Z95,Z96};                                
1195   static const G4int NIso[NZ]={N0,N1,N2,N3,N4    
1196     N17,N18,N19,N20,N21,N22,N23,N24,N25,N26,N    
1197     N38,N39,N40,N41,N42,N43,N44,N45,N46,N47,N    
1198     N59,N60,N61,N62,N63,N64,N65,N66,N67,N68,N    
1199     N80,N81,N82,N83,N84,N85,N86,N87,N88,N89,N    
1200   //G4int curN=Pars[1][0].first;                 
1201   //G4double par=Pars[1][0].second[1];           
1202   //G4cout<<"-Warning-G4ChipsNeutronInelastic    
1203   G4double sigma=0.;                             
1204   G4double lP=G4Log(P);                          
1205   if( (tZ==1 && !tN) || (!tZ && tN==1)){if(P>    
1206   else if(tZ<97 && tN<152)                //     
1207   {                                              
1208     HEthresh=1.E-4; // Default guess             
1209     G4double pex=0.;                             
1210     G4double pos=0.;                             
1211     G4double wid=1.;                             
1212     G4int nn=NIso[tZ];                           
1213     G4bool nfound=true;                          
1214     if(nn) for (G4int in=0; in<nn; in++)         
1215     {                                            
1216       std::pair<G4int, const G4double*> curIs    
1217       if(curIs.first == tN)                      
1218       {                                          
1219         const G4double* curT=curIs.second;       
1220         HEthresh= curT[0];                       
1221         pex     = curT[1];                       
1222         pos     = curT[2];                       
1223         wid     = curT[3];                       
1224         nfound  = false;                         
1225         break;                                   
1226       }                                          
1227     }                                            
1228     if(nfound) G4cout<<"-Warning-G4ChipsNeutr    
1229                      <<tN<<" isotope is not i    
1230     sigma=CrossSectionFormula(tZ,tN,P,lP);       
1231     if(pex>0.)                                   
1232     {                                            
1233       G4double dp=P-pos;                         
1234       sigma+=pex*G4Exp(-dp*dp/wid);              
1235     }                                            
1236   }                                              
1237   else                                           
1238   {                                              
1239     G4cerr<<"-Warning-G4ChipsNeutronNuclearCr    
1240     sigma=0.;                                    
1241   }                                              
1242   if(sigma<0.) return 0.;                        
1243   return sigma;                                  
1244 }                                                
1245                                                  
1246 // Calculation formula for proton-nuclear ine    
1247 G4double G4ChipsNeutronInelasticXS::CrossSect    
1248 {                                                
1249   G4double P=G4Exp(lP);                          
1250   return CrossSectionFormula(tZ, tN, P, lP);     
1251 }                                                
1252 // Calculation formula for proton-nuclear ine    
1253 G4double G4ChipsNeutronInelasticXS::CrossSect    
1254                                                  
1255 {                                                
1256   G4double sigma=0.;                             
1257   if(tZ==1 && !tN)                        //     
1258   {                                              
1259                                                  
1260     G4double El(0.), To(0.);              //     
1261     if(P<0.1)                             //     
1262     {                                            
1263       G4double p2=P*P;                           
1264       El=1./(0.00012+p2*(0.051+0.1*p2));         
1265       To=El;                                     
1266     }                                            
1267     else if(P>1000.)                             
1268     {                                            
1269       G4double lp=G4Log(P)-3.5;                  
1270       G4double lp2=lp*lp;                        
1271       El=0.0557*lp2+6.72;                        
1272       To=0.3   *lp2+38.2;                        
1273     }                                            
1274     else                                         
1275     {                                            
1276       G4double p2=P*P;                           
1277       G4double LE=1./(0.00012+p2*(0.051+0.1*p    
1278       G4double lp=G4Log(P)-3.5;                  
1279       G4double lp2=lp*lp;                        
1280       G4double rp2=1./p2;                        
1281       El=LE+(0.0557*lp2+6.72+30./P)/(1.+0.49*    
1282       To=LE+(0.3   *lp2+38.2)/(1.+0.54*rp2*rp    
1283     }                                   // Co    
1284                                                  
1285 /*                                               
1286     G4double p2=P*P;                             
1287     G4double lp=lP-3.5;                          
1288     G4double lp2=lp*lp;                          
1289     G4double rp2=1./p2;                          
1290     G4double El=(.0557*lp2+6.72+32.6/P)/(1.+r    
1291     G4double To=(.3*lp2+38.2+52.7*rp2)/(1.+2.    
1292 */                                               
1293     sigma=To-El;                                 
1294   }                                              
1295   else if(tZ<97 && tN<152)                //     
1296   {                                              
1297     //G4double lP=G4Log(P);            // Alr    
1298     G4double d=lP-4.2;        //                 
1299     G4double p2=P*P;          //                 
1300     G4double p4=p2*p2;        //                 
1301     G4double a=tN+tZ;                     //     
1302     G4double al=G4Log(a);  //                    
1303     G4double sa=std::sqrt(a); //                 
1304     G4double a2=a*a;          //                 
1305     G4double sa2=sa*a2;       //                 
1306     G4double a3=a2*a;         //                 
1307     G4double a4=a2*a2;        //                 
1308     //G4double a5=a4*a;                          
1309     G4double a6=a4*a2;        //                 
1310     G4double a7=a6*a;         //                 
1311     G4double a8=a4*a4;        //                 
1312     //G4double a12=a8*a4;                        
1313     //G4double a16=a8*a8;                        
1314     G4double c=(170.+3600./sa2)/(1.+65./sa2);    
1315     G4double dl=al-3.;                           
1316     G4double dl2=dl*dl;                          
1317     G4double r=.21+.62*dl2/(1.+.5*dl2);          
1318     G4double gg=42.*(G4Exp(al*0.8)+4.E-8*a4)/    
1319     G4double e=5.*((a6+.021*a8)/(1.+.0013*a7)    
1320     G4double ss=5./(1.+144./a8);                 
1321         G4double h=HEthresh; // Individual       
1322                                                  
1323     //G4double h=(.01/a4+2.5e-6/a)*(1.+7.e-8*    
1324     //sigma=(c+d*d)/(1.+r/p4)+(gg+e*G4Exp(-ss    
1325     sigma=(c+d*d)/(1+r/p4)+(gg+e*G4Exp(-ss*P)    
1326   }                                              
1327   else                                           
1328   {                                              
1329     G4cerr<<"-Warning-G4ChipsNeutronNuclearCr    
1330     sigma=0.;                                    
1331   }                                              
1332   if(sigma<0.) return 0.;                        
1333   return sigma;                                  
1334 }                                                
1335                                                  
1336 G4double G4ChipsNeutronInelasticXS::EquLinear    
1337 {                                                
1338   if(DX<=0. || N<2)                              
1339     {                                            
1340       G4cerr<<"***G4ChipsNeutronInelasticXS::    
1341       return Y[0];                               
1342     }                                            
1343                                                  
1344   G4int    N2=N-2;                               
1345   G4double d=(X-X0)/DX;                          
1346   G4int         jj=static_cast<int>(d);          
1347   if     (jj<0)  jj=0;                           
1348   else if(jj>N2) jj=N2;                          
1349   d-=jj; // excess                               
1350   G4double yi=Y[jj];                             
1351   G4double sigma=yi+(Y[jj+1]-yi)*d;              
1352                                                  
1353   return sigma;                                  
1354 }                                                
1355