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