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
00045 #include "G4QNeutronElasticCrossSection.hh"
00046 #include "G4SystemOfUnits.hh"
00047
00048
00049 const G4int G4QNeutronElasticCrossSection::nPoints=128;
00050 const G4int G4QNeutronElasticCrossSection::nLast=nPoints-1;
00051 G4double G4QNeutronElasticCrossSection::lPMin=-8.;
00052 G4double G4QNeutronElasticCrossSection::lPMax= 8.;
00053 G4double G4QNeutronElasticCrossSection::dlnP=(lPMax-lPMin)/nLast;
00054 G4bool G4QNeutronElasticCrossSection::onlyCS=true;
00055 G4double G4QNeutronElasticCrossSection::lastSIG=0.;
00056 G4double G4QNeutronElasticCrossSection::lastLP=-10.;
00057 G4double G4QNeutronElasticCrossSection::lastTM=0.;
00058 G4double G4QNeutronElasticCrossSection::theSS=0.;
00059 G4double G4QNeutronElasticCrossSection::theS1=0.;
00060 G4double G4QNeutronElasticCrossSection::theB1=0.;
00061 G4double G4QNeutronElasticCrossSection::theS2=0.;
00062 G4double G4QNeutronElasticCrossSection::theB2=0.;
00063 G4double G4QNeutronElasticCrossSection::theS3=0.;
00064 G4double G4QNeutronElasticCrossSection::theB3=0.;
00065 G4double G4QNeutronElasticCrossSection::theS4=0.;
00066 G4double G4QNeutronElasticCrossSection::theB4=0.;
00067 G4int G4QNeutronElasticCrossSection::lastTZ=0;
00068 G4int G4QNeutronElasticCrossSection::lastTN=0;
00069 G4double G4QNeutronElasticCrossSection::lastPIN=0.;
00070 G4double* G4QNeutronElasticCrossSection::lastCST=0;
00071 G4double* G4QNeutronElasticCrossSection::lastPAR=0;
00072 G4double* G4QNeutronElasticCrossSection::lastSST=0;
00073 G4double* G4QNeutronElasticCrossSection::lastS1T=0;
00074 G4double* G4QNeutronElasticCrossSection::lastB1T=0;
00075 G4double* G4QNeutronElasticCrossSection::lastS2T=0;
00076 G4double* G4QNeutronElasticCrossSection::lastB2T=0;
00077 G4double* G4QNeutronElasticCrossSection::lastS3T=0;
00078 G4double* G4QNeutronElasticCrossSection::lastB3T=0;
00079 G4double* G4QNeutronElasticCrossSection::lastS4T=0;
00080 G4double* G4QNeutronElasticCrossSection::lastB4T=0;
00081 G4int G4QNeutronElasticCrossSection::lastN=0;
00082 G4int G4QNeutronElasticCrossSection::lastZ=0;
00083 G4double G4QNeutronElasticCrossSection::lastP=0.;
00084 G4double G4QNeutronElasticCrossSection::lastTH=0.;
00085 G4double G4QNeutronElasticCrossSection::lastCS=0.;
00086 G4int G4QNeutronElasticCrossSection::lastI=0;
00087
00088 std::vector<G4double*> G4QNeutronElasticCrossSection::PAR;
00089 std::vector<G4double*> G4QNeutronElasticCrossSection::CST;
00090 std::vector<G4double*> G4QNeutronElasticCrossSection::SST;
00091 std::vector<G4double*> G4QNeutronElasticCrossSection::S1T;
00092 std::vector<G4double*> G4QNeutronElasticCrossSection::B1T;
00093 std::vector<G4double*> G4QNeutronElasticCrossSection::S2T;
00094 std::vector<G4double*> G4QNeutronElasticCrossSection::B2T;
00095 std::vector<G4double*> G4QNeutronElasticCrossSection::S3T;
00096 std::vector<G4double*> G4QNeutronElasticCrossSection::B3T;
00097 std::vector<G4double*> G4QNeutronElasticCrossSection::S4T;
00098 std::vector<G4double*> G4QNeutronElasticCrossSection::B4T;
00099
00100 G4QNeutronElasticCrossSection::G4QNeutronElasticCrossSection()
00101 {
00102 }
00103
00104 G4QNeutronElasticCrossSection::~G4QNeutronElasticCrossSection()
00105 {
00106 std::vector<G4double*>::iterator pos;
00107 for (pos=CST.begin(); pos<CST.end(); pos++)
00108 { delete [] *pos; }
00109 CST.clear();
00110 for (pos=PAR.begin(); pos<PAR.end(); pos++)
00111 { delete [] *pos; }
00112 PAR.clear();
00113 for (pos=SST.begin(); pos<SST.end(); pos++)
00114 { delete [] *pos; }
00115 SST.clear();
00116 for (pos=S1T.begin(); pos<S1T.end(); pos++)
00117 { delete [] *pos; }
00118 S1T.clear();
00119 for (pos=B1T.begin(); pos<B1T.end(); pos++)
00120 { delete [] *pos; }
00121 B1T.clear();
00122 for (pos=S2T.begin(); pos<S2T.end(); pos++)
00123 { delete [] *pos; }
00124 S2T.clear();
00125 for (pos=B2T.begin(); pos<B2T.end(); pos++)
00126 { delete [] *pos; }
00127 B2T.clear();
00128 for (pos=S3T.begin(); pos<S3T.end(); pos++)
00129 { delete [] *pos; }
00130 S3T.clear();
00131 for (pos=B3T.begin(); pos<B3T.end(); pos++)
00132 { delete [] *pos; }
00133 B3T.clear();
00134 for (pos=S4T.begin(); pos<S4T.end(); pos++)
00135 { delete [] *pos; }
00136 S4T.clear();
00137 for (pos=B4T.begin(); pos<B4T.end(); pos++)
00138 { delete [] *pos; }
00139 B4T.clear();
00140 }
00141
00142
00143 G4VQCrossSection* G4QNeutronElasticCrossSection::GetPointer()
00144 {
00145 static G4QNeutronElasticCrossSection theCrossSection;
00146 return &theCrossSection;
00147 }
00148
00149
00150
00151 G4double G4QNeutronElasticCrossSection::GetCrossSection(G4bool fCS, G4double pMom,
00152 G4int tgZ, G4int tgN, G4int pPDG)
00153 {
00154 static std::vector <G4int> colN;
00155 static std::vector <G4int> colZ;
00156 static std::vector <G4double> colP;
00157 static std::vector <G4double> colTH;
00158 static std::vector <G4double> colCS;
00159
00160 G4double pEn=pMom;
00161 onlyCS=fCS;
00162 #ifdef debug
00163 G4cout<<"G4QNElCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="
00164 <<tgN<<"("<<lastN<<"), T="<<pEn<<"("<<lastTH<<")"<<",Sz="<<colN.size()<<G4endl;
00165
00166 #endif
00167 if(pPDG!=2112)
00168 {
00169 G4cout<<"G4QNeutronElCS::GetCS: *** Found pPDG="<<pPDG<<" =--=> CS=0"<<G4endl;
00170
00171 return 0.;
00172 }
00173 G4bool in=false;
00174 lastP = 0.;
00175 lastN = tgN;
00176 lastZ = tgZ;
00177 lastI = colN.size();
00178 if(lastI) for(G4int i=0; i<lastI; i++)
00179 {
00180 if(colN[i]==tgN && colZ[i]==tgZ)
00181 {
00182 lastI=i;
00183 lastTH =colTH[i];
00184 #ifdef debug
00185 G4cout<<"G4QNeutElCS::GetCS:Found,P="<<pMom<<",Threshold="<<lastTH<<",i="<<i<<G4endl;
00186
00187 #endif
00188 if(pEn<=lastTH)
00189 {
00190 #ifdef debug
00191 G4cout<<"G4QNeutElCS::GetCS:Found,T="<<pEn<<"<Threshold="<<lastTH<<",CS=0"<<G4endl;
00192
00193 #endif
00194 return 0.;
00195 }
00196 lastP =colP [i];
00197 lastCS =colCS[i];
00198
00199 if(lastP == pMom)
00200 {
00201 #ifdef debug
00202 G4cout<<"G4QNeutronElasticCS::GetCrosS:P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
00203 #endif
00204 CalculateCrossSection(fCS,-1,i,pPDG,lastZ,lastN,pMom);
00205 return lastCS*millibarn;
00206 }
00207 in = true;
00208
00209 #ifdef debug
00210 G4cout<<"G4QNElCrS::G:UpdateDB,P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",i="<<i<<G4endl;
00211 #endif
00212 lastCS=CalculateCrossSection(fCS,-1,i,pPDG,lastZ,lastN,pMom);
00213 #ifdef debug
00214 G4cout<<"G4QNeutronElCS::GetCrosSec:*****>New (inDB) Calculated CS="<<lastCS<<G4endl;
00215
00216 #endif
00217 if(lastCS<=0. && pEn>lastTH)
00218 {
00219 #ifdef debug
00220 G4cout<<"G4QNeutronElCS::GetCS:New,T="<<pEn<<"(CS=0) > Threshold="<<lastTH<<G4endl;
00221 #endif
00222 lastTH=pEn;
00223 }
00224 break;
00225 }
00226 #ifdef debug
00227 G4cout<<"---G4QNeutronElasticCrossSection::GetCrosSec:pPDG="<<pPDG<<",i="<<i<<",N="
00228 <<colN[i]<<",Z["<<i<<"]="<<colZ[i]<<G4endl;
00229
00230 #endif
00231 }
00232 if(!in)
00233 {
00234 #ifdef debug
00235 G4cout<<"G4QNElCrS::GetCrosSec:CalcNew P="<<pMom<<",f="<<fCS<<",lastI="<<lastI<<G4endl;
00236 #endif
00238 lastCS=CalculateCrossSection(fCS,0,lastI,pPDG,lastZ,lastN,pMom);//calculate&create
00239 if(lastCS<=0.)
00240 {
00241 lastTH = ThresholdEnergy(tgZ, tgN);
00242 #ifdef debug
00243 G4cout<<"G4QNeutronElCrosSect::GetCrossSect: NewThresh="<<lastTH<<",T="<<pEn<<G4endl;
00244 #endif
00245 if(pEn>lastTH)
00246 {
00247 #ifdef debug
00248 G4cout<<"G4QNeutElCS::GetCS: First T="<<pEn<<"(CS=0) > Threshold="<<lastTH<<G4endl;
00249 #endif
00250 lastTH=pEn;
00251 }
00252 }
00253 #ifdef debug
00254 G4cout<<"G4QNElCrS::GetCrosSec: New CS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
00255
00256 #endif
00257 colN.push_back(tgN);
00258 colZ.push_back(tgZ);
00259 colP.push_back(pMom);
00260 colTH.push_back(lastTH);
00261 colCS.push_back(lastCS);
00262 #ifdef debug
00263 G4cout<<"G4QNElCrS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
00264
00265 #endif
00266 return lastCS*millibarn;
00267 }
00268 else
00269 {
00270 #ifdef debug
00271 G4cout<<"G4QNeutronElasticCrossSection::GetCS: Update lastI="<<lastI<<G4endl;
00272 #endif
00273 colP[lastI]=pMom;
00274 colCS[lastI]=lastCS;
00275 }
00276 #ifdef debug
00277 G4cout<<"G4QNElCS::GetCrSec:End,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
00278
00279 G4cout<<"G4QNeutronElasticCrossSection::GetCrSec:***End***, onlyCS="<<onlyCS<<G4endl;
00280 #endif
00281 return lastCS*millibarn;
00282 }
00283
00284
00285
00286 G4double G4QNeutronElasticCrossSection::CalculateCrossSection(G4bool CS, G4int F,G4int I,
00287 G4int PDG, G4int tgZ, G4int tgN, G4double pIU)
00288 {
00289
00290 static std::vector <G4double> PIN;
00291
00292 G4double pMom=pIU/GeV;
00293 onlyCS=CS;
00294 #ifdef debug
00295 G4cout<<"G4QNeutronElasticCrosS::CalcCS:->onlyCS="<<onlyCS<<",F="<<F<<",p="<<pIU<<G4endl;
00296 #endif
00297 lastLP=std::log(pMom);
00298 if(F)
00299 {
00300 if(F<0)
00301 {
00302 lastPIN = PIN[I];
00303 lastPAR = PAR[I];
00304 lastCST = CST[I];
00305 lastSST = SST[I];
00306 lastS1T = S1T[I];
00307 lastB1T = B1T[I];
00308 lastS2T = S2T[I];
00309 lastB2T = B2T[I];
00310 lastS3T = S3T[I];
00311 lastB3T = B3T[I];
00312 lastS4T = S4T[I];
00313 lastB4T = B4T[I];
00314 #ifdef debug
00315 G4cout<<"G4QNElasticCS::CalcCS: DB is updated for I="<<I<<",*,PIN4="<<PIN[4]<<G4endl;
00316 #endif
00317 }
00318 #ifdef debug
00319 G4cout<<"G4QNeutronElasticCrosS::CalcCS:*read*, LP="<<lastLP<<",PIN="<<lastPIN<<G4endl;
00320 #endif
00321 if(lastLP>lastPIN && lastLP<lPMax)
00322 {
00323 lastPIN=GetPTables(lastLP,lastPIN,PDG,tgZ,tgN);
00324 #ifdef debug
00325 G4cout<<"G4QNElCrS::CalcCS:updated(I),LP="<<lastLP<<"<IN["<<I<<"]="<<lastPIN<<G4endl;
00326 #endif
00327 PIN[I]=lastPIN;
00328 }
00329 }
00330 else
00331 {
00332 lastPAR = new G4double[nPoints];
00333 lastPAR[nLast]=0;
00334 lastCST = new G4double[nPoints];
00335 lastSST = new G4double[nPoints];
00336 lastS1T = new G4double[nPoints];
00337 lastB1T = new G4double[nPoints];
00338 lastS2T = new G4double[nPoints];
00339 lastB2T = new G4double[nPoints];
00340 lastS3T = new G4double[nPoints];
00341 lastB3T = new G4double[nPoints];
00342 lastS4T = new G4double[nPoints];
00343 lastB4T = new G4double[nPoints];
00344 #ifdef debug
00345 G4cout<<"G4QNeutronElasticCrosS::CalcCS:*ini*,lastLP="<<lastLP<<",min="<<lPMin<<G4endl;
00346 #endif
00347 lastPIN = GetPTables(lastLP,lPMin,PDG,tgZ,tgN);
00348 #ifdef debug
00349 G4cout<<"G4QNElCS::CalcCS:i,Z="<<tgZ<<",N="<<tgN<<",PDG="<<PDG<<",LP"<<lastPIN<<G4endl;
00350 #endif
00351 PIN.push_back(lastPIN);
00352 PAR.push_back(lastPAR);
00353 CST.push_back(lastCST);
00354 SST.push_back(lastSST);
00355 S1T.push_back(lastS1T);
00356 B1T.push_back(lastB1T);
00357 S2T.push_back(lastS2T);
00358 B2T.push_back(lastB2T);
00359 S3T.push_back(lastS3T);
00360 B3T.push_back(lastB3T);
00361 S4T.push_back(lastS4T);
00362 B4T.push_back(lastB4T);
00363 }
00364
00365 #ifdef debug
00366 G4cout<<"G4QNElCrS::CalcCS:?update?,LP="<<lastLP<<",IN="<<lastPIN<<",ML="<<lPMax<<G4endl;
00367 #endif
00368 if(lastLP>lastPIN && lastLP<lPMax)
00369 {
00370 lastPIN = GetPTables(lastLP,lastPIN,PDG,tgZ,tgN);
00371 #ifdef debug
00372 G4cout<<"G4QNeutronElCrS::CalcCS:*updated(O)*, LP="<<lastLP<<" < IN="<<lastPIN<<G4endl;
00373 #endif
00374 }
00375 #ifdef debug
00376 G4cout<<"G4QNEltCrS::CalcCS: lastLP="<<lastLP<<",lPM="<<lPMin<<",lPIN="<<lastPIN<<G4endl;
00377 #endif
00378 if(!onlyCS) lastTM=GetQ2max(PDG, tgZ, tgN, pMom);
00379 #ifdef debug
00380 G4cout<<"G4QNeutElastCroSec::CalcCS:oCS="<<onlyCS<<",-t="<<lastTM<<",p="<<lastLP<<G4endl;
00381 #endif
00382 if(lastLP>lPMin && lastLP<=lastPIN)
00383 {
00384 if(lastLP==lastPIN)
00385 {
00386 G4double shift=(lastLP-lPMin)/dlnP+.000001;
00387 G4int blast=static_cast<int>(shift);
00388 if(blast<0 || blast>=nLast) G4cout<<"G4QNeutElCS::CCS:b="<<blast<<","<<nLast<<G4endl;
00389 lastSIG = lastCST[blast];
00390 if(!onlyCS)
00391 {
00392 theSS = lastSST[blast];
00393 theS1 = lastS1T[blast];
00394 theB1 = lastB1T[blast];
00395 theS2 = lastS2T[blast];
00396 theB2 = lastB2T[blast];
00397 theS3 = lastS3T[blast];
00398 theB3 = lastB3T[blast];
00399 theS4 = lastS4T[blast];
00400 theB4 = lastB4T[blast];
00401 }
00402 #ifdef debug
00403 G4cout<<"G4QNeutronElasticCrossSection::CalcCS:(E)S1="<<theS1<<",B1="<<theB1<<G4endl;
00404 #endif
00405 }
00406 else
00407 {
00408 G4double shift=(lastLP-lPMin)/dlnP;
00409 G4int blast=static_cast<int>(shift);
00410 if(blast<0) blast=0;
00411 if(blast>=nLast) blast=nLast-1;
00412 shift-=blast;
00413 G4int lastL=blast+1;
00414 G4double SIGL=lastCST[blast];
00415 lastSIG= SIGL+shift*(lastCST[lastL]-SIGL);
00416 #ifdef debug
00417 G4cout<<"G4QNeutronElCS::CalcCrossSection: Sig="<<lastSIG<<", P="<<pMom<<", Z="<<tgZ
00418 <<", N="<<tgN<<", PDG="<<PDG<<", onlyCS="<<onlyCS<<G4endl;
00419 #endif
00420 if(!onlyCS)
00421 {
00422 G4double SSTL=lastSST[blast];
00423 theSS=SSTL+shift*(lastSST[lastL]-SSTL);
00424 G4double S1TL=lastS1T[blast];
00425 theS1=S1TL+shift*(lastS1T[lastL]-S1TL);
00426 G4double B1TL=lastB1T[blast];
00427 #ifdef debug
00428 G4cout<<"G4QNeutronElCrS::CalcCrossSection:bl="<<blast<<",ls="<<lastL<<",SL="<<S1TL
00429 <<",SU="<<lastS1T[lastL]<<",BL="<<B1TL<<",BU="<<lastB1T[lastL]<<G4endl;
00430 #endif
00431 theB1=B1TL+shift*(lastB1T[lastL]-B1TL);
00432 G4double S2TL=lastS2T[blast];
00433 theS2=S2TL+shift*(lastS2T[lastL]-S2TL);
00434 G4double B2TL=lastB2T[blast];
00435 theB2=B2TL+shift*(lastB2T[lastL]-B2TL);
00436 G4double S3TL=lastS3T[blast];
00437 theS3=S3TL+shift*(lastS3T[lastL]-S3TL);
00438 #ifdef debug
00439 G4cout<<"G4QNElCS::CCS: s3l="<<S3TL<<",sh3="<<shift<<",s3h="<<lastS3T[lastL]<<",b="
00440 <<blast<<",l="<<lastL<<G4endl;
00441 #endif
00442 G4double B3TL=lastB3T[blast];
00443 theB3=B3TL+shift*(lastB3T[lastL]-B3TL);
00444 G4double S4TL=lastS4T[blast];
00445 theS4=S4TL+shift*(lastS4T[lastL]-S4TL);
00446 #ifdef debug
00447 G4cout<<"G4QNElCS::CCS: s4l="<<S4TL<<",sh4="<<shift<<",s4h="<<lastS4T[lastL]<<",b="
00448 <<blast<<",l="<<lastL<<G4endl;
00449 #endif
00450 G4double B4TL=lastB4T[blast];
00451 theB4=B4TL+shift*(lastB4T[lastL]-B4TL);
00452 }
00453 #ifdef debug
00454 G4cout<<"G4QNeutronElasticCrossSection::CalcCS:(I)S1="<<theS1<<",B1="<<theB1<<G4endl;
00455 #endif
00456 }
00457 }
00458 else lastSIG=GetTabValues(lastLP, PDG, tgZ, tgN);
00459 if(lastSIG<0.) lastSIG = 0.;
00460 #ifdef debug
00461 G4cout<<"G4QNeutronElasticCrossSection::CalculateCS: END, onlyCS="<<onlyCS<<G4endl;
00462 #endif
00463 return lastSIG;
00464 }
00465
00466
00467 G4double G4QNeutronElasticCrossSection::GetPTables(G4double LP, G4double ILP, G4int PDG,
00468 G4int tgZ, G4int tgN)
00469 {
00470
00471 static const G4double pwd=2727;
00472 const G4int n_npel=24;
00473 const G4int n_ppel=32;
00474
00475 G4double np_el[n_npel]={12.,.05,.0001,5.,.35,6.75,.14,19.,.6,6.75,.14,13.,.14,.6,.00013,
00476 75.,.001,7.2,4.32,.012,2.5,0.0,12.,.34};
00477
00478
00479 G4double pp_el[n_ppel]={2.865,18.9,.6461,3.,9.,.425,.4276,.0022,5.,74.,3.,3.4,.2,.17,
00480 .001,8.,.055,3.64,5.e-5,4000.,1500.,.46,1.2e6,3.5e6,5.e-5,1.e10,
00481 8.5e8,1.e10,1.1,3.4e6,6.8e6,0.};
00482
00483
00484
00485 static const G4int N0=1;
00486 static const G4double pZ0N1[7]={0., 0., 0., 0., 0., 0., 0.};
00487 static const std::pair<G4int, const G4double*> Z0N1(1,pZ0N1);
00488 static const std::pair<G4int, const G4double*> Z0[N0]={Z0N1};
00489
00490 static const G4int N1=3;
00491 static const G4double pZ1N0[7]={0., 0., 0., 0., 0., 0., 0.};
00492 static const std::pair<G4int, const G4double*> Z1N0(0,pZ1N0);
00493 static const G4double pZ1N1[7]={6.E-5, 4., .055, 1.1E-8, .008, 1.2E-8, .019};
00494 static const std::pair<G4int, const G4double*> Z1N1(1,pZ1N1);
00495 static const G4double pZ1N2[7]={6.E-5, 2.2, .051, 1.E-8, .04, 9.E-8, .0075};
00496 static const std::pair<G4int, const G4double*> Z1N2(2,pZ1N2);
00497 static const std::pair<G4int, const G4double*> Z1[N1]={Z1N0, Z1N1, Z1N2};
00498
00499 static const G4int N2=2;
00500 static const G4double pZ2N1[7]={6.E-5, 3., .06, 4.E-9, .03, 7.E-8, .015};
00501 static const std::pair<G4int, const G4double*> Z2N1(1,pZ2N1);
00502 static const G4double pZ2N2[7]={3.E-4, .23, 1., 1.5E-9, 2.E-02, 1.E-8, .003};
00503 static const std::pair<G4int, const G4double*> Z2N2(2,pZ2N2);
00504 static const std::pair<G4int, const G4double*> Z2[N2]={Z2N1, Z2N2};
00505
00506 static const G4int N3=2;
00507 static const G4double pZ3N3[7]={3.1E-7, 1.7, 1.3E-4, 1.E-8, .02, 1.1E-7, .0023};
00508 static const std::pair<G4int, const G4double*> Z3N1(3,pZ3N3);
00509 static const G4double pZ3N4[7]={1.3E-6, 1.8, 7.6E-4, 9.E-9, .03, 1.E-7, .0029};
00510 static const std::pair<G4int, const G4double*> Z3N2(4,pZ3N4);
00511 static const std::pair<G4int, const G4double*> Z3[N3]={Z3N1, Z3N2};
00512
00513 static const G4int N4=2;
00514 static const G4double pZ4N3[7]={2.E-4, 1.4, 2.7, 0., .02, 5.E-8, 0.};
00515 static const std::pair<G4int, const G4double*> Z4N3(3,pZ4N3);
00516 static const G4double pZ4N5[7]={1.E-6, 5.7, .0011, 3.E-9, .007, 2.E-8, .016};
00517 static const std::pair<G4int, const G4double*> Z4N5(5,pZ4N5);
00518 static const std::pair<G4int, const G4double*> Z4[N4]={Z4N3,Z4N5};
00519
00520 static const G4int N5=2;
00521 static const G4double pZ5N5[7]={8.E-7, 5., 3.4E-4, 7.E-9, 1.E-02, 1.E-07, .0053};
00522 static const std::pair<G4int, const G4double*> Z5N5(5,pZ5N5);
00523 static const G4double pZ5N6[7]={4.8E-6, 6.6, .0035, 4.E-9, .003, 1.E-8, .012};
00524 static const std::pair<G4int, const G4double*> Z5N6(6,pZ5N6);
00525 static const std::pair<G4int, const G4double*> Z5[N5]={Z5N5, Z5N6};
00526
00527 static const G4int N6=2;
00528 static const G4double pZ6N6[7]={4.9E-6, 6.6, .0035, 4.E-9, .002, 6.E-9, .011};
00529 static const std::pair<G4int, const G4double*> Z6N6(6,pZ6N6);
00530 static const G4double pZ6N7[7]={4.9E-6, 6.6, .0035, 4.E-9, .002, 6.E-9, .011};
00531 static const std::pair<G4int, const G4double*> Z6N7(7,pZ6N7);
00532 static const std::pair<G4int, const G4double*> Z6[N6]={Z6N6, Z6N7};
00533
00534 static const G4int N7=2;
00535 static const G4double pZ7N7[7]={4.9E-6, 1.6, .03, .4E-9, .02, 6.E-8, .021};
00536 static const std::pair<G4int, const G4double*> Z7N7(7,pZ7N7);
00537 static const G4double pZ7N8[7]={2.5E-6, 5., .0021, 2.5E-9, .015, 5.E-8, .009};
00538 static const std::pair<G4int, const G4double*> Z7N8(8,pZ7N8);
00539 static const std::pair<G4int, const G4double*> Z7[N7]={Z7N7, Z7N8};
00540
00541 static const G4int N8=3;
00542 static const G4double pZ8N8[7]={2.5E-6, 5.3, .0018, 3.E-9, .01, 1.5E-8, .0075};
00543 static const std::pair<G4int, const G4double*> Z8N8(8,pZ8N8);
00544 static const G4double pZ8N9[7]={1.4E-6, 2.1, .0025, 1.3E-9, .02, 1.3E-7, .0072};
00545 static const std::pair<G4int, const G4double*> Z8N9(9,pZ8N9);
00546 static const G4double pZ8N10[7]={1.4E-6, 2.1, .0025, 1.3E-9, .02, 1.3E-7, .0072};
00547 static const std::pair<G4int, const G4double*> Z8N10(10,pZ8N10);
00548 static const std::pair<G4int, const G4double*> Z8[N8]={Z8N8, Z8N9, Z8N10};
00549
00550 static const G4int N9=1;
00551 static const G4double pZ9N10[7]={1.4E-6, 7.5, 6.7E-4, 4.E-9, 2.E-5, 7.E-12, .0066};
00552 static const std::pair<G4int, const G4double*> Z9N10(10,pZ9N10);
00553 static const std::pair<G4int, const G4double*> Z9[N9]={Z9N10};
00554
00555 static const G4int N10=3;
00556 static const G4double pZ10N10[7]={1.4E-5, 7., .01, 0., 3.E-11, 7.E-24, .12};
00557 static const std::pair<G4int, const G4double*> Z10N10(10,pZ10N10);
00558 static const G4double pZ10N11[7]={1.4E-6, 7.5, 6.7E-4, 4.E-9, 2.E-5, 7.E-12, .0066};
00559 static const std::pair<G4int, const G4double*> Z10N11(11,pZ10N11);
00560 static const G4double pZ10N12[7]={1.4E-5, 7., .01, 0., 3.E-11, 7.E-24, .12};
00561 static const std::pair<G4int, const G4double*> Z10N12(12,pZ10N12);
00562 static const std::pair<G4int, const G4double*> Z10[N10]={Z10N10, Z10N11, Z10N12};
00563
00564 static const G4int N11=2;
00565 static const G4double pZ11N11[7]={1.4E-5, 7., .01, 0., 3.E-11, 7.E-24, .12};
00566 static const std::pair<G4int, const G4double*> Z11N11(11,pZ11N11);
00567 static const G4double pZ11N12[7]={1.4E-6, 7.6, 6.E-4, 5.E-9, 7.E-9, 3.E-18, .0056};
00568 static const std::pair<G4int, const G4double*> Z11N12(12,pZ11N12);
00569 static const std::pair<G4int, const G4double*> Z11[N11]={Z11N11, Z11N12};
00570
00571 static const G4int N12=3;
00572 static const G4double pZ12N12[7]={8.E-7, 3., .001, 1.8E-9, .0015, .2E-9, .006};
00573 static const std::pair<G4int, const G4double*> Z12N12(12,pZ12N12);
00574 static const G4double pZ12N13[7]={8.E-7, 7., 3.E-4, 6.E-9, .006, 4.E-8, .0042};
00575 static const std::pair<G4int, const G4double*> Z12N13(13,pZ12N13);
00576 static const G4double pZ12N14[7]={1.2E-6, 6.8, 5.E-4, 5.E-9, .007, 2.E-8, .0044};
00577 static const std::pair<G4int, const G4double*> Z12N14(14,pZ12N14);
00578 static const std::pair<G4int, const G4double*> Z12[N12]={Z12N12, Z12N13, Z12N14};
00579
00580 static const G4int N13=1;
00581 static const G4double pZ13N14[7]={3.E-7, 5., 8.4E-5, 7.E-9, .008, 2.E-8, .0022};
00582 static const std::pair<G4int, const G4double*> Z13N14(14,pZ13N14);
00583 static const std::pair<G4int, const G4double*> Z13[N13]={Z13N14};
00584
00585 static const G4int N14=3;
00586 static const G4double pZ14N14[7]={1.2E-6, 6., 4.E-4, 6.E-9, .012, 8.E-8, .0029};
00587 static const std::pair<G4int, const G4double*> Z14N14(14,pZ14N14);
00588 static const G4double pZ14N15[7]={2.4E-6, 4., .0016, 3.E-9, .018, 6.E-8, .0037};
00589 static const std::pair<G4int, const G4double*> Z14N15(15,pZ14N15);
00590 static const G4double pZ14N16[7]={6.E-7, 4., 3.7E-4, 3.E-9, .018, 6.E-8, .0036};
00591 static const std::pair<G4int, const G4double*> Z14N16(16,pZ14N16);
00592 static const std::pair<G4int, const G4double*> Z14[N14]={Z14N14, Z14N15, Z14N16};
00593
00594 static const G4int N15=1;
00595 static const G4double pZ15N16[7]={6.E-7, 3., 8.2E-4, 1.4E-9, .03, 8.E-8, .0059};
00596 static const std::pair<G4int, const G4double*> Z15N16(16,pZ15N16);
00597 static const std::pair<G4int, const G4double*> Z15[N15]={Z15N16};
00598
00599 static const G4int N16=4;
00600 static const G4double pZ16N16[7]={6.E-7, 3., 1.9E-4, 5.E-9, .03, 6.E-8, .0013};
00601 static const std::pair<G4int, const G4double*> Z16N16(16,pZ16N16);
00602 static const G4double pZ16N17[7]={2.4E-6, 3., .0023, 2.E-9, .03, 6.5E-8, .004};
00603 static const std::pair<G4int, const G4double*> Z16N17(17,pZ16N17);
00604 static const G4double pZ16N18[7]={2.4E-6, 1.6, .0031, 1.4E-9, .03, 4.E-08, .0028};
00605 static const std::pair<G4int, const G4double*> Z16N18(18,pZ16N18);
00606 static const G4double pZ16N20[7]={2.4E-6, 3.1, .0017, 2.5E-9, .03, 5.E-08, .0029};
00607 static const std::pair<G4int, const G4double*> Z16N20(20,pZ16N20);
00608 static const std::pair<G4int, const G4double*> Z16[N16]={Z16N16, Z16N17, Z16N18, Z16N20};
00609
00610 static const G4int N17=2;
00611 static const G4double pZ17N18[7]={1.2E-7, .04, .062, 3.E-12, 3.E-02, 3.E-08, .027};
00612 static const std::pair<G4int, const G4double*> Z17N18(18,pZ17N18);
00613 static const G4double pZ17N20[7]={1.2E-7, 2., 6.8E-5, 2.7E-9, .03, 4.E-8, .0015};
00614 static const std::pair<G4int, const G4double*> Z17N20(20,pZ17N20);
00615 static const std::pair<G4int, const G4double*> Z17[N17]={Z17N18, Z17N20};
00616
00617 static const G4int N18=3;
00618 static const G4double pZ18N18[7]={1.2E-7, .52, .017, 1.1E-11, .03, 3.E-8, .095};
00619 static const std::pair<G4int, const G4double*> Z18N18(18,pZ18N18);
00620 static const G4double pZ18N20[7]={1.2E-07, .09, .012, 1.8E-11, .03, 3.E-8, .011};
00621 static const std::pair<G4int, const G4double*> Z18N20(20,pZ18N20);
00622 static const G4double pZ18N22[7]={1.2E-7, .65, 1.2E-4, 1.5E-9, .03, 5.E-8, 8.E-4};
00623 static const std::pair<G4int, const G4double*> Z18N22(22,pZ18N22);
00624 static const std::pair<G4int, const G4double*> Z18[N18]={Z18N18, Z18N20, Z18N22};
00625
00626 static const G4int N19=3;
00627 static const G4double pZ19N20[7]={1.2E-7, 1.3, 1.9E-4, .9E-9, .04, 5.5E-8, .0026};
00628 static const std::pair<G4int, const G4double*> Z19N20(20,pZ19N20);
00629 static const G4double pZ19N21[7]={1.6E-7, 1.2, 3.7E-4, .8E-9, .04, 6.5E-8, .0034};
00630 static const std::pair<G4int, const G4double*> Z19N21(21,pZ19N21);
00631 static const G4double pZ19N22[7]={6.E-8, 1.3, 1.2E-4, .9E-9, .04, 6.E-8, .0031};
00632 static const std::pair<G4int, const G4double*> Z19N22(22,pZ19N22);
00633 static const std::pair<G4int, const G4double*> Z19[N19]={Z19N20, Z19N21, Z19N22};
00634
00635 static const G4int N20=6;
00636 static const G4double pZ20N20[7]={2.4E-7, 3.4, 2.1E-4, 1.5E-9, .035, 6.E-8, .0037};
00637 static const std::pair<G4int, const G4double*> Z20N20(20,pZ20N20);
00638 static const G4double pZ20N22[7]={6.E-8, 2.7, 2.7E-5, 3.E-9, .035, 6.E-8, .0014};
00639 static const std::pair<G4int, const G4double*> Z20N22(22,pZ20N22);
00640 static const G4double pZ20N23[7]={1.5E-8, 1.8, 3.4E-5, .6E-9, .04, 6.E-8, .0049};
00641 static const std::pair<G4int, const G4double*> Z20N23(23,pZ20N23);
00642 static const G4double pZ20N24[7]={3.E-6, 5., .002, 2.E-9, .03, 7.E-8, .0038};
00643 static const std::pair<G4int, const G4double*> Z20N24(24,pZ20N24);
00644 static const G4double pZ20N26[7]={1.7E-5, 18., .0027, 1.E-8, 2.E-7, 7.E-17, .0047};
00645 static const std::pair<G4int, const G4double*> Z20N26(26,pZ20N26);
00646 static const G4double pZ20N28[7]={7.6E-6, .4, .07, .13E-9, .05, 4.E-8, .0042};
00647 static const std::pair<G4int, const G4double*> Z20N28(28,pZ20N28);
00648 static const std::pair<G4int, const G4double*> Z20[N20]={Z20N20, Z20N22, Z20N23,
00649 Z20N24, Z20N26, Z20N28};
00650
00651 static const G4int N21=1;
00652 static const G4double pZ21N24[7]={3.6E-9, 1.5, 5.2E-5, .1E-9, .05, 1.E-7, .025};
00653 static const std::pair<G4int, const G4double*> Z21N24(24,pZ21N24);
00654 static const std::pair<G4int, const G4double*> Z21[N21]={Z21N24};
00655
00656 static const G4int N22=5;
00657 static const G4double pZ22N24[7]={2.8E-8, 1.8, 5.6E-5, .6E-9, .05, 8.E-8, .0042};
00658 static const std::pair<G4int, const G4double*> Z22N24(24,pZ22N24);
00659 static const G4double pZ22N25[7]={3.1E-9, 1.6, 6.E-6, .8E-9, .04, 8.E-8, .0036};
00660 static const std::pair<G4int, const G4double*> Z22N25(25,pZ22N25);
00661 static const G4double pZ22N26[7]={3.E-9, 4., 3.2E-6, 1.4E-9, .05, 2.E-7, .0048};
00662 static const std::pair<G4int, const G4double*> Z22N26(26,pZ22N26);
00663 static const G4double pZ22N27[7]={1.E-8, 2., 3.4E-6, 4.5E-9, .05, 8.E-8, 7.7E-4};
00664 static const std::pair<G4int, const G4double*> Z22N27(27,pZ22N27);
00665 static const G4double pZ22N28[7]={4.E-7, 4., 3.7E-4, 1.E-09, .05, 1.E-7, .0041};
00666 static const std::pair<G4int, const G4double*> Z22N28(28,pZ22N28);
00667 static const std::pair<G4int, const G4double*> Z22[N22]={Z22N24, Z22N25, Z22N26,
00668 Z22N27, Z22N28};
00669
00670 static const G4int N23=2;
00671 static const G4double pZ23N27[7]={.3E-9, 2., 8.E-7, .55E-9, .07, 1.7E-7, .0055};
00672 static const std::pair<G4int, const G4double*> Z23N27(27,pZ23N27);
00673 static const G4double pZ23N28[7]={.3E-9, 2., 8.E-7, .55E-9, .07, 1.7E-7, .0055};
00674 static const std::pair<G4int, const G4double*> Z23N28(28,pZ23N28);
00675 static const std::pair<G4int, const G4double*> Z23[N23]={Z23N27, Z23N28};
00676
00677 static const G4int N24=4;
00678 static const G4double pZ24N26[7]={1.2E-9, 2.8, 1.E-6, 1.7E-9, .07, 1.7E-7, .0026};
00679 static const std::pair<G4int, const G4double*> Z24N26(26,pZ24N26);
00680 static const G4double pZ24N28[7]={4.4E-6, 11., .0012, 5.E-9, .04, 3.E-7, .0032};
00681 static const std::pair<G4int, const G4double*> Z24N28(28,pZ24N28);
00682 static const G4double pZ24N29[7]={1.8E-9, 2.4, 6.3E-6, .5E-9, .07, 2.E-7, .0085};
00683 static const std::pair<G4int, const G4double*> Z24N29(29,pZ24N29);
00684 static const G4double pZ24N30[7]={4.8E-8, 2.8, 4.4E-5, 1.4E-9, .07, 2.E-7, .0027};
00685 static const std::pair<G4int, const G4double*> Z24N30(30,pZ24N30);
00686 static const std::pair<G4int, const G4double*> Z24[N24]={Z24N26, Z24N28, Z24N29, Z24N30};
00687
00688 static const G4int N25=1;
00689 static const G4double pZ25N30[7]={6.5E-11, 1.4, 1.E-7, .8E-9, .07, 1.7E-7, .0022};
00690 static const std::pair<G4int, const G4double*> Z25N30(30,pZ25N30);
00691 static const std::pair<G4int, const G4double*> Z25[N25]={Z25N30};
00692
00693 static const G4int N26=4;
00694 static const G4double pZ26N28[7]={3.9E-8, 5., 1.7E-5, 3.E-9, .07, 3.E-7, .0023};
00695 static const std::pair<G4int, const G4double*> Z26N28(28,pZ26N28);
00696 static const G4double pZ26N30[7]={5.E-9, .4, 1.5E-4, 4.E-11, .1, 3.E-7, .012};
00697 static const std::pair<G4int, const G4double*> Z26N30(30,pZ26N30);
00698 static const G4double pZ26N31[7]={.5E-9, .5, 2.6E-6, .3E-9, .11, 5.E-7, .0027};
00699 static const std::pair<G4int, const G4double*> Z26N31(31,pZ26N31);
00700 static const G4double pZ26N32[7]={1.E-7, 3.1, 1.E-4, 1.3E-9, .11, 5.E-7, .0031};
00701 static const std::pair<G4int, const G4double*> Z26N32(32,pZ26N32);
00702 static const std::pair<G4int, const G4double*> Z26[N26]={Z26N28, Z26N30, Z26N31, Z26N32};
00703
00704 static const G4int N27=2;
00705 static const G4double pZ27N31[7]={4.E-7, 3., .004, 0., .11, 4.5E-7, .07};
00706 static const std::pair<G4int, const G4double*> Z27N31(31,pZ27N31);
00707 static const G4double pZ27N32[7]={4.E-7, 5., 5.E-4, 1.2E-9, .13, 6.E-7, .006};
00708 static const std::pair<G4int, const G4double*> Z27N32(32,pZ27N32);
00709 static const std::pair<G4int, const G4double*> Z27[N27]={Z27N32, Z27N31};
00710
00711 static const G4int N28=6;
00712 static const G4double pZ28N30[7]={1.E-7, 2.5, .001, .14E-9, .13, 6.E-7, .025};
00713 static const std::pair<G4int, const G4double*> Z28N30(30,pZ28N30);
00714 static const G4double pZ28N31[7]={1.E-7, 19., 1.2E-5, 1.E-8, 4.E-12, 3.E-22, .0024};
00715 static const std::pair<G4int, const G4double*> Z28N31(31,pZ28N31);
00716 static const G4double pZ28N32[7]={1.E-8, 2.5, 3.9E-6, 3.5E-9, .13, 6.E-7, .001};
00717 static const std::pair<G4int, const G4double*> Z28N32(32,pZ28N32);
00718 static const G4double pZ28N33[7]={5.E-9, 2.6, 1.5E-5, .42E-9, .13, 7.E-7, .008};
00719 static const std::pair<G4int, const G4double*> Z28N33(33,pZ28N33);
00720 static const G4double pZ28N34[7]={.24E-9, 2., 1.2E-6, .25E-9, .13, 6.E-7, .0094};
00721 static const std::pair<G4int, const G4double*> Z28N34(34,pZ28N34);
00722 static const G4double pZ28N36[7]={1.E-8, 3., 5.5E-8, 2.8E-7, .12, 6.E-7, 1.6E-5};
00723 static const std::pair<G4int, const G4double*> Z28N36(36,pZ28N36);
00724 static const std::pair<G4int, const G4double*> Z28[N28]={Z28N30, Z28N31, Z28N32, Z28N33,
00725 Z28N34, Z28N36};
00726
00727 static const G4int N29=2;
00728 static const G4double pZ29N34[7]={1.1E-7, 3.5, 1.6E-4, .9E-9, .13, 7.E-7, .005};
00729 static const std::pair<G4int, const G4double*> Z29N34(34,pZ29N34);
00730 static const G4double pZ29N36[7]={1.1E-7, 3.5, 4.3E-4, .3E-9, .13, 7.E-7, .013};
00731 static const std::pair<G4int, const G4double*> Z29N36(36,pZ29N36);
00732 static const std::pair<G4int, const G4double*> Z29[N29]={Z29N34, Z29N36};
00733
00734 static const G4int N30=5;
00735 static const G4double pZ30N34[7]={1.1E-7, 4., 1.2E-4, 1.2E-9, .17, 7.E-7, .004};
00736 static const std::pair<G4int, const G4double*> Z30N34(34,pZ30N34);
00737 static const G4double pZ30N36[7]={1.1E-7, 4., 1.2E-4, 1.2E-9, .17, 7.E-7, .004};
00738 static const std::pair<G4int, const G4double*> Z30N36(36,pZ30N36);
00739 static const G4double pZ30N37[7]={1.1E-7, 4., 1.2E-4, 1.2E-9, .17, 7.E-7, .004};
00740 static const std::pair<G4int, const G4double*> Z30N37(37,pZ30N37);
00741 static const G4double pZ30N38[7]={1.1E-7, 4., 1.2E-4, 1.2E-9, .17, 7.E-7, .004};
00742 static const std::pair<G4int, const G4double*> Z30N38(38,pZ30N38);
00743 static const G4double pZ30N40[7]={1.1E-7, 4., 1.2E-4, 1.2E-9, .17, 7.E-7, .004};
00744 static const std::pair<G4int, const G4double*> Z30N40(40,pZ30N40);
00745 static const std::pair<G4int, const G4double*> Z30[N30]={Z30N34, Z30N36, Z30N37,
00746 Z30N38, Z30N40};
00747
00748 static const G4int N31=2;
00749 static const G4double pZ31N38[7]={5.E-8, 3.7, 1.1E-4, .55E-9, .17, 8.4E-7, .0076};
00750 static const std::pair<G4int, const G4double*> Z31N38(38,pZ31N38);
00751 static const G4double pZ31N40[7]={1.E-8, 3.1, 1.7E-5, .7E-9, .17, 9.E-7, .0048};
00752 static const std::pair<G4int, const G4double*> Z31N40(40,pZ31N40);
00753 static const std::pair<G4int, const G4double*> Z31[N31]={Z31N38, Z31N40};
00754
00755 static const G4int N32=5;
00756 static const G4double pZ32N38[7]={5.E-5, 4., .17, .35E-9, .17, 9.E-7, .013};
00757 static const std::pair<G4int, const G4double*> Z32N38(38,pZ32N38);
00758 static const G4double pZ32N40[7]={5.E-7, 4.4, .001, .6E-9, .17, 9.E-7, .008};
00759 static const std::pair<G4int, const G4double*> Z32N40(40,pZ32N40);
00760 static const G4double pZ32N41[7]={5.E-9, 3., 8.E-6, .7E-9, .17, 1.E-6, .0043};
00761 static const std::pair<G4int, const G4double*> Z32N41(41,pZ32N41);
00762 static const G4double pZ32N42[7]={1.E-7, 4.2, 1.7E-4, .7E-9, .17, 1.E-6, .0065};
00763 static const std::pair<G4int, const G4double*> Z32N42(42,pZ32N42);
00764 static const G4double pZ32N44[7]={1.E-6, 4.6, .0018, .6E-9, .17, 1.E-6, .0073};
00765 static const std::pair<G4int, const G4double*> Z32N44(44,pZ32N44);
00766 static const std::pair<G4int, const G4double*> Z32[N32]={Z32N38, Z32N40, Z32N41,
00767 Z32N42, Z32N44};
00768
00769 static const G4int N33=2;
00770 static const G4double pZ33N41[7]={1.E-8, 3.4, 1.5E-5, .72E-9, .17, 1.E-6, .0045};
00771 static const std::pair<G4int, const G4double*> Z33N41(41,pZ33N41);
00772 static const G4double pZ33N42[7]={1.E-8, 4.1, 1.3E-5, .75E-9, .2, 1.2E-6, .0048};
00773 static const std::pair<G4int, const G4double*> Z33N42(42,pZ33N42);
00774 static const std::pair<G4int, const G4double*> Z33[N33]={Z33N41, Z33N42};
00775
00776 static const G4int N34=7;
00777 static const G4double pZ34N40[7]={6.E-8, 7.2, 6.E-5, 1.E-9, .32, 2.E-6, .0063};
00778 static const std::pair<G4int, const G4double*> Z34N40(40,pZ34N40);
00779 static const G4double pZ34N42[7]={4.E-5, 7.4, .1, .43E-9, .34, 2.1E-6, .016};
00780 static const std::pair<G4int, const G4double*> Z34N42(42,pZ34N42);
00781 static const G4double pZ34N43[7]={1.E-7, 6.2, 1.4E-4, .9E-9, .34, 2.1E-6, .0075};
00782 static const std::pair<G4int, const G4double*> Z34N43(43,pZ34N43);
00783 static const G4double pZ34N44[7]={1.E-7, 6.6, 1.3E-4, .9E-9, .34, 2.1E-6, .0075};
00784 static const std::pair<G4int, const G4double*> Z34N44(44,pZ34N44);
00785 static const G4double pZ34N45[7]={5.E-8, 6.6, 4.8E-5, 1.2E-9, .4, 2.6E-6, .0055};
00786 static const std::pair<G4int, const G4double*> Z34N45(45,pZ34N45);
00787 static const G4double pZ34N46[7]={2.E-7, 7.7, 1.3E-4, 1.7E-9, .34, 2.1E-6, .0043};
00788 static const std::pair<G4int, const G4double*> Z34N46(46,pZ34N46);
00789 static const G4double pZ34N48[7]={2.E-7, 8.3, 1.2E-4, 1.7E-9, .34, 2.1E-6, .0043};
00790 static const std::pair<G4int, const G4double*> Z34N48(48,pZ34N48);
00791 static const std::pair<G4int, const G4double*> Z34[N34]={Z34N40, Z34N42, Z34N43, Z34N44,
00792 Z34N45, Z34N46, Z34N48};
00793
00794 static const G4int N35=2;
00795 static const G4double pZ35N44[7]={5.E-8, 6., 2.8E-5, 2.E-9, .34, 2.1E-6, .0028};
00796 static const std::pair<G4int, const G4double*> Z35N44(44,pZ35N44);
00797 static const G4double pZ35N46[7]={4.E-8, 6.2, 3.7E-5, 1.1E-9, .34, 2.1E-6, .0049};
00798 static const std::pair<G4int, const G4double*> Z35N46(46,pZ35N46);
00799 static const std::pair<G4int, const G4double*> Z35[N35]={Z35N44, Z35N46};
00800
00801 static const G4int N36=7;
00802 static const G4double pZ36N42[7]={1.6E-7, 6.8, 2.E-4, .8E-9, .35, 2.1E-6, .0076};
00803 static const std::pair<G4int, const G4double*> Z36N42(42,pZ36N42);
00804 static const G4double pZ36N44[7]={1.6E-7, 7.3, 1.6E-4, 1.E-9, .35, 2.1E-6, .0062};
00805 static const std::pair<G4int, const G4double*> Z36N44(44,pZ36N44);
00806 static const G4double pZ36N46[7]={1.6E-7, 7.3, 3.3E-4, .7E-9, .35, 2.1E-6, .013};
00807 static const std::pair<G4int, const G4double*> Z36N46(46,pZ36N46);
00808 static const G4double pZ36N47[7]={1.6E-6, 7.3, .003, .6E-9, .35, 2.1E-6, .011};
00809 static const std::pair<G4int, const G4double*> Z36N47(47,pZ36N47);
00810 static const G4double pZ36N48[7]={1.6E-7, 7.8, 7.6E-5, 2.E-9, .35, 2.1E-6, .0031};
00811 static const std::pair<G4int, const G4double*> Z36N48(48,pZ36N48);
00812 static const G4double pZ36N49[7]={6.E-7, 8., 4.8E-4, 1.4E-9, .27, 2.1E-6, .0053};
00813 static const std::pair<G4int, const G4double*> Z36N49(49,pZ36N49);
00814 static const G4double pZ36N50[7]={4.E-7, 8.1, 2.7E-4, 1.6E-9, .35, 2.1E-6, .0045};
00815 static const std::pair<G4int, const G4double*> Z36N50(50,pZ36N50);
00816 static const std::pair<G4int, const G4double*> Z36[N36]={Z36N42, Z36N44, Z36N46,
00817 Z36N47, Z36N48, Z36N49, Z36N50};
00818
00819 static const G4int N37=3;
00820 static const G4double pZ37N48[7]={1.6E-7, 7.2, 1.4E-4, 1.2E-9, .35, 2.1E-6, .0052};
00821 static const std::pair<G4int, const G4double*> Z37N48(48,pZ37N48);
00822 static const G4double pZ37N49[7]={8.E-8, 7.1, 4.7E-5, 1.6E-9, .27, 2.1E-6, .0034};
00823 static const std::pair<G4int, const G4double*> Z37N49(49,pZ37N49);
00824 static const G4double pZ37N50[7]={1.E-7, 8., 5.5E-5, 1.9E-9, .27, 1.5E-6, .0036};
00825 static const std::pair<G4int, const G4double*> Z37N50(50,pZ37N50);
00826 static const std::pair<G4int, const G4double*> Z37[N37]={Z37N48, Z37N49, Z37N50};
00827
00828 static const G4int N38=6;
00829 static const G4double pZ38N46[7]={8.E-8, 7.3, 6.E-5, 1.3E-9, .27, 2.E-6, .0045};
00830 static const std::pair<G4int, const G4double*> Z38N46(46,pZ38N46);
00831 static const G4double pZ38N48[7]={8.E-8, 9.7, 2.3E-5, 3.5E-9, .4, 2.7E-6, .0023};
00832 static const std::pair<G4int, const G4double*> Z38N48(48,pZ38N48);
00833 static const G4double pZ38N49[7]={2.6E-7, 9.5, 1.9E-4, 1.5E-9, .4, 2.7E-6, .0057};
00834 static const std::pair<G4int, const G4double*> Z38N49(49,pZ38N49);
00835 static const G4double pZ38N50[7]={2.6E-7, 9.5, 2.E-4, 1.4E-9, .37, 3.2E-6, .0059};
00836 static const std::pair<G4int, const G4double*> Z38N50(50,pZ38N50);
00837 static const G4double pZ38N51[7]={1.3E-7, 9.9, 7.5E-5, 1.7E-9, .37, 3.2E-6, .0046};
00838 static const std::pair<G4int, const G4double*> Z38N51(51,pZ38N51);
00839 static const G4double pZ38N52[7]={2.6E-7, 9.6, 1.6E-4, 1.8E-9, .37, 2.7E06, .0047};
00840 static const std::pair<G4int, const G4double*> Z38N52(52,pZ38N52);
00841 static const std::pair<G4int, const G4double*> Z38[N38]={Z38N46, Z38N48, Z38N49, Z38N50,
00842 Z38N51, Z38N52};
00843
00844 static const G4int N39=3;
00845 static const G4double pZ39N50[7]={2.6E-7, 9.9, 2.E-4, 1.1E-9, .37, 3.2E-6, .0062};
00846 static const std::pair<G4int, const G4double*> Z39N50(50,pZ39N50);
00847 static const G4double pZ39N51[7]={2.7E-5, 20., .013, 2.2E-9, .37, 1.9E-6, .0078};
00848 static const std::pair<G4int, const G4double*> Z39N51(51,pZ39N51);
00849 static const G4double pZ39N52[7]={2.E-7, 9.6, 1.2E-4, 1.7E-9, .37, 3.E-6, .0046};
00850 static const std::pair<G4int, const G4double*> Z39N52(52,pZ39N52);
00851 static const std::pair<G4int, const G4double*> Z39[N39]={Z39N50, Z39N51, Z39N52};
00852
00853 static const G4int N40=7;
00854 static const G4double pZ40N50[7]={1.E-7, 9., 6.2E-5, 1.7E-9, .3, 3.E-6, .0044};
00855 static const std::pair<G4int, const G4double*> Z40N50(50,pZ40N50);
00856 static const G4double pZ40N51[7]={5.E-7, 9.8, 5.E-4, 1.E-9, .25, 2.1E-6, .0079};
00857 static const std::pair<G4int, const G4double*> Z40N51(51,pZ40N51);
00858 static const G4double pZ40N52[7]={3.E-7, 9.6, 2.2E-4, 1.2E-9, .25, 2.2E-6, .0056};
00859 static const std::pair<G4int, const G4double*> Z40N52(52,pZ40N52);
00860 static const G4double pZ40N53[7]={2.E-7, 9.6, 1.2E-4, 1.6E-9, .38, 2.9E-6, .0046};
00861 static const std::pair<G4int, const G4double*> Z40N53(53,pZ40N53);
00862 static const G4double pZ40N54[7]={2.E-7, 9.6, 1.8E-4, 1.1E-9, .25, 2.1E-6, .0067};
00863 static const std::pair<G4int, const G4double*> Z40N54(54,pZ40N54);
00864 static const G4double pZ40N55[7]={1.8E-7, 9.4, 1.1E-4, 1.6E-9, .33, 2.3E-6, .0045};
00865 static const std::pair<G4int, const G4double*> Z40N55(55,pZ40N55);
00866 static const G4double pZ40N56[7]={1.8E-7, 9.4, 1.1E-4, 1.6E-9, .2, 1.5E-6, .0045};
00867 static const std::pair<G4int, const G4double*> Z40N56(56,pZ40N56);
00868 static const std::pair<G4int, const G4double*> Z40[N40]={Z40N50, Z40N51, Z40N52, Z40N53,
00869 Z40N54, Z40N55, Z40N56};
00870
00871 static const G4int N41=3;
00872 static const G4double pZ41N52[7]={2.6E-7, 8.3, 2.E-4, 1.2E-9, .4, 4.E-6, .0051};
00873 static const std::pair<G4int, const G4double*> Z41N52(52,pZ41N52);
00874 static const G4double pZ41N53[7]={2.E-7, 8.3, 1.6E-4, 1.4E-9, .35, 2.5E-6, .0051};
00875 static const std::pair<G4int, const G4double*> Z41N53(53,pZ41N53);
00876 static const G4double pZ41N54[7]={1.5E-7, 8.6, 1.E-4, 1.5E-9, .35, 2.5E-6, .0045};
00877 static const std::pair<G4int, const G4double*> Z41N54(54,pZ41N54);
00878 static const std::pair<G4int, const G4double*> Z41[N41]={Z41N52, Z41N52, Z41N52};
00879
00880 static const G4int N42=8;
00881 static const G4double pZ42N50[7]={2.E-7, 10., 1.1E-4, 1.8E-9, .3, 2.7E-6, .0044};
00882 static const std::pair<G4int, const G4double*> Z42N50(50,pZ42N50);
00883 static const G4double pZ42N52[7]={2.1E-7, 10., 1.2E-4, 1.7E-9, .3, 2.8E-6, .0046};
00884 static const std::pair<G4int, const G4double*> Z42N52(52,pZ42N52);
00885 static const G4double pZ42N53[7]={3.E-7, 10., 1.9E-4, 1.5E-9, .29, 3.E-6, .005};
00886 static const std::pair<G4int, const G4double*> Z42N53(53,pZ42N53);
00887 static const G4double pZ42N54[7]={1.5E-7, 10., 7.1E-5, 2.1E-9, .29, 2.9E-6, .0037};
00888 static const std::pair<G4int, const G4double*> Z42N54(54,pZ42N54);
00889 static const G4double pZ42N55[7]={1.9E-7, 9., 1.4E-4, 1.3E-9, .29, 2.8E-6, .0052};
00890 static const std::pair<G4int, const G4double*> Z42N55(55,pZ42N55);
00891 static const G4double pZ42N56[7]={1.9E-7, 9.9, 1.1E-4, 1.8E-9, .29, 2.4E-6, .0044};
00892 static const std::pair<G4int, const G4double*> Z42N56(56,pZ42N56);
00893 static const G4double pZ42N57[7]={1.4E-7, 8., 1.E-4, 1.4E-9, .34, 2.5E-6, .0044};
00894 static const std::pair<G4int, const G4double*> Z42N57(57,pZ42N57);
00895 static const G4double pZ42N58[7]={1.8E-7, 9.5, 1.E-4, 1.7E-9, .27, 2.2E-6, .0041};
00896 static const std::pair<G4int, const G4double*> Z42N58(58,pZ42N58);
00897 static const std::pair<G4int, const G4double*> Z42[N42]={Z42N50, Z42N52, Z42N53, Z42N54,
00898 Z42N55, Z42N56, Z42N57, Z42N58};
00899
00900 static const G4int N43=1;
00901 static const G4double pZ43N56[7]={1.E-7, 8., 7.2E-5, 1.4E-9, .24, 2.5E-6, .0044};
00902 static const std::pair<G4int, const G4double*> Z43N56(56,pZ43N56);
00903 static const std::pair<G4int, const G4double*> Z43[N43]={Z43N56};
00904
00905 static const G4int N44=9;
00906 static const G4double pZ44N52[7]={1.9E-7, 10., 1.E-4, 2.1E-9, .4, 4.E-6, .004};
00907 static const std::pair<G4int, const G4double*> Z44N52(52,pZ44N52);
00908 static const G4double pZ44N54[7]={1.5E-7, 10., 7.7E-5, 2.1E-9, .29, 2.9E-6, .004};
00909 static const std::pair<G4int, const G4double*> Z44N54(54,pZ44N54);
00910 static const G4double pZ44N55[7]={1.8E-7, 10., 6.6E-5, 2.6E-9, .47, 4.6E-6, .0028};
00911 static const std::pair<G4int, const G4double*> Z44N55(55,pZ44N55);
00912 static const G4double pZ44N56[7]={1.8E-6, 10., .0017, 1.1E-9, .47, 6.E-6, .0073};
00913 static const std::pair<G4int, const G4double*> Z44N56(56,pZ44N56);
00914 static const G4double pZ44N57[7]={1.8E-7, 7.8, 1.3E-4, 1.4E-9, .42, 5.E-6, .0043};
00915 static const std::pair<G4int, const G4double*> Z44N57(57,pZ44N57);
00916 static const G4double pZ44N58[7]={1.7E-6, 9.8, .0015, 1.2E-9, .32, 4.E-6, .0065};
00917 static const std::pair<G4int, const G4double*> Z44N58(58,pZ44N58);
00918 static const G4double pZ44N59[7]={3.3E-7, 8.7, 1.9E-4, 1.6E-9, .32, 3.8E-6, .0038};
00919 static const std::pair<G4int, const G4double*> Z44N59(59,pZ44N59);
00920 static const G4double pZ44N60[7]={3.E-7, 8.7, 1.8E-4, 1.6E-9, .3, 3.2E-6, .004};
00921 static const std::pair<G4int, const G4double*> Z44N60(60,pZ44N60);
00922 static const G4double pZ44N61[7]={3.E-7, 8.8, 1.4E-4, 1.9E-9, .3, 3.2E-6, .003};
00923 static const std::pair<G4int, const G4double*> Z44N61(61,pZ44N61);
00924 static const std::pair<G4int, const G4double*> Z44[N44]={Z44N52, Z44N54, Z44N55, Z44N56,
00925 Z44N57, Z44N58, Z44N59, Z44N60,
00926 Z44N61};
00927
00928 static const G4int N45=2;
00929 static const G4double pZ45N58[7]={8.E-8, 8.7, 4.E-5, 1.8E-9, .29, 2.9E-6, .0033};
00930 static const std::pair<G4int, const G4double*> Z45N58(58,pZ45N58);
00931 static const G4double pZ45N60[7]={8.E-8, 8.7, .09, 1.3E-12, .29, 2.9E-6, 7.};
00932 static const std::pair<G4int, const G4double*> Z45N60(60,pZ45N60);
00933 static const std::pair<G4int, const G4double*> Z45[N45]={Z45N58, Z45N60};
00934
00935 static const G4int N46=7;
00936 static const G4double pZ46N56[7]={2.E-7, 9.9, 1.2E-4, 1.5E-9, .35, 3.3E-6, .0045};
00937 static const std::pair<G4int, const G4double*> Z46N56(56,pZ46N56);
00938 static const G4double pZ46N58[7]={2.E-7, 9.9, 9.5E-5, 1.8E-9, .4, 4.E-6, .0036};
00939 static const std::pair<G4int, const G4double*> Z46N58(58,pZ46N58);
00940 static const G4double pZ46N59[7]={5.6E-7, 9., 4.6E-4, 1.2E-9, .5, 4.8E-6, .0056};
00941 static const std::pair<G4int, const G4double*> Z46N59(59,pZ46N59);
00942 static const G4double pZ46N60[7]={2.4E-7, 9.2, 1.2E-4, 1.8E-9, .47, 4.6E-6, .0035};
00943 static const std::pair<G4int, const G4double*> Z46N60(60,pZ46N60);
00944 static const G4double pZ46N61[7]={1.2E-7, 9.2, 4.4E-5, 2.8E-9, .5, 4.3E-6, .0025};
00945 static const std::pair<G4int, const G4double*> Z46N61(61,pZ46N61);
00946 static const G4double pZ46N62[7]={1.2E-7, 9.2, 3.2E-5, 3.4E-9, .48, 4.5E-6, .0018};
00947 static const std::pair<G4int, const G4double*> Z46N62(62,pZ46N62);
00948 static const G4double pZ46N64[7]={4.E-7, 9.1, 2.5E-4, 1.5E-9, .48, 4.7E-6, .0042};
00949 static const std::pair<G4int, const G4double*> Z46N64(64,pZ46N64);
00950 static const std::pair<G4int, const G4double*> Z46[N46]={Z46N56, Z46N58, Z46N59,
00951 Z46N60, Z46N61, Z46N62, Z46N64};
00952
00953 static const G4int N47=4;
00954 static const G4double pZ47N60[7]={1.4E-6, 9.7, .0011, 1.4E-9, .55, 5.E-6, .0056};
00955 static const std::pair<G4int, const G4double*> Z47N60(60,pZ47N60);
00956 static const G4double pZ47N62[7]={3.E-8, 8.7, 8.5E-6, 3.5E-9, .6, 5.6E-6, .0018};
00957 static const std::pair<G4int, const G4double*> Z47N62(62,pZ47N62);
00958 static const G4double pZ47N63[7]={3.E-6, 9.5, .002, 1.5E-9, .58, 5.E-6, .0047};
00959 static const std::pair<G4int, const G4double*> Z47N63(63,pZ47N63);
00960 static const G4double pZ47N64[7]={1.5E-7, 9., 9.E-5, 1.7E-9, .58, 5.6E-6, .0039};
00961 static const std::pair<G4int, const G4double*> Z47N64(64,pZ47N64);
00962 static const std::pair<G4int, const G4double*> Z47[N47]={Z47N60, Z47N62, Z47N63, Z47N64};
00963
00964 static const G4int N48=9;
00965 static const G4double pZ48N58[7]={2.9E-7, 10., 1.3E-4, 1.9E-9, .4, 3.8E-6, .0034};
00966 static const std::pair<G4int, const G4double*> Z48N58(58,pZ48N58);
00967 static const G4double pZ48N60[7]={2.3E-7, 10., 8.2E-5, 2.5E-9, .5, 4.7E-6, .0026};
00968 static const std::pair<G4int, const G4double*> Z48N60(60,pZ48N60);
00969 static const G4double pZ48N62[7]={2.3E-7, 10., 9.9E-5, 2.5E-9, .5, 4.7E-6, .0031};
00970 static const std::pair<G4int, const G4double*> Z48N62(62,pZ48N62);
00971 static const G4double pZ48N63[7]={8.4E-7, 11., 4.3E-4, 1.8E-9, .5, 4.5E-6, .0042};
00972 static const std::pair<G4int, const G4double*> Z48N63(63,pZ48N63);
00973 static const G4double pZ48N64[7]={4.E-7, 11., 1.8E-4, 1.8E-9, .5, 4.6E-6, .0036};
00974 static const std::pair<G4int, const G4double*> Z48N64(64,pZ48N64);
00975 static const G4double pZ48N65[7]={1.6E-6, 12., .001, 0., .5, 4.6E-6, .013};
00976 static const std::pair<G4int, const G4double*> Z48N65(65,pZ48N65);
00977 static const G4double pZ48N66[7]={3.E-7, 11., 1.2E-4, 1.9E-9, .5, 4.6E-6, .0031};
00978 static const std::pair<G4int, const G4double*> Z48N66(66,pZ48N66);
00979 static const G4double pZ48N67[7]={3.8E-7, 11., 1.7E-4, 2.E-9, .6, 6.6E-6, .0035};
00980 static const std::pair<G4int, const G4double*> Z48N67(67,pZ48N67);
00981 static const G4double pZ48N68[7]={6.E-7, 11., 3.3E-4, 1.9E-9, .5, 4.6E-6, .0043};
00982 static const std::pair<G4int, const G4double*> Z48N68(68,pZ48N68);
00983 static const std::pair<G4int, const G4double*> Z48[N48]={Z48N58, Z48N60, Z48N62, Z48N63,
00984 Z48N64, Z48N65, Z48N66, Z48N67,
00985 Z48N68};
00986
00987 static const G4int N49=2;
00988 static const G4double pZ49N64[7]={2.7E-7, 12., 8.1E-5, 2.7E-9, .5, 5.E-6, .0026};
00989 static const std::pair<G4int, const G4double*> Z49N64(64,pZ49N64);
00990 static const G4double pZ49N66[7]={2.7E-7, 12., 5.5E-5, 4.E-9, .5, 5.E-6, .0018};
00991 static const std::pair<G4int, const G4double*> Z49N66(66,pZ49N66);
00992 static const std::pair<G4int, const G4double*> Z49[N49]={Z49N64, Z49N66};
00993
00994 static const G4int N50=14;
00995 static const G4double pZ50N62[7]={4.E-7, 11., 1.6E-4, 2.2E-9, .5, 4.5E-6, .0032};
00996 static const std::pair<G4int, const G4double*> Z50N62(62,pZ50N62);
00997 static const G4double pZ50N63[7]={4.1E-7, 11., 1.6E-4, 2.4E-9, .54, 6.E-6, .0031};
00998 static const std::pair<G4int, const G4double*> Z50N63(63,pZ50N63);
00999 static const G4double pZ50N64[7]={5.E-7, 12., 1.9E-4, 2.2E-9, .5, 4.4E-6, .0032};
01000 static const std::pair<G4int, const G4double*> Z50N64(64,pZ50N64);
01001 static const G4double pZ50N65[7]={1.E-5, 12., .0077, 1.4E-9, .5, 5.E-6, .0066};
01002 static const std::pair<G4int, const G4double*> Z50N65(65,pZ50N65);
01003 static const G4double pZ50N66[7]={5.E-7, 12., 1.8E-4, 2.4E-9, .5, 5.E-6, .0031};
01004 static const std::pair<G4int, const G4double*> Z50N66(66,pZ50N66);
01005 static const G4double pZ50N67[7]={1.E-6, 12., 4.4E-4, 1.8E-9, .5, 5.E-6, .0037};
01006 static const std::pair<G4int, const G4double*> Z50N67(67,pZ50N67);
01007 static const G4double pZ50N68[7]={5.E-7, 12., 2.E-4, 2.4E-9, .5, 5.E-6, .0033};
01008 static const std::pair<G4int, const G4double*> Z50N68(68,pZ50N68);
01009 static const G4double pZ50N69[7]={6.E-7, 12., 2.5E-4, 2.E-9, .5, 5.E-6, .0035};
01010 static const std::pair<G4int, const G4double*> Z50N69(69,pZ50N69);
01011 static const G4double pZ50N70[7]={1.E-6, 12., 4.7E-4, 2.E-9, .5, 5.E-6, .0039};
01012 static const std::pair<G4int, const G4double*> Z50N70(70,pZ50N70);
01013 static const G4double pZ50N72[7]={1.E-6, 12., 3.7E-4, 2.2E-9, .5, 5.E-6, .0031};
01014 static const std::pair<G4int, const G4double*> Z50N72(72,pZ50N72);
01015 static const G4double pZ50N73[7]={5.E-7, 12., 1.7E-4, 2.8E-9, .5, 5.E-6, .0028};
01016 static const std::pair<G4int, const G4double*> Z50N73(73,pZ50N73);
01017 static const G4double pZ50N74[7]={5.E-7, 12., 2.E-4, 2.E-9, .5, 5.E-6, .0033};
01018 static const std::pair<G4int, const G4double*> Z50N74(74,pZ50N74);
01019 static const G4double pZ50N75[7]={5.E-7, 12., 1.9E-4, 2.8E-9, .5, 5.E-6, .003};
01020 static const std::pair<G4int, const G4double*> Z50N75(75,pZ50N75);
01021 static const G4double pZ50N76[7]={5.E-7, 12., 1.7E-4, 2.8E-9, .5, 5.E-6, .0028};
01022 static const std::pair<G4int, const G4double*> Z50N76(76,pZ50N76);
01023 static const std::pair<G4int, const G4double*> Z50[N50]={Z50N62, Z50N63, Z50N64, Z50N65,
01024 Z50N66, Z50N67, Z50N68, Z50N69,
01025 Z50N70, Z50N72, Z50N73, Z50N74,
01026 Z50N75, Z50N76};
01027
01028 static const G4int N51=5;
01029 static const G4double pZ51N70[7]={6.E-7, 12., 2.E-4, 2.8E-9, .5, 5.E-6, .0028};
01030 static const std::pair<G4int, const G4double*> Z51N70(70,pZ51N70);
01031 static const G4double pZ51N72[7]={6.E-7, 12., 1.9E-4, 3.E-9, .5, 5.E-6, .0025};
01032 static const std::pair<G4int, const G4double*> Z51N72(72,pZ51N72);
01033 static const G4double pZ51N73[7]={1.1E-6, 12., 3.5E-4, 2.9E-9, .5, 5.E-6, .0026};
01034 static const std::pair<G4int, const G4double*> Z51N73(73,pZ51N73);
01035 static const G4double pZ51N74[7]={5.5E-7, 12., 1.9E-4, 2.9E-9, .5, 5.E-6, .0027};
01036 static const std::pair<G4int, const G4double*> Z51N74(74,pZ51N74);
01037 static const G4double pZ51N75[7]={6.E-7, 12., 2.E-4, 2.9E-9, .5, 5.E-6, .0027};
01038 static const std::pair<G4int, const G4double*> Z51N75(75,pZ51N75);
01039 static const std::pair<G4int, const G4double*> Z51[N51]={Z51N70, Z51N72, Z51N73, Z51N74,
01040 Z51N75};
01041
01042 static const G4int N52=11;
01043 static const G4double pZ52N68[7]={2.7E-7, 12., 8.4E-5, 3.2E-9, 1., 8.E-6, .0026};
01044 static const std::pair<G4int, const G4double*> Z52N68(68,pZ52N68);
01045 static const G4double pZ52N70[7]={2.7E-7, 12., 3.8E-5, 6.E-9, 1., 8.E-6, .0012};
01046 static const std::pair<G4int, const G4double*> Z52N70(70,pZ52N70);
01047 static const G4double pZ52N71[7]={2.7E-8, 12., 1.8E-6, 2.E-8, 1., 8.E-6, 4.8E-4};
01048 static const std::pair<G4int, const G4double*> Z52N71(71,pZ52N71);
01049 static const G4double pZ52N72[7]={2.6E-6, 14., .0014, 2.E-9, 1., 9.E-6, .005};
01050 static const std::pair<G4int, const G4double*> Z52N72(72,pZ52N72);
01051 static const G4double pZ52N73[7]={1.E-6, 14., 2.4E-4, 3.9E-9, 1., 9.E-6, .0022};
01052 static const std::pair<G4int, const G4double*> Z52N73(73,pZ52N73);
01053 static const G4double pZ52N74[7]={8.E-7, 14., 2.3E-4, 3.6E-9, 1.4, 1.3E-5, .0028};
01054 static const std::pair<G4int, const G4double*> Z52N74(74,pZ52N74);
01055 static const G4double pZ52N75[7]={8.E-7, 14., 2.1E-4, 3.6E-9, 1.4, 1.3E-5, .0025};
01056 static const std::pair<G4int, const G4double*> Z52N75(75,pZ52N75);
01057 static const G4double pZ52N76[7]={8.E-7, 14., 2.5E-4, 3.E-9, 1.4, 1.3E-5, .003};
01058 static const std::pair<G4int, const G4double*> Z52N76(76,pZ52N76);
01059 static const G4double pZ52N77[7]={5.E-7, 15., 1.2E-4, 4.3E-9, 1.4, 1.4E-5, .0023};
01060 static const std::pair<G4int, const G4double*> Z52N77(77,pZ52N77);
01061 static const G4double pZ52N78[7]={8.E-7, 14., 2.7E-4, 2.7E-9, 1.4, 1.3E-5, .0031};
01062 static const std::pair<G4int, const G4double*> Z52N78(78,pZ52N78);
01063 static const G4double pZ52N80[7]={4.7E-7, 14., 1.8E-4, 2.2E-9, .83, 1.E-5, .0036};
01064 static const std::pair<G4int, const G4double*> Z52N80(80,pZ52N80);
01065 static const std::pair<G4int, const G4double*> Z52[N52]={Z52N68, Z52N70, Z52N71, Z52N72,
01066 Z52N73, Z52N74, Z52N75, Z52N76,
01067 Z52N77, Z52N78, Z52N80};
01068
01069 static const G4int N53=5;
01070 static const G4double pZ53N74[7]={9.4E-7, 14., 2.5E-4, 3.E-9, .7, 7.3E-6, .0025};
01071 static const std::pair<G4int, const G4double*> Z53N74(74,pZ53N74);
01072 static const G4double pZ53N76[7]={2.1E-5, 14., .015, 1.1E-9, 1.1, 1.E-5, .007};
01073 static const std::pair<G4int, const G4double*> Z53N76(76,pZ53N76);
01074 static const G4double pZ53N77[7]={1.1E-6, 14., 2.4E-4, 3.3E-9, .9, 1.E-5, .0021};
01075 static const std::pair<G4int, const G4double*> Z53N77(77,pZ53N77);
01076 static const G4double pZ53N78[7]={5.5E-7, 14., 1.5E-4, 3.7E-9, 1.2, 1.2E-5, .0024};
01077 static const std::pair<G4int, const G4double*> Z53N78(78,pZ53N78);
01078 static const G4double pZ53N82[7]={3.2E-6, 14., .0017, 1.8E-9, .8, 8.E-6, .0024};
01079 static const std::pair<G4int, const G4double*> Z53N82(82,pZ53N82);
01080 static const std::pair<G4int, const G4double*> Z53[N53]={Z53N74, Z53N76, Z53N77, Z53N78,
01081 Z53N82};
01082
01083 static const G4int N54=12;
01084 static const G4double pZ54N69[7]={3.E-6, 14., 8.E-4, 3.7E-9, .9, 1.1E-5, .15};
01085 static const std::pair<G4int, const G4double*> Z54N69(69,pZ54N69);
01086 static const G4double pZ54N70[7]={1.5E-7, 14., 1.4E-6, 9.E-8, .7, 8.E-6, 9.5E-5};
01087 static const std::pair<G4int, const G4double*> Z54N70(70,pZ54N70);
01088 static const G4double pZ54N72[7]={1.5E-6, 14., 5.6E-4, 3.E-9, 1.2, 1.1E-5, .0036};
01089 static const std::pair<G4int, const G4double*> Z54N72(72,pZ54N72);
01090 static const G4double pZ54N74[7]={1.8E-6, 14., 8.8E-4, 2.E-9, 1.3, 1.2E-5, .0047};
01091 static const std::pair<G4int, const G4double*> Z54N74(74,pZ54N74);
01092 static const G4double pZ54N75[7]={1.E-6, 14., 2.6E-4, 3.7E-9, 1.5, 1.4E-5, .0024};
01093 static const std::pair<G4int, const G4double*> Z54N75(75,pZ54N75);
01094 static const G4double pZ54N76[7]={1.8E-6, 14., 8.E-4, 2.E-9, 1.2, 1.4E-5, .0042};
01095 static const std::pair<G4int, const G4double*> Z54N76(76,pZ54N76);
01096 static const G4double pZ54N77[7]={2.3E-7, 14., 1.9E-5, 9.E-9, 1.2, 1.4E-5, 7.7E-4};
01097 static const std::pair<G4int, const G4double*> Z54N77(77,pZ54N77);
01098 static const G4double pZ54N78[7]={6.E-7, 14., 1.6E-4, 3.E-9, 1.2, 1.4E-5, .0025};
01099 static const std::pair<G4int, const G4double*> Z54N78(78,pZ54N78);
01100 static const G4double pZ54N79[7]={6.E-7, 14., 1.6E-4, 3.3E-9, 1.6, 1.5E-5, .0024};
01101 static const std::pair<G4int, const G4double*> Z54N79(79,pZ54N79);
01102 static const G4double pZ54N80[7]={6.6E-7, 14., 2.1E-4, 2.5E-9, 1.2, 1.4E-5, .003};
01103 static const std::pair<G4int, const G4double*> Z54N80(80,pZ54N80);
01104 static const G4double pZ54N81[7]={.03, 40., 2.1, 2.5E-9, 1.E-16, 6.E-36, 140.};
01105 static const std::pair<G4int, const G4double*> Z54N81(81,pZ54N81);
01106 static const G4double pZ54N82[7]={3.1E-6, 14., .0019, 1.6E-9, 1., 1.3E-5, .0054};
01107 static const std::pair<G4int, const G4double*> Z54N82(82,pZ54N82);
01108 static const std::pair<G4int, const G4double*> Z54[N54]={Z54N69, Z54N70, Z54N72, Z54N74,
01109 Z54N75, Z54N76, Z54N77, Z54N78,
01110 Z54N79, Z54N80, Z54N81, Z54N82};
01111
01112 static const G4int N55=5;
01113 static const G4double pZ55N78[7]={1.4E-6, 14., 4.E-4, 3.E-9, 1.2, 1.4E-5, .0026};
01114 static const std::pair<G4int, const G4double*> Z55N78(78,pZ55N78);
01115 static const G4double pZ55N79[7]={.028, 14., 44., .5E-9, 1.2, 1.3E-5, .015};
01116 static const std::pair<G4int, const G4double*> Z55N79(79,pZ55N79);
01117 static const G4double pZ55N80[7]={2.E-6, 14., 9.5E-4, 2.E-9, 1.2, 1.4E-5, .0042};
01118 static const std::pair<G4int, const G4double*> Z55N80(80,pZ55N80);
01119 static const G4double pZ55N81[7]={2.5E-7, 14., 6.5E-5, 3.8E-9, 1.2, 1.4E-5, .0023};
01120 static const std::pair<G4int, const G4double*> Z55N81(81,pZ55N81);
01121 static const G4double pZ55N82[7]={2.5E-7, 14., 6.5E-5, 3.8E-9, 1.2, 1.4E-5, .0023};
01122 static const std::pair<G4int, const G4double*> Z55N82(82,pZ55N82);
01123 static const std::pair<G4int, const G4double*> Z55[N55]={Z55N78, Z55N79, Z55N80, Z55N81,
01124 Z55N82};
01125
01126 static const G4int N56=9;
01127 static const G4double pZ56N74[7]={4.E-7, 14., 2.8E-5, 1.2E-8, 1.2, 1.5E-5, 6.6E-4};
01128 static const std::pair<G4int, const G4double*> Z56N74(74,pZ56N74);
01129 static const G4double pZ56N76[7]={4.E-6, 14., .0022, 1.4E-9, 1.3, 1.6E-5, .0053};
01130 static const std::pair<G4int, const G4double*> Z56N76(76,pZ56N76);
01131 static const G4double pZ56N77[7]={2.E-7, 14., 3.7E-5, 5.E-9, 1.1, 1.5E-5, .0016};
01132 static const std::pair<G4int, const G4double*> Z56N77(77,pZ56N77);
01133 static const G4double pZ56N78[7]={1.6E-6, 14., 6.E-4, 2.E-9, 1.3, 1.6E-5, .0033};
01134 static const std::pair<G4int, const G4double*> Z56N78(78,pZ56N78);
01135 static const G4double pZ56N79[7]={5.E-7, 17., 8.E-5, 4.5E-9, 1.3, 1.6E-5, .0018};
01136 static const std::pair<G4int, const G4double*> Z56N79(79,pZ56N79);
01137 static const G4double pZ56N80[7]={2.E-6, 20., 3.E-4, 6.E-9, 1.3, 1.8E-5, .0019};
01138 static const std::pair<G4int, const G4double*> Z56N80(80,pZ56N80);
01139 static const G4double pZ56N81[7]={5.8E-6, 20., .0018, 3.E-9, 1.3, 1.7E-5, .0041};
01140 static const std::pair<G4int, const G4double*> Z56N81(81,pZ56N81);
01141 static const G4double pZ56N82[7]={2.7E-6, 20., 5.5E-4, 4.E-9, 1.4, 2.E-5, .0027};
01142 static const std::pair<G4int, const G4double*> Z56N82(82,pZ56N82);
01143 static const G4double pZ56N84[7]={1.1E-6, 21., 1.E-4, 9.E-9, 2., 2.7E-5, .0012};
01144 static const std::pair<G4int, const G4double*> Z56N84(84,pZ56N84);
01145 static const std::pair<G4int, const G4double*> Z56[N56]={Z56N74, Z56N76, Z56N77, Z56N78,
01146 Z56N79, Z56N80, Z56N81, Z56N82,
01147 Z56N84};
01148
01149 static const G4int N57=3;
01150 static const G4double pZ57N81[7]={2.7E-6, 20., .0017, 1.1E-9, 1.4, 2.E-5, .0083};
01151 static const std::pair<G4int, const G4double*> Z57N81(81,pZ57N81);
01152 static const G4double pZ57N82[7]={5.4E-6, 20., .0027, 1.5E-9, 1., 1.5E-5, .0065};
01153 static const std::pair<G4int, const G4double*> Z57N82(82,pZ57N82);
01154 static const G4double pZ57N83[7]={2.7E-6, 20., 2.6E-4, 6.E-9, 1.4, 2.E-5, .0012};
01155 static const std::pair<G4int, const G4double*> Z57N83(83,pZ57N83);
01156 static const std::pair<G4int, const G4double*> Z57[N57]={Z57N81, Z57N82, Z57N83};
01157
01158 static const G4int N58=8;
01159 static const G4double pZ58N78[7]={1.8E-6, 20., 3.7E-4, 4.E-9, 1.4, 2.E-5, .0028};
01160 static const std::pair<G4int, const G4double*> Z58N78(78,pZ58N78);
01161 static const G4double pZ58N80[7]={1.8E-6, 18., 2.6E-4, 6.E-9, 1.3, 2.1E-5, .0017};
01162 static const std::pair<G4int, const G4double*> Z58N80(80,pZ58N80);
01163 static const G4double pZ58N81[7]={.0018, 18., 2.9, .6E-9, 1.3, 2.E-5, .02};
01164 static const std::pair<G4int, const G4double*> Z58N81(81,pZ58N81);
01165 static const G4double pZ58N82[7]={1.8E-6, 18., 3.7E-4, 5.E-9, 1.3, 2.E-5, .0024};
01166 static const std::pair<G4int, const G4double*> Z58N82(82,pZ58N82);
01167 static const G4double pZ58N83[7]={7.2E-6, 20., .0025, 2.3E-9, 1.1, 1.7E-5, .0045};
01168 static const std::pair<G4int, const G4double*> Z58N83(83,pZ58N83);
01169 static const G4double pZ58N84[7]={1.2E-6, 18., 2.E-4, 6.E-9, 1.5, 1.9E-5, .0018};
01170 static const std::pair<G4int, const G4double*> Z58N84(84,pZ58N84);
01171 static const G4double pZ58N85[7]={1.2E-6, 16., 6.E-4, 1.7E-9, 1.4, 2.E-5, .0053};
01172 static const std::pair<G4int, const G4double*> Z58N85(85,pZ58N85);
01173 static const G4double pZ58N86[7]={6.E-7, 18., 1.E-4, 6.E-9, 1.5, 1.9E-5, .0018};
01174 static const std::pair<G4int, const G4double*> Z58N86(86,pZ58N86);
01175 static const std::pair<G4int, const G4double*> Z58[N58]={Z58N78, Z58N80, Z58N81, Z58N82,
01176 Z58N83, Z58N84, Z58N85, Z58N86};
01177
01178 static const G4int N59=3;
01179 static const G4double pZ59N82[7]={9.5E-7, 16., 1.6E-4, 4.E-9, 1.4, 2.E-5, .0017};
01180 static const std::pair<G4int, const G4double*> Z59N82(82,pZ59N82);
01181 static const G4double pZ59N83[7]={9.5E-7, 16., 1.9E-4, 4.E-9, 1.4, 1.9E-5, .0021};
01182 static const std::pair<G4int, const G4double*> Z59N83(83,pZ59N83);
01183 static const G4double pZ59N84[7]={9.5E-6, 16., .019, .4E-9, 2., 2.4E-5, .021};
01184 static const std::pair<G4int, const G4double*> Z59N84(84,pZ59N84);
01185 static const std::pair<G4int, const G4double*> Z59[N59]={Z59N82, Z59N83, Z59N84};
01186
01187 static const G4int N60=8;
01188 static const G4double pZ60N82[7]={9.6E-6, 21., .0036, 2.3E-9, 1.4, 2.E-5, .0052};
01189 static const std::pair<G4int, const G4double*> Z60N82(82,pZ60N82);
01190 static const G4double pZ60N83[7]={9.6E-4, 20., 4., .25E-9, 1.4, 2.E-5, .052};
01191 static const std::pair<G4int, const G4double*> Z60N83(83,pZ60N83);
01192 static const G4double pZ60N84[7]={4.8E-7, 21., 3.3E-5, 1.E-08, 1.3, 2.2E-5, 9.E-4};
01193 static const std::pair<G4int, const G4double*> Z60N84(84,pZ60N84);
01194 static const G4double pZ60N85[7]={.0048, 20., 4.5, .9E-9, 1.3, 2.E-5, .012};
01195 static const std::pair<G4int, const G4double*> Z60N85(85,pZ60N85);
01196 static const G4double pZ60N86[7]={1.2E-6, 16., 7.7E-4, 1.5E-9, 1.3, 1.8E-5, .0066};
01197 static const std::pair<G4int, const G4double*> Z60N86(86,pZ60N86);
01198 static const G4double pZ60N87[7]={.0012, 15., 8.4, .1E-9, 1.3, 1.5E-5, .071};
01199 static const std::pair<G4int, const G4double*> Z60N87(87,pZ60N87);
01200 static const G4double pZ60N88[7]={1.5E-7, 16., 4.1E-5, 2.5E-9, 1.3, 1.6E-5, .0027};
01201 static const std::pair<G4int, const G4double*> Z60N88(88,pZ60N88);
01202 static const G4double pZ60N90[7]={1.5E-7, 16., 4.3E-5, 2.5E-9, 1.3, 1.6E-5, .0029};
01203 static const std::pair<G4int, const G4double*> Z60N90(90,pZ60N90);
01204 static const std::pair<G4int, const G4double*> Z60[N60]={Z60N82, Z60N83, Z60N84, Z60N85,
01205 Z60N86, Z60N87, Z60N88, Z60N90};
01206
01207 static const G4int N61=3;
01208 static const G4double pZ61N86[7]={6.E-7, 16., 8.E-4, .6E-9, 3., 2.8E-5, .014};
01209 static const std::pair<G4int, const G4double*> Z61N86(86,pZ61N86);
01210 static const G4double pZ61N87[7]={6.2E-8, 16., 1.2E-5, 4.E-9, 2.2, 2.5E-5, .0019};
01211 static const std::pair<G4int, const G4double*> Z61N87(87,pZ61N87);
01212 static const G4double pZ61N88[7]={3.2E-8, 16., 6.4E-6, 4.E-9, 2.2, 2.5E-5, .002};
01213 static const std::pair<G4int, const G4double*> Z61N88(88,pZ61N88);
01214 static const std::pair<G4int, const G4double*> Z61[N61]={Z61N86, Z61N87, Z61N88};
01215
01216 static const G4int N62=9;
01217 static const G4double pZ62N82[7]={1.2E-7, 16., 2.1E-5, 5.E-9, 1.4, 2.E-5, .0017};
01218 static const std::pair<G4int, const G4double*> Z62N82(82,pZ62N82);
01219 static const G4double pZ62N85[7]={1.2E-7, 16., 5.3E-5, 1.5E-9, 1.3, 1.7E-5, .0045};
01220 static const std::pair<G4int, const G4double*> Z62N85(85,pZ62N85);
01221 static const G4double pZ62N86[7]={6.E-8, 16., 1.7E-5, 3.E-9, 1.3, 1.7E-5, .0028};
01222 static const std::pair<G4int, const G4double*> Z62N86(86,pZ62N86);
01223 static const G4double pZ62N87[7]={6.E-8, 15., 5.2E-4, .11E-9, 1.3, 1.5E-5, .074};
01224 static const std::pair<G4int, const G4double*> Z62N87(87,pZ62N87);
01225 static const G4double pZ62N88[7]={6.E-7, 16., 8.6E-4, .7E-9, 1.3, 1.7E-5, .015};
01226 static const std::pair<G4int, const G4double*> Z62N88(88,pZ62N88);
01227 static const G4double pZ62N89[7]={6.E-7, 16., 5.E-4, 0., 1.3, 1.6E-5, .053};
01228 static const std::pair<G4int, const G4double*> Z62N89(89,pZ62N89);
01229 static const G4double pZ62N90[7]={6.E-8, 15., 1.3E-5, 4.5E-9, 1.3, 1.7E-5, .0019};
01230 static const std::pair<G4int, const G4double*> Z62N90(90,pZ62N90);
01231 static const G4double pZ62N91[7]={6.E-8, 15., 1.5E-5, 2.E-9, 1.3, 1.6E-5, .0024};
01232 static const std::pair<G4int, const G4double*> Z62N91(91,pZ62N91);
01233 static const G4double pZ62N92[7]={1.2E-7, 15., 8.6E-5, 1.2E-9, 1.3, 1.6E-5, .007};
01234 static const std::pair<G4int, const G4double*> Z62N92(92,pZ62N92);
01235 static const std::pair<G4int, const G4double*> Z62[N62]={Z62N82, Z62N85, Z62N86, Z62N87,
01236 Z62N88, Z62N89, Z62N90, Z62N91,
01237 Z62N92};
01238
01239 static const G4int N63=7;
01240 static const G4double pZ63N88[7]={6.E-8, 15., 2.8E-5, 2.E-9, 1.3, 1.5E-5, .0046};
01241 static const std::pair<G4int, const G4double*> Z63N88(88,pZ63N88);
01242 static const G4double pZ63N89[7]={6.E-7, 15., .0011, .5E-9, 2.4, 2.4E-5, .017};
01243 static const std::pair<G4int, const G4double*> Z63N89(89,pZ63N89);
01244 static const G4double pZ63N90[7]={3.E-7, 15., 1.8E-4, 1.1E-9, 1., 1.2E-5, .0054};
01245 static const std::pair<G4int, const G4double*> Z63N90(90,pZ63N90);
01246 static const G4double pZ63N91[7]={4.1E-7, 15., 1.4E-4, 1.9E-9, 1., 1.4E-5, .0032};
01247 static const std::pair<G4int, const G4double*> Z63N91(91,pZ63N91);
01248 static const G4double pZ63N92[7]={5.E-8, 15., 2.4E-5, 2.8E-9, 1., 1.3E-5, .0037};
01249 static const std::pair<G4int, const G4double*> Z63N92(92,pZ63N92);
01250 static const G4double pZ63N93[7]={4.1E-8, 17., 1.6E-5, 2.E-9, 3.3, 3.4E-5, .004};
01251 static const std::pair<G4int, const G4double*> Z63N93(93,pZ63N93);
01252 static const G4double pZ63N94[7]={4.2E-8, 17., 1.6E-5, 2.E-9, 1.2, 1.6E-5, .004};
01253 static const std::pair<G4int, const G4double*> Z63N94(94,pZ63N94);
01254 static const std::pair<G4int, const G4double*> Z63[N63]={Z63N88, Z63N89, Z63N90, Z63N91,
01255 Z63N92, Z63N93, Z63N94};
01256
01257 static const G4int N64=8;
01258 static const G4double pZ64N88[7]={4.2E-8, 14., 2.E-4, 0., 1.2, 1.3E-5, .19};
01259 static const std::pair<G4int, const G4double*> Z64N88(88,pZ64N88);
01260 static const G4double pZ64N89[7]={2.E-6, 14., .0016, 1.4E-9, 1.6, 1.6E-5, .0057};
01261 static const std::pair<G4int, const G4double*> Z64N89(89,pZ64N89);
01262 static const G4double pZ64N90[7]={1.7E-7, 12., 8.4E-5, 2.E-9, 1.8, 2.2E-5, .0035};
01263 static const std::pair<G4int, const G4double*> Z64N90(90,pZ64N90);
01264 static const G4double pZ64N91[7]={1.7E-7, 13., 5.E-4, .3E-9, 1.7, 1.9E-5, .026};
01265 static const std::pair<G4int, const G4double*> Z64N91(91,pZ64N91);
01266 static const G4double pZ64N92[7]={1.7E-7, 13., 7.E-5, 2.5E-9, 1.8, 2.2E-5, .003};
01267 static const std::pair<G4int, const G4double*> Z64N92(92,pZ64N92);
01268 static const G4double pZ64N93[7]={1.7E-6, 12., .002, 0., 1.7, 1.8E-5, .47};
01269 static const std::pair<G4int, const G4double*> Z64N93(93,pZ64N93);
01270 static const G4double pZ64N94[7]={3.4E-7, 13., 1.5E-4, 2.E-9, 1.8, 2.3E-5, .0034};
01271 static const std::pair<G4int, const G4double*> Z64N94(94,pZ64N94);
01272 static const G4double pZ64N96[7]={2.6E-6, 13., .0019, 1.2E-9, 1., 1.2E-5, .0056};
01273 static const std::pair<G4int, const G4double*> Z64N96(96,pZ64N96);
01274 static const std::pair<G4int, const G4double*> Z64[N64]={Z64N88, Z64N89, Z64N90, Z64N91,
01275 Z64N92, Z64N93, Z64N94, Z64N96};
01276
01277 static const G4int N65=2;
01278 static const G4double pZ65N94[7]={9.E-7, 16., 3.9E-4, 1.7E-9, 2., 2.2E-5, .0042};
01279 static const std::pair<G4int, const G4double*> Z65N94(94,pZ65N94);
01280 static const G4double pZ65N95[7]={4.5E-7, 16., 1.1E-4, 3.E-9, 1.7, 2.2E-5, .0024};
01281 static const std::pair<G4int, const G4double*> Z65N95(95,pZ65N95);
01282 static const std::pair<G4int, const G4double*> Z65[N65]={Z65N94, Z65N94};
01283
01284 static const G4int N66=7;
01285 static const G4double pZ66N90[7]={1.2E-7, 13., 4.E-5, 3.E-9, 1.2, 1.4E-5, .0025};
01286 static const std::pair<G4int, const G4double*> Z66N90(90,pZ66N90);
01287 static const G4double pZ66N92[7]={1.2E-7, 13., 6.7E-5, 2.E-9, 1., 1.1E-5, .004};
01288 static const std::pair<G4int, const G4double*> Z66N92(92,pZ66N92);
01289 static const G4double pZ66N94[7]={1.2E-7, 13., 5.3E-5, 1.6E-9, 1., 1.1E-5, .0034};
01290 static const std::pair<G4int, const G4double*> Z66N94(94,pZ66N94);
01291 static const G4double pZ66N95[7]={1.2E-6, 13., .0017, .7E-9, 1.3, 1.3E-5, .011};
01292 static const std::pair<G4int, const G4double*> Z66N95(95,pZ66N95);
01293 static const G4double pZ66N96[7]={1.2E-7, 13., 8.E-6, 1.5E-7, 1., 1.1E-5, 1.E-4};
01294 static const std::pair<G4int, const G4double*> Z66N96(96,pZ66N96);
01295 static const G4double pZ66N97[7]={1.5E-7, 13., 4.E-5, 4.E-9, 1.3, 1.3E-5, .002};
01296 static const std::pair<G4int, const G4double*> Z66N97(97,pZ66N97);
01297 static const G4double pZ66N98[7]={3.E-7, 13., .001, 4.E-9, 1.3, 1.3E-5, .23};
01298 static const std::pair<G4int, const G4double*> Z66N98(98,pZ66N98);
01299 static const std::pair<G4int, const G4double*> Z66[N66]={Z66N90, Z66N92, Z66N94, Z66N95,
01300 Z66N96, Z66N97, Z66N98};
01301
01302 static const G4int N67=2;
01303 static const G4double pZ67N98[7]={3.E-7, 13., 2.2E-4, 1.5E-9, 1., 1.E-5, .0054};
01304 static const std::pair<G4int, const G4double*> Z67N98(98,pZ67N98);
01305 static const G4double pZ67N99[7]={7.5E-8, 13., 2.6E-5, 4.5E-9, 1.5, 1.5E-5, .0021};
01306 static const std::pair<G4int, const G4double*> Z67N99(99,pZ67N99);
01307 static const std::pair<G4int, const G4double*> Z67[N67]={Z67N98, Z67N99};
01308
01309 static const G4int N68=6;
01310 static const G4double pZ68N94[7]={1.2E-7, 13., 7.8E-5, 1.6E-9, .9, 9.E-6, .005};
01311 static const std::pair<G4int, const G4double*> Z68N94(94,pZ68N94);
01312 static const G4double pZ68N96[7]={1.2E-7, 13., 8.5E-5, 1.2E-9, .9, 8.E-6, .0055};
01313 static const std::pair<G4int, const G4double*> Z68N96(96,pZ68N96);
01314 static const G4double pZ68N98[7]={1.E-6, 13., .0011, .8E-9, .9, 8.E-6, .0087};
01315 static const std::pair<G4int, const G4double*> Z68N98(98,pZ68N98);
01316 static const G4double pZ68N99[7]={1.2E-7, 13., 2.5E-5, 4.5E-9, .9, 9.E-6, .0015};
01317 static const std::pair<G4int, const G4double*> Z68N99(99,pZ68N99);
01318 static const G4double pZ68N100[7]={2.E-6, 13., .0015, 1.1E-9, .9, 8.E-6, .0058};
01319 static const std::pair<G4int, const G4double*> Z68N100(100,pZ68N100);
01320 static const G4double pZ68N102[7]={2.E-6, 13., .0018, 1.E-9, .9, 8.E-6, .007};
01321 static const std::pair<G4int, const G4double*> Z68N102(102,pZ68N102);
01322 static const std::pair<G4int, const G4double*> Z68[N68]={Z68N94, Z68N96, Z68N98,
01323 Z68N99, Z68N100, Z68N102};
01324
01325 static const G4int N69=1;
01326 static const G4double pZ69N100[7]={1.2E-7, 13., 2.5E-5, 4.5E-9, .9, 9.E-6, .0015};
01327 static const std::pair<G4int, const G4double*> Z69N100(100,pZ69N100);
01328 static const std::pair<G4int, const G4double*> Z69[N69]={Z69N100};
01329
01330
01331 static const G4int N70=7;
01332 static const G4double pZ70N98[7]={1.E-6, 13., .0011, .8E-9, .9, 8.E-6, .0087};
01333 static const std::pair<G4int, const G4double*> Z70N98(98,pZ70N98);
01334 static const G4double pZ70N100[7]={2.E-6, 13., .0015, 1.1E-9, .9, 8.E-6, .0058};
01335 static const std::pair<G4int, const G4double*> Z70N100(100,pZ70N100);
01336 static const G4double pZ70N101[7]={1.2E-7, 13., 2.5E-5, 4.5E-9, .9, 9.E-6, .0015};
01337 static const std::pair<G4int, const G4double*> Z70N101(101,pZ70N101);
01338 static const G4double pZ70N102[7]={2.E-6, 13., .0018, 1.E-9, .9, 8.E-6, .007};
01339 static const std::pair<G4int, const G4double*> Z70N102(102,pZ70N102);
01340 static const G4double pZ70N103[7]={5.E-7, 18., .01, 1.7E-6, 1.2, 1.4E-5, 1.4E-5};
01341 static const std::pair<G4int, const G4double*> Z70N103(103,pZ70N103);
01342 static const G4double pZ70N104[7]={5.E-7, 18., 1.9E-4, 2.5E-9, 1.2, 1.4E-5, .004};
01343 static const std::pair<G4int, const G4double*> Z70N104(104,pZ70N104);
01344 static const G4double pZ70N106[7]={5.E-7, 18., 1.3E-4, 2.E-9, 1.2, 1.4E-5, .0027};
01345 static const std::pair<G4int, const G4double*> Z70N106(106,pZ70N106);
01346 static const std::pair<G4int, const G4double*> Z70[N70]={Z70N98, Z70N100, Z70N101,
01347 Z70N102, Z70N103, Z70N104,
01348 Z70N106};
01349
01350 static const G4int N71=2;
01351 static const G4double pZ71N104[7]={5.E-7, 18., 1.8E-4, 2.E-9, .9, 9.E-6, .0036};
01352 static const std::pair<G4int, const G4double*> Z71N104(104,pZ71N104);
01353 static const G4double pZ71N105[7]={2.5E-7, 18., 9.E-5, 1.E-8, .9, 9.E-6, .0016};
01354 static const std::pair<G4int, const G4double*> Z71N105(105,pZ71N105);
01355 static const std::pair<G4int, const G4double*> Z71[N71]={Z71N104, Z71N105};
01356
01357 static const G4int N72=6;
01358 static const G4double pZ72N102[7]={1.E-6, 18., 8.8E-4, .8E-9, 1., 1.1E-5, .0092};
01359 static const std::pair<G4int, const G4double*> Z72N102(102,pZ72N102);
01360 static const G4double pZ72N104[7]={5.E-7, 18., 1.9E-4, 2.5E-9, 1.2, 1.4E-5, .004};
01361 static const std::pair<G4int, const G4double*> Z72N104(104,pZ72N104);
01362 static const G4double pZ72N105[7]={5.E-7, 18., .01, 1.7E-6, 1.2, 1.4E-5, 1.4E-5};
01363 static const std::pair<G4int, const G4double*> Z72N105(105,pZ72N105);
01364 static const G4double pZ72N106[7]={5.E-7, 18., 1.3E-4, 2.E-9, 1.2, 1.4E-5, .0027};
01365 static const std::pair<G4int, const G4double*> Z72N106(106,pZ72N106);
01366 static const G4double pZ72N107[7]={2.5E-7, 18., 1.E-4, 2.E-9, 1.2, 1.5E-5, .0041};
01367 static const std::pair<G4int, const G4double*> Z72N107(107,pZ72N107);
01368 static const G4double pZ72N108[7]={1.E-6, 18., .0012, .6E-9, 1.2, 1.5E-5, .012};
01369 static const std::pair<G4int, const G4double*> Z72N108(108,pZ72N108);
01370 static const std::pair<G4int, const G4double*> Z72[N72]={Z72N102, Z72N104, Z72N105,
01371 Z72N106, Z72N107, Z72N108};
01372
01373 static const G4int N73=2;
01374 static const G4double pZ73N108[7]={5.E-7, 18., 1.7E-4, 2.E-9, 1.2, 1.4E-5, .0035};
01375 static const std::pair<G4int, const G4double*> Z73N108(108,pZ73N108);
01376 static const G4double pZ73N109[7]={1.E-6, 14., .002, .3E-9, 1.3, 1.5E-5, .016};
01377 static const std::pair<G4int, const G4double*> Z73N109(109,pZ73N109);
01378 static const std::pair<G4int, const G4double*> Z73[N73]={Z73N108, Z73N108};
01379
01380 static const G4int N74=5;
01381 static const G4double pZ74N106[7]={5.E-7, 18., 1.3E-4, 2.E-9, 1.2, 1.4E-5, .0027};
01382 static const std::pair<G4int, const G4double*> Z74N106(106,pZ74N106);
01383 static const G4double pZ74N108[7]={4.E-6, 14., .0034, .9E-9, 1.3, 1.4E-5, .0067};
01384 static const std::pair<G4int, const G4double*> Z74N108(108,pZ74N108);
01385 static const G4double pZ74N109[7]={1.2E-7, 14., 3.E-5, 3.E-9, 1.3, 1.4E-5, .0019};
01386 static const std::pair<G4int, const G4double*> Z74N109(109,pZ74N109);
01387 static const G4double pZ74N110[7]={1.2E-7, 14., 3.6E-5, 2.E-9, 1.3, 1.3E-5, .0024};
01388 static const std::pair<G4int, const G4double*> Z74N110(110,pZ74N110);
01389 static const G4double pZ74N112[7]={1.2E-7, 14., 3.E-5, 1.3E-7, 1.3, 1.3E-5, 1.4E-4};
01390 static const std::pair<G4int, const G4double*> Z74N112(112,pZ74N112);
01391 static const std::pair<G4int, const G4double*> Z74[N74]={Z74N106, Z74N108, Z74N109,
01392 Z74N110, Z74N112};
01393
01394 static const G4int N75=2;
01395 static const G4double pZ75N110[7]={1.2E-7, 14., 8.E-5, 1.2E-9, 1.3, 1.5E-5, .005};
01396 static const std::pair<G4int, const G4double*> Z75N110(110,pZ75N110);
01397 static const G4double pZ75N112[7]={1.2E-7, 14., 8.8E-5, 1.1E-9, 1.3, 1.5E-5, .0055};
01398 static const std::pair<G4int, const G4double*> Z75N112(112,pZ75N112);
01399 static const std::pair<G4int, const G4double*> Z75[N75]={Z75N110, Z75N112};
01400
01401
01402 static const G4int N76=7;
01403 static const G4double pZ76N108[7]={4.E-6, 14., .0034, .9E-9, 1.3, 1.4E-5, .0067};
01404 static const std::pair<G4int, const G4double*> Z76N108(108,pZ76N108);
01405 static const G4double pZ76N110[7]={1.2E-7, 14., 3.6E-5, 2.E-9, 1.3, 1.3E-5, .0024};
01406 static const std::pair<G4int, const G4double*> Z76N110(110,pZ76N110);
01407 static const G4double pZ76N111[7]={1.2E-7, 14., 8.8E-5, 1.1E-9, 1.3, 1.5E-5, .0055};
01408 static const std::pair<G4int, const G4double*> Z76N111(111,pZ76N111);
01409 static const G4double pZ76N112[7]={1.2E-7, 14., 3.E-5, 1.3E-7, 1.3, 1.3E-5, 1.4E-4};
01410 static const std::pair<G4int, const G4double*> Z76N112(112,pZ76N112);
01411 static const G4double pZ76N113[7]={1.2E-7, 14., 8.8E-5, 1.1E-9, 1.3, 1.5E-5, .0055};
01412 static const std::pair<G4int, const G4double*> Z76N113(113,pZ76N113);
01413 static const G4double pZ76N114[7]={1.2E-7, 14., 3.E-5, 1.3E-7, 1.3, 1.3E-5, 1.4E-4};
01414 static const std::pair<G4int, const G4double*> Z76N114(114,pZ76N114);
01415 static const G4double pZ76N116[7]={1.2E-7, 14., 3.E-5, 1.3E-7, 1.3, 1.3E-5, 1.4E-4};
01416 static const std::pair<G4int, const G4double*> Z76N116(116,pZ76N116);
01417 static const std::pair<G4int, const G4double*> Z76[N76]={Z76N108, Z76N110, Z76N111,
01418 Z76N112, Z76N113, Z76N114,
01419 Z76N116};
01420
01421 static const G4int N77=2;
01422 static const G4double pZ77N114[7]={4.8E-7, 14., 5.2E-4, .7E-9, 1.5, 1.7E-5, .0082};
01423 static const std::pair<G4int, const G4double*> Z77N114(114,pZ77N114);
01424 static const G4double pZ77N116[7]={4.8E-7, 14., 4.5E-4, .8E-9, 1.8, 2.3E-5, .0073};
01425 static const std::pair<G4int, const G4double*> Z77N116(116,pZ77N116);
01426 static const std::pair<G4int, const G4double*> Z77[N77]={Z77N114, Z77N116};
01427
01428
01429 static const G4int N78=6;
01430 static const G4double pZ78N112[7]={6.E-8, 19., 3.3E-4, .1E-9, 1.6, 1.8E-5, .06};
01431 static const std::pair<G4int, const G4double*> Z78N112(112,pZ78N112);
01432 static const G4double pZ78N114[7]={6.E-8, 19., 3.3E-4, .1E-9, 1.6, 1.8E-5, .06};
01433 static const std::pair<G4int, const G4double*> Z78N114(114,pZ78N114);
01434 static const G4double pZ78N116[7]={6.E-8, 19., 3.3E-4, .1E-9, 1.6, 1.8E-5, .06};
01435 static const std::pair<G4int, const G4double*> Z78N116(116,pZ78N116);
01436 static const G4double pZ78N117[7]={9.6E-7, 20., .001, .2E-9, 1.6, 2.E-5, .037};
01437 static const std::pair<G4int, const G4double*> Z78N117(117,pZ78N117);
01438 static const G4double pZ78N118[7]={2.4E-7, 20., 1.6E-4, 1.3E-9, 1.6, 1.8E-5, .007};
01439 static const std::pair<G4int, const G4double*> Z78N118(118,pZ78N118);
01440 static const G4double pZ78N120[7]={2.E-6, 19., .0015, .9E-9, 1.6, 1.8E-5, .0078};
01441 static const std::pair<G4int, const G4double*> Z78N120(120,pZ78N120);
01442 static const std::pair<G4int, const G4double*> Z78[N78]={Z78N112, Z78N114, Z78N116,
01443 Z78N117, Z78N118, Z78N120};
01444
01445 static const G4int N79=1;
01446 static const G4double pZ79N118[7]={2.4E-7, 19., 1.E-4, 1.4E-9, 1.3, 1.7E-5, .0042};
01447 static const std::pair<G4int, const G4double*> Z79N118(118,pZ79N118);
01448 static const std::pair<G4int, const G4double*> Z79[N79]={Z79N118};
01449
01450 static const G4int N80=7;
01451 static const G4double pZ80N116[7]={6.E-8, 19., 3.3E-4, .1E-9, 1.6, 1.8E-5, .06};
01452 static const std::pair<G4int, const G4double*> Z80N116(116,pZ80N116);
01453 static const G4double pZ80N118[7]={2.4E-7, 20., 1.6E-4, 1.3E-9, 1.6, 1.8E-5, .007};
01454 static const std::pair<G4int, const G4double*> Z80N118(118,pZ80N118);
01455 static const G4double pZ80N119[7]={9.6E-7, 20., .001, .2E-9, 1.6, 2.E-5, .037};
01456 static const std::pair<G4int, const G4double*> Z80N119(119,pZ80N119);
01457 static const G4double pZ80N120[7]={2.E-6, 19., .0015, .9E-9, 1.6, 1.8E-5, .0078};
01458 static const std::pair<G4int, const G4double*> Z80N120(120,pZ80N120);
01459 static const G4double pZ80N121[7]={1.E-6, 20., 7.E-4, 1.E-9, 1.6, 1.8E-5, .0076};
01460 static const std::pair<G4int, const G4double*> Z80N121(121,pZ80N121);
01461 static const G4double pZ80N122[7]={2.E-6, 18., .0016, .8E-9, 1.6, 1.8E-5, .0078};
01462 static const std::pair<G4int, const G4double*> Z80N122(122,pZ80N122);
01463 static const G4double pZ80N124[7]={2.0E-6, 18., .0032, .4E-9, 1.6, 1.8E-5, .016};
01464 static const std::pair<G4int, const G4double*> Z80N124(124,pZ80N124);
01465 static const std::pair<G4int, const G4double*> Z80[N80]={Z80N116, Z80N118, Z80N119,
01466 Z80N120, Z80N121, Z80N122,
01467 Z80N124};
01468
01469 static const G4int N81=2;
01470 static const G4double pZ81N122[7]={2.4E-7, 19., 1.E-4, 1.4E-9, 1.3, 1.7E-5, .0042};
01471 static const std::pair<G4int, const G4double*> Z81N122(122,pZ81N122);
01472 static const G4double pZ81N124[7]={};
01473 static const std::pair<G4int, const G4double*> Z81N124(124,pZ81N124);
01474 static const std::pair<G4int, const G4double*> Z81[N81]={Z81N122, Z81N124};
01475
01476 static const G4int N82=4;
01477 static const G4double pZ82N122[7]={4.E-6, 20., .0022, 1.E-9, 1.6, 1.8E-5, .0058};
01478 static const std::pair<G4int, const G4double*> Z82N122(122,pZ82N122);
01479 static const G4double pZ82N124[7]={4.E-6, 20., .0022, 1.E-9, 1.6, 1.8E-5, .0058};
01480 static const std::pair<G4int, const G4double*> Z82N124(124,pZ82N124);
01481 static const G4double pZ82N125[7]={2.E-6, 20., .0011, 1.2E-9, 1.6, 1.8E-5, .0056};
01482 static const std::pair<G4int, const G4double*> Z82N125(125,pZ82N125);
01483 static const G4double pZ82N126[7]={4.E-6, 20., .0023, 1.2E-9, 1.6, 1.8E-5, .0058};
01484 static const std::pair<G4int, const G4double*> Z82N126(126,pZ82N126);
01485 static const std::pair<G4int, const G4double*> Z82[N82]={Z82N122, Z82N124, Z82N125,
01486 Z82N126};
01487
01488 static const G4int N83=1;
01489 static const G4double pZ83N126[7]={8.E-7, 23., 3.3E-4, 1.8E-9, 1.6, 1.8E-5, .005};
01490 static const std::pair<G4int, const G4double*> Z83N126(126,pZ83N126);
01491 static const std::pair<G4int, const G4double*> Z83[N83]={Z83N126};
01492
01493 static const G4int N84=1;
01494 static const G4double pZ84N125[7]={2.E-6, 20., .0011, 1.2E-9, 1.6, 1.8E-5, .0056};
01495 static const std::pair<G4int, const G4double*> Z84N125(125,pZ84N125);
01496 static const std::pair<G4int, const G4double*> Z84[N84]={Z84N125};
01497
01498 static const G4int N85=1;
01499 static const G4double pZ85N125[7]={2.E-6, 20., .0011, 1.2E-9, 1.6, 1.8E-5, .0056};
01500 static const std::pair<G4int, const G4double*> Z85N125(125,pZ85N125);
01501 static const std::pair<G4int, const G4double*> Z85[N85]={Z85N125};
01502
01503 static const G4int N86=1;
01504 static const G4double pZ86N136[7]={1.E-7, 23., 5.5E-5, 1.2E-9, 1.6, 1.8E-5, .0062};
01505 static const std::pair<G4int, const G4double*> Z86N136(136,pZ86N136);
01506 static const std::pair<G4int, const G4double*> Z86[N86]={Z86N136};
01507
01508 static const G4int N87=1;
01509 static const G4double pZ87N136[7]={2.E-7, 23., 1.1E-4, 1.2E-9, 1.6, 1.8E-5, .0062};
01510 static const std::pair<G4int, const G4double*> Z87N136(136,pZ87N136);
01511 static const std::pair<G4int, const G4double*> Z87[N87]={Z87N136};
01512
01513 static const G4int N88=4;
01514 static const G4double pZ88N135[7]={1.E-7, 23., 5.5E-5, 1.2E-9, 1.6, 1.8E-5, .0062};
01515 static const std::pair<G4int, const G4double*> Z88N135(135,pZ88N135);
01516 static const G4double pZ88N136[7]={1.E-7, 23., 5.5E-5, 1.2E-9, 1.6, 1.8E-5, .0062};
01517 static const std::pair<G4int, const G4double*> Z88N136(136,pZ88N136);
01518 static const G4double pZ88N137[7]={1.E-7, 23., 5.5E-5, 1.2E-9, 1.6, 1.8E-5, .0062};
01519 static const std::pair<G4int, const G4double*> Z88N137(137,pZ88N137);
01520 static const G4double pZ88N138[7]={4.E-7, 23., 1.7E-4, 1.5E-9, 1.6, 1.8E-5, .005};
01521 static const std::pair<G4int, const G4double*> Z88N138(138,pZ88N138);
01522 static const std::pair<G4int, const G4double*> Z88[N88]={Z88N135, Z88N136, Z88N137,
01523 Z88N138};
01524
01525 static const G4int N89=3;
01526 static const G4double pZ89N136[7]={2.E-7, 23., 1.1E-4, 1.2E-9, 1.6, 1.8E-5, .0062};
01527 static const std::pair<G4int, const G4double*> Z89N136(136,pZ89N136);
01528 static const G4double pZ89N137[7]={4.E-7, 23., 2.2E-4, 1.2E-9, 1.6, 1.8E-5, .0062};
01529 static const std::pair<G4int, const G4double*> Z89N137(137,pZ89N137);
01530 static const G4double pZ89N138[7]={1.E-7, 23., 5.5E-5, 1.2E-9, 1.6, 1.8E-5, .0062};
01531 static const std::pair<G4int, const G4double*> Z89N138(138,pZ89N138);
01532 static const std::pair<G4int, const G4double*> Z89[N89]={Z89N136, Z89N137, Z89N138};
01533
01534 static const G4int N90=7;
01535 static const G4double pZ90N137[7]={4.E-7, 23., 2.2E-4, 1.2E-9, 1.6, 1.8E-5, .0062};
01536 static const std::pair<G4int, const G4double*> Z90N137(137,pZ90N137);
01537 static const G4double pZ90N138[7]={1.E-6, 23., .0016, .4E-9, 3., 3.E-5, .019};
01538 static const std::pair<G4int, const G4double*> Z90N138(138,pZ90N138);
01539 static const G4double pZ90N139[7]={2.5E-7, 23., 1.1E-4, 1.4E-9, 2.4, 2.7E-5, .0049};
01540 static const std::pair<G4int, const G4double*> Z90N139(139,pZ90N139);
01541 static const G4double pZ90N140[7]={1.2E-7, 23., 3.E-5, 2.E-9, 3., 3.E-5, .003};
01542 static const std::pair<G4int, const G4double*> Z90N140(140,pZ90N140);
01543 static const G4double pZ90N142[7]={4.E-6, 23., .0023, 1.1E-9, 1.8, 2.3E-5, .0064};
01544 static const std::pair<G4int, const G4double*> Z90N142(142,pZ90N142);
01545 static const G4double pZ90N143[7]={9.4E-7, 23., 5.4E-4, 1.1E-9, 3., 3.E-5, .0066};
01546 static const std::pair<G4int, const G4double*> Z90N143(143,pZ90N143);
01547 static const G4double pZ90N144[7]={2.5E-7, 23., 1.4E-4, 1.1E-9, 3., 3.E-5, .0066};
01548 static const std::pair<G4int, const G4double*> Z90N144(144,pZ90N144);
01549 static const std::pair<G4int, const G4double*> Z90[N90]={Z90N137, Z90N138, Z90N139,
01550 Z90N140, Z90N142, Z90N143,
01551 Z90N144};
01552
01553 static const G4int N91=3;
01554 static const G4double pZ91N140[7]={1.E-5, 23., .0052, 1.6E-9, 1.8, 2.3E-5, .0057};
01555 static const std::pair<G4int, const G4double*> Z91N140(140,pZ91N140);
01556 static const G4double pZ91N141[7]={8.E-6, 23., .006, 0., 3.5, 3.5E-5, .021};
01557 static const std::pair<G4int, const G4double*> Z91N141(141,pZ91N141);
01558 static const G4double pZ91N142[7]={8.E-6, 23., .0042, 1.E-9, 2., 2.5E-5, .006};
01559 static const std::pair<G4int, const G4double*> Z91N142(142,pZ91N142);
01560 static const std::pair<G4int, const G4double*> Z91[N91]={Z91N140, Z91N141, Z91N142};
01561
01562 static const G4int N92=10;
01563 static const G4double pZ92N140[7]={1.4E-6, 20., 8.E-4, 1.5E-9, 2.5, 2.8E-5, .0055};
01564 static const std::pair<G4int, const G4double*> Z92N140(140,pZ92N140);
01565 static const G4double pZ92N141[7]={5.6E-6, 20., .0033, 1.E-9, 2.5, 2.8E-5, .006};
01566 static const std::pair<G4int, const G4double*> Z92N141(141,pZ92N141);
01567 static const G4double pZ92N142[7]={5.6E-6, 20., .0034, 0., 2.5, 2.8E-5, .0072};
01568 static const std::pair<G4int, const G4double*> Z92N142(142,pZ92N142);
01569 static const G4double pZ92N143[7]={5.6E-6, 20., .0032, 0., 2., 2.3E-5, .006};
01570 static const std::pair<G4int, const G4double*> Z92N143(143,pZ92N143);
01571 static const G4double pZ92N144[7]={3.6E-7, 20., 1.6E-4, 1.3E-9, 2.2, 2.7E-5, .0043};
01572 static const std::pair<G4int, const G4double*> Z92N144(144,pZ92N144);
01573 static const G4double pZ92N145[7]={3.6E-6, 20., .003, 0., 2.2, 2.7E-5, .045};
01574 static const std::pair<G4int, const G4double*> Z92N145(145,pZ92N145);
01575 static const G4double pZ92N146[7]={3.6E-7, 20., 1.6E-4, 1.3E-9, 2.2, 2.7E-5, .0043};
01576 static const std::pair<G4int, const G4double*> Z92N146(146,pZ92N146);
01577 static const G4double pZ92N147[7]={3.6E-6, 20., .0014, 1.3E-9, 2.2, 2.7E-5, 12.};
01578 static const std::pair<G4int, const G4double*> Z92N147(147,pZ92N147);
01579 static const G4double pZ92N148[7]={3.4E-7, 20., 1.3E-4, 1.3E-9, 2.2, 2.8E-5, .0036};
01580 static const std::pair<G4int, const G4double*> Z92N148(148,pZ92N148);
01581 static const G4double pZ92N149[7]={3.3E-7, 20., 1.5E-4, 1.2E-9, 3., 3.4E-5, .0044};
01582 static const std::pair<G4int, const G4double*> Z92N149(149,pZ92N149);
01583 static const std::pair<G4int, const G4double*> Z92[N92]={Z92N140, Z92N141, Z92N142,
01584 Z92N143, Z92N144, Z92N145,
01585 Z92N146, Z92N147, Z92N148,
01586 Z92N146};
01587
01588 static const G4int N93=5;
01589 static const G4double pZ93N142[7]={3.4E-6, 20., .002, 1.3E-9, 3., 3.3E-5, .0056};
01590 static const std::pair<G4int, const G4double*> Z93N142(142,pZ93N142);
01591 static const G4double pZ93N143[7]={3.4E-6, 20., .002, 1.6E-9, 3.5, 3.6E-5, .005};
01592 static const std::pair<G4int, const G4double*> Z93N143(143,pZ93N143);
01593 static const G4double pZ93N144[7]={6.8E-6, 18., .0052, .8E-9, 2.4, 3.E-5, .0072};
01594 static const std::pair<G4int, const G4double*> Z93N144(144,pZ93N144);
01595 static const G4double pZ93N145[7]={3.4E-6, 20., .002, 1.E-9, 3.5, 3.6E-5, .006};
01596 static const std::pair<G4int, const G4double*> Z93N145(145,pZ93N145);
01597 static const G4double pZ93N146[7]={3.4E-6, 20., .002, 1.5E-9, 3.5, 3.6E-5, .0053};
01598 static const std::pair<G4int, const G4double*> Z93N146(146,pZ93N146);
01599 static const std::pair<G4int, const G4double*> Z93[N93]={Z93N142, Z93N143, Z93N144,
01600 Z93N145, Z93N146};
01601
01602 static const G4int N94=10;
01603 static const G4double pZ94N142[7]={6.8E-7, 16., 4.5E-4, 1.7E-9, 2.6, 3.E-5, .0047};
01604 static const std::pair<G4int, const G4double*> Z94N142(142,pZ94N142);
01605 static const G4double pZ94N143[7]={6.8E-6, 18., .0044, .9E-9, 3.3, 3.5E-5, .0058};
01606 static const std::pair<G4int, const G4double*> Z94N143(143,pZ94N143);
01607 static const G4double pZ94N144[7]={6.8E-7, 16., 6.E-4, 0., 2.7, 2.6E-5, .0082};
01608 static const std::pair<G4int, const G4double*> Z94N144(144,pZ94N144);
01609 static const G4double pZ94N145[7]={2.6E-6, 16., .0017, 1.8E-9, 1.8, 2.E-5, .004};
01610 static const std::pair<G4int, const G4double*> Z94N145(145,pZ94N145);
01611 static const G4double pZ94N146[7]={2.5E-7, 20., 9.E-5, 3.6E-8, 3.4, 3.8E-5, 5.4E-4};
01612 static const std::pair<G4int, const G4double*> Z94N146(146,pZ94N146);
01613 static const G4double pZ94N147[7]={1.4E-5, 16., .01, .8E-9, 2.7, 2.6E-5, .0055};
01614 static const std::pair<G4int, const G4double*> Z94N147(147,pZ94N147);
01615 static const G4double pZ94N148[7]={3.4E-7, 20., 1.3E-4, 1.2E-9, 3.2, 3.E-5, .0036};
01616 static const std::pair<G4int, const G4double*> Z94N148(148,pZ94N148);
01617 static const G4double pZ94N149[7]={5.2E-6, 20., .0035, .4E-9, 2.3, 3.E-5, .0095};
01618 static const std::pair<G4int, const G4double*> Z94N149(149,pZ94N149);
01619 static const G4double pZ94N150[7]={3.3E-7, 20., 1.6E-4, 1.2E-9, 3., 3.E-5, .0046};
01620 static const std::pair<G4int, const G4double*> Z94N150(150,pZ94N150);
01621 static const G4double pZ94N152[7]={2.5E-6, 16., .0018, 1.2E-9, 3., 3.1E-5, .0052};
01622 static const std::pair<G4int, const G4double*> Z94N152(152,pZ94N152);
01623 static const std::pair<G4int, const G4double*> Z94[N94]={Z94N142, Z94N143, Z94N144,
01624 Z94N145, Z94N146, Z94N147,
01625 Z94N148, Z94N149, Z94N150,
01626 Z94N152};
01627
01628 static const G4int N95=4;
01629 static const G4double pZ95N156[7]={2.5E-6, 18., .0016, .9E-9, 2., 2.3E-5, .0058};
01630 static const std::pair<G4int, const G4double*> Z95N156(156,pZ95N156);
01631 static const G4double pZ95N157[7]={5.E-6, 18., .003, 2.7E-9, 2., 2.3E-5, .0039};
01632 static const std::pair<G4int, const G4double*> Z95N157(157,pZ95N157);
01633 static const G4double pZ95N158[7]={5.E-6, 19., .0033, 2.6E-9, 2., 2.3E-5, .0044};
01634 static const std::pair<G4int, const G4double*> Z95N158(158,pZ95N158);
01635 static const G4double pZ95N159[7]={5.E-5, 20., .029, 1.1E-9, 2., 2.3E-5, .0057};
01636 static const std::pair<G4int, const G4double*> Z95N159(159,pZ95N159);
01637 static const std::pair<G4int, const G4double*> Z95[N95]={Z95N156, Z95N157, Z95N158,
01638 Z95N159};
01639
01640 static const G4int N96=10;
01641 static const G4double pZ96N145[7]={5.E-5, 22., .027, 1.1E-9, 2.2, 2.2E-5, .006};
01642 static const std::pair<G4int, const G4double*> Z96N145(145,pZ96N145);
01643 static const G4double pZ96N146[7]={5.E-5, 24., .027, 2.E-9, 2.2, 2.2E-5, .0055};
01644 static const std::pair<G4int, const G4double*> Z96N146(146,pZ96N146);
01645 static const G4double pZ96N147[7]={5.E-5, 22., .025, 2.5E-9, 2.2, 2.4E-5, .0044};
01646 static const std::pair<G4int, const G4double*> Z96N147(147,pZ96N147);
01647 static const G4double pZ96N148[7]={5.E-5, 23., .028, 1.9E-9, 2.2, 3.E-5, .0055};
01648 static const std::pair<G4int, const G4double*> Z96N148(148,pZ96N148);
01649 static const G4double pZ96N149[7]={5.E-5, 23., .025, 1.6E-9, 3., 3.5E-5, .0054};
01650 static const std::pair<G4int, const G4double*> Z96N149(149,pZ96N149);
01651 static const G4double pZ96N150[7]={5.E-5, 24., .026, 2.E-9, 3., 3.6E-5, .0045};
01652 static const std::pair<G4int, const G4double*> Z96N150(150,pZ96N150);
01653 static const G4double pZ96N151[7]={5.E-5, 24., .022, 2.4E-9, 3., 3.6E-5, .0039};
01654 static const std::pair<G4int, const G4double*> Z96N151(151,pZ96N151);
01655 static const G4double pZ96N152[7]={6.5E-7, 25., 2.E-4, 3.4E-9, 3., 3.6E-5, .003};
01656 static const std::pair<G4int, const G4double*> Z96N152(152,pZ96N152);
01657 static const G4double pZ96N153[7]={1.6E-6, 21., 7.E-4, 1.4E-9, 3., 3.6E-5, .0045};
01658 static const std::pair<G4int, const G4double*> Z96N153(153,pZ96N153);
01659 static const G4double pZ96N154[7]={1.3E-5, 16., .016, 0., 3., 3.6E-5, .017};
01660 static const std::pair<G4int, const G4double*> Z96N154(154,pZ96N154);
01661 static const std::pair<G4int, const G4double*> Z96[N96]={Z96N145, Z96N146, Z96N147,
01662 Z96N148, Z96N149, Z96N150,
01663 Z96N151, Z96N152, Z96N153,
01664 Z96N154};
01665
01666 static const G4int N97=2;
01667 static const G4double pZ97N152[7]={6.5E-7, 22., 3.5E-4, 2.7E-9, 3., 4.E-5, .004};
01668 static const std::pair<G4int, const G4double*> Z97N152(152,pZ97N152);
01669 static const G4double pZ97N153[7]={6.5E-6, 22., .0036, 1.E-9, 2.7, 4.E-5, .006};
01670 static const std::pair<G4int, const G4double*> Z97N153(153,pZ97N153);
01671 static const std::pair<G4int, const G4double*> Z97[N97]={Z97N152, Z97N153};
01672
01673 static const G4int N98=6;
01674 static const G4double pZ98N151[7]={6.5E-6, 22., .0035, .9E-9, 3., 4.E-5, .0068};
01675 static const std::pair<G4int, const G4double*> Z98N151(151,pZ98N151);
01676 static const G4double pZ98N152[7]={1.3E-6, 22., 7.E-4, 2.E-9, 2.7, 4.E-5, .0045};
01677 static const std::pair<G4int, const G4double*> Z98N152(152,pZ98N152);
01678 static const G4double pZ98N153[7]={2.6E-6, 22., .0014, 2.1E-9, 2.7, 4.E-5, .0044};
01679 static const std::pair<G4int, const G4double*> Z98N153(153,pZ98N153);
01680 static const G4double pZ98N154[7]={2.6E-6, 22., .0014, 1.3E-9, 2.7, 4.E-5, .0054};
01681 static const std::pair<G4int, const G4double*> Z98N154(154,pZ98N154);
01682 static const G4double pZ98N155[7]={2.6E-5, 22., .03, 0., 2.7, 4.E-5, .03};
01683 static const std::pair<G4int, const G4double*> Z98N155(155,pZ98N155);
01684 static const G4double pZ98N156[7]={5.2E-7, 22., 2.6E-4, 1.3E-9, 2.7, 4.E-5, .005};
01685 static const std::pair<G4int, const G4double*> Z98N156(156,pZ98N156);
01686 static const std::pair<G4int, const G4double*> Z98[N98]={Z98N151, Z98N152, Z98N153,
01687 Z98N154, Z98N155, Z98N156};
01688
01689 static const G4int NZ=99;
01690 static const std::pair<G4int, const G4double*>* Pars[NZ]={Z0,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,
01691 Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18,Z19,Z20,Z21,Z22,Z23,Z24,Z25,Z26,Z27,Z28,Z29,Z30,
01692 Z31,Z32,Z33,Z34,Z35,Z36,Z37,Z38,Z39,Z40,Z41,Z42,Z43,Z44,Z45,Z46,Z47,Z48,Z49,Z50,Z51,
01693 Z52,Z53,Z54,Z55,Z56,Z57,Z58,Z59,Z60,Z61,Z62,Z63,Z64,Z65,Z66,Z67,Z68,Z69,Z70,Z71,Z72,
01694 Z73,Z74,Z75,Z76,Z77,Z78,Z79,Z80,Z81,Z82,Z83,Z84,Z85,Z86,Z87,Z88,Z89,Z90,Z91,Z92,Z93,
01695 Z94,Z95,Z96,Z97,Z98};
01696 static const G4int NIso[NZ]={N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15,N16,
01697 N17,N18,N19,N20,N21,N22,N23,N24,N25,N26,N27,N28,N29,N30,N31,N32,N33,N34,N35,N36,N37,
01698 N38,N39,N40,N41,N42,N43,N44,N45,N46,N47,N48,N49,N50,N51,N52,N53,N54,N55,N56,N57,N58,
01699 N59,N60,N61,N62,N63,N64,N65,N66,N67,N68,N69,N70,N71,N72,N73,N74,N75,N76,N77,N78,N79,
01700 N80,N81,N82,N83,N84,N85,N86,N87,N88,N89,N90,N91,N92,N93,N94,N95,N96,N97,N98};
01701 if(PDG==2112)
01702 {
01703
01704
01705
01706
01707
01708
01709
01710
01711
01712 if(lastPAR[nLast]!=pwd)
01713 {
01714 if ( tgZ == 1 && tgN == 0 )
01715 {
01716 for (G4int ip=0; ip<n_npel; ip++) lastPAR[ip]=np_el[ip];
01717 }
01718 else if ( tgZ == 0 && tgN == 1 )
01719 {
01720 for (G4int ip=0; ip<n_ppel; ip++) lastPAR[ip]=pp_el[ip];
01721 }
01722 else
01723 {
01724 G4double a=tgZ+tgN;
01725 G4double ala=std::log(a);
01726 G4double sa=std::sqrt(a);
01727 G4double ssa=std::sqrt(sa);
01728 G4double asa=a*sa;
01729 G4double a2=a*a;
01730 G4double a3=a2*a;
01731 G4double a4=a3*a;
01732 G4double a5=a4*a;
01733 G4double a6=a4*a2;
01734 G4double a7=a6*a;
01735 G4double a8=a7*a;
01736 G4double a9=a8*a;
01737 G4double a10=a5*a5;
01738 G4double a12=a6*a6;
01739 G4double a14=a7*a7;
01740 G4double a16=a8*a8;
01741 G4double a17=a16*a;
01742 G4double a32=a16*a16;
01743
01744 lastPAR[ 0]=5./(1.+22./asa);
01745 lastPAR[ 1]=4.8*std::exp(ala*1.14)/(1.+3.6/a3);
01746 lastPAR[ 2]=1./(1.+.004*a4)+2.E-6*a3/(1.+1.3E-6*a3);
01747 lastPAR[ 3]=.07*asa/(1.+.009*a2);
01748 lastPAR[ 5]=1.7*a;
01749 lastPAR[ 6]=5.5E-6*std::exp(ala*1.3);
01750 lastPAR[13]=0.;
01751 lastPAR[14]=0.;
01752 G4int nn=NIso[tgZ];
01753 #ifdef pdebug
01754 G4cout<<"G4QNElCrS::CalcCS: Z="<<tgZ<<", nIs="<<nn<<G4endl;
01755 #endif
01756 G4bool nfound=true;
01757 if(nn) for (G4int in=0; in<nn; in++)
01758 {
01759 std::pair<G4int, const G4double*> curIs=Pars[tgZ][in];
01760 G4int cn=curIs.first;
01761 #ifdef pdebug
01762 G4cout<<"G4QNElCrS::CalcCS: N="<<tgN<<", cn="<<cn<<G4endl;
01763 #endif
01764 if(cn == tgN)
01765 {
01766 const G4double* curT=curIs.second;
01767 lastPAR[ 4]=curT[0];
01768 lastPAR[ 7]=curT[1];
01769 lastPAR[ 8]=curT[2];
01770 lastPAR[ 9]=curT[3];
01771 lastPAR[10]=curT[4];
01772 lastPAR[11]=curT[5];
01773 lastPAR[12]=curT[6];
01774 #ifdef pdebug
01775 G4cout<<"G4QNElCrS::CalcCS: Parameters are filled, p12="<<lastPAR[12]<<G4endl;
01776 #endif
01777 nfound = false;
01778 break;
01779 }
01780 }
01781 if(nfound)
01782 {
01783 G4cout<<"-Warning-G4QNeutronElasticCrossSection::CalcCS: Z="<<tgZ<<", N="<<tgN
01784 <<" isotope is not implemented in CHIPS"<<G4endl;
01785 lastPAR[ 4]=5.2E-7;
01786 lastPAR[ 7]=22.;
01787 lastPAR[ 8]=.00026;
01788 lastPAR[ 9]=1.3E-9;
01789 lastPAR[10]=2.7;
01790 lastPAR[11]=4.E-5;
01791 lastPAR[12]=.005;
01792 }
01793
01794 if(a<6.5)
01795 {
01796 G4double a28=a16*a12;
01797
01798 lastPAR[15]=4000*a;
01799 lastPAR[16]=1.2e7*a8+380*a17;
01800 lastPAR[17]=.7/(1.+4.e-12*a16);
01801 lastPAR[18]=2.5/a8/(a4+1.e-16*a32);
01802 lastPAR[19]=.28*a;
01803 lastPAR[20]=1.2*a2+2.3;
01804 lastPAR[21]=3.8/a;
01805
01806 lastPAR[22]=.01/(1.+.0024*a5);
01807 lastPAR[23]=.2*a;
01808 lastPAR[24]=9.e-7/(1.+.035*a5);
01809 lastPAR[25]=(42.+2.7e-11*a16)/(1.+.14*a);
01810
01811 lastPAR[26]=2.25*a3;
01812 lastPAR[27]=18.;
01813 lastPAR[28]=.0024*a8/(1.+2.6e-4*a7);
01814 lastPAR[29]=3.5e-36*a32*a8/(1.+5.e-15*a32/a);
01815 lastPAR[30]=1.e5/(a8+2.5e12/a16);
01816 lastPAR[31]=8.e7/(a12+1.e-27*a28*a28);
01817 lastPAR[32]=.0006*a3;
01818
01819 lastPAR[33]=10.+4.e-8*a12*a;
01820 lastPAR[34]=.114;
01821 lastPAR[35]=.003;
01822 lastPAR[36]=2.e-23;
01823
01824 lastPAR[37]=1./(1.+.0001*a8);
01825 lastPAR[38]=1.5e-4/(1.+5.e-6*a12);
01826 lastPAR[39]=.03;
01827
01828 lastPAR[40]=a/2;
01829 lastPAR[41]=2.e-7*a4;
01830 lastPAR[42]=4.;
01831 lastPAR[43]=64./a3;
01832
01833 lastPAR[44]=1.e8*std::exp(.32*asa);
01834 lastPAR[45]=20.*std::exp(.45*asa);
01835 lastPAR[46]=7.e3+2.4e6/a5;
01836 lastPAR[47]=2.5e5*std::exp(.085*a3);
01837 lastPAR[48]=2.5*a;
01838
01839 lastPAR[49]=920.+.03*a8*a3;
01840 lastPAR[50]=93.+.0023*a12;
01841 #ifdef debug
01842 G4cout<<"G4QNElCrS::CalcCS:la "<<lastPAR[44]<<", "<<lastPAR[45]<<", "<<lastPAR[46]
01843 <<", "<<lastPAR[48]<<", "<<lastPAR[49]<<", "<<lastPAR[50]<<G4endl;
01844 #endif
01845 }
01846 else
01847 {
01848 G4double p1a10=2.2e-28*a10;
01849 G4double r4a16=6.e14/a16;
01850 G4double s4a16=r4a16*r4a16;
01851
01852
01853
01854 lastPAR[15]=4.5*std::pow(a,1.15);
01855 lastPAR[16]=.06*std::pow(a,.6);
01856 lastPAR[17]=.6*a/(1.+2.e15/a16);
01857 lastPAR[18]=.17/(a+9.e5/a3+1.5e33/a32);
01858 lastPAR[19]=(.001+7.e-11*a5)/(1.+4.4e-11*a5);
01859 lastPAR[20]=(p1a10*p1a10+2.e-29)/(1.+2.e-22*a12);
01860
01861 lastPAR[21]=400./a12+2.e-22*a9;
01862 lastPAR[22]=1.e-32*a12/(1.+5.e22/a14);
01863 lastPAR[23]=1000./a2+9.5*sa*ssa;
01864 lastPAR[24]=4.e-6*a*asa+1.e11/a16;
01865 lastPAR[25]=(120./a+.002*a2)/(1.+2.e14/a16);
01866 lastPAR[26]=9.+100./a;
01867
01868 lastPAR[27]=.002*a3+3.e7/a6;
01869 lastPAR[28]=7.e-15*a4*asa;
01870 lastPAR[29]=9000./a4;
01871
01872 lastPAR[30]=.0011*asa/(1.+3.e34/a32/a4);
01873 lastPAR[31]=1.e-5*a2+2.e14/a16;
01874 lastPAR[32]=1.2e-11*a2/(1.+1.5e19/a12);
01875 lastPAR[33]=.016*asa/(1.+5.e16/a16);
01876
01877 lastPAR[34]=.002*a4/(1.+7.e7/std::pow(a-6.83,14));
01878 lastPAR[35]=2.e6/a6+7.2/std::pow(a,.11);
01879 lastPAR[36]=11.*a3/(1.+7.e23/a16/a8);
01880 lastPAR[37]=100./asa;
01881
01882 lastPAR[38]=(.1+4.4e-5*a2)/(1.+5.e5/a4);
01883 lastPAR[39]=3.5e-4*a2/(1.+1.e8/a8);
01884 lastPAR[40]=1.3+3.e5/a4;
01885 lastPAR[41]=500./(a2+50.)+3;
01886 lastPAR[42]=1.e-9/a+s4a16*s4a16;
01887
01888 lastPAR[43]=.4*asa+3.e-9*a6;
01889 lastPAR[44]=.0005*a5;
01890 lastPAR[45]=.002*a5;
01891 lastPAR[46]=10.;
01892
01893 lastPAR[47]=.05+.005*a;
01894 lastPAR[48]=7.e-8/sa;
01895 lastPAR[49]=.8*sa;
01896 lastPAR[50]=.02*sa;
01897 lastPAR[51]=1.e8/a3;
01898 lastPAR[52]=3.e32/(a32+1.e32);
01899
01900 lastPAR[53]=24.;
01901 lastPAR[54]=20./sa;
01902 lastPAR[55]=7.e3*a/(sa+1.);
01903 lastPAR[56]=900.*sa/(1.+500./a3);
01904 #ifdef debug
01905 G4cout<<"G4QNElCrS::CalcCS:ha "<<lastPAR[47]<<", "<<lastPAR[48]<<", "<<lastPAR[49]
01906 <<", "<<lastPAR[50]<<", "<<lastPAR[51]<<", "<<lastPAR[52]<<G4endl;
01907 #endif
01908 }
01909
01910 lastPAR[57]=1.e15+2.e27/a4/(1.+2.e-18*a16);
01911 }
01912 lastPAR[nLast]=pwd;
01913
01914 G4double lp=lPMin;
01915 G4bool memCS=onlyCS;
01916 onlyCS=false;
01917 lastCST[0]=GetTabValues(lp, PDG, tgZ, tgN);
01918 onlyCS=memCS;
01919 lastSST[0]=theSS;
01920 lastS1T[0]=theS1;
01921 lastB1T[0]=theB1;
01922 lastS2T[0]=theS2;
01923 lastB2T[0]=theB2;
01924 lastS3T[0]=theS3;
01925 lastB3T[0]=theB3;
01926 lastS4T[0]=theS4;
01927 lastB4T[0]=theB4;
01928 #ifdef debug
01929 G4cout<<"G4QNeutronElasticCrossSection::GetPTables: ip=0(init), lp="<<lp<<", S1="
01930 <<theS1<<",B1="<<theB1<<",S2="<<theS2<<",B2="<<theB3<<",S3="<<theS3
01931 <<",B3="<<theB3<<",S4="<<theS4<<",B4="<<theB4<<G4endl;
01932 #endif
01933 }
01934 if(LP>ILP)
01935 {
01936 G4int ini = static_cast<int>((ILP-lPMin+.000001)/dlnP)+1;
01937 if(ini<0) ini=0;
01938 if(ini<nPoints)
01939 {
01940 G4int fin = static_cast<int>((LP-lPMin)/dlnP)+1;
01941 if(fin>=nPoints) fin=nLast;
01942 if(fin>=ini)
01943 {
01944 G4double lp=0.;
01945 for(G4int ip=ini; ip<=fin; ip++)
01946 {
01947 lp=lPMin+ip*dlnP;
01948 G4bool memCS=onlyCS;
01949 onlyCS=false;
01950 lastCST[ip]=GetTabValues(lp, PDG, tgZ, tgN);
01951 onlyCS=memCS;
01952 lastSST[ip]=theSS;
01953 lastS1T[ip]=theS1;
01954 lastB1T[ip]=theB1;
01955 lastS2T[ip]=theS2;
01956 lastB2T[ip]=theB2;
01957 lastS3T[ip]=theS3;
01958 lastB3T[ip]=theB3;
01959 lastS4T[ip]=theS4;
01960 lastB4T[ip]=theB4;
01961 #ifdef debug
01962 G4cout<<"G4QNeutronElasticCrossSection::GetPTables: ip="<<ip<<", lp="<<lp
01963 <<", S1="<<theS1<<", B1="<<theB1<<", S2="<<theS2<<", B2="<<theB2<<", S3="
01964 <<theS3<<", B3="<<theB3<<", S4="<<theS4<<", B4="<<theB4<<G4endl;
01965 #endif
01966 }
01967 return lp;
01968 }
01969 else G4cout<<"*Warning*G4QNeutronElasticCrossSection::GetPTables: PDG="<<PDG
01970 <<", Z="<<tgZ<<", N="<<tgN<<", i="<<ini<<" > fin="<<fin<<", LP="<<LP
01971 <<" > ILP="<<ILP<<" nothing is done!"<<G4endl;
01972 }
01973 else G4cout<<"*Warning*G4QNeutronElasticCrossSection::GetPTables: PDG="<<PDG<<", Z="
01974 <<tgZ<<", N="<<tgN<<", i="<<ini<<">= max="<<nPoints<<", LP="<<LP
01975 <<" > ILP="<<ILP<<", lPMax="<<lPMax<<" nothing is done!"<<G4endl;
01976 }
01977 #ifdef debug
01978 else G4cout<<"*Warning*G4QNeutronElasticCrossSect::GetPTables: PDG="<<PDG<<", Z="<<tgZ
01979 <<", N="<<tgN<<", LP="<<LP<<" <= ILP="<<ILP<<" nothing is done!"<<G4endl;
01980 #endif
01981 }
01982 else
01983 {
01984
01985
01986
01987 G4ExceptionDescription ed;
01988 ed << "PDG = " << PDG << ", Z = " << tgZ <<", N = " << tgN
01989 << ", while it is defined only for PDG=2112 (n)" << G4endl;
01990 G4Exception("G4QNeutronElasticCrossSection::GetPTables()", "HAD_CHPS_0000",
01991 FatalException, ed);
01992 }
01993 return ILP;
01994 }
01995
01996
01997 G4double G4QNeutronElasticCrossSection::GetExchangeT(G4int tgZ, G4int tgN, G4int PDG)
01998 {
01999 static const G4double GeVSQ=gigaelectronvolt*gigaelectronvolt;
02000 static const G4double third=1./3.;
02001 static const G4double fifth=1./5.;
02002 static const G4double sevth=1./7.;
02003 #ifdef tdebug
02004 G4cout<<"G4QNeutElCrS::GetExcT:F="<<onlyCS<<",Z="<<tgZ<<",N="<<tgN<<",PDG="<<PDG<<G4endl;
02005 #endif
02006 if(PDG!=2112) G4cout<<"*Warning*G4QNeutronElasticCrossSection::GetExT:PDG="<<PDG<<G4endl;
02007 if(onlyCS) G4cout<<"*Warning*G4QNeutronElasticCrossSection::GetExchangeT:onCS=1"<<G4endl;
02008 if(lastLP<-4.3) return lastTM*GeVSQ*G4UniformRand();
02009 G4double q2=0.;
02010 if(tgZ==1 && tgN==0)
02011 {
02012 #ifdef tdebug
02013 G4cout<<"G4QNeutronElasticCrS::GetExchangeT: TM="<<lastTM<<",S1="<<theS1<<",B1="<<theB1
02014 <<",S2="<<theS2<<",B2="<<theB2<<",GeV2="<<GeVSQ<<G4endl;
02015 #endif
02016 G4double E1=lastTM*theB1;
02017 G4double R1=(1.-std::exp(-E1));
02018 #ifdef tdebug
02019 G4double ts1=-std::log(1.-R1)/theB1;
02020 G4double ds1=std::fabs(ts1-lastTM)/lastTM;
02021 if(ds1>.0001)
02022 G4cout<<"*Warning*G4QNeutronElasticCrossSection::GetExT:1n "<<ts1<<"#"<<lastTM<<",d="
02023 <<ds1<<",R1="<<R1<<",E1="<<E1<<G4endl;
02024 #endif
02025 G4double E2=lastTM*theB2;
02026 G4double R2=(1.-std::exp(-E2));
02027 #ifdef tdebug
02028 G4double ts2=-std::log(1.-R2)/theB2;
02029 G4double ds2=std::fabs(ts2-lastTM)/lastTM;
02030 if(ds2>.0001)
02031 G4cout<<"*Warning*G4QNeutronElasticCrossSection::GetExT:2n "<<ts2<<"#"<<lastTM<<",d="
02032 <<ds2<<",R2="<<R2<<",E2="<<E2<<G4endl;
02033 #endif
02034
02035
02036 #ifdef tdebug
02037
02038
02039
02040 #endif
02041 G4double I1=R1*theS1;
02042 G4double I2=R2*theS2/theB2;
02043
02044 G4double I12=I1+I2;
02045
02046 G4double rand=I12*G4UniformRand();
02047 if (rand<I1 )
02048 {
02049 G4double ran=R1*G4UniformRand();
02050 if(ran>1.) ran=1.;
02051 q2=-std::log(1.-ran)/theB1;
02052 }
02053 else
02054 {
02055 G4double ran=R2*G4UniformRand();
02056 if(ran>1.) ran=1.;
02057 q2=lastTM+std::log(1.-ran)/theB2;
02058 }
02059 }
02060 else
02061 {
02062 G4double a=tgZ+tgN;
02063 #ifdef tdebug
02064 G4cout<<"G4QNeutronElCroSec::GetExT:a="<<a<<",t="<<lastTM<<",S1="<<theS1<<",B1="<<theB1
02065 <<",SS="<<theSS<<",S2="<<theS2<<",B2="<<theB2<<",S3="<<theS3<<",B3="<<theB3
02066 <<",S4="<<theS4<<",B4="<<theB4<<G4endl;
02067 #endif
02068 G4double E1=lastTM*(theB1+lastTM*theSS);
02069 G4double R1=(1.-std::exp(-E1));
02070 G4double tss=theSS+theSS;
02071 #ifdef tdebug
02072 G4double ts1=-std::log(1.-R1)/theB1;
02073 if(std::fabs(tss)>1.e-7) ts1=(std::sqrt(theB1*(theB1+(tss+tss)*ts1))-theB1)/tss;
02074 G4double ds1=(ts1-lastTM)/lastTM;
02075 if(ds1>.0001)
02076 G4cout<<"*Warning*G4QNeutronElasticCrossSection::GetExT:1a "<<ts1<<"#"<<lastTM<<",d="
02077 <<ds1<<",R1="<<R1<<",E1="<<E1<<G4endl;
02078 #endif
02079 G4double tm2=lastTM*lastTM;
02080 G4double E2=lastTM*tm2*theB2;
02081 if(a>6.5)E2*=tm2;
02082 G4double R2=(1.-std::exp(-E2));
02083 #ifdef tdebug
02084 G4double ts2=-std::log(1.-R2)/theB2;
02085 if(a<6.5)ts2=std::pow(ts2,third);
02086 else ts2=std::pow(ts2,fifth);
02087 G4double ds2=std::fabs(ts2-lastTM)/lastTM;
02088 if(ds2>.0001)
02089 G4cout<<"*Warning*G4QNeutronElasticCrossSection::GetExT:2a "<<ts2<<"#"<<lastTM<<",d="
02090 <<ds2<<",R2="<<R2<<",E2="<<E2<<G4endl;
02091 #endif
02092 G4double E3=lastTM*theB3;
02093 if(a>6.5)E3*=tm2*tm2*tm2;
02094 G4double R3=(1.-std::exp(-E3));
02095 #ifdef tdebug
02096 G4double ts3=-std::log(1.-R3)/theB3;
02097 if(a>6.5)ts3=std::pow(ts3,sevth);
02098 G4double ds3=std::fabs(ts3-lastTM)/lastTM;
02099 if(ds3>.0001)
02100 G4cout<<"*Warning*G4QNeutronElasticCrossSection::GetExT:3a "<<ts3<<"#"<<lastTM<<",d="
02101 <<ds3<<",R3="<<R3<<",E3="<<E3<<G4endl;
02102 #endif
02103 G4double E4=lastTM*theB4;
02104 G4double R4=(1.-std::exp(-E4));
02105 #ifdef tdebug
02106 G4double ts4=-std::log(1.-R4)/theB4;
02107 G4double ds4=std::fabs(ts4-lastTM)/lastTM;
02108 if(ds4>.0001)
02109 G4cout<<"*Warning*G4QNeutronElasticCrissSection::GetExT:4a "<<ts4<<"#"<<lastTM<<",d="
02110 <<ds4<<",R4="<<R4<<",E4="<<E4<<G4endl;
02111 #endif
02112 G4double I1=R1*theS1;
02113 G4double I2=R2*theS2;
02114 G4double I3=R3*theS3;
02115 G4double I4=R4*theS4;
02116 G4double I12=I1+I2;
02117 G4double I13=I12+I3;
02118 G4double rand=(I13+I4)*G4UniformRand();
02119 #ifdef tdebug
02120 G4cout<<"G4QNElCS::GtExT:1="<<I1<<",2="<<I2<<",3="<<I3<<",4="<<I4<<",r="<<rand<<G4endl;
02121 #endif
02122 if(rand<I1)
02123 {
02124 G4double ran=R1*G4UniformRand();
02125 if(ran>1.) ran=1.;
02126 q2=-std::log(1.-ran)/theB1;
02127 if(std::fabs(tss)>1.e-7) q2=(std::sqrt(theB1*(theB1+(tss+tss)*q2))-theB1)/tss;
02128 #ifdef tdebug
02129 G4cout<<"G4QNElCS::GetET:Q2="<<q2<<",ss="<<tss/2<<",b1="<<theB1<<",t1="<<ts1<<G4endl;
02130 #endif
02131 }
02132 else if(rand<I12)
02133 {
02134 G4double ran=R2*G4UniformRand();
02135 if(ran>1.) ran=1.;
02136 q2=-std::log(1.-ran)/theB2;
02137 if(q2<0.) q2=0.;
02138 if(a<6.5) q2=std::pow(q2,third);
02139 else q2=std::pow(q2,fifth);
02140 #ifdef tdebug
02141 G4cout<<"G4QNElCS::GetExT: Q2="<<q2<<",r2="<<R2<<", b2="<<theB2<<",t2="<<ts2<<G4endl;
02142 #endif
02143 }
02144 else if(rand<I13)
02145 {
02146 G4double ran=R3*G4UniformRand();
02147 if(ran>1.) ran=1.;
02148 q2=-std::log(1.-ran)/theB3;
02149 if(q2<0.) q2=0.;
02150 if(a>6.5) q2=std::pow(q2,sevth);
02151 #ifdef tdebug
02152 G4cout<<"G4QNElCS::GetExT:Q2="<<q2<<", r3="<<R2<<", b3="<<theB2<<",t3="<<ts2<<G4endl;
02153 #endif
02154 }
02155 else
02156 {
02157 G4double ran=R4*G4UniformRand();
02158 if(ran>1.) ran=1.;
02159 q2=-std::log(1.-ran)/theB4;
02160 if(a<6.5) q2=lastTM-q2;
02161 #ifdef tdebug
02162 G4cout<<"G4QNElCS::GetET:Q2="<<q2<<",m="<<lastTM<<",b4="<<theB3<<",t4="<<ts3<<G4endl;
02163 #endif
02164 }
02165 }
02166 if(q2<0.) q2=0.;
02167 if(!(q2>=-1.||q2<=1.)) G4cout<<"*NAN*G4QNeutronElCroSect::GetExchangeT: -t="<<q2<<G4endl;
02168 if(q2>lastTM)
02169 {
02170 #ifdef tdebug
02171 G4cout<<"*Warning*G4QNeutronElasticCrossSection::GetExT:-t="<<q2<<" >"<<lastTM<<G4endl;
02172 #endif
02173 q2=lastTM;
02174 }
02175 return q2*GeVSQ;
02176 }
02177
02178
02179 G4double G4QNeutronElasticCrossSection::GetSlope(G4int tgZ, G4int tgN, G4int PDG)
02180 {
02181 static const G4double GeVSQ=gigaelectronvolt*gigaelectronvolt;
02182 #ifdef tdebug
02183 G4cout<<"G4QNeutrElCS::GetSlope:"<<onlyCS<<", Z="<<tgZ<<",N="<<tgN<<",PDG="<<PDG<<G4endl;
02184 #endif
02185 if(onlyCS) G4cout<<"Warning*G4QNeutronElasticCrossSection::GetSlope:onlyCS=true"<<G4endl;
02186 if(lastLP<-4.3) return 0.;
02187 if(PDG!=2112)
02188 {
02189
02190
02191
02192 G4ExceptionDescription ed;
02193 ed << "PDG = " << PDG << ", Z = " << tgZ << ", N = " << tgN
02194 <<", while it is defined only for PDG=2112 (n) " << G4endl;
02195 G4Exception("G4QNeutronElasticCrossSection::GetSlope()", "HAD_CHPS_0000",
02196 FatalException, ed);
02197 }
02198 if(theB1<0.) theB1=0.;
02199 if(!(theB1>=-1.||theB1<=1.))G4cout<<"*NAN*G4QNeutElasticCrosS::Getslope:"<<theB1<<G4endl;
02200 return theB1/GeVSQ;
02201 }
02202
02203
02204 G4double G4QNeutronElasticCrossSection::GetHMaxT()
02205 {
02206 static const G4double HGeVSQ=gigaelectronvolt*gigaelectronvolt/2.;
02207 return lastTM*HGeVSQ;
02208 }
02209
02210
02211 G4double G4QNeutronElasticCrossSection::GetTabValues(G4double lp, G4int PDG, G4int tgZ,
02212 G4int tgN)
02213 {
02214 if(PDG!=2112) G4cout<<"*Warning*G4QNeutronElasticCrossSection::GetTaV:PDG="<<PDG<<G4endl;
02215 if(tgZ<0 || tgZ>92)
02216 {
02217 G4cout<<"*Warning*G4QNElasticCrS::GetTabValue: (1-92) No isotopes for Z="<<tgZ<<G4endl;
02218 return 0.;
02219 }
02220 G4int iZ=tgZ-1;
02221 if(iZ<0)
02222 {
02223 iZ=0;
02224 tgZ=1;
02225 tgN=0;
02226 }
02227
02228
02229 #ifdef isodebug
02230
02231 #endif
02232
02233
02234 #ifdef debug
02235 G4cout<<"G4QNElasticCS::GetTabVal:lp="<<lp<<",Z="<<tgZ<<",N="<<tgN<<",PDG="<<PDG<<G4endl;
02236 #endif
02237 G4double p=std::exp(lp);
02238 G4double sp=std::sqrt(p);
02239 G4double p2=p*p;
02240 G4double p3=p2*p;
02241 G4double p4=p3*p;
02242 if ( tgZ == 1 && tgN == 0 )
02243 {
02244 G4double ssp=std::sqrt(sp);
02245 G4double p2s=p2*sp;
02246 G4double dl1=lp-lastPAR[3];
02247 theSS=lastPAR[27];
02248 theS1=(lastPAR[9]+lastPAR[10]*dl1*dl1+lastPAR[11]/p)/(1.+lastPAR[12]/p4)
02249 +lastPAR[13]/(p4+lastPAR[14]);
02250 theB1=(lastPAR[17]+lastPAR[18]/(p4*p4+lastPAR[19]*p3))/(1.+lastPAR[20]/p4);
02251 theS2=(lastPAR[15]+lastPAR[16]/p4/p)/p3;
02252 theB2=lastPAR[22]/(p*sp+lastPAR[23]);
02253 theS3=0.;
02254 theB3=0.;
02255 theS4=0.;
02256 theB4=0.;
02257 #ifdef tdebug
02258 G4cout<<"G4QNeutronElasticCroS::GetTableValues:(np) TM="<<lastTM<<",S1="<<theS1<<",B1="
02259 <<theB1<<",S2="<<theS2<<",B2="<<theB2<<",S3="<<theS1<<",B3="<<theB1<<G4endl;
02260 #endif
02261
02262 return lastPAR[0]/(p2s+lastPAR[1]*p+lastPAR[2]/ssp)+lastPAR[4]/p
02263 +(lastPAR[5]+lastPAR[6]*dl1*dl1+lastPAR[7]/p)/(1.+lastPAR[8]/p4);
02264
02265 }
02266 else
02267 {
02268 G4double p5=p4*p;
02269 G4double p6=p5*p;
02270 G4double p8=p6*p2;
02271 G4double p10=p8*p2;
02272 G4double p12=p10*p2;
02273 G4double p16=p8*p8;
02274 G4double dl=lp-5.;
02275 G4double a=tgZ+tgN;
02276 G4double pah=std::pow(p,a/2);
02277 G4double pa=pah*pah;
02278 G4double pa2=pa*pa;
02279 if(a<6.5)
02280 {
02281 theS1=lastPAR[15]/(1.+lastPAR[16]*p4*pa)+lastPAR[17]/(p4+lastPAR[18]*p4/pa2)+
02282 (lastPAR[19]*dl*dl+lastPAR[20])/(1.+lastPAR[21]/p2);
02283 theB1=(lastPAR[22]+lastPAR[23]*p2)/(p4+lastPAR[24]/pah)+lastPAR[25];
02284 theSS=lastPAR[26]/(1.+lastPAR[27]/p2)+lastPAR[28]/(p6/pa+lastPAR[29]/p16);
02285 theS2=lastPAR[30]/(pa/p2+lastPAR[31]/p4)+lastPAR[32];
02286 theB2=lastPAR[33]*std::pow(p,lastPAR[34])+lastPAR[35]/(p8+lastPAR[36]/p16);
02287 theS3=lastPAR[37]/(pa*p+lastPAR[38]/pa)+lastPAR[39];
02288 theB3=lastPAR[40]/(p3+lastPAR[41]/p6)+lastPAR[42]/(1.+lastPAR[43]/p2);
02289 theS4=p2*(pah*lastPAR[44]*std::exp(-pah*lastPAR[45])+
02290 lastPAR[46]/(1.+lastPAR[47]*std::pow(p,lastPAR[48])));
02291 theB4=lastPAR[49]*pa/p2/(1.+pa*lastPAR[50]);
02292 #ifdef tdebug
02293 G4cout<<"G4QNElCS::GetTabV: lA, p="<<p<<",S1="<<theS1<<",B1="<<theB1<<",SS="<<theSS
02294 <<",S2="<<theS2<<",B2="<<theB2<<",S3="<<theS3<<",B3="<<theB3<<",S4="<<theS4
02295 <<",B4="<<theB4<<G4endl;
02296 #endif
02297 }
02298 else
02299 {
02300 theS1=lastPAR[15]/(1.+lastPAR[16]/p4)+lastPAR[17]/(p4+lastPAR[18]/p2)+
02301 lastPAR[19]/(p5+lastPAR[20]/p16);
02302 theB1=(lastPAR[21]/p8+lastPAR[25])/(p+lastPAR[22]/std::pow(p,lastPAR[26]))+
02303 lastPAR[23]/(1.+lastPAR[24]/p4);
02304 theSS=lastPAR[27]/(p4/std::pow(p,lastPAR[29])+lastPAR[28]/p4);
02305 theS2=lastPAR[30]/p4/(std::pow(p,lastPAR[31])+lastPAR[32]/p12)+lastPAR[33];
02306 theB2=lastPAR[34]/std::pow(p,lastPAR[35])+lastPAR[36]/std::pow(p,lastPAR[37]);
02307 theS3=lastPAR[38]/std::pow(p,lastPAR[41])/(1.+lastPAR[42]/p12)+
02308 lastPAR[39]/(1.+lastPAR[40]/p6);
02309 theB3=lastPAR[43]/p8+lastPAR[44]/p2+lastPAR[45]/(1.+lastPAR[46]/p8);
02310 theS4=(lastPAR[47]/p4+lastPAR[52]/p)/(1.+lastPAR[48]/p10)+
02311 (lastPAR[49]+lastPAR[50]*dl*dl)/(1.+lastPAR[51]/p12);
02312 theB4=lastPAR[53]/(1.+lastPAR[54]/p)+lastPAR[55]*p4/(1.+lastPAR[56]*p5);
02313 #ifdef tdebug
02314 G4cout<<"G4QNElCS::GetTabV: hA, p="<<p<<",S1="<<theS1<<",B1="<<theB1<<",SS="<<theSS
02315 <<",S2="<<theS2<<",B2="<<theB2<<",S3="<<theS3<<",B3="<<theB3<<",S4="<<theS4
02316 <<",B4="<<theB4<<G4endl;
02317 #endif
02318 }
02319
02320 #ifdef tdebug
02321 G4cout<<"G4QNeutronElCS::GetTabV: PDG="<<PDG<<",P="<<p<<",N="<<tgN<<",Z="<<tgZ<<G4endl;
02322 #endif
02323 #ifdef pdebug
02324 G4cout<<"G4QNElCS::GetTV: p="<<p<<",P12="<<lastPAR[12]<<",N="<<tgN<<",Z="<<tgZ<<G4endl;
02325 #endif
02326
02327 return (lastPAR[0]*dl*dl+lastPAR[1])/(1.+lastPAR[2]/p+lastPAR[3]/p4)+lastPAR[5]/
02328 (p3+lastPAR[6]/p3)+lastPAR[7]/(p2+lastPAR[4]/(p2+lastPAR[8])+lastPAR[9]/p)+
02329 lastPAR[10]/(p5+lastPAR[11]/p2)+lastPAR[12]/p;
02330
02331 }
02332 return 0.;
02333 }
02334
02335
02336 G4double G4QNeutronElasticCrossSection::GetQ2max(G4int PDG, G4int tgZ, G4int tgN,
02337 G4double pP)
02338 {
02339 static const G4double mNeut= G4QPDGCode(2112).GetMass()*.001;
02340 static const G4double mProt= G4QPDGCode(2212).GetMass()*.001;
02341
02342
02343
02344
02345
02346 static const G4double mNeut2= mNeut*mNeut;
02347
02348 G4double pP2=pP*pP;
02349 if(tgZ==0 && tgN==1)
02350 {
02351 G4double tMid=std::sqrt(pP2+mNeut2)*mNeut-mNeut2;
02352 return tMid+tMid;
02353 }
02354 else if(tgZ || tgN)
02355 {
02356 G4double mt=mProt;
02357 if(tgN||tgZ>1) mt=G4QPDGCode(90000000+tgZ*1000+tgN).GetMass()*.001;
02358 G4double dmt=mt+mt;
02359 G4double s_value=dmt*std::sqrt(pP2+mNeut2)+mNeut2+mt*mt;
02360 return dmt*dmt*pP2/s_value;
02361 }
02362 else
02363 {
02364
02365
02366
02367 G4ExceptionDescription ed;
02368 ed << "PDG = " << PDG << ", Z = " << tgZ << ", N =" << tgN
02369 <<", while it is defined only for n projectiles & Z_target>0" << G4endl;
02370 G4Exception("G4QNeutronElasticCrossSection::GetQ2max()", "HAD_CHPS_0000",
02371 FatalException, ed);
02372 return 0;
02373 }
02374 }