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
00046
00047 #include "G4QNeutronNuclearCrossSection.hh"
00048 #include "G4SystemOfUnits.hh"
00049
00050
00051 G4double* G4QNeutronNuclearCrossSection::lastLEN=0;
00052 G4double* G4QNeutronNuclearCrossSection::lastHEN=0;
00053 G4int G4QNeutronNuclearCrossSection::lastN=0;
00054 G4int G4QNeutronNuclearCrossSection::lastZ=0;
00055 G4double G4QNeutronNuclearCrossSection::lastP=0.;
00056 G4double G4QNeutronNuclearCrossSection::lastTH=0.;
00057 G4double G4QNeutronNuclearCrossSection::lastCS=0.;
00058 G4int G4QNeutronNuclearCrossSection::lastI=0;
00059 G4double G4QNeutronNuclearCrossSection::HEthresh=0.;
00060 std::vector<G4double*>* G4QNeutronNuclearCrossSection::LEN = new std::vector<G4double*>;
00061 std::vector<G4double*>* G4QNeutronNuclearCrossSection::HEN = new std::vector<G4double*>;
00062
00063
00064 G4VQCrossSection* G4QNeutronNuclearCrossSection::GetPointer()
00065 {
00066 static G4QNeutronNuclearCrossSection theCrossSection;
00067 return &theCrossSection;
00068 }
00069
00070 G4QNeutronNuclearCrossSection::~G4QNeutronNuclearCrossSection()
00071 {
00072 G4int lens=LEN->size();
00073 for(G4int i=0; i<lens; ++i) delete[] (*LEN)[i];
00074 delete LEN;
00075 G4int hens=HEN->size();
00076 for(G4int i=0; i<hens; ++i) delete[] (*HEN)[i];
00077 delete HEN;
00078 }
00079
00080
00081
00082 G4double G4QNeutronNuclearCrossSection::GetCrossSection(G4bool fCS, G4double pMom,
00083 G4int tgZ, G4int tgN, G4int PDG)
00084 {
00085
00086 static G4int j;
00087 static std::vector <G4int> colN;
00088 static std::vector <G4int> colZ;
00089 static std::vector <G4double> colP;
00090 static std::vector <G4double> colTH;
00091 static std::vector <G4double> colCS;
00092
00093 #ifdef debug
00094 G4cout<<"G4QNeutCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="
00095 <<tgN<<"("<<lastN<<"),PDG=2112, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
00096 #endif
00097 if(PDG!=2112) G4cout<<"-Warning-G4QNeutronCS::GetCS:**Not a neutron**,PDG="<<PDG<<G4endl;
00098 G4bool in=false;
00099 if(tgN!=lastN || tgZ!=lastZ)
00100 {
00101 in = false;
00102 lastP = 0.;
00103 lastN = tgN;
00104 lastZ = tgZ;
00105 lastI = colN.size();
00106 j = 0;
00107 #ifdef debug
00108 G4cout<<"G4QNeutCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
00109 #endif
00110 if(lastI) for(G4int i=0; i<lastI; i++)
00111 {
00112 if(colN[i]==tgN && colZ[i]==tgZ)
00113 {
00114 lastI=i;
00115 lastTH =colTH[i];
00116 #ifdef debug
00117 G4cout<<"G4QNCS::GetCS: *Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
00118 #endif
00119 if(pMom<=lastTH)
00120 {
00121 #ifdef debug
00122 G4cout<<"G4QNCS::GetCS:Found,P="<<pMom<<" < Threshold="<<lastTH<<",CS=0"<<G4endl;
00123 #endif
00124 return 0.;
00125 }
00126 lastP =colP [i];
00127 lastCS =colCS[i];
00128 if(std::fabs(lastP-pMom)<tolerance*pMom)
00129
00130 {
00131 #ifdef debug
00132 G4cout<<"...G4QNCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
00133 #endif
00134
00135 return lastCS*millibarn;
00136 }
00137 in = true;
00138
00139 #ifdef debug
00140 G4cout<<"G4QNCS::GX:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
00141 #endif
00142 lastCS=CalculateCrossSection(fCS,-1,j,2112,lastZ,lastN,pMom);
00143 #ifdef debug
00144 G4cout<<"G4QNeutCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
00145 #endif
00146 if(lastCS<=0. && pMom>lastTH)
00147 {
00148 #ifdef debug
00149 G4cout<<"G4QNeutCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
00150 #endif
00151 lastCS=0.;
00152 lastTH=pMom;
00153 }
00154 break;
00155 }
00156 #ifdef debug
00157 G4cout<<"-->G4QNeutronNuclearCrossSec::GetCrosSec: pPDG=2112, j="<<j<<", N="<<colN[i]
00158 <<",Z["<<i<<"]="<<colZ[i]<<G4endl;
00159 #endif
00160 j++;
00161 }
00162 #ifdef debug
00163 G4cout<<"-?-G4QNeuCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<"?"<<G4endl;
00164 #endif
00165 if(!in)
00166 {
00167 #ifdef debug
00168 G4cout<<"^^^G4QNeutCS::GetCS:CalcNew P="<<pMom<<",f="<<fCS<<",lastI="<<lastI<<G4endl;
00169 #endif
00171 lastCS=CalculateCrossSection(fCS,0,j,2112,lastZ,lastN,pMom); //calculate & create
00172
00173
00174
00175 lastTH = ThresholdEnergy(tgZ, tgN);
00176 #ifdef debug
00177 G4cout<<"G4QPrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
00178 #endif
00179 colN.push_back(tgN);
00180 colZ.push_back(tgZ);
00181 colP.push_back(pMom);
00182 colTH.push_back(lastTH);
00183 colCS.push_back(lastCS);
00184 #ifdef debug
00185 G4cout<<"G4QNCS::GetCrosSec: recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
00186 #endif
00187
00188 #ifdef pdebug
00189 G4cout<<"G4QNCS::GetCS:1st, P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
00190 #endif
00191 return lastCS*millibarn;
00192 }
00193 else
00194 {
00195 #ifdef debug
00196 G4cout<<"G4QNeutronNuclCrossSections::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
00197 #endif
00198 colP[lastI]=pMom;
00199 colCS[lastI]=lastCS;
00200 }
00201 }
00202 else if(pMom<=lastTH)
00203 {
00204 #ifdef debug
00205 G4cout<<"G4QNeutCS::GetCS:Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
00206 #endif
00207 return 0.;
00208 }
00209 else if(std::fabs(lastP-pMom)<tolerance*pMom)
00210
00211 {
00212 #ifdef debug
00213 G4cout<<"..G4QNCS::GetCS:OldNZ&P="<<lastP<<"="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
00214 #endif
00215 return lastCS*millibarn;
00216 }
00217 else
00218 {
00219 #ifdef debug
00220 G4cout<<"-!-G4QNCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;
00221 #endif
00222 lastCS=CalculateCrossSection(fCS,1,j,2112,lastZ,lastN,pMom);
00223 lastP=pMom;
00224 }
00225 #ifdef debug
00226 G4cout<<"==>G4QNCS::GetCroSec: P="<<pMom<<"(MeV), CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
00227 #endif
00228 return lastCS*millibarn;
00229 }
00230
00231
00232 G4double G4QNeutronNuclearCrossSection::CalculateCrossSection(G4bool, G4int F, G4int I,
00233 G4int, G4int targZ, G4int targN, G4double Momentum)
00234 {
00235 static const G4double THmin=1.;
00236 static const G4double THmiG=THmin*.001;
00237 static const G4double dP=10.;
00238 static const G4double dPG=dP*.001;
00239 static const G4int nL=105;
00240 static const G4double Pmin=THmin+(nL-1)*dP;
00241 static const G4double Pmax=227000.;
00242 static const G4int nH=224;
00243 static const G4double milP=std::log(Pmin);
00244 static const G4double malP=std::log(Pmax);
00245 static const G4double dlP=(malP-milP)/(nH-1);
00246 static const G4double milPG=std::log(.001*Pmin);
00247
00248
00249
00250 #ifdef debug
00251 G4cout<<"G4QNeutNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
00252 #endif
00253 G4double sigma=0.;
00254 if(F&&I) sigma=0.;
00255
00256 #ifdef debug
00257 G4cout<<"G4QNeutNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
00258 #endif
00259 if(F<=0)
00260 {
00261 if(F<0)
00262 {
00263 G4int sync=LEN->size();
00264 if(sync<=I) G4cerr<<"*!*G4QNetronNuclCS::CalcCrossSect:Sync="<<sync<<"<="<<I<<G4endl;
00265 lastLEN=(*LEN)[I];
00266 lastHEN=(*HEN)[I];
00267 }
00268 else
00269 {
00270 lastLEN = new G4double[nL];
00271 lastHEN = new G4double[nH];
00272
00273 G4double P=THmiG;
00274 for(G4int n=0; n<nL; n++)
00275 {
00276 lastLEN[n] = CrossSectionLin(targZ, targN, P);
00277 #ifdef debug
00278 G4cout<<"-Li->G4QNeutNucCS::CalcCS: P="<<P<<", S="<<lastLEN[n]<<G4endl;
00279 #endif
00280 P+=dPG;
00281 }
00282 G4double lP=milPG;
00283 for(G4int n=0; n<nH; n++)
00284 {
00285 lastHEN[n] = CrossSectionLog(targZ, targN, lP);
00286 #ifdef debug
00287 G4cout<<"-Li->G4QNeutNucCS::CalcCS: lP="<<lP<<", S="<<lastHEN[n]<<G4endl;
00288 #endif
00289 lP+=dlP;
00290 }
00291
00292
00293 G4int sync=LEN->size();
00294 #ifdef debug
00295 G4cout<<"-*->G4QNeutNCS::CCS:Z="<<targZ<<",N="<<targN<<",I="<<I<<",S="<<sync<<G4endl;
00296 #endif
00297 if(sync!=I)
00298 {
00299 G4cerr<<"***G4QNetronNuclearCS::CalcCrossSect: Sync="<<sync<<"#"<<I<<", Z=" <<targZ
00300 <<", N="<<targN<<", F="<<F<<G4endl;
00301
00302 }
00303 LEN->push_back(lastLEN);
00304 HEN->push_back(lastHEN);
00305 }
00306 }
00307
00308 #ifdef debug
00309 G4cout<<"G4QNeutCS::CalcCS:lTH="<<lastTH<<",Pi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
00310 #endif
00311 if (Momentum<lastTH) return 0.;
00312 else if (Momentum<Pmin)
00313 {
00314 #ifdef debug
00315 G4cout<<"G4QNeutCS::CalcCS:bLEN nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
00316 #endif
00317 sigma=EquLinearFit(Momentum,nL,THmin,dP,lastLEN);
00318 #ifdef debugn
00319 if(sigma<0.)
00320 G4cout<<"G4QNeutCS::CalcCS: E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
00321 #endif
00322 }
00323 else if (Momentum<Pmax)
00324 {
00325 G4double lP=std::log(Momentum);
00326 #ifdef debug
00327 G4cout<<"G4QProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
00328 #endif
00329 sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN);
00330 }
00331 else
00332 {
00333 G4double P=0.001*Momentum;
00334 sigma=CrossSectionFormula(targZ, targN, P, std::log(P));
00335 }
00336 #ifdef debug
00337 G4cout<<"G4QNeutronNuclearCrossSection::CalcCS: CS="<<sigma<<G4endl;
00338 #endif
00339 if(sigma<0.) return 0.;
00340 return sigma;
00341 }
00342
00343
00344 G4double G4QNeutronNuclearCrossSection::CrossSectionLin(G4int tZ, G4int tN, G4double P)
00345 {
00346
00347 static const G4int N0=1;
00348 static const G4double pZ0N1[4]={1., 0., 0., 1.};
00349 static const std::pair<G4int, const G4double*> Z0N1(1,pZ0N1);
00350 static const std::pair<G4int, const G4double*> Z0[N0]={Z0N1};
00351
00352 static const G4int N1=2;
00353 static const G4double pZ1N1[4]={6.E-8, 0., 0., 1.};
00354 static const std::pair<G4int, const G4double*> Z1N1(1,pZ1N1);
00355 static const G4double pZ1N2[4]={9.E-8, 0., 0., 1.};
00356 static const std::pair<G4int, const G4double*> Z1N2(2,pZ1N2);
00357 static const std::pair<G4int, const G4double*> Z1[N1]={Z1N1, Z1N2};
00358
00359 static const G4int N2=2;
00360 static const G4double pZ2N1[4]={1.E-13, 9000., 1.E-4, 2.E-4};
00361 static const std::pair<G4int, const G4double*> Z2N1(1,pZ2N1);
00362 static const G4double pZ2N2[4]={7.E-4, 0., 0., 1.};
00363 static const std::pair<G4int, const G4double*> Z2N2(2,pZ2N2);
00364 static const std::pair<G4int, const G4double*> Z2[N2]={Z2N1, Z2N2};
00365
00366 static const G4int N3=2;
00367 static const G4double pZ3N3[4]={1.E-9, 3200., .021, 1.5E-5};
00368 static const std::pair<G4int, const G4double*> Z3N1(3,pZ3N3);
00369 static const G4double pZ3N4[4]={3.E-9, 200., .051, 2.5E-4};
00370 static const std::pair<G4int, const G4double*> Z3N2(4,pZ3N4);
00371 static const std::pair<G4int, const G4double*> Z3[N3]={Z3N1, Z3N2};
00372
00373 static const G4int N4=1;
00374 static const G4double pZ4N5[4]={9.E-9, 400., .088, 4.E-4};
00375 static const std::pair<G4int, const G4double*> Z4N5(5,pZ4N5);
00376 static const std::pair<G4int, const G4double*> Z4[N4]={Z4N5};
00377
00378 static const G4int N5=2;
00379 static const G4double pZ5N5[4]={2.E-10, 2700., .009, 4.E-4};
00380 static const std::pair<G4int, const G4double*> Z5N5(5,pZ5N5);
00381 static const G4double pZ5N6[4]={2.E-8, 110., .030, 1.E-4};
00382 static const std::pair<G4int, const G4double*> Z5N6(6,pZ5N6);
00383 static const std::pair<G4int, const G4double*> Z5[N5]={Z5N5, Z5N6};
00384
00385 static const G4int N6=2;
00386 static const G4double pZ6N6[4]={1.5E-7, 300., .129, 5.E-4};
00387 static const std::pair<G4int, const G4double*> Z6N6(6,pZ6N6);
00388 static const G4double pZ6N7[4]={1.5E-7, 300., .129, 5.E-4};
00389 static const std::pair<G4int, const G4double*> Z6N7(7,pZ6N7);
00390 static const std::pair<G4int, const G4double*> Z6[N6]={Z6N6, Z6N7};
00391
00392 static const G4int N7=2;
00393 static const G4double pZ7N7[4]={5.E-8, 500., .085, 2.E-4};
00394 static const std::pair<G4int, const G4double*> Z7N7(7,pZ7N7);
00395 static const G4double pZ7N8[4]={5.E-8, 140., .15, 9.E-4};
00396 static const std::pair<G4int, const G4double*> Z7N8(8,pZ7N8);
00397 static const std::pair<G4int, const G4double*> Z7[N7]={Z7N7, Z7N8};
00398
00399 static const G4int N8=3;
00400 static const G4double pZ8N8[4]={7.E-8, 0., .021, 1.5E-5};
00401 static const std::pair<G4int, const G4double*> Z8N8(8,pZ8N8);
00402 static const G4double pZ8N9[4]={2.E-8, 170., .062, 1.E-3};
00403 static const std::pair<G4int, const G4double*> Z8N9(9,pZ8N9);
00404 static const G4double pZ8N10[4]={1.E-9, 0., .051, 2.5E-4};
00405 static const std::pair<G4int, const G4double*> Z8N10(10,pZ8N10);
00406 static const std::pair<G4int, const G4double*> Z8[N8]={Z8N8, Z8N9, Z8N10};
00407
00408 static const G4int N9=1;
00409 static const G4double pZ9N10[4]={1.E-11, 3000., .026, 3.E-5};
00410 static const std::pair<G4int, const G4double*> Z9N10(10,pZ9N10);
00411 static const std::pair<G4int, const G4double*> Z9[N9]={Z9N10};
00412
00413 static const G4int N10=3;
00414 static const G4double pZ10N10[4]={4.E-8, 0., .021, 1.5E-5};
00415 static const std::pair<G4int, const G4double*> Z10N10(10,pZ10N10);
00416 static const G4double pZ10N11[4]={4.E-8, 0., .021, 1.5E-5};
00417 static const std::pair<G4int, const G4double*> Z10N11(11,pZ10N11);
00418 static const G4double pZ10N12[4]={4.E-8, 0., .051, 2.5E-4};
00419 static const std::pair<G4int, const G4double*> Z10N12(12,pZ10N12);
00420 static const std::pair<G4int, const G4double*> Z10[N10]={Z10N10, Z10N11, Z10N12};
00421
00422 static const G4int N11=1;
00423 static const G4double pZ11N12[4]={8.E-10, 500., .05, 3.E-4};
00424 static const std::pair<G4int, const G4double*> Z11N12(12,pZ11N12);
00425 static const std::pair<G4int, const G4double*> Z11[N11]={Z11N12};
00426
00427 static const G4int N12=3;
00428 static const G4double pZ12N12[4]={2.E-9, 350., .065, 3.E-4};
00429 static const std::pair<G4int, const G4double*> Z12N12(12,pZ12N12);
00430 static const G4double pZ12N13[4]={2.E-9, 350., .068, 2.E-4};
00431 static const std::pair<G4int, const G4double*> Z12N13(13,pZ12N13);
00432 static const G4double pZ12N14[4]={2.E-9, 0., .051, 2.5E-4};
00433 static const std::pair<G4int, const G4double*> Z12N14(14,pZ12N14);
00434 static const std::pair<G4int, const G4double*> Z12[N12]={Z12N12, Z12N13, Z12N14};
00435
00436 static const G4int N13=1;
00437 static const G4double pZ13N14[4]={9.E-9, 500., .075, 4.E-4};
00438 static const std::pair<G4int, const G4double*> Z13N14(14,pZ13N14);
00439 static const std::pair<G4int, const G4double*> Z13[N13]={Z13N14};
00440
00441 static const G4int N14=3;
00442 static const G4double pZ14N14[4]={4.E-9, 200., .076, 1.E-4};
00443 static const std::pair<G4int, const G4double*> Z14N14(14,pZ14N14);
00444 static const G4double pZ14N15[4]={6.E-9, 500., .073, 4.E-4};
00445 static const std::pair<G4int, const G4double*> Z14N15(15,pZ14N15);
00446 static const G4double pZ14N16[4]={4.E-9, 200., .076, 1.E-4};
00447 static const std::pair<G4int, const G4double*> Z14N16(16,pZ14N16);
00448 static const std::pair<G4int, const G4double*> Z14[N14]={Z14N14, Z14N15, Z14N16};
00449
00450 static const G4int N15=1;
00451 static const G4double pZ15N16[4]={6.E-9, 550., .077, 2.E-4};
00452 static const std::pair<G4int, const G4double*> Z15N16(16,pZ15N16);
00453 static const std::pair<G4int, const G4double*> Z15[N15]={Z15N16};
00454
00455 static const G4int N16=4;
00456 static const G4double pZ16N16[4]={1.5E-8, 500., .087, 5.E-4};
00457 static const std::pair<G4int, const G4double*> Z16N16(16,pZ16N16);
00458 static const G4double pZ16N17[4]={1.E-8, 300., .07, 4.E-3};
00459 static const std::pair<G4int, const G4double*> Z16N17(17,pZ16N17);
00460 static const G4double pZ16N18[4]={2.E-8, 300., .094, 3.E-4};
00461 static const std::pair<G4int, const G4double*> Z16N18(18,pZ16N18);
00462 static const G4double pZ16N20[4]={2.E-8, 200., .11, 3.E-4};
00463 static const std::pair<G4int, const G4double*> Z16N20(20,pZ16N20);
00464 static const std::pair<G4int, const G4double*> Z16[N16]={Z16N16, Z16N17, Z16N18, Z16N20};
00465
00466 static const G4int N17=2;
00467 static const G4double pZ17N18[4]={3.E-9, 300., .072, 4.E-4};
00468 static const std::pair<G4int, const G4double*> Z17N18(18,pZ17N18);
00469 static const G4double pZ17N20[4]={5.E-9, 0., .051, 2.5E-4};
00470 static const std::pair<G4int, const G4double*> Z17N20(20,pZ17N20);
00471 static const std::pair<G4int, const G4double*> Z17[N17]={Z17N18, Z17N20};
00472
00473 static const G4int N18=3;
00474 static const G4double pZ18N18[4]={2.5E-9, 300., .074, 2.E-4};
00475 static const std::pair<G4int, const G4double*> Z18N18(18,pZ18N18);
00476 static const G4double pZ18N20[4]={2.E-8, 400., .084, 4.E-4};
00477 static const std::pair<G4int, const G4double*> Z18N20(20,pZ18N20);
00478 static const G4double pZ18N22[4]={1.E-9, 100., .065, 2.E-4};
00479 static const std::pair<G4int, const G4double*> Z18N22(22,pZ18N22);
00480 static const std::pair<G4int, const G4double*> Z18[N18]={Z18N18, Z18N20, Z18N22};
00481
00482 static const G4int N19=3;
00483 static const G4double pZ19N20[4]={3.E-9, 4., .02, 2.E-4};
00484 static const std::pair<G4int, const G4double*> Z19N20(20,pZ19N20);
00485 static const G4double pZ19N21[4]={3.E-9, 500., .062, 7.E-4};
00486 static const std::pair<G4int, const G4double*> Z19N21(21,pZ19N21);
00487 static const G4double pZ19N22[4]={3.E-9, 400., .073, 3.E-4};
00488 static const std::pair<G4int, const G4double*> Z19N22(22,pZ19N22);
00489 static const std::pair<G4int, const G4double*> Z19[N19]={Z19N20, Z19N21, Z19N22};
00490
00491 static const G4int N20=6;
00492 static const G4double pZ20N20[4]={3.E-9, 0., .021, 1.5E-5};
00493 static const std::pair<G4int, const G4double*> Z20N20(20,pZ20N20);
00494 static const G4double pZ20N22[4]={2.E-9, 400., .072, 4.E-4};
00495 static const std::pair<G4int, const G4double*> Z20N22(22,pZ20N22);
00496 static const G4double pZ20N23[4]={.3E-9, 280., .042, 2.5E-4};
00497 static const std::pair<G4int, const G4double*> Z20N23(23,pZ20N23);
00498 static const G4double pZ20N24[4]={1.E-9, 300., .062, 2.E-4};
00499 static const std::pair<G4int, const G4double*> Z20N24(24,pZ20N24);
00500 static const G4double pZ20N26[4]={1.5E-8, 400., .064, 2.E-4};
00501 static const std::pair<G4int, const G4double*> Z20N26(26,pZ20N26);
00502 static const G4double pZ20N28[4]={7.E-9, 0., .051, 2.5E-4};
00503 static const std::pair<G4int, const G4double*> Z20N28(28,pZ20N28);
00504 static const std::pair<G4int, const G4double*> Z20[N20]={Z20N20, Z20N22, Z20N23,
00505 Z20N24, Z20N26, Z20N28};
00506
00507 static const G4int N21=1;
00508 static const G4double pZ21N24[4]={5.E-9, 1000., .068, 6.E-4};
00509 static const std::pair<G4int, const G4double*> Z21N24(24,pZ21N24);
00510 static const std::pair<G4int, const G4double*> Z21[N21]={Z21N24};
00511
00512 static const G4int N22=5;
00513 static const G4double pZ22N24[4]={4.E-9, 900., .065, 6.E-4};
00514 static const std::pair<G4int, const G4double*> Z22N24(24,pZ22N24);
00515 static const G4double pZ22N25[4]={4.E-9, 1000., .065, 1.E-3};
00516 static const std::pair<G4int, const G4double*> Z22N25(25,pZ22N25);
00517 static const G4double pZ22N26[4]={4.E-9, 900., .066, 4.E-4};
00518 static const std::pair<G4int, const G4double*> Z22N26(26,pZ22N26);
00519 static const G4double pZ22N27[4]={4.E-9, 800., .021, 3.E-4};
00520 static const std::pair<G4int, const G4double*> Z22N27(27,pZ22N27);
00521 static const G4double pZ22N28[4]={4.E-9, 550., .067, 2.E-4};
00522 static const std::pair<G4int, const G4double*> Z22N28(28,pZ22N28);
00523 static const std::pair<G4int, const G4double*> Z22[N22]={Z22N24, Z22N25, Z22N26,
00524 Z22N27, Z22N28};
00525
00526 static const G4int N23=2;
00527 static const G4double pZ23N27[4]={4.E-9, 700., .065, 1.E-3};
00528 static const std::pair<G4int, const G4double*> Z23N27(27,pZ23N27);
00529 static const G4double pZ23N28[4]={4.E-9, 700., .065, 1.E-3};
00530 static const std::pair<G4int, const G4double*> Z23N28(28,pZ23N28);
00531 static const std::pair<G4int, const G4double*> Z23[N23]={Z23N27, Z23N28};
00532
00533 static const G4int N24=4;
00534 static const G4double pZ24N26[4]={1.E-9, 750., .056, 2.E-4};
00535 static const std::pair<G4int, const G4double*> Z24N26(26,pZ24N26);
00536 static const G4double pZ24N28[4]={1.E-9, 350., .061, 1.E-4};
00537 static const std::pair<G4int, const G4double*> Z24N28(28,pZ24N28);
00538 static const G4double pZ24N29[4]={.4E-9, 650., .056, 1.5E-4};
00539 static const std::pair<G4int, const G4double*> Z24N29(29,pZ24N29);
00540 static const G4double pZ24N30[4]={1.E-9, 700., .054, 3.E-4};
00541 static const std::pair<G4int, const G4double*> Z24N30(30,pZ24N30);
00542 static const std::pair<G4int, const G4double*> Z24[N24]={Z24N26, Z24N28, Z24N29, Z24N30};
00543
00544 static const G4int N25=1;
00545 static const G4double pZ25N30[4]={.3E-9, 650., .042, 3.5E-4};
00546 static const std::pair<G4int, const G4double*> Z25N30(30,pZ25N30);
00547 static const std::pair<G4int, const G4double*> Z25[N25]={Z25N30};
00548
00549 static const G4int N26=4;
00550 static const G4double pZ26N28[4]={.9E-9, 200., .062, 1.E-4};
00551 static const std::pair<G4int, const G4double*> Z26N28(28,pZ26N28);
00552 static const G4double pZ26N30[4]={.9E-9, 1500., .055, 5.E-5};
00553 static const std::pair<G4int, const G4double*> Z26N30(30,pZ26N30);
00554 static const G4double pZ26N31[4]={.9E-9, 1100., .048, 9.E-4};
00555 static const std::pair<G4int, const G4double*> Z26N31(31,pZ26N31);
00556 static const G4double pZ26N32[4]={.9E-9, 500., .055, 2.E-4};
00557 static const std::pair<G4int, const G4double*> Z26N32(32,pZ26N32);
00558 static const std::pair<G4int, const G4double*> Z26[N26]={Z26N28, Z26N30, Z26N31, Z26N32};
00559
00560 static const G4int N27=1;
00561 static const G4double pZ27N32[4]={.2E-9, 21., .008, 3.E-6};
00562 static const std::pair<G4int, const G4double*> Z27N32(32,pZ27N32);
00563 static const std::pair<G4int, const G4double*> Z27[N27]={Z27N32};
00564
00565 static const G4int N28=5;
00566 static const G4double pZ28N30[4]={.3E-9, 0., .021, 1.5E-5};
00567 static const std::pair<G4int, const G4double*> Z28N30(30,pZ28N30);
00568 static const G4double pZ28N32[4]={.3E-9, 0., .021, 1.5E-5};
00569 static const std::pair<G4int, const G4double*> Z28N32(32,pZ28N32);
00570 static const G4double pZ28N33[4]={.3E-9, 0., .021, 1.5E-5};
00571 static const std::pair<G4int, const G4double*> Z28N33(33,pZ28N33);
00572 static const G4double pZ28N34[4]={.3E-9, 700., .0065, 2.E-6};
00573 static const std::pair<G4int, const G4double*> Z28N34(34,pZ28N34);
00574 static const G4double pZ28N36[4]={.3E-9, 75., .0107, 4.E-6};
00575 static const std::pair<G4int, const G4double*> Z28N36(36,pZ28N36);
00576 static const std::pair<G4int, const G4double*> Z28[N28]={Z28N30, Z28N32, Z28N33,
00577 Z28N34, Z28N36};
00578
00579 static const G4int N29=2;
00580 static const G4double pZ29N34[4]={.1E-9, 35., .005, 6.E-4};
00581 static const std::pair<G4int, const G4double*> Z29N34(34,pZ29N34);
00582 static const G4double pZ29N36[4]={.2E-9, 23., .01, 2.E-4};
00583 static const std::pair<G4int, const G4double*> Z29N36(36,pZ29N36);
00584 static const std::pair<G4int, const G4double*> Z29[N29]={Z29N34, Z29N36};
00585
00586 static const G4int N30=5;
00587 static const G4double pZ30N34[4]={.2E-9, 140., .02, 8.E-6};
00588 static const std::pair<G4int, const G4double*> Z30N34(34,pZ30N34);
00589 static const G4double pZ30N36[4]={.2E-9, 140., .02, 8.E-6};
00590 static const std::pair<G4int, const G4double*> Z30N36(36,pZ30N36);
00591 static const G4double pZ30N37[4]={.2E-9, 140., .02, 8.E-6};
00592 static const std::pair<G4int, const G4double*> Z30N37(37,pZ30N37);
00593 static const G4double pZ30N38[4]={.2E-9, 140., .02, 8.E-6};
00594 static const std::pair<G4int, const G4double*> Z30N38(38,pZ30N38);
00595 static const G4double pZ30N40[4]={.2E-9, 140., .02, 8.E-6};
00596 static const std::pair<G4int, const G4double*> Z30N40(40,pZ30N40);
00597 static const std::pair<G4int, const G4double*> Z30[N30]={Z30N34, Z30N36, Z30N37,
00598 Z30N38, Z30N40};
00599
00600 static const G4int N31=2;
00601 static const G4double pZ31N38[4]={.3E-9, 450., .050, 3.E-4};
00602 static const std::pair<G4int, const G4double*> Z31N38(38,pZ31N38);
00603 static const G4double pZ31N40[4]={.3E-9, 600., .048, 2.E-4};
00604 static const std::pair<G4int, const G4double*> Z31N40(40,pZ31N40);
00605 static const std::pair<G4int, const G4double*> Z31[N31]={Z31N38, Z31N40};
00606
00607 static const G4int N32=5;
00608 static const G4double pZ32N38[4]={.2E-9, 200., .05, 2.E-4};
00609 static const std::pair<G4int, const G4double*> Z32N38(38,pZ32N38);
00610 static const G4double pZ32N40[4]={.2E-9, 600., .05, 2.E-4};
00611 static const std::pair<G4int, const G4double*> Z32N40(40,pZ32N40);
00612 static const G4double pZ32N41[4]={1.5E-11, 600., .028, 3.E-4};
00613 static const std::pair<G4int, const G4double*> Z32N41(41,pZ32N41);
00614 static const G4double pZ32N42[4]={9.E-11, 400., .048, 3.E-4};
00615 static const std::pair<G4int, const G4double*> Z32N42(42,pZ32N42);
00616 static const G4double pZ32N44[4]={9.E-11, 400., .043, 3.E-4};
00617 static const std::pair<G4int, const G4double*> Z32N44(44,pZ32N44);
00618 static const std::pair<G4int, const G4double*> Z32[N32]={Z32N38, Z32N40, Z32N41,
00619 Z32N42, Z32N44};
00620
00621 static const G4int N33=1;
00622 static const G4double pZ33N42[4]={1.E-11, 1000., .032, 1.E-4};
00623 static const std::pair<G4int, const G4double*> Z33N42(42,pZ33N42);
00624 static const std::pair<G4int, const G4double*> Z33[N33]={Z33N42};
00625
00626 static const G4int N34=6;
00627 static const G4double pZ34N40[4]={3.E-12, 500., .01, 2.5E-5};
00628 static const std::pair<G4int, const G4double*> Z34N40(40,pZ34N40);
00629 static const G4double pZ34N42[4]={3.E-12, 500., .01, 2.5E-5};
00630 static const std::pair<G4int, const G4double*> Z34N42(42,pZ34N42);
00631 static const G4double pZ34N43[4]={3.E-12, 500., .01, 2.5E-5};
00632 static const std::pair<G4int, const G4double*> Z34N43(43,pZ34N43);
00633 static const G4double pZ34N44[4]={3.E-12, 500., .01, 2.5E-5};
00634 static const std::pair<G4int, const G4double*> Z34N44(44,pZ34N44);
00635 static const G4double pZ34N46[4]={3.E-12, 500., .01, 2.5E-5};
00636 static const std::pair<G4int, const G4double*> Z34N46(46,pZ34N46);
00637 static const G4double pZ34N48[4]={3.E-12, 500., .01, 2.5E-4};
00638 static const std::pair<G4int, const G4double*> Z34N48(48,pZ34N48);
00639 static const std::pair<G4int, const G4double*> Z34[N34]={Z34N40, Z34N42, Z34N43,
00640 Z34N44, Z34N46, Z34N48};
00641
00642 static const G4int N35=2;
00643 static const G4double pZ35N44[4]={3.E-12, 500., .01, 2.5E-5};
00644 static const std::pair<G4int, const G4double*> Z35N44(44,pZ35N44);
00645 static const G4double pZ35N46[4]={3.E-12, 500., .01, 2.5E-4};
00646 static const std::pair<G4int, const G4double*> Z35N46(46,pZ35N46);
00647 static const std::pair<G4int, const G4double*> Z35[N35]={Z35N44, Z35N46};
00648
00649 static const G4int N36=6;
00650 static const G4double pZ36N42[4]={3.E-12, 500., .01, 2.5E-5};
00651 static const std::pair<G4int, const G4double*> Z36N42(42,pZ36N42);
00652 static const G4double pZ36N44[4]={3.E-12, 500., .01, 2.5E-5};
00653 static const std::pair<G4int, const G4double*> Z36N44(44,pZ36N44);
00654 static const G4double pZ36N46[4]={3.E-12, 500., .01, 2.5E-5};
00655 static const std::pair<G4int, const G4double*> Z36N46(46,pZ36N46);
00656 static const G4double pZ36N47[4]={3.E-12, 500., .01, 2.5E-5};
00657 static const std::pair<G4int, const G4double*> Z36N47(47,pZ36N47);
00658 static const G4double pZ36N48[4]={3.E-12, 500., .01, 2.5E-5};
00659 static const std::pair<G4int, const G4double*> Z36N48(48,pZ36N48);
00660 static const G4double pZ36N50[4]={3.E-12, 500., .01, 2.5E-4};
00661 static const std::pair<G4int, const G4double*> Z36N50(50,pZ36N50);
00662 static const std::pair<G4int, const G4double*> Z36[N36]={Z36N42, Z36N44, Z36N46,
00663 Z36N47, Z36N48, Z36N50};
00664
00665 static const G4int N37=2;
00666 static const G4double pZ37N48[4]={3.E-12, 500., .01, 2.5E-5};
00667 static const std::pair<G4int, const G4double*> Z37N48(48,pZ37N48);
00668 static const G4double pZ37N50[4]={3.E-12, 500., .01, 2.5E-4};
00669 static const std::pair<G4int, const G4double*> Z37N50(50,pZ37N50);
00670 static const std::pair<G4int, const G4double*> Z37[N37]={Z37N48, Z37N50};
00671
00672 static const G4int N38=4;
00673 static const G4double pZ38N46[4]={3.E-12, 500., .01, 2.5E-5};
00674 static const std::pair<G4int, const G4double*> Z38N46(46,pZ38N46);
00675 static const G4double pZ38N48[4]={3.E-12, 500., .01, 2.5E-5};
00676 static const std::pair<G4int, const G4double*> Z38N48(48,pZ38N48);
00677 static const G4double pZ38N49[4]={3.E-12, 500., .01, 2.5E-5};
00678 static const std::pair<G4int, const G4double*> Z38N49(49,pZ38N49);
00679 static const G4double pZ38N50[4]={3.E-12, 500., .01, 2.5E-4};
00680 static const std::pair<G4int, const G4double*> Z38N50(50,pZ38N50);
00681 static const std::pair<G4int, const G4double*> Z38[N38]={Z38N46, Z38N48, Z38N49, Z38N50};
00682
00683 static const G4int N39=1;
00684 static const G4double pZ39N50[4]={3.E-12, 500., .01, 2.5E-4};
00685 static const std::pair<G4int, const G4double*> Z39N50(50,pZ39N50);
00686 static const std::pair<G4int, const G4double*> Z39[N39]={Z39N50};
00687
00688 static const G4int N40=5;
00689 static const G4double pZ40N50[4]={3.E-12, 500., .01, 2.5E-5};
00690 static const std::pair<G4int, const G4double*> Z40N50(50,pZ40N50);
00691 static const G4double pZ40N51[4]={3.E-12, 500., .01, 2.5E-5};
00692 static const std::pair<G4int, const G4double*> Z40N51(51,pZ40N51);
00693 static const G4double pZ40N52[4]={3.E-12, 500., .01, 2.5E-5};
00694 static const std::pair<G4int, const G4double*> Z40N52(52,pZ40N52);
00695 static const G4double pZ40N54[4]={3.E-12, 500., .01, 2.5E-5};
00696 static const std::pair<G4int, const G4double*> Z40N54(54,pZ40N54);
00697 static const G4double pZ40N56[4]={3.E-12, 500., .01, 2.5E-4};
00698 static const std::pair<G4int, const G4double*> Z40N56(56,pZ40N56);
00699 static const std::pair<G4int, const G4double*> Z40[N40]={Z40N50, Z40N51, Z40N52,
00700 Z40N54, Z40N56};
00701
00702 static const G4int N41=1;
00703 static const G4double pZ41N52[4]={3.E-12, 500., .01, 2.5E-4};
00704 static const std::pair<G4int, const G4double*> Z41N52(52,pZ41N52);
00705 static const std::pair<G4int, const G4double*> Z41[N41]={Z41N52};
00706
00707 static const G4int N42=7;
00708 static const G4double pZ42N50[4]={3.E-12, 500., .01, 2.5E-5};
00709 static const std::pair<G4int, const G4double*> Z42N50(50,pZ42N50);
00710 static const G4double pZ42N52[4]={3.E-12, 500., .01, 2.5E-5};
00711 static const std::pair<G4int, const G4double*> Z42N52(52,pZ42N52);
00712 static const G4double pZ42N53[4]={3.E-12, 500., .01, 2.5E-5};
00713 static const std::pair<G4int, const G4double*> Z42N53(53,pZ42N53);
00714 static const G4double pZ42N54[4]={3.E-12, 500., .01, 2.5E-5};
00715 static const std::pair<G4int, const G4double*> Z42N54(54,pZ42N54);
00716 static const G4double pZ42N55[4]={3.E-12, 500., .01, 2.5E-5};
00717 static const std::pair<G4int, const G4double*> Z42N55(55,pZ42N55);
00718 static const G4double pZ42N56[4]={3.E-12, 500., .01, 2.5E-5};
00719 static const std::pair<G4int, const G4double*> Z42N56(56,pZ42N56);
00720 static const G4double pZ42N58[4]={3.E-12, 500., .01, 2.5E-4};
00721 static const std::pair<G4int, const G4double*> Z42N58(58,pZ42N58);
00722 static const std::pair<G4int, const G4double*> Z42[N42]={Z42N50, Z42N52, Z42N53, Z42N54,
00723 Z42N55, Z42N56, Z42N58};
00724
00725 static const G4int N43=1;
00726 static const G4double pZ43N0[4]={3.E-12, 500., .01, 2.5E-4};
00727 static const std::pair<G4int, const G4double*> Z43N0(0,pZ43N0);
00728 static const std::pair<G4int, const G4double*> Z43[N43]={Z43N0};
00729
00730 static const G4int N44=7;
00731 static const G4double pZ44N52[4]={3.E-12, 500., .01, 2.5E-5};
00732 static const std::pair<G4int, const G4double*> Z44N52(52,pZ44N52);
00733 static const G4double pZ44N54[4]={3.E-12, 500., .01, 2.5E-5};
00734 static const std::pair<G4int, const G4double*> Z44N54(54,pZ44N54);
00735 static const G4double pZ44N55[4]={3.E-12, 500., .01, 2.5E-5};
00736 static const std::pair<G4int, const G4double*> Z44N55(55,pZ44N55);
00737 static const G4double pZ44N56[4]={3.E-12, 500., .01, 2.5E-5};
00738 static const std::pair<G4int, const G4double*> Z44N56(56,pZ44N56);
00739 static const G4double pZ44N57[4]={3.E-12, 500., .01, 2.5E-5};
00740 static const std::pair<G4int, const G4double*> Z44N57(57,pZ44N57);
00741 static const G4double pZ44N58[4]={3.E-12, 500., .01, 2.5E-5};
00742 static const std::pair<G4int, const G4double*> Z44N58(58,pZ44N58);
00743 static const G4double pZ44N60[4]={3.E-12, 500., .01, 2.5E-4};
00744 static const std::pair<G4int, const G4double*> Z44N60(60,pZ44N60);
00745 static const std::pair<G4int, const G4double*> Z44[N44]={Z44N52, Z44N54, Z44N55, Z44N56,
00746 Z44N57, Z44N58, Z44N60};
00747
00748 static const G4int N45=1;
00749 static const G4double pZ45N58[4]={3.E-12, 500., .01, 2.5E-4};
00750 static const std::pair<G4int, const G4double*> Z45N58(58,pZ45N58);
00751 static const std::pair<G4int, const G4double*> Z45[N45]={Z45N58};
00752
00753 static const G4int N46=6;
00754 static const G4double pZ46N56[4]={3.E-12, 500., .01, 2.5E-5};
00755 static const std::pair<G4int, const G4double*> Z46N56(56,pZ46N56);
00756 static const G4double pZ46N58[4]={3.E-12, 500., .01, 2.5E-5};
00757 static const std::pair<G4int, const G4double*> Z46N58(58,pZ46N58);
00758 static const G4double pZ46N59[4]={3.E-12, 500., .01, 2.5E-5};
00759 static const std::pair<G4int, const G4double*> Z46N59(59,pZ46N59);
00760 static const G4double pZ46N60[4]={3.E-12, 500., .01, 2.5E-5};
00761 static const std::pair<G4int, const G4double*> Z46N60(60,pZ46N60);
00762 static const G4double pZ46N62[4]={3.E-12, 500., .01, 2.5E-5};
00763 static const std::pair<G4int, const G4double*> Z46N62(62,pZ46N62);
00764 static const G4double pZ46N64[4]={3.E-12, 500., .01, 2.5E-4};
00765 static const std::pair<G4int, const G4double*> Z46N64(64,pZ46N64);
00766 static const std::pair<G4int, const G4double*> Z46[N46]={Z46N56, Z46N58, Z46N59,
00767 Z46N60, Z46N62, Z46N64};
00768
00769 static const G4int N47=2;
00770 static const G4double pZ47N60[4]={3.E-12, 500., .01, 2.7E-5};
00771 static const std::pair<G4int, const G4double*> Z47N60(60,pZ47N60);
00772 static const G4double pZ47N62[4]={3.E-12, 480., .01, 2.5E-4};
00773 static const std::pair<G4int, const G4double*> Z47N62(62,pZ47N62);
00774 static const std::pair<G4int, const G4double*> Z47[N47]={Z47N60, Z47N62};
00775
00776 static const G4int N48=8;
00777 static const G4double pZ48N58[4]={3.E-12, 500., .01, 2.5E-5};
00778 static const std::pair<G4int, const G4double*> Z48N58(58,pZ48N58);
00779 static const G4double pZ48N60[4]={3.E-12, 500., .01, 2.5E-5};
00780 static const std::pair<G4int, const G4double*> Z48N60(60,pZ48N60);
00781 static const G4double pZ48N62[4]={3.E-12, 500., .01, 2.5E-5};
00782 static const std::pair<G4int, const G4double*> Z48N62(62,pZ48N62);
00783 static const G4double pZ48N63[4]={3.E-12, 500., .01, 2.5E-5};
00784 static const std::pair<G4int, const G4double*> Z48N63(63,pZ48N63);
00785 static const G4double pZ48N64[4]={3.E-12, 500., .01, 2.5E-5};
00786 static const std::pair<G4int, const G4double*> Z48N64(64,pZ48N64);
00787 static const G4double pZ48N65[4]={3.E-12, 500., .01, 2.5E-5};
00788 static const std::pair<G4int, const G4double*> Z48N65(65,pZ48N65);
00789 static const G4double pZ48N66[4]={3.E-12, 500., .01, 2.5E-5};
00790 static const std::pair<G4int, const G4double*> Z48N66(66,pZ48N66);
00791 static const G4double pZ48N68[4]={3.E-12, 500., .01, 2.5E-4};
00792 static const std::pair<G4int, const G4double*> Z48N68(68,pZ48N68);
00793 static const std::pair<G4int, const G4double*> Z48[N48]={Z48N58, Z48N60, Z48N62, Z48N63,
00794 Z48N64, Z48N65, Z48N66, Z48N68};
00795
00796 static const G4int N49=2;
00797 static const G4double pZ49N64[4]={3.E-12, 500., .01, 2.5E-5};
00798 static const std::pair<G4int, const G4double*> Z49N64(64,pZ49N64);
00799 static const G4double pZ49N66[4]={3.E-12, 500., .01, 2.5E-4};
00800 static const std::pair<G4int, const G4double*> Z49N66(66,pZ49N66);
00801 static const std::pair<G4int, const G4double*> Z49[N49]={Z49N64, Z49N66};
00802
00803 static const G4int N50=10;
00804 static const G4double pZ50N62[4]={3.E-12, 500., .01, 2.5E-5};
00805 static const std::pair<G4int, const G4double*> Z50N62(62,pZ50N62);
00806 static const G4double pZ50N64[4]={3.E-12, 500., .01, 2.5E-5};
00807 static const std::pair<G4int, const G4double*> Z50N64(64,pZ50N64);
00808 static const G4double pZ50N65[4]={3.E-12, 500., .01, 2.5E-5};
00809 static const std::pair<G4int, const G4double*> Z50N65(65,pZ50N65);
00810 static const G4double pZ50N66[4]={3.E-12, 500., .01, 2.5E-5};
00811 static const std::pair<G4int, const G4double*> Z50N66(66,pZ50N66);
00812 static const G4double pZ50N67[4]={3.E-12, 500., .01, 2.5E-5};
00813 static const std::pair<G4int, const G4double*> Z50N67(67,pZ50N67);
00814 static const G4double pZ50N68[4]={3.E-12, 500., .01, 2.5E-5};
00815 static const std::pair<G4int, const G4double*> Z50N68(68,pZ50N68);
00816 static const G4double pZ50N69[4]={3.E-12, 500., .01, 2.5E-5};
00817 static const std::pair<G4int, const G4double*> Z50N69(69,pZ50N69);
00818 static const G4double pZ50N70[4]={3.E-12, 500., .01, 2.5E-5};
00819 static const std::pair<G4int, const G4double*> Z50N70(70,pZ50N70);
00820 static const G4double pZ50N72[4]={3.E-12, 500., .01, 2.5E-5};
00821 static const std::pair<G4int, const G4double*> Z50N72(72,pZ50N72);
00822 static const G4double pZ50N74[4]={3.E-12, 500., .01, 2.5E-4};
00823 static const std::pair<G4int, const G4double*> Z50N74(74,pZ50N74);
00824 static const std::pair<G4int, const G4double*> Z50[N50]={Z50N62, Z50N64, Z50N65, Z50N66,
00825 Z50N67, Z50N68, Z50N69, Z50N70,
00826 Z50N72, Z50N74};
00827
00828 static const G4int N51=2;
00829 static const G4double pZ51N70[4]={3.E-12, 500., .01, 2.5E-5};
00830 static const std::pair<G4int, const G4double*> Z51N70(70,pZ51N70);
00831 static const G4double pZ51N72[4]={3.E-12, 500., .01, 2.5E-4};
00832 static const std::pair<G4int, const G4double*> Z51N72(72,pZ51N72);
00833 static const std::pair<G4int, const G4double*> Z51[N51]={Z51N70, Z51N72};
00834
00835 static const G4int N52=8;
00836 static const G4double pZ52N68[4]={3.E-12, 500., .01, 2.5E-5};
00837 static const std::pair<G4int, const G4double*> Z52N68(68,pZ52N68);
00838 static const G4double pZ52N70[4]={3.E-12, 500., .01, 2.5E-5};
00839 static const std::pair<G4int, const G4double*> Z52N70(70,pZ52N70);
00840 static const G4double pZ52N71[4]={3.E-12, 500., .01, 2.5E-5};
00841 static const std::pair<G4int, const G4double*> Z52N71(71,pZ52N71);
00842 static const G4double pZ52N72[4]={3.E-12, 500., .01, 2.5E-5};
00843 static const std::pair<G4int, const G4double*> Z52N72(72,pZ52N72);
00844 static const G4double pZ52N73[4]={3.E-12, 500., .01, 2.5E-5};
00845 static const std::pair<G4int, const G4double*> Z52N73(73,pZ52N73);
00846 static const G4double pZ52N74[4]={3.E-12, 500., .01, 2.5E-5};
00847 static const std::pair<G4int, const G4double*> Z52N74(74,pZ52N74);
00848 static const G4double pZ52N76[4]={3.E-12, 500., .01, 2.5E-5};
00849 static const std::pair<G4int, const G4double*> Z52N76(76,pZ52N76);
00850 static const G4double pZ52N78[4]={3.E-12, 500., .01, 2.5E-4};
00851 static const std::pair<G4int, const G4double*> Z52N78(78,pZ52N78);
00852 static const std::pair<G4int, const G4double*> Z52[N52]={Z52N68, Z52N70, Z52N71, Z52N72,
00853 Z52N73, Z52N74, Z52N76, Z52N78};
00854
00855 static const G4int N53=1;
00856 static const G4double pZ53N74[4]={3.E-12, 500., .01, 2.5E-4};
00857 static const std::pair<G4int, const G4double*> Z53N74(74,pZ53N74);
00858 static const std::pair<G4int, const G4double*> Z53[N53]={Z53N74};
00859
00860 static const G4int N54=9;
00861 static const G4double pZ54N70[4]={3.E-12, 500., .01, 2.5E-5};
00862 static const std::pair<G4int, const G4double*> Z54N70(70,pZ54N70);
00863 static const G4double pZ54N72[4]={3.E-12, 500., .01, 2.5E-5};
00864 static const std::pair<G4int, const G4double*> Z54N72(72,pZ54N72);
00865 static const G4double pZ54N74[4]={3.E-12, 500., .01, 2.5E-5};
00866 static const std::pair<G4int, const G4double*> Z54N74(74,pZ54N74);
00867 static const G4double pZ54N75[4]={3.E-12, 500., .01, 2.5E-5};
00868 static const std::pair<G4int, const G4double*> Z54N75(75,pZ54N75);
00869 static const G4double pZ54N76[4]={3.E-12, 500., .01, 2.5E-5};
00870 static const std::pair<G4int, const G4double*> Z54N76(76,pZ54N76);
00871 static const G4double pZ54N77[4]={3.E-12, 500., .01, 2.5E-5};
00872 static const std::pair<G4int, const G4double*> Z54N77(77,pZ54N77);
00873 static const G4double pZ54N78[4]={3.E-12, 500., .01, 2.5E-5};
00874 static const std::pair<G4int, const G4double*> Z54N78(78,pZ54N78);
00875 static const G4double pZ54N80[4]={3.E-12, 500., .01, 2.5E-5};
00876 static const std::pair<G4int, const G4double*> Z54N80(80,pZ54N80);
00877 static const G4double pZ54N82[4]={3.E-12, 500., .01, 2.5E-4};
00878 static const std::pair<G4int, const G4double*> Z54N82(82,pZ54N82);
00879 static const std::pair<G4int, const G4double*> Z54[N54]={Z54N70, Z54N72, Z54N74,
00880 Z54N75, Z54N76, Z54N77,
00881 Z54N78, Z54N80, Z54N82};
00882
00883 static const G4int N55=1;
00884 static const G4double pZ55N78[4]={3.E-12, 500., .01, 2.5E-4};
00885 static const std::pair<G4int, const G4double*> Z55N78(78,pZ55N78);
00886 static const std::pair<G4int, const G4double*> Z55[N55]={Z55N78};
00887
00888 static const G4int N56=7;
00889 static const G4double pZ56N74[4]={3.E-12, 500., .01, 2.5E-5};
00890 static const std::pair<G4int, const G4double*> Z56N74(74,pZ56N74);
00891 static const G4double pZ56N76[4]={3.E-12, 500., .01, 2.5E-5};
00892 static const std::pair<G4int, const G4double*> Z56N76(76,pZ56N76);
00893 static const G4double pZ56N78[4]={3.E-12, 500., .01, 2.5E-5};
00894 static const std::pair<G4int, const G4double*> Z56N78(78,pZ56N78);
00895 static const G4double pZ56N79[4]={3.E-12, 500., .01, 2.5E-5};
00896 static const std::pair<G4int, const G4double*> Z56N79(79,pZ56N79);
00897 static const G4double pZ56N80[4]={3.E-12, 500., .01, 2.5E-5};
00898 static const std::pair<G4int, const G4double*> Z56N80(80,pZ56N80);
00899 static const G4double pZ56N81[4]={3.E-12, 500., .01, 2.5E-5};
00900 static const std::pair<G4int, const G4double*> Z56N81(81,pZ56N81);
00901 static const G4double pZ56N82[4]={3.E-12, 500., .01, 2.5E-4};
00902 static const std::pair<G4int, const G4double*> Z56N82(82,pZ56N82);
00903 static const std::pair<G4int, const G4double*> Z56[N56]={Z56N74, Z56N76, Z56N78, Z56N79,
00904 Z56N80, Z56N81, Z56N82};
00905
00906 static const G4int N57=2;
00907 static const G4double pZ57N81[4]={3.E-12, 500., .01, 2.5E-5};
00908 static const std::pair<G4int, const G4double*> Z57N81(81,pZ57N81);
00909 static const G4double pZ57N82[4]={3.E-12, 500., .01, 2.5E-4};
00910 static const std::pair<G4int, const G4double*> Z57N82(82,pZ57N82);
00911 static const std::pair<G4int, const G4double*> Z57[N57]={Z57N81, Z57N82};
00912
00913 static const G4int N58=4;
00914 static const G4double pZ58N78[4]={3.E-12, 500., .01, 2.5E-5};
00915 static const std::pair<G4int, const G4double*> Z58N78(78,pZ58N78);
00916 static const G4double pZ58N80[4]={3.E-12, 500., .01, 2.5E-5};
00917 static const std::pair<G4int, const G4double*> Z58N80(80,pZ58N80);
00918 static const G4double pZ58N82[4]={3.E-12, 500., .01, 2.5E-5};
00919 static const std::pair<G4int, const G4double*> Z58N82(82,pZ58N82);
00920 static const G4double pZ58N84[4]={3.E-12, 500., .01, 2.5E-4};
00921 static const std::pair<G4int, const G4double*> Z58N84(84,pZ58N84);
00922 static const std::pair<G4int, const G4double*> Z58[N58]={Z58N78, Z58N80, Z58N82, Z58N84};
00923
00924 static const G4int N59=1;
00925 static const G4double pZ59N82[4]={3.E-12, 500., .01, 2.5E-4};
00926 static const std::pair<G4int, const G4double*> Z59N82(82,pZ59N82);
00927 static const std::pair<G4int, const G4double*> Z59[N59]={Z59N82};
00928
00929 static const G4int N60=7;
00930 static const G4double pZ60N82[4]={3.E-12, 500., .01, 2.5E-5};
00931 static const std::pair<G4int, const G4double*> Z60N82(82,pZ60N82);
00932 static const G4double pZ60N83[4]={3.E-12, 500., .01, 2.5E-5};
00933 static const std::pair<G4int, const G4double*> Z60N83(83,pZ60N83);
00934 static const G4double pZ60N84[4]={3.E-12, 500., .01, 2.5E-5};
00935 static const std::pair<G4int, const G4double*> Z60N84(84,pZ60N84);
00936 static const G4double pZ60N85[4]={3.E-12, 500., .01, 2.5E-5};
00937 static const std::pair<G4int, const G4double*> Z60N85(85,pZ60N85);
00938 static const G4double pZ60N86[4]={3.E-12, 500., .01, 2.5E-5};
00939 static const std::pair<G4int, const G4double*> Z60N86(86,pZ60N86);
00940 static const G4double pZ60N88[4]={3.E-12, 500., .01, 2.5E-5};
00941 static const std::pair<G4int, const G4double*> Z60N88(88,pZ60N88);
00942 static const G4double pZ60N90[4]={3.E-12, 500., .01, 2.5E-4};
00943 static const std::pair<G4int, const G4double*> Z60N90(90,pZ60N90);
00944 static const std::pair<G4int, const G4double*> Z60[N60]={Z60N82, Z60N83, Z60N84, Z60N85,
00945 Z60N86, Z60N88, Z60N90};
00946
00947 static const G4int N61=1;
00948 static const G4double pZ61N0[4]={3.E-12, 500., .01, 2.5E-4};
00949 static const std::pair<G4int, const G4double*> Z61N0(0,pZ61N0);
00950 static const std::pair<G4int, const G4double*> Z61[N61]={Z61N0};
00951
00952 static const G4int N62=7;
00953 static const G4double pZ62N82[4]={3.E-12, 500., .01, 2.5E-5};
00954 static const std::pair<G4int, const G4double*> Z62N82(82,pZ62N82);
00955 static const G4double pZ62N85[4]={3.E-12, 500., .01, 2.5E-5};
00956 static const std::pair<G4int, const G4double*> Z62N85(85,pZ62N85);
00957 static const G4double pZ62N86[4]={3.E-12, 500., .01, 2.5E-5};
00958 static const std::pair<G4int, const G4double*> Z62N86(86,pZ62N86);
00959 static const G4double pZ62N87[4]={3.E-12, 500., .01, 2.5E-5};
00960 static const std::pair<G4int, const G4double*> Z62N87(87,pZ62N87);
00961 static const G4double pZ62N88[4]={3.E-12, 500., .01, 2.5E-5};
00962 static const std::pair<G4int, const G4double*> Z62N88(88,pZ62N88);
00963 static const G4double pZ62N90[4]={3.E-12, 500., .01, 2.5E-5};
00964 static const std::pair<G4int, const G4double*> Z62N90(90,pZ62N90);
00965 static const G4double pZ62N92[4]={3.E-12, 500., .01, 2.5E-4};
00966 static const std::pair<G4int, const G4double*> Z62N92(92,pZ62N92);
00967 static const std::pair<G4int, const G4double*> Z62[N62]={Z62N82, Z62N85, Z62N86, Z62N87,
00968 Z62N88, Z62N90, Z62N92};
00969
00970 static const G4int N63=2;
00971 static const G4double pZ63N88[4]={3.E-12, 500., .01, 2.5E-5};
00972 static const std::pair<G4int, const G4double*> Z63N88(88,pZ63N88);
00973 static const G4double pZ63N90[4]={3.E-12, 500., .01, 2.5E-4};
00974 static const std::pair<G4int, const G4double*> Z63N90(90,pZ63N90);
00975 static const std::pair<G4int, const G4double*> Z63[N63]={Z63N88, Z63N90};
00976
00977 static const G4int N64=7;
00978 static const G4double pZ64N88[4]={3.E-12, 500., .01, 2.5E-5};
00979 static const std::pair<G4int, const G4double*> Z64N88(88,pZ64N88);
00980 static const G4double pZ64N90[4]={3.E-12, 500., .01, 2.5E-5};
00981 static const std::pair<G4int, const G4double*> Z64N90(90,pZ64N90);
00982 static const G4double pZ64N91[4]={3.E-12, 500., .01, 2.5E-5};
00983 static const std::pair<G4int, const G4double*> Z64N91(91,pZ64N91);
00984 static const G4double pZ64N92[4]={3.E-12, 500., .01, 2.5E-5};
00985 static const std::pair<G4int, const G4double*> Z64N92(92,pZ64N92);
00986 static const G4double pZ64N93[4]={3.E-12, 500., .01, 2.5E-5};
00987 static const std::pair<G4int, const G4double*> Z64N93(93,pZ64N93);
00988 static const G4double pZ64N94[4]={3.E-12, 500., .01, 2.5E-5};
00989 static const std::pair<G4int, const G4double*> Z64N94(94,pZ64N94);
00990 static const G4double pZ64N96[4]={3.E-12, 500., .01, 2.5E-4};
00991 static const std::pair<G4int, const G4double*> Z64N96(96,pZ64N96);
00992 static const std::pair<G4int, const G4double*> Z64[N64]={Z64N88, Z64N90, Z64N91, Z64N92,
00993 Z64N93, Z64N94, Z64N96};
00994
00995 static const G4int N65=1;
00996 static const G4double pZ65N94[4]={3.E-12, 500., .01, 2.5E-4};
00997 static const std::pair<G4int, const G4double*> Z65N94(82,pZ65N94);
00998 static const std::pair<G4int, const G4double*> Z65[N65]={Z65N94};
00999
01000 static const G4int N66=7;
01001 static const G4double pZ66N90[4]={3.E-12, 500., .01, 2.5E-5};
01002 static const std::pair<G4int, const G4double*> Z66N90(90,pZ66N90);
01003 static const G4double pZ66N92[4]={3.E-12, 500., .01, 2.5E-5};
01004 static const std::pair<G4int, const G4double*> Z66N92(92,pZ66N92);
01005 static const G4double pZ66N94[4]={3.E-12, 500., .01, 2.5E-5};
01006 static const std::pair<G4int, const G4double*> Z66N94(94,pZ66N94);
01007 static const G4double pZ66N95[4]={3.E-12, 500., .01, 2.5E-5};
01008 static const std::pair<G4int, const G4double*> Z66N95(95,pZ66N95);
01009 static const G4double pZ66N96[4]={3.E-12, 500., .01, 2.5E-5};
01010 static const std::pair<G4int, const G4double*> Z66N96(96,pZ66N96);
01011 static const G4double pZ66N97[4]={3.E-12, 500., .01, 2.5E-5};
01012 static const std::pair<G4int, const G4double*> Z66N97(97,pZ66N97);
01013 static const G4double pZ66N98[4]={3.E-12, 500., .01, 2.5E-4};
01014 static const std::pair<G4int, const G4double*> Z66N98(98,pZ66N98);
01015 static const std::pair<G4int, const G4double*> Z66[N66]={Z66N90, Z66N92, Z66N94, Z66N95,
01016 Z66N96, Z66N97, Z66N98};
01017
01018 static const G4int N67=1;
01019 static const G4double pZ67N98[4]={3.E-12, 500., .01, 2.5E-4};
01020 static const std::pair<G4int, const G4double*> Z67N98(98,pZ67N98);
01021 static const std::pair<G4int, const G4double*> Z67[N67]={Z67N98};
01022
01023 static const G4int N68=6;
01024 static const G4double pZ68N94[4]={3.E-12, 500., .01, 2.5E-5};
01025 static const std::pair<G4int, const G4double*> Z68N94(94,pZ68N94);
01026 static const G4double pZ68N96[4]={3.E-12, 500., .01, 2.5E-5};
01027 static const std::pair<G4int, const G4double*> Z68N96(96,pZ68N96);
01028 static const G4double pZ68N98[4]={3.E-12, 500., .01, 2.5E-5};
01029 static const std::pair<G4int, const G4double*> Z68N98(98,pZ68N98);
01030 static const G4double pZ68N99[4]={3.E-12, 500., .01, 2.5E-5};
01031 static const std::pair<G4int, const G4double*> Z68N99(99,pZ68N99);
01032 static const G4double pZ68N100[4]={3.E-12, 500., .01, 2.5E-5};
01033 static const std::pair<G4int, const G4double*> Z68N100(100,pZ68N100);
01034 static const G4double pZ68N102[4]={3.E-12, 500., .01, 2.5E-4};
01035 static const std::pair<G4int, const G4double*> Z68N102(102,pZ68N102);
01036 static const std::pair<G4int, const G4double*> Z68[N68]={Z68N94, Z68N96, Z68N98,
01037 Z68N99, Z68N100, Z68N102};
01038
01039 static const G4int N69=1;
01040 static const G4double pZ69N100[4]={3.E-12, 500., .01, 2.5E-4};
01041 static const std::pair<G4int, const G4double*> Z69N100(100,pZ69N100);
01042 static const std::pair<G4int, const G4double*> Z69[N69]={Z69N100};
01043
01044 static const G4int N70=7;
01045 static const G4double pZ70N98[4]={3.E-12, 500., .01, 2.5E-5};
01046 static const std::pair<G4int, const G4double*> Z70N98(98,pZ70N98);
01047 static const G4double pZ70N100[4]={3.E-12, 500., .01, 2.5E-5};
01048 static const std::pair<G4int, const G4double*> Z70N100(100,pZ70N100);
01049 static const G4double pZ70N101[4]={3.E-12, 500., .01, 2.5E-5};
01050 static const std::pair<G4int, const G4double*> Z70N101(101,pZ70N101);
01051 static const G4double pZ70N102[4]={3.E-12, 500., .01, 2.5E-5};
01052 static const std::pair<G4int, const G4double*> Z70N102(102,pZ70N102);
01053 static const G4double pZ70N103[4]={3.E-12, 500., .01, 2.5E-5};
01054 static const std::pair<G4int, const G4double*> Z70N103(103,pZ70N103);
01055 static const G4double pZ70N104[4]={3.E-12, 500., .01, 2.5E-5};
01056 static const std::pair<G4int, const G4double*> Z70N104(104,pZ70N104);
01057 static const G4double pZ70N106[4]={3.E-12, 500., .01, 2.5E-4};
01058 static const std::pair<G4int, const G4double*> Z70N106(106,pZ70N106);
01059 static const std::pair<G4int, const G4double*> Z70[N70]={Z70N98, Z70N100, Z70N101,
01060 Z70N102, Z70N103, Z70N104,
01061 Z70N106};
01062
01063 static const G4int N71=2;
01064 static const G4double pZ71N104[4]={3.E-12, 500., .01, 2.5E-5};
01065 static const std::pair<G4int, const G4double*> Z71N104(104,pZ71N104);
01066 static const G4double pZ71N105[4]={3.E-12, 500., .01, 2.5E-4};
01067 static const std::pair<G4int, const G4double*> Z71N105(105,pZ71N105);
01068 static const std::pair<G4int, const G4double*> Z71[N71]={Z71N104, Z71N105};
01069
01070 static const G4int N72=6;
01071 static const G4double pZ72N102[4]={3.E-12, 500., .01, 2.5E-5};
01072 static const std::pair<G4int, const G4double*> Z72N102(102,pZ72N102);
01073 static const G4double pZ72N104[4]={3.E-12, 500., .01, 2.5E-5};
01074 static const std::pair<G4int, const G4double*> Z72N104(104,pZ72N104);
01075 static const G4double pZ72N105[4]={3.E-12, 500., .01, 2.5E-5};
01076 static const std::pair<G4int, const G4double*> Z72N105(105,pZ72N105);
01077 static const G4double pZ72N106[4]={3.E-12, 500., .01, 2.5E-5};
01078 static const std::pair<G4int, const G4double*> Z72N106(106,pZ72N106);
01079 static const G4double pZ72N107[4]={3.E-12, 500., .01, 2.5E-5};
01080 static const std::pair<G4int, const G4double*> Z72N107(107,pZ72N107);
01081 static const G4double pZ72N108[4]={3.E-12, 500., .01, 2.5E-4};
01082 static const std::pair<G4int, const G4double*> Z72N108(108,pZ72N108);
01083 static const std::pair<G4int, const G4double*> Z72[N72]={Z72N102, Z72N104, Z72N105,
01084 Z72N106, Z72N107, Z72N108};
01085
01086 static const G4int N73=1;
01087 static const G4double pZ73N108[4]={4.E-12, 1100., .027, 1.E-3};
01088 static const std::pair<G4int, const G4double*> Z73N108(108,pZ73N108);
01089 static const std::pair<G4int, const G4double*> Z73[N73]={Z73N108};
01090
01091 static const G4int N74=5;
01092 static const G4double pZ74N106[4]={7.E-12, 1000., .03, 2.E-4};
01093 static const std::pair<G4int, const G4double*> Z74N106(106,pZ74N106);
01094 static const G4double pZ74N108[4]={7.E-12, 1300., .03, 1.5E-4};
01095 static const std::pair<G4int, const G4double*> Z74N108(108,pZ74N108);
01096 static const G4double pZ74N109[4]={2.E-12, 1700., .023, 2.E-4};
01097 static const std::pair<G4int, const G4double*> Z74N109(109,pZ74N109);
01098 static const G4double pZ74N110[4]={7.E-12, 1100., .03, 1.5E-4};
01099 static const std::pair<G4int, const G4double*> Z74N110(110,pZ74N110);
01100 static const G4double pZ74N112[4]={7.E-12, 1100., .03, 1.5E-4};
01101 static const std::pair<G4int, const G4double*> Z74N112(112,pZ74N112);
01102 static const std::pair<G4int, const G4double*> Z74[N74]={Z74N106, Z74N108, Z74N109,
01103 Z74N110, Z74N112};
01104
01105 static const G4int N75=2;
01106 static const G4double pZ75N110[4]={5.E-12, 1000., .025, 3.E-4};
01107 static const std::pair<G4int, const G4double*> Z75N110(110,pZ75N110);
01108 static const G4double pZ75N112[4]={5.E-12, 1000., .025, 3.E-4};
01109 static const std::pair<G4int, const G4double*> Z75N112(112,pZ75N112);
01110 static const std::pair<G4int, const G4double*> Z75[N75]={Z75N110, Z75N112};
01111
01112 static const G4int N76=7;
01113 static const G4double pZ76N108[4]={3.E-12, 500., .01, 2.5E-5};
01114 static const std::pair<G4int, const G4double*> Z76N108(108,pZ76N108);
01115 static const G4double pZ76N110[4]={3.E-12, 500., .01, 2.5E-5};
01116 static const std::pair<G4int, const G4double*> Z76N110(110,pZ76N110);
01117 static const G4double pZ76N111[4]={3.E-12, 500., .01, 2.5E-5};
01118 static const std::pair<G4int, const G4double*> Z76N111(111,pZ76N111);
01119 static const G4double pZ76N112[4]={3.E-12, 500., .01, 2.5E-5};
01120 static const std::pair<G4int, const G4double*> Z76N112(112,pZ76N112);
01121 static const G4double pZ76N113[4]={3.E-12, 500., .01, 2.5E-5};
01122 static const std::pair<G4int, const G4double*> Z76N113(113,pZ76N113);
01123 static const G4double pZ76N114[4]={3.E-12, 500., .01, 2.5E-5};
01124 static const std::pair<G4int, const G4double*> Z76N114(114,pZ76N114);
01125 static const G4double pZ76N116[4]={3.E-12, 500., .01, 2.5E-4};
01126 static const std::pair<G4int, const G4double*> Z76N116(116,pZ76N116);
01127 static const std::pair<G4int, const G4double*> Z76[N76]={Z76N108, Z76N110, Z76N111,
01128 Z76N112, Z76N113, Z76N114,
01129 Z76N116};
01130
01131 static const G4int N77=2;
01132 static const G4double pZ77N114[4]={4.E-12, 1700., .028, 2.E-4};
01133 static const std::pair<G4int, const G4double*> Z77N114(114,pZ77N114);
01134 static const G4double pZ77N116[4]={5.E-12, 1500., .028, 2.E-4};
01135 static const std::pair<G4int, const G4double*> Z77N116(116,pZ77N116);
01136 static const std::pair<G4int, const G4double*> Z77[N77]={Z77N114, Z77N116};
01137
01138 static const G4int N78=6;
01139 static const G4double pZ78N112[4]={3.E-12, 500., .01, 2.5E-5};
01140 static const std::pair<G4int, const G4double*> Z78N112(112,pZ78N112);
01141 static const G4double pZ78N114[4]={3.E-12, 500., .01, 2.5E-5};
01142 static const std::pair<G4int, const G4double*> Z78N114(114,pZ78N114);
01143 static const G4double pZ78N116[4]={3.E-12, 500., .01, 2.5E-5};
01144 static const std::pair<G4int, const G4double*> Z78N116(116,pZ78N116);
01145 static const G4double pZ78N117[4]={3.E-12, 500., .01, 2.5E-5};
01146 static const std::pair<G4int, const G4double*> Z78N117(117,pZ78N117);
01147 static const G4double pZ78N118[4]={3.E-12, 500., .01, 2.5E-5};
01148 static const std::pair<G4int, const G4double*> Z78N118(118,pZ78N118);
01149 static const G4double pZ78N120[4]={3.E-12, 500., .01, 2.5E-4};
01150 static const std::pair<G4int, const G4double*> Z78N120(120,pZ78N120);
01151 static const std::pair<G4int, const G4double*> Z78[N78]={Z78N112, Z78N114, Z78N116,
01152 Z78N117, Z78N118, Z78N120};
01153
01154 static const G4int N79=1;
01155 static const G4double pZ79N118[4]={.2E-9, 1600., .043, 5.E-4};
01156 static const std::pair<G4int, const G4double*> Z79N118(118,pZ79N118);
01157 static const std::pair<G4int, const G4double*> Z79[N79]={Z79N118};
01158
01159 static const G4int N80=7;
01160 static const G4double pZ80N116[4]={6.E-8, 2500., .085, 2.E-3};
01161 static const std::pair<G4int, const G4double*> Z80N116(116,pZ80N116);
01162 static const G4double pZ80N118[4]={6.E-8, 2500., .083, 1.7E-3};
01163 static const std::pair<G4int, const G4double*> Z80N118(118,pZ80N118);
01164 static const G4double pZ80N119[4]={6.E-8, 2600., .073, 2.5E-3};
01165 static const std::pair<G4int, const G4double*> Z80N119(119,pZ80N119);
01166 static const G4double pZ80N120[4]={6.E-8, 2500., .084, 1.7E-3};
01167 static const std::pair<G4int, const G4double*> Z80N120(120,pZ80N120);
01168 static const G4double pZ80N121[4]={1.5E-7, 2600., .078, 4.E-3};
01169 static const std::pair<G4int, const G4double*> Z80N121(121,pZ80N121);
01170 static const G4double pZ80N122[4]={6.E-8, 2500., .083, 1.6E-3};
01171 static const std::pair<G4int, const G4double*> Z80N122(122,pZ80N122);
01172 static const G4double pZ80N124[4]={6.E-8, 2500., .083, 1.5E-3};
01173 static const std::pair<G4int, const G4double*> Z80N124(124,pZ80N124);
01174 static const std::pair<G4int, const G4double*> Z80[N80]={Z80N116, Z80N118, Z80N119,
01175 Z80N120, Z80N121, Z80N122,
01176 Z80N124};
01177
01178 static const G4int N81=2;
01179 static const G4double pZ81N122[4]={3.E-12, 500., .01, 2.5E-5};
01180 static const std::pair<G4int, const G4double*> Z81N122(122,pZ81N122);
01181 static const G4double pZ81N124[4]={3.E-12, 500., .01, 2.5E-4};
01182 static const std::pair<G4int, const G4double*> Z81N124(124,pZ81N124);
01183 static const std::pair<G4int, const G4double*> Z81[N81]={Z81N122, Z81N124};
01184
01185 static const G4int N82=4;
01186 static const G4double pZ82N122[4]={.2E-9, 40., .002, 6.E-4};
01187 static const std::pair<G4int, const G4double*> Z82N122(122,pZ82N122);
01188 static const G4double pZ82N124[4]={6.E-9, 1700., .076, 7.E-4};
01189 static const std::pair<G4int, const G4double*> Z82N124(124,pZ82N124);
01190 static const G4double pZ82N125[4]={.2E-9, 770., .057, 4.5E-4};
01191 static const std::pair<G4int, const G4double*> Z82N125(125,pZ82N125);
01192 static const G4double pZ82N126[4]={4.E-9, 0., .051, 2.E-4};
01193 static const std::pair<G4int, const G4double*> Z82N126(126,pZ82N126);
01194 static const std::pair<G4int, const G4double*> Z82[N82]={Z82N122, Z82N124, Z82N125,
01195 Z82N126};
01196
01197 static const G4int N83=1;
01198 static const G4double pZ83N126[4]={1.5E-9, 150., .052, 5.E-5};
01199 static const std::pair<G4int, const G4double*> Z83N126(126,pZ83N126);
01200 static const std::pair<G4int, const G4double*> Z83[N83]={Z83N126};
01201
01202 static const G4int N84=1;
01203 static const G4double pZ84N0[4]={3.E-12, 500., .01, 2.5E-4};
01204 static const std::pair<G4int, const G4double*> Z84N0(0,pZ84N0);
01205 static const std::pair<G4int, const G4double*> Z84[N84]={Z84N0};
01206
01207 static const G4int N85=1;
01208 static const G4double pZ85N0[4]={3.E-12, 500., .01, 2.5E-4};
01209 static const std::pair<G4int, const G4double*> Z85N0(0,pZ85N0);
01210 static const std::pair<G4int, const G4double*> Z85[N85]={Z85N0};
01211
01212 static const G4int N86=1;
01213 static const G4double pZ86N0[4]={3.E-12, 500., .01, 2.5E-4};
01214 static const std::pair<G4int, const G4double*> Z86N0(0,pZ86N0);
01215 static const std::pair<G4int, const G4double*> Z86[N86]={Z86N0};
01216
01217 static const G4int N87=1;
01218 static const G4double pZ87N0[4]={3.E-12, 500., .01, 2.5E-4};
01219 static const std::pair<G4int, const G4double*> Z87N0(0,pZ87N0);
01220 static const std::pair<G4int, const G4double*> Z87[N87]={Z87N0};
01221
01222 static const G4int N88=1;
01223 static const G4double pZ88N138[4]={3.E-9, 2200., .057, 1.2E-3};
01224 static const std::pair<G4int, const G4double*> Z88N138(138,pZ88N138);
01225 static const std::pair<G4int, const G4double*> Z88[N88]={Z88N138};
01226
01227 static const G4int N89=1;
01228 static const G4double pZ89N0[4]={3.E-12, 500., .01, 2.5E-4};
01229 static const std::pair<G4int, const G4double*> Z89N0(0,pZ89N0);
01230 static const std::pair<G4int, const G4double*> Z89[N89]={Z89N0};
01231
01232 static const G4int N90=1;
01233 static const G4double pZ90N142[4]={1.E-11, 1200., .028, 3.E-4};
01234 static const std::pair<G4int, const G4double*> Z90N142(142,pZ90N142);
01235 static const std::pair<G4int, const G4double*> Z90[N90]={Z90N142};
01236
01237 static const G4int N91=1;
01238 static const G4double pZ91N0[4]={3.E-12, 500., .01, 2.5E-4};
01239 static const std::pair<G4int, const G4double*> Z91N0(0,pZ91N0);
01240 static const std::pair<G4int, const G4double*> Z91[N91]={Z91N0};
01241
01242 static const G4int N92=2;
01243 static const G4double pZ92N143[4]={2.E-11, 2700., .026, 6.E-4};
01244 static const std::pair<G4int, const G4double*> Z92N143(143,pZ92N143);
01245 static const G4double pZ92N146[4]={1.E-11, 1700., .029, 2.5E-4};
01246 static const std::pair<G4int, const G4double*> Z92N146(146,pZ92N146);
01247 static const std::pair<G4int, const G4double*> Z92[N92]={Z92N143, Z92N146};
01248
01249 static const G4int N93=1;
01250 static const G4double pZ93N144[4]={4.E-8, 3700., .066, 3.5E-3};
01251 static const std::pair<G4int, const G4double*> Z93N144(144,pZ93N144);
01252 static const std::pair<G4int, const G4double*> Z93[N93]={Z93N144};
01253
01254 static const G4int N94=3;
01255 static const G4double pZ94N145[4]={8.E-11, 2900., .029, 1.3E-3};
01256 static const std::pair<G4int, const G4double*> Z94N145(145,pZ94N145);
01257 static const G4double pZ94N148[4]={9.E-12, 1400., .025, 3.E-4};
01258 static const std::pair<G4int, const G4double*> Z94N148(148,pZ94N148);
01259 static const G4double pZ94N150[4]={4.E-12, 1500., .023, 1.2E-4};
01260 static const std::pair<G4int, const G4double*> Z94N150(150,pZ94N150);
01261 static const std::pair<G4int, const G4double*> Z94[N94]={Z94N145, Z94N148, Z94N150};
01262
01263 static const G4int N95=1;
01264 static const G4double pZ95N0[4]={3.E-12, 500., .01, 2.5E-4};
01265 static const std::pair<G4int, const G4double*> Z95N0(0,pZ95N0);
01266 static const std::pair<G4int, const G4double*> Z95[N95]={Z95N0};
01267
01268 static const G4int N96=1;
01269 static const G4double pZ96N151[4]={1.5E-8, 3700., .055, 2.E-3};
01270 static const std::pair<G4int, const G4double*> Z96N151(151,pZ96N151);
01271 static const std::pair<G4int, const G4double*> Z96[N96]={Z96N151};
01272
01273 static const G4int NZ=97;
01274 static const std::pair<G4int, const G4double*>* Pars[NZ]={Z0,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,
01275 Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18,Z19,Z20,Z21,Z22,Z23,Z24,Z25,Z26,Z27,Z28,Z29,Z30,
01276 Z31,Z32,Z33,Z34,Z35,Z36,Z37,Z38,Z39,Z40,Z41,Z42,Z43,Z44,Z45,Z46,Z47,Z48,Z49,Z50,Z51,
01277 Z52,Z53,Z54,Z55,Z56,Z57,Z58,Z59,Z60,Z61,Z62,Z63,Z64,Z65,Z66,Z67,Z68,Z69,Z70,Z71,Z72,
01278 Z73,Z74,Z75,Z76,Z77,Z78,Z79,Z80,Z81,Z82,Z83,Z84,Z85,Z86,Z87,Z88,Z89,Z90,Z91,Z92,Z93,
01279 Z94,Z95,Z96};
01280 static const G4int NIso[NZ]={N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15,N16,
01281 N17,N18,N19,N20,N21,N22,N23,N24,N25,N26,N27,N28,N29,N30,N31,N32,N33,N34,N35,N36,N37,
01282 N38,N39,N40,N41,N42,N43,N44,N45,N46,N47,N48,N49,N50,N51,N52,N53,N54,N55,N56,N57,N58,
01283 N59,N60,N61,N62,N63,N64,N65,N66,N67,N68,N69,N70,N71,N72,N73,N74,N75,N76,N77,N78,N79,
01284 N80,N81,N82,N83,N84,N85,N86,N87,N88,N89,N90,N91,N92,N93,N94,N95,N96};
01285
01286
01287
01288 G4double sigma=0.;
01289 G4double lP=std::log(P);
01290 if( (tZ==1 && !tN) || (!tZ && tN==1)){if(P>.35) sigma=CrossSectionFormula(tZ,tN,P,lP);}
01291 else if(tZ<97 && tN<152)
01292 {
01293 HEthresh=1.E-4;
01294 G4double pex=0.;
01295 G4double pos=0.;
01296 G4double wid=1.;
01297 G4int nn=NIso[tZ];
01298 G4bool nfound=true;
01299 if(nn) for (G4int in=0; in<nn; in++)
01300 {
01301 std::pair<G4int, const G4double*> curIs=Pars[tZ][in];
01302 if(curIs.first == tN)
01303 {
01304 const G4double* curT=curIs.second;
01305 HEthresh= curT[0];
01306 pex = curT[1];
01307 pos = curT[2];
01308 wid = curT[3];
01309 nfound = false;
01310 break;
01311 }
01312 }
01313 if(nfound) G4cout<<"-Warning-G4QNeutronNuclearCrossSection::CSLin: Z="<<tZ<<", N="
01314 <<tN<<" isotope is not implemented in CHIPS"<<G4endl;
01315 sigma=CrossSectionFormula(tZ,tN,P,lP);
01316 if(pex>0.)
01317 {
01318 G4double dp=P-pos;
01319 sigma+=pex*std::exp(-dp*dp/wid);
01320 }
01321 }
01322 else
01323 {
01324 G4cerr<<"-Warning-G4QNeutronNuclearCroSect::CSLin:*Bad A* Z="<<tZ<<", N="<<tN<<G4endl;
01325 sigma=0.;
01326 }
01327 if(sigma<0.) return 0.;
01328 return sigma;
01329 }
01330
01331
01332 G4double G4QNeutronNuclearCrossSection::CrossSectionLog(G4int tZ, G4int tN, G4double lP)
01333 {
01334 G4double P=std::exp(lP);
01335 return CrossSectionFormula(tZ, tN, P, lP);
01336 }
01337
01338 G4double G4QNeutronNuclearCrossSection::CrossSectionFormula(G4int tZ, G4int tN,
01339 G4double P, G4double lP)
01340 {
01341 G4double sigma=0.;
01342 if(tZ==1 && !tN)
01343 {
01344
01345 G4double El(0.), To(0.);
01346 if(P<0.1)
01347 {
01348 G4double p2=P*P;
01349 El=1./(0.00012+p2*(0.051+0.1*p2));
01350 To=El;
01351 }
01352 else if(P>1000.)
01353 {
01354 G4double lp=std::log(P)-3.5;
01355 G4double lp2=lp*lp;
01356 El=0.0557*lp2+6.72;
01357 To=0.3 *lp2+38.2;
01358 }
01359 else
01360 {
01361 G4double p2=P*P;
01362 G4double LE=1./(0.00012+p2*(0.051+0.1*p2));
01363 G4double lp=std::log(P)-3.5;
01364 G4double lp2=lp*lp;
01365 G4double rp2=1./p2;
01366 El=LE+(0.0557*lp2+6.72+30./P)/(1.+0.49*rp2/P);
01367 To=LE+(0.3 *lp2+38.2)/(1.+0.54*rp2*rp2);
01368 }
01369
01370
01371
01372
01373
01374
01375
01376
01377 sigma=To-El;
01378 }
01379 else if(tZ<97 && tN<152)
01380 {
01381
01382 G4double d=lP-4.2;
01383 G4double p2=P*P;
01384 G4double p4=p2*p2;
01385 G4double a=tN+tZ;
01386 G4double al=std::log(a);
01387 G4double sa=std::sqrt(a);
01388 G4double a2=a*a;
01389 G4double sa2=sa*a2;
01390 G4double a3=a2*a;
01391 G4double a4=a2*a2;
01392
01393 G4double a6=a4*a2;
01394 G4double a7=a6*a;
01395 G4double a8=a4*a4;
01396
01397
01398 G4double c=(170.+3600./sa2)/(1.+65./sa2);
01399 G4double dl=al-3.;
01400 G4double dl2=dl*dl;
01401 G4double r=.21+.62*dl2/(1.+.5*dl2);
01402 G4double g_value=42.*(std::exp(al*0.8)+4.E-8*a4)/(1.+28./a)/(1.+5.E-5*a2);
01403 G4double e=5.*((a6+.021*a8)/(1.+.0013*a7)+.001*a3)/(1.+.0007*a2);
01404 G4double s_value=5./(1.+144./a8);
01405 G4double h=HEthresh;
01406
01407
01408
01409 sigma=(c+d*d)/(1+r/p4)+(g_value+e*std::exp(-s_value*P))/(1+h/p4/p4);
01410 #ifdef pdebug
01411 G4cout<<"G4QNeutNuclearCrossS::CSForm: A="<<a<<",P="<<P<<",CS="<<sigma<<",c="<<c<<",g="
01412 <<g_value<<",d="<<d<<",r="<<r<<",e="<<e<<",h="<<h<<G4endl;
01413 #endif
01414 }
01415 else
01416 {
01417 G4cerr<<"-Warning-G4QNeutronNuclearCroSect::CSForm:*Bad A* Z="<<tZ<<", N="<<tN<<G4endl;
01418 sigma=0.;
01419 }
01420 if(sigma<0.) return 0.;
01421 return sigma;
01422 }