00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044 #include "G4QNeutronCaptureRatio.hh"
00045 #include "G4SystemOfUnits.hh"
00046 
00047 
00048 G4QNeutronCaptureRatio* G4QNeutronCaptureRatio::GetPointer()
00049 {
00050   static G4QNeutronCaptureRatio theRatios; 
00051   return &theRatios;
00052 }
00053 
00054 
00055 G4double G4QNeutronCaptureRatio::GetRatio(G4double pIU, G4int tgZ, G4int tgN)
00056 {
00057   
00058   static const G4int    npp=100;         
00059   static const G4int    mpp=npp+1;       
00060   static const G4double pma=6.;          
00061   static const G4double dp=pma/npp;      
00062   static const G4int    nls=150;         
00063   static const G4int    mls=nls+1;       
00064   static const G4double lpi=1.79;        
00065   static const G4double lpa=8.;          
00066   static const G4double mi=std::exp(lpi);
00067   static const G4double max_s=std::exp(lpa);
00068   static const G4double dl=(lpa-lpi)/nls;
00069   static const G4double edl=std::exp(dl);
00070   static const G4double toler=.0001;     
00071   static G4double lastP=0.;              
00072   static G4double lastR=0.;              
00073   
00074   static std::vector<G4int>     vZ;      
00075   static std::vector<G4int>     vN;      
00076   static std::vector<G4double>  vH;      
00077   static std::vector<G4int>     vJ;      
00078   static std::vector<G4double>  vM;      
00079   static std::vector<G4int>     vK;      
00080   static std::vector<G4double*> vT;      
00081   static std::vector<G4double*> vL;      
00082   
00083   static G4int     lastZ=0;              
00084   static G4int     lastN=0;              
00085   static G4double  lastH=0.;             
00086   static G4int     lastJ=0;              
00087   static G4double  lastM=0.;             
00088   static G4int     lastK=0;              
00089   static G4double* lastT=0;              
00090   static G4double* lastL=0;              
00091   
00092   G4int A=tgN+tgZ;
00093   if(pIU > 50) return 0.;
00094   if(pIU > 30 && ((tgN==1 && tgZ==1) || (tgN==8 && tgZ==7))) return 0.;
00095   if(pIU > 20 && tgN==2 && tgZ==1) return 0.;
00096   if(pIU > 15 && ((tgN==1 && tgZ==2) || (tgN==8 && tgZ==8))) return 0.;
00097   if(pIU<toler || A<1) return 1.;        
00098   if(A>247)
00099   {
00100     G4cout<<"-*-Warning-*-G4NeutronCaptureRatio::GetRatio:A="<<A<<">247, return 0"<<G4endl;
00101     return 0.;
00102   }
00103   G4int nDB=vZ.size();                   
00104   if(nDB && lastZ==tgZ && lastN==tgN && std::fabs(pIU-lastP)<toler) return lastR;
00105   if(pIU>max_s)
00106   {
00107     lastR=CalcCap2In_Ratio(s,tgZ,tgN);   
00108     return lastR;
00109   }
00110   G4bool found=false;
00111   G4int i=-1;
00112   if(nDB) for (i=0; i<nDB; i++) if(tgZ==vZ[i] && tgN==vN[i]) 
00113   {
00114     found=true;                          
00115     break;
00116   }
00117   if(!nDB || !found)                     
00118   {
00119     lastZ = tgZ;
00120     lastN = tgN;
00121     lastT = new G4double[mpp];           
00122     lastJ = static_cast<int>(pIU/dp)+1;  
00123     if(lastJ>npp)
00124     {
00125       lastJ=npp;
00126       lastH=pma;
00127     }
00128     else lastH = lastJ*dp;               
00129     G4double pv=0;
00130     lastT[0]=1.;
00131     for(G4int j=1; j<=lastJ; j++)        
00132     {
00133       pv+=dp;
00134       lastT[j]=CalcCap2In_Ratio(pv,tgZ,tgN); 
00135     }
00136     lastL=new G4double[mls];           
00137     G4double ls=std::log(s);
00138     lastK = static_cast<int>((ls-lpi)/dl)+1; 
00139     if(lastK>nls)
00140     {
00141       lastK=nls;
00142       lastM=lpa-lpi;
00143     }
00144     else lastM = lastK*dl;             
00145     pv=mi;
00146     for(G4int j=0; j<=lastK; j++)      
00147     {
00148       lastL[j]=CalcCap2In_Ratio(pv,tgZ,tgN);
00149       if(j!=lastK) pv*=edl;
00150     }
00151     i++;                                 
00152     vZ.push_back(lastZ);
00153     vN.push_back(lastN);
00154     vH.push_back(lastH);
00155     vJ.push_back(lastJ);
00156     vM.push_back(lastM);
00157     vK.push_back(lastK);
00158     vT.push_back(lastT);
00159     vL.push_back(lastL);
00160   }
00161   else                                   
00162   {
00163     lastZ=vZ[i];
00164     lastN=vN[i];
00165     lastH=vH[i];
00166     lastJ=vJ[i];
00167     lastM=vM[i];
00168     lastK=vK[i];
00169     lastT=vT[i];
00170     lastL=vL[i];
00171     if(s>lastH)                          
00172     {
00173       G4int nextN=lastJ+1;               
00174       if(lastJ<npp)
00175       {
00176         lastJ = static_cast<int>(pIU/dp)+1;
00177         G4double pv=lastH;
00178         if(lastJ>npp)
00179         {
00180           lastJ=npp;
00181           lastH=pma;
00182         }
00183         else lastH = lastJ*dp;           
00184         for(G4int j=nextN; j<=lastJ; j++)
00185         {
00186           pv+=dp;
00187           lastT[j]=CalcCap2In_Ratio(pv,tgZ,tgN);
00188         }
00189       } 
00190       if(lastJ>=nextN)
00191       {
00192         vH[i]=lastH;
00193         vJ[i]=lastJ;
00194       }
00195       G4int nextK=lastK+1;
00196       if(pIU>pma && lastK<nls)           
00197       {
00198         G4double pv=std::exp(lastM+lpi); 
00199         G4double ls=std::log(s);
00200         lastK = static_cast<int>((ls-lpi)/dl)+1; 
00201         if(lastK>nls)
00202         {
00203           lastK=nls;
00204           lastM=lpa-lpi;
00205         }
00206         else lastM = lastK*dl;           
00207         for(G4int j=nextK; j<=lastK; j++)
00208         {
00209           pv*=edl;
00210           lastL[j]=CalcCap2In_Ratio(pv,tgZ,tgN);
00211         }
00212       } 
00213       if(lastK>=nextK)
00214       {
00215         vM[i]=lastM;
00216         vK[i]=lastK;
00217       }
00218     }
00219   }
00220   
00221   if(pIU<pma)                           
00222   {
00223     G4int n=static_cast<int>(pIU/dp);   
00224     G4double d=s-n*dp;                  
00225     G4double v=lastT[n];                
00226     lastR=v+d*(lastT[n+1]-v)/dp;        
00227   }
00228   else                                  
00229   {
00230     G4double ls=std::log(pIU)-lpi;      
00231     G4int n=static_cast<int>(ls/dl);    
00232     G4double d=ls-n*dl;                 
00233     G4double v=lastL[n];                
00234     lastR=v+d*(lastL[n+1]-v)/dl;        
00235   }
00236   if(lastR<0.) lastR=0.;
00237   if(lastR>1.) lastR=1.;
00238   return lastR;
00239 } 
00240 
00241 
00242 G4double G4QNeutronCaptureRatio::CalcCap2In_Ratio(G4double p, G4int Z, G4int N)
00243 {
00244   
00245   static const G4int N0=1;
00246   static const G4double pZ0N1[5]={.0001, 40., 0., 0., 1.}; 
00247   static const std::pair<G4int, const G4double*> Z0N1(1,pZ0N1);
00248   static const std::pair<G4int, const G4double*> Z0[N0]={Z0N1};
00249   
00250   static const G4int N1=2;
00251   static const G4double pZ1N1[5]={.07, 40., .0006, .0001, .01};
00252   static const std::pair<G4int, const G4double*> Z1N1(1,pZ1N1);
00253   static const G4double pZ1N2[5]={.0001, 40., 0., 0., 1.}; 
00254   static const std::pair<G4int, const G4double*> Z1N2(2,pZ1N2);
00255   static const std::pair<G4int, const G4double*> Z1[N1]={Z1N1, Z1N2};
00256   
00257   static const G4int N2=2;
00258   static const G4double pZ2N1[5]={.1, 40., 0., 0., 1.};   
00259   static const std::pair<G4int, const G4double*> Z2N1(1,pZ2N1);
00260   static const G4double pZ2N2[5]={.0001, 40., 0., 0., 1.}; 
00261   static const std::pair<G4int, const G4double*> Z2N2(2,pZ2N2);
00262   static const std::pair<G4int, const G4double*> Z2[N2]={Z2N1, Z2N2};
00263   
00264   static const G4int N3=2;
00265   static const G4double pZ3N3[5]={.001, 40., 3.E-5, .0001, .1};
00266   static const std::pair<G4int, const G4double*> Z3N1(3,pZ3N3);
00267   static const G4double pZ3N4[5]={.022, 19., 3.E-5, .0001, .04};
00268   static const std::pair<G4int, const G4double*> Z3N2(4,pZ3N4);
00269   static const std::pair<G4int, const G4double*> Z3[N3]={Z3N1, Z3N2};
00270   
00271   static const G4int N4=1;
00272   static const G4double pZ4N5[5]={.0004, 40., 0., 0., 1.};
00273   static const std::pair<G4int, const G4double*> Z4N5(5,pZ4N5);
00274   static const std::pair<G4int, const G4double*> Z4[N4]={Z4N5};
00275   
00276   static const G4int N5=2;
00277   static const G4double pZ5N5[5]={.011, 9., .0002, .0001, .002};
00278   static const std::pair<G4int, const G4double*> Z5N5(5,pZ5N5);
00279   static const G4double pZ5N6[5]={.027, 9., 0., 0., 1.};
00280   static const std::pair<G4int, const G4double*> Z5N6(6,pZ5N6);
00281   static const std::pair<G4int, const G4double*> Z5[N5]={Z5N5, Z5N6};
00282   
00283   static const G4int N6=2;
00284   static const G4double pZ6N6[5]={.08, 40., .0003, .0001, .07}; 
00285   static const std::pair<G4int, const G4double*> Z6N6(6,pZ6N6);
00286   static const G4double pZ6N7[5]={.08, 40., .0003, .0001, .07}; 
00287   static const std::pair<G4int, const G4double*> Z6N7(7,pZ6N7);
00288   static const std::pair<G4int, const G4double*> Z6[N6]={Z6N6, Z6N7};
00289   
00290   static const G4int N7=2;
00291   static const G4double pZ7N7[5]={.005, 3., 0., 0., 1.};
00292   static const std::pair<G4int, const G4double*> Z7N7(7,pZ7N7);
00293   static const G4double pZ7N8[5]={.084, 40., .0001, .0001, .015};
00294   static const std::pair<G4int, const G4double*> Z7N8(8,pZ7N8);
00295   static const std::pair<G4int, const G4double*> Z7[N7]={Z7N7, Z7N8};
00296   
00297   static const G4int N8=3;
00298   static const G4double pZ8N8[5]={.08, 40., 0., 0., 1.};
00299   static const std::pair<G4int, const G4double*> Z8N8(8,pZ8N8);
00300   static const G4double pZ8N9[5]={.0065, 5., .0013, .0001, .02};
00301   static const std::pair<G4int, const G4double*> Z8N9(9,pZ8N9);
00302   static const G4double pZ8N10[5]={.01, 27., 0., 0., 1.}; 
00303   static const std::pair<G4int, const G4double*> Z8N10(10,pZ8N10);
00304   static const std::pair<G4int, const G4double*> Z8[N8]={Z8N8, Z8N9, Z8N10};
00305   
00306   static const G4int N9=1;
00307   static const G4double pZ9N10[5]={.013, 27., .0001, .0001, .02};
00308   static const std::pair<G4int, const G4double*> Z9N10(10,pZ9N10);
00309   static const std::pair<G4int, const G4double*> Z9[N9]={Z9N10};
00310   
00311   static const G4int N10=3;
00312   static const G4double pZ10N10[5]={.01, 27., 0., 0., 1.}; 
00313   static const std::pair<G4int, const G4double*> Z10N10(10,pZ10N10);
00314   static const G4double pZ10N11[5]={.01, 27., 0., 0., 1.}; 
00315   static const std::pair<G4int, const G4double*> Z10N11(11,pZ10N11);
00316   static const G4double pZ10N12[5]={.01, 27., 0., 0., 1.}; 
00317   static const std::pair<G4int, const G4double*> Z10N12(12,pZ10N12);
00318   static const std::pair<G4int, const G4double*> Z10[N10]={Z10N10, Z10N11, Z10N12};
00319   
00320   static const G4int N11=1;
00321   static const G4double pZ11N12[5]={.024, 17., .0005, .0001, .03};
00322   static const std::pair<G4int, const G4double*> Z11N12(12,pZ11N12);
00323   static const std::pair<G4int, const G4double*> Z11[N11]={Z11N12};
00324   
00325   static const G4int N12=3;
00326   static const G4double pZ12N12[5]={.045, 40., .0003, .0001, .02};
00327   static const std::pair<G4int, const G4double*> Z12N12(12,pZ12N12);
00328   static const G4double pZ12N13[5]={.019, 7., .0002, .0001, .01};
00329   static const std::pair<G4int, const G4double*> Z12N13(13,pZ12N13);
00330   static const G4double pZ12N14[5]={.053, 40., .0006, .0001, .007};
00331   static const std::pair<G4int, const G4double*> Z12N14(14,pZ12N14);
00332   static const std::pair<G4int, const G4double*> Z12[N12]={Z12N12, Z12N13, Z12N14};
00333   
00334   static const G4int N13=1;
00335   static const G4double pZ13N14[5]={.035, 17., .001, .03, 1.};
00336   static const std::pair<G4int, const G4double*> Z13N14(14,pZ13N14);
00337   static const std::pair<G4int, const G4double*> Z13[N13]={Z13N14};
00338   
00339   static const G4int N14=3;
00340   static const G4double pZ14N14[5]={.052, 40., .002, .0001, .008};
00341   static const std::pair<G4int, const G4double*> Z14N14(14,pZ14N14);
00342   static const G4double pZ14N15[5]={.048, 40., .0001, .0004, .02};
00343   static const std::pair<G4int, const G4double*> Z14N15(15,pZ14N15);
00344   static const G4double pZ14N16[5]={.06, 40., .0015, .0001, .01};
00345   static const std::pair<G4int, const G4double*> Z14N16(16,pZ14N16);
00346   static const std::pair<G4int, const G4double*> Z14[N14]={Z14N14, Z14N15, Z14N16};
00347   
00348   static const G4int N15=1;
00349   static const G4double pZ15N16[5]={.024, 7., .0008, .0001, .03};
00350   static const std::pair<G4int, const G4double*> Z15N16(16,pZ15N16);
00351   static const std::pair<G4int, const G4double*> Z15[N15]={Z15N16};
00352   
00353   static const G4int N16=4;
00354   static const G4double pZ16N16[5]={.036, 12., .0003, .03, .004};
00355   static const std::pair<G4int, const G4double*> Z16N16(16,pZ16N16);
00356   static const G4double pZ16N17[5]={.018, 40., .0033, .0001, .002};
00357   static const std::pair<G4int, const G4double*> Z16N17(17,pZ16N17);
00358   static const G4double pZ16N18[5]={.053, 25., .002, .0001, .0043};
00359   static const std::pair<G4int, const G4double*> Z16N18(18,pZ16N18);
00360   static const G4double pZ16N20[5]={.065, 25., .002, .0001, .0043};
00361   static const std::pair<G4int, const G4double*> Z16N20(20,pZ16N20);
00362   static const std::pair<G4int, const G4double*> Z16[N16]={Z16N16, Z16N17, Z16N18, Z16N20};
00363   
00364   static const G4int N17=2;
00365   static const G4double pZ17N18[5]={.014, 4., .0004, .175, .002};
00366   static const std::pair<G4int, const G4double*> Z17N18(18,pZ17N18);
00367   static const G4double pZ17N20[5]={.035, 8., .008, 18., .0005};
00368   static const std::pair<G4int, const G4double*> Z17N20(20,pZ17N20);
00369   static const std::pair<G4int, const G4double*> Z17[N17]={Z17N18, Z17N20};
00370   
00371   static const G4int N18=3;
00372   static const G4double pZ18N18[5]={.036, 8., .0005, .1, .01};
00373   static const std::pair<G4int, const G4double*> Z18N18(18,pZ18N18);
00374   static const G4double pZ18N20[5]={.025, 6., .0027, .19, .0003};
00375   static const std::pair<G4int, const G4double*> Z18N20(20,pZ18N20);
00376   static const G4double pZ18N22[5]={.028, 6., .001, .19, .0003};
00377   static const std::pair<G4int, const G4double*> Z18N22(22,pZ18N22);
00378   static const std::pair<G4int, const G4double*> Z18[N18]={Z18N18, Z18N20, Z18N22};
00379   
00380   static const G4int N19=3;
00381   static const G4double pZ19N20[5]={.04, 8., 0., 0., 1.};
00382   static const std::pair<G4int, const G4double*> Z19N20(20,pZ19N20);
00383   static const G4double pZ19N21[5]={.049, 5., 0., 0., 1.};
00384   static const std::pair<G4int, const G4double*> Z19N21(21,pZ19N21);
00385   static const G4double pZ19N22[5]={.04, 11., .005, .0001, .005};
00386   static const std::pair<G4int, const G4double*> Z19N22(22,pZ19N22);
00387   static const std::pair<G4int, const G4double*> Z19[N19]={Z19N20, Z19N21, Z19N22};
00388   
00389   static const G4int N20=6;
00390   static const G4double pZ20N20[5]={.05, 14., .0006, .09, .009};
00391   static const std::pair<G4int, const G4double*> Z20N20(20,pZ20N20);
00392   static const G4double pZ20N22[5]={.047, 30., .003, .0001, .014};
00393   static const std::pair<G4int, const G4double*> Z20N22(22,pZ20N22);
00394   static const G4double pZ20N23[5]={.01, 3.5, .0015, .16, .002};
00395   static const std::pair<G4int, const G4double*> Z20N23(23,pZ20N23);
00396   static const G4double pZ20N24[5]={.04, 30., .002, .0001, .008};
00397   static const std::pair<G4int, const G4double*> Z20N24(24,pZ20N24);
00398   static const G4double pZ20N26[5]={.044, 40., .001, .0001, .01};
00399   static const std::pair<G4int, const G4double*> Z20N26(26,pZ20N26);
00400   static const G4double pZ20N28[5]={.055, 14., .001, .18, .001};
00401   static const std::pair<G4int, const G4double*> Z20N28(28,pZ20N28);
00402   static const std::pair<G4int, const G4double*> Z20[N20]={Z20N20, Z20N22, Z20N23,
00403                                                            Z20N24, Z20N26, Z20N28};
00404   
00405   static const G4int N21=1;
00406   static const G4double pZ21N24[5]={.014, 4., 0., 0., 1.};
00407   static const std::pair<G4int, const G4double*> Z21N24(24,pZ21N24);
00408   static const std::pair<G4int, const G4double*> Z21[N21]={Z21N24};
00409   
00410   static const G4int N22=5;
00411   static const G4double pZ22N24[5]={.036, 27., .007, .0001, .005};
00412   static const std::pair<G4int, const G4double*> Z22N24(24,pZ22N24);
00413   static const G4double pZ22N25[5]={.013, 9., .017, .0001, .005};
00414   static const std::pair<G4int, const G4double*> Z22N25(25,pZ22N25);
00415   static const G4double pZ22N26[5]={.043, 40., .002, .0001, .01};
00416   static const std::pair<G4int, const G4double*> Z22N26(26,pZ22N26);
00417   static const G4double pZ22N27[5]={.047, 30., .007, .0001, .01};
00418   static const std::pair<G4int, const G4double*> Z22N27(27,pZ22N27);
00419   static const G4double pZ22N28[5]={.052, 40., .0005, .0001, .01};
00420   static const std::pair<G4int, const G4double*> Z22N28(28,pZ22N28);
00421   static const std::pair<G4int, const G4double*> Z22[N22]={Z22N24, Z22N25, Z22N26,
00422                                                          Z22N27, Z22N28};
00423   
00424   static const G4int N23=2;
00425   static const G4double pZ23N27[5]={.023, 30., .01, .0001, .003}; 
00426   static const std::pair<G4int, const G4double*> Z23N27(27,pZ23N27);
00427   static const G4double pZ23N28[5]={.023, 30., .01, .0001, .003}; 
00428   static const std::pair<G4int, const G4double*> Z23N28(28,pZ23N28);
00429   static const std::pair<G4int, const G4double*> Z23[N23]={Z23N27, Z23N28};
00430   
00431   static const G4int N24=4;
00432   static const G4double pZ24N26[5]={.035, 27., .004, .0001, .01};
00433   static const std::pair<G4int, const G4double*> Z24N26(26,pZ24N26);
00434   static const G4double pZ24N28[5]={.049, 40., .001, .0001, .016};
00435   static const std::pair<G4int, const G4double*> Z24N28(28,pZ24N28);
00436   static const G4double pZ24N29[5]={.032, 30., .005, .0001, .005};
00437   static const std::pair<G4int, const G4double*> Z24N29(29,pZ24N29);
00438   static const G4double pZ24N30[5]={.034, 30., .002, .0001, .008};
00439   static const std::pair<G4int, const G4double*> Z24N30(30,pZ24N30);
00440   static const std::pair<G4int, const G4double*> Z24[N24]={Z24N26, Z24N28, Z24N29, Z24N30};
00441   
00442   static const G4int N25=1;
00443   static const G4double pZ25N30[5]={.0145, 10., .01, .0001, .003};
00444   static const std::pair<G4int, const G4double*> Z25N30(30,pZ25N30);
00445   static const std::pair<G4int, const G4double*> Z25[N25]={Z25N30};
00446   
00447   static const G4int N26=4;
00448   static const G4double pZ26N28[5]={.048, 27., .0016, .0001, .016};
00449   static const std::pair<G4int, const G4double*> Z26N28(28,pZ26N28);
00450   static const G4double pZ26N30[5]={.036, 27., .004, .0001, .006};
00451   static const std::pair<G4int, const G4double*> Z26N30(30,pZ26N30);
00452   static const G4double pZ26N31[5]={.036, 27., .005, .0001, .005};
00453   static const std::pair<G4int, const G4double*> Z26N31(31,pZ26N31);
00454   static const G4double pZ26N32[5]={.036, 27., .005, .0001, .007};
00455   static const std::pair<G4int, const G4double*> Z26N32(32,pZ26N32);
00456   static const std::pair<G4int, const G4double*> Z26[N26]={Z26N28, Z26N30, Z26N31, Z26N32};
00457   
00458   static const G4int N27=1;
00459   static const G4double pZ27N32[5]={.044, 22., .002, .0001, .016};
00460   static const std::pair<G4int, const G4double*> Z27N32(32,pZ27N32);
00461   static const std::pair<G4int, const G4double*> Z27[N27]={Z27N32};
00462   
00463   static const G4int N28=5;
00464   static const G4double pZ28N30[5]={.045, 20., .003, .0001, .01};
00465   static const std::pair<G4int, const G4double*> Z28N30(30,pZ28N30);
00466   static const G4double pZ28N32[5]={.046, 20., .016, .0001, .01};
00467   static const std::pair<G4int, const G4double*> Z28N32(32,pZ28N32);
00468   static const G4double pZ28N33[5]={.046, 20., .016, .0001, .01};
00469   static const std::pair<G4int, const G4double*> Z28N33(33,pZ28N33);
00470   static const G4double pZ28N34[5]={.045, 20., .005, .0001, .007};
00471   static const std::pair<G4int, const G4double*> Z28N34(34,pZ28N34);
00472   static const G4double pZ28N36[5]={.045, 20., .005, .0001, .007};
00473   static const std::pair<G4int, const G4double*> Z28N36(36,pZ28N36);
00474   static const std::pair<G4int, const G4double*> Z28[N28]={Z28N30, Z28N32, Z28N33,
00475                                                          Z28N34, Z28N36};
00476   
00477   static const G4int N29=2;
00478   static const G4double pZ29N34[5]={.035, 15., .008, .0001, .015};
00479   static const std::pair<G4int, const G4double*> Z29N34(34,pZ29N34);
00480   static const G4double pZ29N36[5]={.036, 15., .003, .0001, .013};
00481   static const std::pair<G4int, const G4double*> Z29N36(36,pZ29N36);
00482   static const std::pair<G4int, const G4double*> Z29[N29]={Z29N34, Z29N36};
00483   
00484   static const G4int N30=5;
00485   static const G4double pZ30N34[5]={.041, 20., .008, .0001, .02}; 
00486   static const std::pair<G4int, const G4double*> Z30N34(34,pZ30N34);
00487   static const G4double pZ30N36[5]={.041, 20., .008, .0001, .02}; 
00488   static const std::pair<G4int, const G4double*> Z30N36(36,pZ30N36);
00489   static const G4double pZ30N37[5]={.041, 20., .008, .0001, .02}; 
00490   static const std::pair<G4int, const G4double*> Z30N37(37,pZ30N37);
00491   static const G4double pZ30N38[5]={.041, 20., .008, .0001, .02}; 
00492   static const std::pair<G4int, const G4double*> Z30N38(38,pZ30N38);
00493   static const G4double pZ30N40[5]={.041, 20., .008, .0001, .02}; 
00494   static const std::pair<G4int, const G4double*> Z30N40(40,pZ30N40);
00495   static const std::pair<G4int, const G4double*> Z30[N30]={Z30N34, Z30N36, Z30N37,
00496                                                            Z30N38, Z30N40};
00497   
00498   static const G4int N31=2;
00499   static const G4double pZ31N38[5]={.024, 7., .03, .01, .003};
00500   static const std::pair<G4int, const G4double*> Z31N38(38,pZ31N38);
00501   static const G4double pZ31N40[5]={.026, 9., .015, .01, .003};
00502   static const std::pair<G4int, const G4double*> Z31N40(40,pZ31N40);
00503   static const std::pair<G4int, const G4double*> Z31[N31]={Z31N38, Z31N40};
00504   
00505   static const G4int N32=5;
00506   static const G4double pZ32N38[5]={.037, 12., .15, .025, .003};
00507   static const std::pair<G4int, const G4double*> Z32N38(38,pZ32N38);
00508   static const G4double pZ32N40[5]={.035, 20., .015, .01, .0035};
00509   static const std::pair<G4int, const G4double*> Z32N40(40,pZ32N40);
00510   static const G4double pZ32N41[5]={.009, 3., .02, .03, .0001};
00511   static const std::pair<G4int, const G4double*> Z32N41(41,pZ32N41);
00512   static const G4double pZ32N42[5]={.027, 12., .003, .0001, .01};
00513   static const std::pair<G4int, const G4double*> Z32N42(42,pZ32N42);
00514   static const G4double pZ32N44[5]={.031, 20., .025, .0005, .0045};
00515   static const std::pair<G4int, const G4double*> Z32N44(44,pZ32N44);
00516   static const std::pair<G4int, const G4double*> Z32[N32]={Z32N38, Z32N40, Z32N41,
00517                                                            Z32N42, Z32N44};
00518   
00519   static const G4int N33=1;
00520   static const G4double pZ33N42[5]={.017, 5., .004, .05, .006};
00521   static const std::pair<G4int, const G4double*> Z33N42(42,pZ33N42);
00522   static const std::pair<G4int, const G4double*> Z33[N33]={Z33N42};
00523   
00524   static const G4int N34=6;
00525   static const G4double pZ34N40[5]={.018, 5., .1, .03, .002}; 
00526   static const std::pair<G4int, const G4double*> Z34N40(40,pZ34N40);
00527   static const G4double pZ34N42[5]={.018, 5., .1, .03, .002}; 
00528   static const std::pair<G4int, const G4double*> Z34N42(42,pZ34N42);
00529   static const G4double pZ34N43[5]={.018, 5., .1, .03, .002}; 
00530   static const std::pair<G4int, const G4double*> Z34N43(43,pZ34N43);
00531   static const G4double pZ34N44[5]={.018, 5., .1, .03, .002}; 
00532   static const std::pair<G4int, const G4double*> Z34N44(44,pZ34N44);
00533   static const G4double pZ34N46[5]={.018, 5., .1, .03, .002}; 
00534   static const std::pair<G4int, const G4double*> Z34N46(46,pZ34N46);
00535   static const G4double pZ34N48[5]={.018, 5., .1, .03, .002}; 
00536   static const std::pair<G4int, const G4double*> Z34N48(48,pZ34N48);
00537   static const std::pair<G4int, const G4double*> Z34[N34]={Z34N40, Z34N42, Z34N43,
00538                                                            Z34N44, Z34N46, Z34N48};
00539   
00540   static const G4int N35=2;
00541   static const G4double pZ35N44[5]={.018, 5., .1, .03, .002}; 
00542   static const std::pair<G4int, const G4double*> Z35N44(44,pZ35N44);
00543   static const G4double pZ35N46[5]={.018, 5., .1, .03, .002}; 
00544   static const std::pair<G4int, const G4double*> Z35N46(46,pZ35N46);
00545   static const std::pair<G4int, const G4double*> Z35[N35]={Z35N44, Z35N46};
00546   
00547   static const G4int N36=6;
00548   static const G4double pZ36N42[5]={.018, 5., .1, .03, .002}; 
00549   static const std::pair<G4int, const G4double*> Z36N42(42,pZ36N42);
00550   static const G4double pZ36N44[5]={.018, 5., .1, .03, .002}; 
00551   static const std::pair<G4int, const G4double*> Z36N44(44,pZ36N44);
00552   static const G4double pZ36N46[5]={.018, 5., .1, .03, .002}; 
00553   static const std::pair<G4int, const G4double*> Z36N46(46,pZ36N46);
00554   static const G4double pZ36N47[5]={.018, 5., .1, .03, .002}; 
00555   static const std::pair<G4int, const G4double*> Z36N47(47,pZ36N47);
00556   static const G4double pZ36N48[5]={.018, 5., .1, .03, .002}; 
00557   static const std::pair<G4int, const G4double*> Z36N48(48,pZ36N48);
00558   static const G4double pZ36N50[5]={.018, 5., .1, .03, .002}; 
00559   static const std::pair<G4int, const G4double*> Z36N50(50,pZ36N50);
00560   static const std::pair<G4int, const G4double*> Z36[N36]={Z36N42, Z36N44, Z36N46,
00561                                                            Z36N47, Z36N48, Z36N50};
00562   
00563   static const G4int N37=2;
00564   static const G4double pZ37N48[5]={.018, 5., .1, .03, .002}; 
00565   static const std::pair<G4int, const G4double*> Z37N48(48,pZ37N48);
00566   static const G4double pZ37N50[5]={.018, 5., .1, .03, .002}; 
00567   static const std::pair<G4int, const G4double*> Z37N50(50,pZ37N50);
00568   static const std::pair<G4int, const G4double*> Z37[N37]={Z37N48, Z37N50};
00569   
00570   static const G4int N38=4;
00571   static const G4double pZ38N46[5]={.018, 5., .1, .03, .002}; 
00572   static const std::pair<G4int, const G4double*> Z38N46(46,pZ38N46);
00573   static const G4double pZ38N48[5]={.018, 5., .1, .03, .002}; 
00574   static const std::pair<G4int, const G4double*> Z38N48(48,pZ38N48);
00575   static const G4double pZ38N49[5]={.018, 5., .1, .03, .002}; 
00576   static const std::pair<G4int, const G4double*> Z38N49(49,pZ38N49);
00577   static const G4double pZ38N50[5]={.018, 5., .1, .03, .002}; 
00578   static const std::pair<G4int, const G4double*> Z38N50(50,pZ38N50);
00579   static const std::pair<G4int, const G4double*> Z38[N38]={Z38N46, Z38N48, Z38N49, Z38N50};
00580   
00581   static const G4int N39=1;
00582   static const G4double pZ39N50[5]={.018, 5., .1, .03, .002}; 
00583   static const std::pair<G4int, const G4double*> Z39N50(50,pZ39N50);
00584   static const std::pair<G4int, const G4double*> Z39[N39]={Z39N50};
00585   
00586   static const G4int N40=5;
00587   static const G4double pZ40N50[5]={.018, 5., .1, .03, .002}; 
00588   static const std::pair<G4int, const G4double*> Z40N50(50,pZ40N50);
00589   static const G4double pZ40N51[5]={.018, 5., .1, .03, .002}; 
00590   static const std::pair<G4int, const G4double*> Z40N51(51,pZ40N51);
00591   static const G4double pZ40N52[5]={.018, 5., .1, .03, .002}; 
00592   static const std::pair<G4int, const G4double*> Z40N52(52,pZ40N52);
00593   static const G4double pZ40N54[5]={.018, 5., .1, .03, .002}; 
00594   static const std::pair<G4int, const G4double*> Z40N54(54,pZ40N54);
00595   static const G4double pZ40N56[5]={.018, 5., .1, .03, .002}; 
00596   static const std::pair<G4int, const G4double*> Z40N56(56,pZ40N56);
00597   static const std::pair<G4int, const G4double*> Z40[N40]={Z40N50, Z40N51, Z40N52,
00598                                                            Z40N54, Z40N56};
00599   
00600   static const G4int N41=1;
00601   static const G4double pZ41N52[5]={.018, 5., .1, .03, .002}; 
00602   static const std::pair<G4int, const G4double*> Z41N52(52,pZ41N52);
00603   static const std::pair<G4int, const G4double*> Z41[N41]={Z41N52};
00604   
00605   static const G4int N42=7;
00606   static const G4double pZ42N50[5]={.018, 5., .1, .03, .002}; 
00607   static const std::pair<G4int, const G4double*> Z42N50(50,pZ42N50);
00608   static const G4double pZ42N52[5]={.018, 5., .1, .03, .002}; 
00609   static const std::pair<G4int, const G4double*> Z42N52(52,pZ42N52);
00610   static const G4double pZ42N53[5]={.018, 5., .1, .03, .002}; 
00611   static const std::pair<G4int, const G4double*> Z42N53(53,pZ42N53);
00612   static const G4double pZ42N54[5]={.018, 5., .1, .03, .002}; 
00613   static const std::pair<G4int, const G4double*> Z42N54(54,pZ42N54);
00614   static const G4double pZ42N55[5]={.018, 5., .1, .03, .002}; 
00615   static const std::pair<G4int, const G4double*> Z42N55(55,pZ42N55);
00616   static const G4double pZ42N56[5]={.018, 5., .1, .03, .002}; 
00617   static const std::pair<G4int, const G4double*> Z42N56(56,pZ42N56);
00618   static const G4double pZ42N58[5]={.018, 5., .1, .03, .002}; 
00619   static const std::pair<G4int, const G4double*> Z42N58(58,pZ42N58);
00620   static const std::pair<G4int, const G4double*> Z42[N42]={Z42N50, Z42N52, Z42N53, Z42N54,
00621                                                            Z42N55, Z42N56, Z42N58};
00622   
00623   static const G4int N43=1;
00624   static const G4double pZ43N0[5]={.018, 5., .1, .03, .002}; 
00625   static const std::pair<G4int, const G4double*> Z43N0(0,pZ43N0);
00626   static const std::pair<G4int, const G4double*> Z43[N43]={Z43N0};
00627   
00628   static const G4int N44=7;
00629   static const G4double pZ44N52[5]={.018, 5., .1, .03, .002}; 
00630   static const std::pair<G4int, const G4double*> Z44N52(52,pZ44N52);
00631   static const G4double pZ44N54[5]={.018, 5., .1, .03, .002}; 
00632   static const std::pair<G4int, const G4double*> Z44N54(54,pZ44N54);
00633   static const G4double pZ44N55[5]={.018, 5., .1, .03, .002}; 
00634   static const std::pair<G4int, const G4double*> Z44N55(55,pZ44N55);
00635   static const G4double pZ44N56[5]={.018, 5., .1, .03, .002}; 
00636   static const std::pair<G4int, const G4double*> Z44N56(56,pZ44N56);
00637   static const G4double pZ44N57[5]={.018, 5., .1, .03, .002}; 
00638   static const std::pair<G4int, const G4double*> Z44N57(57,pZ44N57);
00639   static const G4double pZ44N58[5]={.018, 5., .1, .03, .002}; 
00640   static const std::pair<G4int, const G4double*> Z44N58(58,pZ44N58);
00641   static const G4double pZ44N60[5]={.018, 5., .1, .03, .002}; 
00642   static const std::pair<G4int, const G4double*> Z44N60(60,pZ44N60);
00643   static const std::pair<G4int, const G4double*> Z44[N44]={Z44N52, Z44N54, Z44N55, Z44N56,
00644                                                            Z44N57, Z44N58, Z44N60};
00645   
00646   static const G4int N45=1;
00647   static const G4double pZ45N58[5]={.018, 5., .1, .03, .002}; 
00648   static const std::pair<G4int, const G4double*> Z45N58(58,pZ45N58);
00649   static const std::pair<G4int, const G4double*> Z45[N45]={Z45N58};
00650   
00651   static const G4int N46=6;
00652   static const G4double pZ46N56[5]={.018, 5., .1, .03, .002}; 
00653   static const std::pair<G4int, const G4double*> Z46N56(56,pZ46N56);
00654   static const G4double pZ46N58[5]={.018, 5., .1, .03, .002}; 
00655   static const std::pair<G4int, const G4double*> Z46N58(58,pZ46N58);
00656   static const G4double pZ46N59[5]={.018, 5., .1, .03, .002}; 
00657   static const std::pair<G4int, const G4double*> Z46N59(59,pZ46N59);
00658   static const G4double pZ46N60[5]={.018, 5., .1, .03, .002}; 
00659   static const std::pair<G4int, const G4double*> Z46N60(60,pZ46N60);
00660   static const G4double pZ46N62[5]={.018, 5., .1, .03, .002}; 
00661   static const std::pair<G4int, const G4double*> Z46N62(62,pZ46N62);
00662   static const G4double pZ46N64[5]={.018, 5., .1, .03, .002}; 
00663   static const std::pair<G4int, const G4double*> Z46N64(64,pZ46N64);
00664   static const std::pair<G4int, const G4double*> Z46[N46]={Z46N56, Z46N58, Z46N59,
00665                                                            Z46N60, Z46N62, Z46N64};
00666   
00667   static const G4int N47=2;
00668   static const G4double pZ47N60[5]={.018, 5., .1, .004, .003};
00669   static const std::pair<G4int, const G4double*> Z47N60(60,pZ47N60);
00670   static const G4double pZ47N62[5]={.018, 4., .015, .06, .0008};
00671   static const std::pair<G4int, const G4double*> Z47N62(62,pZ47N62);
00672   static const std::pair<G4int, const G4double*> Z47[N47]={Z47N60, Z47N62};
00673   
00674   static const G4int N48=8;
00675   static const G4double pZ48N58[5]={.018, 5., .1, .03, .002}; 
00676   static const std::pair<G4int, const G4double*> Z48N58(58,pZ48N58);
00677   static const G4double pZ48N60[5]={.018, 5., .1, .03, .002}; 
00678   static const std::pair<G4int, const G4double*> Z48N60(60,pZ48N60);
00679   static const G4double pZ48N62[5]={.018, 5., .1, .03, .002}; 
00680   static const std::pair<G4int, const G4double*> Z48N62(62,pZ48N62);
00681   static const G4double pZ48N63[5]={.018, 5., .1, .03, .002}; 
00682   static const std::pair<G4int, const G4double*> Z48N63(63,pZ48N63);
00683   static const G4double pZ48N64[5]={.018, 5., .1, .03, .002}; 
00684   static const std::pair<G4int, const G4double*> Z48N64(64,pZ48N64);
00685   static const G4double pZ48N65[5]={.018, 5., .1, .03, .002}; 
00686   static const std::pair<G4int, const G4double*> Z48N65(65,pZ48N65);
00687   static const G4double pZ48N66[5]={.018, 5., .1, .03, .002}; 
00688   static const std::pair<G4int, const G4double*> Z48N66(66,pZ48N66);
00689   static const G4double pZ48N68[5]={.018, 5., .1, .03, .002}; 
00690   static const std::pair<G4int, const G4double*> Z48N68(68,pZ48N68);
00691   static const std::pair<G4int, const G4double*> Z48[N48]={Z48N58, Z48N60, Z48N62, Z48N63,
00692                                                            Z48N64, Z48N65, Z48N66, Z48N68};
00693   
00694   static const G4int N49=2;
00695   static const G4double pZ49N64[5]={.018, 5., .1, .03, .002}; 
00696   static const std::pair<G4int, const G4double*> Z49N64(64,pZ49N64);
00697   static const G4double pZ49N66[5]={.018, 5., .1, .03, .002}; 
00698   static const std::pair<G4int, const G4double*> Z49N66(66,pZ49N66);
00699   static const std::pair<G4int, const G4double*> Z49[N49]={Z49N64, Z49N66};
00700   
00701   static const G4int N50=10;
00702   static const G4double pZ50N62[5]={.018, 5., .1, .03, .002}; 
00703   static const std::pair<G4int, const G4double*> Z50N62(62,pZ50N62);
00704   static const G4double pZ50N64[5]={.018, 5., .1, .03, .002}; 
00705   static const std::pair<G4int, const G4double*> Z50N64(64,pZ50N64);
00706   static const G4double pZ50N65[5]={.018, 5., .1, .03, .002}; 
00707   static const std::pair<G4int, const G4double*> Z50N65(65,pZ50N65);
00708   static const G4double pZ50N66[5]={.018, 5., .1, .03, .002}; 
00709   static const std::pair<G4int, const G4double*> Z50N66(66,pZ50N66);
00710   static const G4double pZ50N67[5]={.018, 5., .1, .03, .002}; 
00711   static const std::pair<G4int, const G4double*> Z50N67(67,pZ50N67);
00712   static const G4double pZ50N68[5]={.018, 5., .1, .03, .002}; 
00713   static const std::pair<G4int, const G4double*> Z50N68(68,pZ50N68);
00714   static const G4double pZ50N69[5]={.018, 5., .1, .03, .002}; 
00715   static const std::pair<G4int, const G4double*> Z50N69(69,pZ50N69);
00716   static const G4double pZ50N70[5]={.018, 5., .1, .03, .002}; 
00717   static const std::pair<G4int, const G4double*> Z50N70(70,pZ50N70);
00718   static const G4double pZ50N72[5]={.018, 5., .1, .03, .002}; 
00719   static const std::pair<G4int, const G4double*> Z50N72(72,pZ50N72);
00720   static const G4double pZ50N74[5]={.018, 5., .1, .03, .002}; 
00721   static const std::pair<G4int, const G4double*> Z50N74(74,pZ50N74);
00722   static const std::pair<G4int, const G4double*> Z50[N50]={Z50N62, Z50N64, Z50N65, Z50N66,
00723                                                            Z50N67, Z50N68, Z50N69, Z50N70,
00724                                                            Z50N72, Z50N74};
00725   
00726   static const G4int N51=2;
00727   static const G4double pZ51N70[5]={.018, 5., .1, .03, .002}; 
00728   static const std::pair<G4int, const G4double*> Z51N70(70,pZ51N70);
00729   static const G4double pZ51N72[5]={.018, 5., .1, .03, .002}; 
00730   static const std::pair<G4int, const G4double*> Z51N72(72,pZ51N72);
00731   static const std::pair<G4int, const G4double*> Z51[N51]={Z51N70, Z51N72};
00732   
00733   static const G4int N52=8;
00734   static const G4double pZ52N68[5]={.018, 5., .1, .03, .002}; 
00735   static const std::pair<G4int, const G4double*> Z52N68(68,pZ52N68);
00736   static const G4double pZ52N70[5]={.018, 5., .1, .03, .002}; 
00737   static const std::pair<G4int, const G4double*> Z52N70(70,pZ52N70);
00738   static const G4double pZ52N71[5]={.018, 5., .1, .03, .002}; 
00739   static const std::pair<G4int, const G4double*> Z52N71(71,pZ52N71);
00740   static const G4double pZ52N72[5]={.018, 5., .1, .03, .002}; 
00741   static const std::pair<G4int, const G4double*> Z52N72(72,pZ52N72);
00742   static const G4double pZ52N73[5]={.018, 5., .1, .03, .002}; 
00743   static const std::pair<G4int, const G4double*> Z52N73(73,pZ52N73);
00744   static const G4double pZ52N74[5]={.018, 5., .1, .03, .002}; 
00745   static const std::pair<G4int, const G4double*> Z52N74(74,pZ52N74);
00746   static const G4double pZ52N76[5]={.018, 5., .1, .03, .002}; 
00747   static const std::pair<G4int, const G4double*> Z52N76(76,pZ52N76);
00748   static const G4double pZ52N78[5]={.018, 5., .1, .03, .002}; 
00749   static const std::pair<G4int, const G4double*> Z52N78(78,pZ52N78);
00750   static const std::pair<G4int, const G4double*> Z52[N52]={Z52N68, Z52N70, Z52N71, Z52N72,
00751                                                            Z52N73, Z52N74, Z52N76, Z52N78};
00752   
00753   static const G4int N53=1;
00754   static const G4double pZ53N74[5]={.018, 5., .1, .03, .002}; 
00755   static const std::pair<G4int, const G4double*> Z53N74(74,pZ53N74);
00756   static const std::pair<G4int, const G4double*> Z53[N53]={Z53N74};
00757   
00758   static const G4int N54=9;
00759   static const G4double pZ54N70[5]={.018, 5., .1, .03, .002}; 
00760   static const std::pair<G4int, const G4double*> Z54N70(70,pZ54N70);
00761   static const G4double pZ54N72[5]={.018, 5., .1, .03, .002}; 
00762   static const std::pair<G4int, const G4double*> Z54N72(72,pZ54N72);
00763   static const G4double pZ54N74[5]={.018, 5., .1, .03, .002}; 
00764   static const std::pair<G4int, const G4double*> Z54N74(74,pZ54N74);
00765   static const G4double pZ54N75[5]={.018, 5., .1, .03, .002}; 
00766   static const std::pair<G4int, const G4double*> Z54N75(75,pZ54N75);
00767   static const G4double pZ54N76[5]={.018, 5., .1, .03, .002}; 
00768   static const std::pair<G4int, const G4double*> Z54N76(76,pZ54N76);
00769   static const G4double pZ54N77[5]={.018, 5., .1, .03, .002}; 
00770   static const std::pair<G4int, const G4double*> Z54N77(77,pZ54N77);
00771   static const G4double pZ54N78[5]={.018, 5., .1, .03, .002}; 
00772   static const std::pair<G4int, const G4double*> Z54N78(78,pZ54N78);
00773   static const G4double pZ54N80[5]={.018, 5., .1, .03, .002}; 
00774   static const std::pair<G4int, const G4double*> Z54N80(80,pZ54N80);
00775   static const G4double pZ54N82[5]={.018, 5., .1, .03, .002}; 
00776   static const std::pair<G4int, const G4double*> Z54N82(82,pZ54N82);
00777   static const std::pair<G4int, const G4double*> Z54[N54]={Z54N70, Z54N72, Z54N74,
00778                                                            Z54N75, Z54N76, Z54N77,
00779                                                            Z54N78, Z54N80, Z54N82};
00780   
00781   static const G4int N55=1;
00782   static const G4double pZ55N78[5]={.018, 5., .1, .03, .002}; 
00783   static const std::pair<G4int, const G4double*> Z55N78(78,pZ55N78);
00784   static const std::pair<G4int, const G4double*> Z55[N55]={Z55N78};
00785   
00786   static const G4int N56=7;
00787   static const G4double pZ56N74[5]={.018, 5., .1, .03, .002}; 
00788   static const std::pair<G4int, const G4double*> Z56N74(70,pZ56N74);
00789   static const G4double pZ56N76[5]={.018, 5., .1, .03, .002}; 
00790   static const std::pair<G4int, const G4double*> Z56N76(71,pZ56N76);
00791   static const G4double pZ56N78[5]={.018, 5., .1, .03, .002}; 
00792   static const std::pair<G4int, const G4double*> Z56N78(72,pZ56N78);
00793   static const G4double pZ56N79[5]={.018, 5., .1, .03, .002}; 
00794   static const std::pair<G4int, const G4double*> Z56N79(73,pZ56N79);
00795   static const G4double pZ56N80[5]={.018, 5., .1, .03, .002}; 
00796   static const std::pair<G4int, const G4double*> Z56N80(74,pZ56N80);
00797   static const G4double pZ56N81[5]={.018, 5., .1, .03, .002}; 
00798   static const std::pair<G4int, const G4double*> Z56N81(76,pZ56N81);
00799   static const G4double pZ56N82[5]={.018, 5., .1, .03, .002}; 
00800   static const std::pair<G4int, const G4double*> Z56N82(78,pZ56N82);
00801   static const std::pair<G4int, const G4double*> Z56[N56]={Z56N74, Z56N76, Z56N78, Z56N79,
00802                                                            Z56N80, Z56N81, Z56N82};
00803   
00804   static const G4int N57=2;
00805   static const G4double pZ57N81[5]={.018, 5., .1, .03, .002}; 
00806   static const std::pair<G4int, const G4double*> Z57N81(81,pZ57N81);
00807   static const G4double pZ57N82[5]={.018, 5., .1, .03, .002}; 
00808   static const std::pair<G4int, const G4double*> Z57N82(82,pZ57N82);
00809   static const std::pair<G4int, const G4double*> Z57[N57]={Z57N81, Z57N82};
00810   
00811   static const G4int N58=4;
00812   static const G4double pZ58N78[5]={.018, 5., .1, .03, .002}; 
00813   static const std::pair<G4int, const G4double*> Z58N78(78,pZ58N78);
00814   static const G4double pZ58N80[5]={.018, 5., .1, .03, .002}; 
00815   static const std::pair<G4int, const G4double*> Z58N80(80,pZ58N80);
00816   static const G4double pZ58N82[5]={.018, 5., .1, .03, .002}; 
00817   static const std::pair<G4int, const G4double*> Z58N82(82,pZ58N82);
00818   static const G4double pZ58N84[5]={.018, 5., .1, .03, .002}; 
00819   static const std::pair<G4int, const G4double*> Z58N84(84,pZ58N84);
00820   static const std::pair<G4int, const G4double*> Z58[N58]={Z58N78, Z58N80, Z58N82, Z58N84};
00821   
00822   static const G4int N59=1;
00823   static const G4double pZ59N82[5]={.018, 5., .1, .03, .002}; 
00824   static const std::pair<G4int, const G4double*> Z59N82(82,pZ59N82);
00825   static const std::pair<G4int, const G4double*> Z59[N59]={Z59N82};
00826   
00827   static const G4int N60=7;
00828   static const G4double pZ60N82[5]={.018, 5., .1, .03, .002}; 
00829   static const std::pair<G4int, const G4double*> Z60N82(82,pZ60N82);
00830   static const G4double pZ60N83[5]={.018, 5., .1, .03, .002}; 
00831   static const std::pair<G4int, const G4double*> Z60N83(83,pZ60N83);
00832   static const G4double pZ60N84[5]={.018, 5., .1, .03, .002}; 
00833   static const std::pair<G4int, const G4double*> Z60N84(84,pZ60N84);
00834   static const G4double pZ60N85[5]={.018, 5., .1, .03, .002}; 
00835   static const std::pair<G4int, const G4double*> Z60N85(85,pZ60N85);
00836   static const G4double pZ60N86[5]={.018, 5., .1, .03, .002}; 
00837   static const std::pair<G4int, const G4double*> Z60N86(86,pZ60N86);
00838   static const G4double pZ60N88[5]={.018, 5., .1, .03, .002}; 
00839   static const std::pair<G4int, const G4double*> Z60N88(88,pZ60N88);
00840   static const G4double pZ60N90[5]={.018, 5., .1, .03, .002}; 
00841   static const std::pair<G4int, const G4double*> Z60N90(90,pZ60N90);
00842   static const std::pair<G4int, const G4double*> Z60[N60]={Z60N82, Z60N83, Z60N84, Z60N85,
00843                                                            Z60N86, Z60N88, Z60N90};
00844   
00845   static const G4int N61=1;
00846   static const G4double pZ61N0[5]={.018, 5., .1, .03, .002}; 
00847   static const std::pair<G4int, const G4double*> Z61N0(0,pZ61N0);
00848   static const std::pair<G4int, const G4double*> Z61[N61]={Z61N0};
00849   
00850   static const G4int N62=7;
00851   static const G4double pZ62N82[5]={.018, 5., .1, .03, .002}; 
00852   static const std::pair<G4int, const G4double*> Z62N82(82,pZ62N82);
00853   static const G4double pZ62N85[5]={.018, 5., .1, .03, .002}; 
00854   static const std::pair<G4int, const G4double*> Z62N85(85,pZ62N85);
00855   static const G4double pZ62N86[5]={.018, 5., .1, .03, .002}; 
00856   static const std::pair<G4int, const G4double*> Z62N86(86,pZ62N86);
00857   static const G4double pZ62N87[5]={.018, 5., .1, .03, .002}; 
00858   static const std::pair<G4int, const G4double*> Z62N87(87,pZ62N87);
00859   static const G4double pZ62N88[5]={.018, 5., .1, .03, .002}; 
00860   static const std::pair<G4int, const G4double*> Z62N88(88,pZ62N88);
00861   static const G4double pZ62N90[5]={.018, 5., .1, .03, .002}; 
00862   static const std::pair<G4int, const G4double*> Z62N90(90,pZ62N90);
00863   static const G4double pZ62N92[5]={.018, 5., .1, .03, .002}; 
00864   static const std::pair<G4int, const G4double*> Z62N92(92,pZ62N92);
00865   static const std::pair<G4int, const G4double*> Z62[N62]={Z62N82, Z62N85, Z62N86, Z62N87,
00866                                                            Z62N88, Z62N90, Z62N92};
00867   
00868   static const G4int N63=2;
00869   static const G4double pZ63N88[5]={.018, 5., .1, .03, .002}; 
00870   static const std::pair<G4int, const G4double*> Z63N88(88,pZ63N88);
00871   static const G4double pZ63N90[5]={.018, 5., .1, .03, .002}; 
00872   static const std::pair<G4int, const G4double*> Z63N90(90,pZ63N90);
00873   static const std::pair<G4int, const G4double*> Z63[N63]={Z63N88, Z63N90};
00874   
00875   static const G4int N64=7;
00876   static const G4double pZ64N88[5]={.018, 5., .1, .03, .002}; 
00877   static const std::pair<G4int, const G4double*> Z64N88(88,pZ64N88);
00878   static const G4double pZ64N90[5]={.018, 5., .1, .03, .002}; 
00879   static const std::pair<G4int, const G4double*> Z64N90(90,pZ64N90);
00880   static const G4double pZ64N91[5]={.018, 5., .1, .03, .002}; 
00881   static const std::pair<G4int, const G4double*> Z64N91(91,pZ64N91);
00882   static const G4double pZ64N92[5]={.018, 5., .1, .03, .002}; 
00883   static const std::pair<G4int, const G4double*> Z64N92(92,pZ64N92);
00884   static const G4double pZ64N93[5]={.018, 5., .1, .03, .002}; 
00885   static const std::pair<G4int, const G4double*> Z64N93(93,pZ64N93);
00886   static const G4double pZ64N94[5]={.018, 5., .1, .03, .002}; 
00887   static const std::pair<G4int, const G4double*> Z64N94(94,pZ64N94);
00888   static const G4double pZ64N96[5]={.018, 5., .1, .03, .002}; 
00889   static const std::pair<G4int, const G4double*> Z64N96(96,pZ64N96);
00890   static const std::pair<G4int, const G4double*> Z64[N64]={Z64N88, Z64N90, Z64N91, Z64N92,
00891                                                            Z64N93, Z64N94, Z64N96};
00892   
00893   static const G4int N65=1;
00894   static const G4double pZ65N94[5]={.018, 5., .1, .03, .002}; 
00895   static const std::pair<G4int, const G4double*> Z65N94(82,pZ65N94);
00896   static const std::pair<G4int, const G4double*> Z65[N65]={Z65N94};
00897   
00898   static const G4int N66=7;
00899   static const G4double pZ66N90[5]={.018, 5., .1, .03, .002}; 
00900   static const std::pair<G4int, const G4double*> Z66N90(90,pZ66N90);
00901   static const G4double pZ66N92[5]={.018, 5., .1, .03, .002}; 
00902   static const std::pair<G4int, const G4double*> Z66N92(92,pZ66N92);
00903   static const G4double pZ66N94[5]={.018, 5., .1, .03, .002}; 
00904   static const std::pair<G4int, const G4double*> Z66N94(94,pZ66N94);
00905   static const G4double pZ66N95[5]={.018, 5., .1, .03, .002}; 
00906   static const std::pair<G4int, const G4double*> Z66N95(95,pZ66N95);
00907   static const G4double pZ66N96[5]={.018, 5., .1, .03, .002}; 
00908   static const std::pair<G4int, const G4double*> Z66N96(96,pZ66N96);
00909   static const G4double pZ66N97[5]={.018, 5., .1, .03, .002}; 
00910   static const std::pair<G4int, const G4double*> Z66N97(97,pZ66N97);
00911   static const G4double pZ66N98[5]={.018, 5., .1, .03, .002}; 
00912   static const std::pair<G4int, const G4double*> Z66N98(98,pZ66N98);
00913   static const std::pair<G4int, const G4double*> Z66[N66]={Z66N90, Z66N92, Z66N94, Z66N95,
00914                                                            Z66N96, Z66N97, Z66N98};
00915   
00916   static const G4int N67=1;
00917   static const G4double pZ67N98[5]={.018, 5., .1, .03, .002}; 
00918   static const std::pair<G4int, const G4double*> Z67N98(98,pZ67N98);
00919   static const std::pair<G4int, const G4double*> Z67[N67]={Z67N98};
00920   
00921   static const G4int N68=6;
00922   static const G4double pZ68N94[5]={.018, 5., .1, .03, .002}; 
00923   static const std::pair<G4int, const G4double*> Z68N94(94,pZ68N94);
00924   static const G4double pZ68N96[5]={.018, 5., .1, .03, .002}; 
00925   static const std::pair<G4int, const G4double*> Z68N96(96,pZ68N96);
00926   static const G4double pZ68N98[5]={.018, 5., .1, .03, .002}; 
00927   static const std::pair<G4int, const G4double*> Z68N98(98,pZ68N98);
00928   static const G4double pZ68N99[5]={.018, 5., .1, .03, .002}; 
00929   static const std::pair<G4int, const G4double*> Z68N99(99,pZ68N99);
00930   static const G4double pZ68N100[5]={.018, 5., .1, .03, .002}; 
00931   static const std::pair<G4int, const G4double*> Z68N100(100,pZ68N100);
00932   static const G4double pZ68N102[5]={.01, 27., 0., 0., 1.}; 
00933   static const std::pair<G4int, const G4double*> Z68N102(102,pZ68N102);
00934   static const std::pair<G4int, const G4double*> Z68[N68]={Z68N94, Z68N96, Z68N98,
00935                                                            Z68N99, Z68N100, Z68N102};
00936   
00937   static const G4int N69=1;
00938   static const G4double pZ69N100[5]={.018, 5., .1, .03, .002}; 
00939   static const std::pair<G4int, const G4double*> Z69N100(100,pZ69N100);
00940   static const std::pair<G4int, const G4double*> Z69[N69]={Z69N100};
00941   
00942   static const G4int N70=7;
00943   static const G4double pZ70N98[5]={.018, 5., .1, .03, .002}; 
00944   static const std::pair<G4int, const G4double*> Z70N98(98,pZ70N98);
00945   static const G4double pZ70N100[5]={.018, 5., .1, .03, .002}; 
00946   static const std::pair<G4int, const G4double*> Z70N100(100,pZ70N100);
00947   static const G4double pZ70N101[5]={.018, 5., .1, .03, .002}; 
00948   static const std::pair<G4int, const G4double*> Z70N101(101,pZ70N101);
00949   static const G4double pZ70N102[5]={.018, 5., .1, .03, .002}; 
00950   static const std::pair<G4int, const G4double*> Z70N102(102,pZ70N102);
00951   static const G4double pZ70N103[5]={.018, 5., .1, .03, .002}; 
00952   static const std::pair<G4int, const G4double*> Z70N103(103,pZ70N103);
00953   static const G4double pZ70N104[5]={.018, 5., .1, .03, .002}; 
00954   static const std::pair<G4int, const G4double*> Z70N104(104,pZ70N104);
00955   static const G4double pZ70N106[5]={.01, 27., 0., 0., 1.}; 
00956   static const std::pair<G4int, const G4double*> Z70N106(106,pZ70N106);
00957   static const std::pair<G4int, const G4double*> Z70[N70]={Z70N98, Z70N100, Z70N101,
00958                                                            Z70N102, Z70N103, Z70N104,
00959                                                            Z70N106};
00960   
00961   static const G4int N71=2;
00962   static const G4double pZ71N104[5]={.018, 5., .1, .03, .002}; 
00963   static const std::pair<G4int, const G4double*> Z71N104(104,pZ71N104);
00964   static const G4double pZ71N105[5]={.018, 5., .1, .03, .002}; 
00965   static const std::pair<G4int, const G4double*> Z71N105(105,pZ71N105);
00966   static const std::pair<G4int, const G4double*> Z71[N71]={Z71N104, Z71N105};
00967   
00968   static const G4int N72=6;
00969   static const G4double pZ72N102[5]={.018, 5., .1, .03, .002}; 
00970   static const std::pair<G4int, const G4double*> Z72N102(102,pZ72N102);
00971   static const G4double pZ72N104[5]={.018, 5., .1, .03, .002}; 
00972   static const std::pair<G4int, const G4double*> Z72N104(104,pZ72N104);
00973   static const G4double pZ72N105[5]={.018, 5., .1, .03, .002}; 
00974   static const std::pair<G4int, const G4double*> Z72N105(105,pZ72N105);
00975   static const G4double pZ72N106[5]={.018, 5., .1, .03, .002}; 
00976   static const std::pair<G4int, const G4double*> Z72N106(106,pZ72N106);
00977   static const G4double pZ72N107[5]={.018, 5., .1, .03, .002}; 
00978   static const std::pair<G4int, const G4double*> Z72N107(107,pZ72N107);
00979   static const G4double pZ72N108[5]={.01, 27., 0., 0., 1.}; 
00980   static const std::pair<G4int, const G4double*> Z72N108(108,pZ72N108);
00981   static const std::pair<G4int, const G4double*> Z72[N72]={Z72N102, Z72N104, Z72N105,
00982                                                            Z72N106, Z72N107, Z72N108};
00983   
00984   static const G4int N73=1;
00985   static const G4double pZ73N108[5]={.0065, 2., .15, .001, .0012};
00986   static const std::pair<G4int, const G4double*> Z73N108(108,pZ73N108);
00987   static const std::pair<G4int, const G4double*> Z73[N73]={Z73N108};
00988   
00989   static const G4int N74=5;
00990   static const G4double pZ74N106[5]={.014, 5., .03, .04, .001}; 
00991   static const std::pair<G4int, const G4double*> Z74N106(106,pZ74N106);
00992   static const G4double pZ74N108[5]={.013, 4.5, .35, .045, .001};
00993   static const std::pair<G4int, const G4double*> Z74N108(108,pZ74N108);
00994   static const G4double pZ74N109[5]={.012, 4., .02, .04, .001};
00995   static const std::pair<G4int, const G4double*> Z74N109(109,pZ74N109);
00996   static const G4double pZ74N110[5]={.014, 6., .02, .03, .0015};
00997   static const std::pair<G4int, const G4double*> Z74N110(110,pZ74N110);
00998   static const G4double pZ74N112[5]={.014, 6., .02, .03, .0015};
00999   static const std::pair<G4int, const G4double*> Z74N112(112,pZ74N112);
01000   static const std::pair<G4int, const G4double*> Z74[N74]={Z74N106, Z74N108, Z74N109,
01001                                                            Z74N110, Z74N112};
01002   
01003   static const G4int N75=2;
01004   static const G4double pZ75N110[5]={.015, 4., .2, .0001, .0021};
01005   static const std::pair<G4int, const G4double*> Z75N110(110,pZ75N110);
01006   static const G4double pZ75N112[5]={.015, 4., .1, .0001, .002};
01007   static const std::pair<G4int, const G4double*> Z75N112(112,pZ75N112);
01008   static const std::pair<G4int, const G4double*> Z75[N75]={Z75N110, Z75N112};
01009   
01010   static const G4int N76=7;
01011   static const G4double pZ76N108[5]={.018, 5., .1, .03, .002}; 
01012   static const std::pair<G4int, const G4double*> Z76N108(108,pZ76N108);
01013   static const G4double pZ76N110[5]={.018, 5., .1, .03, .002}; 
01014   static const std::pair<G4int, const G4double*> Z76N110(110,pZ76N110);
01015   static const G4double pZ76N111[5]={.018, 5., .1, .03, .002}; 
01016   static const std::pair<G4int, const G4double*> Z76N111(111,pZ76N111);
01017   static const G4double pZ76N112[5]={.018, 5., .1, .03, .002}; 
01018   static const std::pair<G4int, const G4double*> Z76N112(112,pZ76N112);
01019   static const G4double pZ76N113[5]={.018, 5., .1, .03, .002}; 
01020   static const std::pair<G4int, const G4double*> Z76N113(113,pZ76N113);
01021   static const G4double pZ76N114[5]={.018, 5., .1, .03, .002}; 
01022   static const std::pair<G4int, const G4double*> Z76N114(114,pZ76N114);
01023   static const G4double pZ76N116[5]={.018, 5., .1, .03, .002}; 
01024   static const std::pair<G4int, const G4double*> Z76N116(116,pZ76N116);
01025   static const std::pair<G4int, const G4double*> Z76[N76]={Z76N108, Z76N110, Z76N111,
01026                                                            Z76N112, Z76N113, Z76N114,
01027                                                            Z76N116};
01028   
01029   static const G4int N77=2;
01030   static const G4double pZ77N114[5]={.012, 3., .1, .0001, .003};
01031   static const std::pair<G4int, const G4double*> Z77N114(114,pZ77N114);
01032   static const G4double pZ77N116[5]={.012, 3., .08, .0001, .002};
01033   static const std::pair<G4int, const G4double*> Z77N116(116,pZ77N116);
01034   static const std::pair<G4int, const G4double*> Z77[N77]={Z77N114, Z77N116};
01035   
01036   static const G4int N78=6;
01037   static const G4double pZ78N112[5]={.018, 5., .1, .03, .002}; 
01038   static const std::pair<G4int, const G4double*> Z78N112(112,pZ78N112);
01039   static const G4double pZ78N114[5]={.018, 5., .1, .03, .002}; 
01040   static const std::pair<G4int, const G4double*> Z78N114(114,pZ78N114);
01041   static const G4double pZ78N116[5]={.018, 5., .1, .03, .002}; 
01042   static const std::pair<G4int, const G4double*> Z78N116(116,pZ78N116);
01043   static const G4double pZ78N117[5]={.018, 5., .1, .03, .002}; 
01044   static const std::pair<G4int, const G4double*> Z78N117(117,pZ78N117);
01045   static const G4double pZ78N118[5]={.018, 5., .1, .03, .002}; 
01046   static const std::pair<G4int, const G4double*> Z78N118(118,pZ78N118);
01047   static const G4double pZ78N120[5]={.018, 5., .1, .03, .002}; 
01048   static const std::pair<G4int, const G4double*> Z78N120(120,pZ78N120);
01049   static const std::pair<G4int, const G4double*> Z78[N78]={Z78N112, Z78N114, Z78N116,
01050                                                            Z78N117, Z78N118, Z78N120};
01051   
01052   static const G4int N79=1;
01053   static const G4double pZ79N118[5]={.012, 4., .2, .0001, .002};
01054   static const std::pair<G4int, const G4double*> Z79N118(118,pZ79N118);
01055   static const std::pair<G4int, const G4double*> Z79[N79]={Z79N118};
01056   
01057   static const G4int N80=7;
01058   static const G4double pZ80N116[5]={.022, 11., .006, .044, .001};
01059   static const std::pair<G4int, const G4double*> Z80N116(116,pZ80N116);
01060   static const G4double pZ80N118[5]={.024, 10., .04, .018, .0016};
01061   static const std::pair<G4int, const G4double*> Z80N118(118,pZ80N118);
01062   static const G4double pZ80N119[5]={.017, 8., .02, .02, .0016};
01063   static const std::pair<G4int, const G4double*> Z80N119(119,pZ80N119);
01064   static const G4double pZ80N120[5]={.021, 9., .03, .02, .0016};
01065   static const std::pair<G4int, const G4double*> Z80N120(120,pZ80N120);
01066   static const G4double pZ80N121[5]={.01, 7., .025, .025, .0016};
01067   static const std::pair<G4int, const G4double*> Z80N121(121,pZ80N121);
01068   static const G4double pZ80N122[5]={.023, 9., .008, .045, .0012};
01069   static const std::pair<G4int, const G4double*> Z80N122(122,pZ80N122);
01070   static const G4double pZ80N124[5]={.018, 8., .007, .04, .0013};
01071   static const std::pair<G4int, const G4double*> Z80N124(124,pZ80N124);
01072   static const std::pair<G4int, const G4double*> Z80[N80]={Z80N116, Z80N118, Z80N119,
01073                                                            Z80N120, Z80N121, Z80N122,
01074                                                            Z80N124};
01075   
01076   static const G4int N81=2;
01077   static const G4double pZ81N122[5]={.018, 5., .1, .03, .002}; 
01078   static const std::pair<G4int, const G4double*> Z81N122(122,pZ81N122);
01079   static const G4double pZ81N124[5]={.01, 27., 0., 0., 1.}; 
01080   static const std::pair<G4int, const G4double*> Z81N124(124,pZ81N124);
01081   static const std::pair<G4int, const G4double*> Z81[N81]={Z81N122, Z81N124};
01082   
01083   static const G4int N82=4;
01084   static const G4double pZ82N122[5]={.032, 9., .001, .13, .004};
01085   static const std::pair<G4int, const G4double*> Z82N122(122,pZ82N122);
01086   static const G4double pZ82N124[5]={.02, 7., .005, .14, .002};
01087   static const std::pair<G4int, const G4double*> Z82N124(124,pZ82N124);
01088   static const G4double pZ82N125[5]={.021, 9., .0012, .05, .01};
01089   static const std::pair<G4int, const G4double*> Z82N125(125,pZ82N125);
01090   static const G4double pZ82N126[5]={.049, 14., .0007, .145, .001};
01091   static const std::pair<G4int, const G4double*> Z82N126(126,pZ82N126);
01092   static const std::pair<G4int, const G4double*> Z82[N82]={Z82N122, Z82N124, Z82N125,
01093                                                            Z82N126};
01094   
01095   static const G4int N83=1;
01096   static const G4double pZ83N126[5]={.033, 10., .001, .13, .006};
01097   static const std::pair<G4int, const G4double*> Z83N126(126,pZ83N126);
01098   static const std::pair<G4int, const G4double*> Z83[N83]={Z83N126};
01099   
01100   static const G4int N84=1;
01101   static const G4double pZ84N0[5]={.01, 27., 0., 0., 1.}; 
01102   static const std::pair<G4int, const G4double*> Z84N0(0,pZ84N0);
01103   static const std::pair<G4int, const G4double*> Z84[N84]={Z84N0};
01104   
01105   static const G4int N85=1;
01106   static const G4double pZ85N0[5]={.018, 5., .1, .03, .002}; 
01107   static const std::pair<G4int, const G4double*> Z85N0(0,pZ85N0);
01108   static const std::pair<G4int, const G4double*> Z85[N85]={Z85N0};
01109   
01110   static const G4int N86=1;
01111   static const G4double pZ86N0[5]={.018, 5., .1, .03, .002}; 
01112   static const std::pair<G4int, const G4double*> Z86N0(0,pZ86N0);
01113   static const std::pair<G4int, const G4double*> Z86[N86]={Z86N0};
01114   
01115   static const G4int N87=1;
01116   static const G4double pZ87N0[5]={.018, 5., .1, .03, .002}; 
01117   static const std::pair<G4int, const G4double*> Z87N0(0,pZ87N0);
01118   static const std::pair<G4int, const G4double*> Z87[N87]={Z87N0};
01119   
01120   static const G4int N88=1;
01121   static const G4double pZ88N138[5]={.012, 4.4, .068, .051, .0008};
01122   static const std::pair<G4int, const G4double*> Z88N138(138,pZ88N138);
01123   static const std::pair<G4int, const G4double*> Z88[N88]={Z88N138};
01124   
01125   static const G4int N89=1;
01126   static const G4double pZ89N0[5]={.018, 5., .1, .03, .002}; 
01127   static const std::pair<G4int, const G4double*> Z89N0(0,pZ89N0);
01128   static const std::pair<G4int, const G4double*> Z89[N89]={Z89N0};
01129   
01130   static const G4int N90=1;
01131   static const G4double pZ90N142[5]={.01, 3.6, .07, .029, .0009};
01132   static const std::pair<G4int, const G4double*> Z90N142(142,pZ90N142);
01133   static const std::pair<G4int, const G4double*> Z90[N90]={Z90N142};
01134   
01135   static const G4int N91=1;
01136   static const G4double pZ91N0[5]={.01, 27., 0., 0., 1.}; 
01137   static const std::pair<G4int, const G4double*> Z91N0(0,pZ91N0);
01138   static const std::pair<G4int, const G4double*> Z91[N91]={Z91N0};
01139   
01140   static const G4int N92=2;
01141   static const G4double pZ92N143[5]={.005, 2.5, .06, .008, .002};
01142   static const std::pair<G4int, const G4double*> Z92N143(143,pZ92N143);
01143   static const G4double pZ92N146[5]={.009, 3.1, .04, .025, .001};
01144   static const std::pair<G4int, const G4double*> Z92N146(146,pZ92N146);
01145   static const std::pair<G4int, const G4double*> Z92[N92]={Z92N143, Z92N146};
01146   
01147   static const G4int N93=1;
01148   static const G4double pZ93N144[5]={.009, 2.35, .35, .003, .0007};
01149   static const std::pair<G4int, const G4double*> Z93N144(144,pZ93N144);
01150   static const std::pair<G4int, const G4double*> Z93[N93]={Z93N144};
01151   
01152   static const G4int N94=3;
01153   static const G4double pZ94N145[5]={.005, 2.6, .04, .023, .0002}; 
01154   static const std::pair<G4int, const G4double*> Z94N145(145,pZ94N145);
01155   static const G4double pZ94N148[5]={.009, 3.1, .06, .02, .001}; 
01156   static const std::pair<G4int, const G4double*> Z94N148(148,pZ94N148);
01157   static const G4double pZ94N150[5]={.01, 27., 0., 0., 1.};
01158   static const std::pair<G4int, const G4double*> Z94N150(150,pZ94N150);
01159   static const std::pair<G4int, const G4double*> Z94[N94]={Z94N145, Z94N148, Z94N150};
01160   
01161   static const G4int N95=1;
01162   static const G4double pZ95N0[5]={.018, 5., .1, .03, .002}; 
01163   static const std::pair<G4int, const G4double*> Z95N0(0,pZ95N0);
01164   static const std::pair<G4int, const G4double*> Z95[N95]={Z95N0};
01165   
01166   static const G4int N96=1;
01167   static const G4double pZ96N151[5]={.005, 2.5, .07, .027, .0009};
01168   static const std::pair<G4int, const G4double*> Z96N151(151,pZ96N151);
01169   static const std::pair<G4int, const G4double*> Z96[N96]={Z96N151};
01170  
01171   static const G4int NZ=97; 
01172   static const std::pair<G4int, const G4double*>* Pars[NZ]={Z0,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,
01173     Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18,Z19,Z20,Z21,Z22,Z23,Z24,Z25,Z26,Z27,Z28,Z29,Z30,
01174     Z31,Z32,Z33,Z34,Z35,Z36,Z37,Z38,Z39,Z40,Z41,Z42,Z43,Z44,Z45,Z46,Z47,Z48,Z49,Z50,Z51,
01175     Z52,Z53,Z54,Z55,Z56,Z57,Z58,Z59,Z60,Z61,Z62,Z63,Z64,Z65,Z66,Z67,Z68,Z69,Z70,Z71,Z72,
01176     Z73,Z74,Z75,Z76,Z77,Z78,Z79,Z80,Z81,Z82,Z83,Z84,Z85,Z86,Z87,Z88,Z89,Z90,Z91,Z92,Z93,
01177     Z94,Z95,Z96};
01178   static const G4int NIso[NZ]={N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15,N16,
01179     N17,N18,N19,N20,N21,N22,N23,N24,N25,N26,N27,N28,N29,N30,N31,N32,N33,N34,N35,N36,N37,
01180     N38,N39,N40,N41,N42,N43,N44,N45,N46,N47,N48,N49,N50,N51,N52,N53,N54,N55,N56,N57,N58,
01181     N59,N60,N61,N62,N63,N64,N65,N66,N67,N68,N69,N70,N71,N72,N73,N74,N75,N76,N77,N78,N79,
01182     N80,N81,N82,N83,N84,N85,N86,N87,N88,N89,N90,N91,N92,N93,N94,N95,N96};
01183   static G4int    mZ=0;
01184   static G4int    mN=0;
01185   static G4double P=.1;  
01186   static G4double R=0.;  
01187   static G4double p0=0.;
01188   static G4double p1=0.;
01189   static G4double p2=0.;
01190   static G4double p3=0.;
01191   static G4double p4=0.;
01192   G4int A=Z+N;
01193   if(A<=1) return 0.;
01194   if(p<=0.001) return 1.;
01195   if(Z!=mZ || N!=mN)     
01196   {
01197     mZ=Z;
01198     mN=N;
01199     P=p;
01200     if(Z<97 && N<248)                
01201     {
01202       p0=.01; 
01203       p1=0.;
01204       p2=27.;
01205       p3=0.;
01206       p4=1.;
01207       G4int nn=NIso[Z];
01208       G4bool nfound=true;
01209       if(nn) for (G4int in=0; in<nn; in++)
01210       {
01211         std::pair<G4int, const G4double*> curIs=Pars[Z][in];
01212         if(curIs.first == N)
01213         {
01214           const G4double* curT=curIs.second;
01215           p0 = curT[0];
01216           if(p < p0)
01217           {
01218             R=1.;
01219             return R;
01220           }
01221           p1 = curT[1];
01222           p2 = curT[2];
01223           p3 = curT[3];
01224           p4 = curT[4];
01225           nfound = false;
01226           break;
01227         }
01228       }
01229       if(nfound) G4cout<<"-Warning-G4QNeutronCaptureRatio::CSLin: Z="<<Z<<", N="
01230                        <<N<<" isotope is not implemented in CHIPS"<<G4endl;
01231       R=std::pow(p0/p,p1);
01232       if(p2>0.)
01233       {
01234         G4double dp=p-p3;
01235         R+=p2*std::exp(-dp*dp/p4);
01236       }
01237       if(R>1.) R=1.;
01238     }
01239     else G4cerr<<"-Warning-G4QNeutronCaptureRatio::CalcR:*Bad A* Z="<<Z<<", N="<<N<<G4endl;
01240   }
01241   else if(std::fabs(p-P)/P<.0001) return R; 
01242   return R;
01243 }