53G4bool G4QANuMuNuclearCrossSection::onlyCS=
true;
54G4double G4QANuMuNuclearCrossSection::lastSig=0.;
55G4double G4QANuMuNuclearCrossSection::lastQEL=0.;
56G4int G4QANuMuNuclearCrossSection::lastL=0;
57G4double G4QANuMuNuclearCrossSection::lastE=0.;
58G4double* G4QANuMuNuclearCrossSection::lastEN=0;
59G4double* G4QANuMuNuclearCrossSection::lastTX=0;
60G4double* G4QANuMuNuclearCrossSection::lastQE=0;
61G4int G4QANuMuNuclearCrossSection::lastPDG=0;
62G4int G4QANuMuNuclearCrossSection::lastN=0;
63G4int G4QANuMuNuclearCrossSection::lastZ=0;
64G4double G4QANuMuNuclearCrossSection::lastP=0.;
65G4double G4QANuMuNuclearCrossSection::lastTH=0.;
66G4double G4QANuMuNuclearCrossSection::lastCS=0.;
67G4int G4QANuMuNuclearCrossSection::lastI=0;
68std::vector<G4double*>* G4QANuMuNuclearCrossSection::TX =
new std::vector<G4double*>;
69std::vector<G4double*>* G4QANuMuNuclearCrossSection::QE =
new std::vector<G4double*>;
75 return &theCrossSection;
80 G4int lens=TX->size();
81 for(
G4int i=0; i<lens; ++i)
delete[] (*TX)[i];
83 G4int hens=QE->size();
84 for(
G4int i=0; i<hens; ++i)
delete[] (*QE)[i];
94 static std::vector <G4int> colPDG;
95 static std::vector <G4int> colN;
96 static std::vector <G4int> colZ;
97 static std::vector <G4double> colP;
98 static std::vector <G4double> colTH;
99 static std::vector <G4double> colCS;
103 G4cout<<
"G4QAMNCS::GetCS:>> f="<<fCS<<
", p="<<pMom<<
", Z="<<tgZ<<
"("<<lastZ<<
") ,N="<<tgN
104 <<
"("<<lastN<<
"),PDG="<<pPDG<<
"("<<lastPDG<<
"), T="<<pEn<<
"("<<lastTH<<
")"<<
",Sz="
111 G4cout<<
"G4QAMNCS::GetCS: *** Found pPDG="<<pPDG<<
" =--=> CS=0"<<
G4endl;
117 if(tgN!=lastN || tgZ!=lastZ || pPDG!=lastPDG)
126 if(lastI)
for(
G4int i=0; i<lastI; i++)
if(colPDG[i]==pPDG)
128 if(colN[i]==tgN && colZ[i]==tgZ)
133 G4cout<<
"G4QAMNCS::GetCS:*Found*P="<<pMom<<
",Threshold="<<lastTH<<
",j="<<j<<
G4endl;
139 G4cout<<
"G4QAMNCS::GetCS:Found T="<<pEn<<
" < Threshold="<<lastTH<<
",X=0"<<
G4endl;
149 G4cout<<
"G4QAMNCS::GetCS:P="<<pMom<<
",CS="<<lastCS*millibarn<<
G4endl;
152 return lastCS*millibarn;
157 G4cout<<
"G4QAMNCS::G:UpdaDB P="<<pMom<<
",f="<<fCS<<
",lI="<<lastI<<
",j="<<j<<
G4endl;
161 G4cout<<
"G4QAMNCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<
G4endl;
164 if(lastCS<=0. && pEn>lastTH)
167 G4cout<<
"G4QAMNCS::GetCS: New T="<<pEn<<
"(CS=0) > Threshold="<<lastTH<<
G4endl;
174 G4cout<<
"---G4QAMNCrossSec::GetCrosSec:pPDG="<<pPDG<<
",j="<<j<<
",N="<<colN[i]
175 <<
",Z["<<i<<
"]="<<colZ[i]<<
",cPDG="<<colPDG[i]<<
G4endl;
183 G4cout<<
"G4QAMNCS::GetCrosSec:CalcNew P="<<pMom<<
",f="<<fCS<<
",lstI="<<lastI<<
G4endl;
191 G4cout<<
"G4QAMNCrossSection::GetCrossSect: NewThresh="<<lastTH<<
",T="<<pEn<<
G4endl;
196 G4cout<<
"G4QAMNCS::GetCS: First T="<<pEn<<
"(CS=0) > Threshold="<<lastTH<<
G4endl;
202 G4cout<<
"G4QAMNCS::GetCrosSec:New CS="<<lastCS<<
",lZ="<<lastN<<
",lN="<<lastZ<<
G4endl;
207 colPDG.push_back(pPDG);
208 colP.push_back(pMom);
209 colTH.push_back(lastTH);
210 colCS.push_back(lastCS);
212 G4cout<<
"G4QAMNCS::GetCS:1st,P="<<pMom<<
"(MeV),X="<<lastCS*millibarn<<
"(mb)"<<
G4endl;
215 return lastCS*millibarn;
220 G4cout<<
"G4QAMNCS::GetCS: Update lastI="<<lastI<<
",j="<<j<<
G4endl;
230 G4cout<<
"G4QAMNCS::GetCS: Current T="<<pEn<<
" < Threshold="<<lastTH<<
", CS=0"<<
G4endl;
235 else if(std::fabs(lastP/pMom-1.)<
tolerance)
238 G4cout<<
"G4QAMNCS::GetCS:OldCur P="<<pMom<<
"="<<pMom<<
",CS="<<lastCS*millibarn<<
G4endl;
241 return lastCS*millibarn;
246 G4cout<<
"G4QAMNCS::GetCS:UpdaCur P="<<pMom<<
",f="<<fCS<<
",I="<<lastI<<
",j="<<j<<
G4endl;
252 G4cout<<
"G4QAMNCS::GetCrSec:End,P="<<pMom<<
"(MeV),CS="<<lastCS*millibarn<<
"(mb)"<<
G4endl;
255 return lastCS*millibarn;
264 static const G4double mN=.931494043;
266 static const G4double mmu=.105658369;
268 static const G4double thresh=mmu+mmu2/dmN;
272 if(Z>0||N>0) dN=thresh*GeV;
282 static const G4int nE=65;
283 static const G4int mL=nE-1;
284 static const G4double mN=.931494043;
286 static const G4double mmu=.105658369;
288 static const G4double EMi=mmu+mmu2/dmN;
291 static std::vector <G4double> colH;
322 G4int res=GetFunctions(Z,targN,lastTX,lastQE,lastEN);
323 if(res<0)
G4cerr<<
"*W*G4NuMuNuclearCS::CalcCrossSect:Bad Function Retrieve"<<
G4endl;
325 G4int sync=TX->size();
326 if(sync!=I)
G4cerr<<
"***G4NuMuNuclearCS::CalcCrossSect:Sync.="<<sync<<
"#"<<I<<
G4endl;
327 TX->push_back(lastTX);
328 QE->push_back(lastQE);
346 if(lastE<=lastEN[sep]) sep-=newran;
351 if(chk+chk!=mL)
G4cerr<<
"*Warn*G4NuMuNuclearCS::CalcCS:Table! mL="<<mL<<
G4endl;
355 if(lastE<lowE||sep>=mL||lastE>highE)
356 G4cerr<<
"*Warn*G4NuMuNuclearCS::CalcCS:Bin! "<<lowE<<
" < "<<lastE<<
" < "<<highE
357 <<
", sep="<<sep<<
", mL="<<mL<<
G4endl;
358 lastSig=lastE*(lastE-lowE)*(lastTX[sep+1]-lowTX)/(highE-lowE)+lowTX;
362 lastQEL=(lastE-lowE)*(lastQE[sep+1]-lowQE)/(highE-lowE)+lowQE;
364 G4cout<<
"G4NuMuNuclearCS::CalcCS: T="<<lastSig<<
",Q="<<lastQEL<<
",E="<<lastE<<
G4endl;
373 if(lastQEL<0.) lastQEL = 0.;
374 if(lastSig<0.) lastSig = 0.;
377 if(!onlyCS) lastQEL*=mb38;
389 static const G4double mN=.931494043;
391 static const G4double mmu=.105658369;
393 static const G4double thresh=mmu+mmu2/dmN;
394 static const G4int nE=65;
395 static const G4double nuEn[nE]={thresh,
396 .112039,.116079,.120416,.125076,.130090,.135494,.141324,.147626,.154445,.161838,
397 .169864,.178594,.188105,.198485,.209836,.222272,.235923,.250941,.267497,.285789,
398 .306045,.328530,.353552,.381466,.412689,.447710,.487101,.531538,.581820,.638893,
399 .703886,.778147,.863293,.961275,1.07445,1.20567,1.35843,1.53701,1.74667,1.99390,
400 2.28679,2.63542,3.05245,3.55386,4.15990,4.89644,5.79665,6.90336,8.27224,9.97606,
401 12.1106,14.8029,18.2223,22.5968,28.2351,35.5587,45.1481,57.8086,74.6682,97.3201,
402 128.036,170.085,228.220,309.420};
404 .077498,.247583,.329691,.386384,.429087,.462699,.489899,.512316,.530996,.546614,
405 .559616,.570292,.578840,.585395,.590053,.593083,.594197,.593614,.591396,.587611,
406 .582335,.575653,.567667,.558490,.548417,.537270,.525352,.512825,.499857,.486620,
407 .473283,.460014,.446970,.434294,.422116,.410656,.399782,.389665,.380349,.371860,
408 .364207,.357387,.351388,.346192,.341778,.338122,.335198,.332980,.331439,.330544,
409 .330263,.330558,.331391,.332718,.334494,.336667,.339182,.341697,.344470,.348125,
410 .351322,.354481,.357507,.359239};
412 .008683,.028739,.039700,.048327,.055820,.062693,.069235,.075631,.082010,.088463,
413 .095059,.101851,.108883,.116192,.123814,.131826,.140185,.148962,.158197,.167933,
414 .178221,.189119,.200700,.213045,.226326,.240454,.255277,.270612,.286388,.302608,
415 .319318,.336582,.354468,.373031,.392427,.412445,.433146,.454448,.476222,.498289,
416 .520430,.542558,.564130,.585003,.604928,.623680,.641266,.657255,.671704,.684586,
417 .696111,.706028,.714553,.721951,.728085,.733182,.737348,.740958,.743716,.746059,
418 .747806,.749129,.750331,.751100};
429 G4cout<<
"**G4QANuMuNuclearCrossSection::GetFunctions:Z="<<z<<
".No CS returned"<<
G4endl;
432 for(
G4int k=0; k<nE; k++)
439 if(first) e[k]=nuEn[k];
440 t[k]=TOTX[k]*nuEn[k]*(za+za)/ta+QELX[k]*(dz+dz-da)/ta;
449 static const G4double mmu=.105658369;
451 static const double hmmu2=mmu2/2;
452 static const double MN=.931494043;
453 static const double MN2=MN*MN;
455 static const G4double pconv=1./power;
456 static const G4int nQ2=101;
457 static const G4int lQ2=nQ2-1;
458 static const G4int bQ2=lQ2-1;
460 static const G4double Xl[nQ2]={5.20224e-16,
461 .006125,.0137008,.0218166,.0302652,.0389497,.0478144,.0568228,.0659497,.0751768,.0844898,
462 .093878, .103332, .112844, .122410, .132023, .141680, .151376, .161109, .170875, .180672,
463 .190499, .200352, .210230, .220131, .230055, .239999, .249963, .259945, .269944, .279960,
464 .289992, .300039, .310099, .320173, .330260, .340359, .350470, .360592, .370724, .380867,
465 .391019, .401181, .411352, .421531, .431719, .441915, .452118, .462329, .472547, .482771,
466 .493003, .503240, .513484, .523734, .533989, .544250, .554517, .564788, .575065, .585346,
467 .595632, .605923, .616218, .626517, .636820, .647127, .657438, .667753, .678072, .688394,
468 .698719, .709048, .719380, .729715, .740053, .750394, .760738, .771085, .781434, .791786,
469 .802140, .812497, .822857, .833219, .843582, .853949, .864317, .874687, .885060, .895434,
470 .905810, .916188, .926568, .936950, .947333, .957719, .968105, .978493, .988883, .999275};
474 static const G4double dX=(Xmax-Xmin)/lQ2;
476 1.52225, 2.77846, 3.96651, 5.11612, 6.23990, 7.34467, 8.43466, 9.51272, 10.5809, 11.6406,
477 12.6932, 13.7394, 14.7801, 15.8158, 16.8471, 17.8743, 18.8979, 19.9181, 20.9353, 21.9496,
478 22.9614, 23.9707, 24.9777, 25.9826, 26.9855, 27.9866, 28.9860, 29.9837, 30.9798, 31.9745,
479 32.9678, 33.9598, 34.9505, 35.9400, 36.9284, 37.9158, 38.9021, 39.8874, 40.8718, 41.8553,
480 42.8379, 43.8197, 44.8007, 45.7810, 46.7605, 47.7393, 48.7174, 49.6950, 50.6718, 51.6481,
481 52.6238, 53.5990, 54.5736, 55.5476, 56.5212, 57.4943, 58.4670, 59.4391, 60.4109, 61.3822,
482 62.3531, 63.3236, 64.2937, 65.2635, 66.2329, 67.2019, 68.1707, 69.1390, 70.1071, 71.0748,
483 72.0423, 73.0095, 73.9763, 74.9429, 75.9093, 76.8754, 77.8412, 78.8068, 79.7721, 80.7373,
484 81.7022, 82.6668, 83.6313, 84.5956, 85.5596, 86.5235, 87.4872, 88.4507, 89.4140, 90.3771,
485 91.3401, 92.3029, 93.2656, 94.2281, 95.1904, 96.1526, 97.1147, 98.0766, 99.0384, 100.000};
493 G4double sqE=Enu*std::sqrt(MEm*MEm-mmu2*MN2);
494 G4double E2M=MN*Enu2-(Enu+MN)*hmmu2;
499 G4double Q2mi=(Enu2+Enu2)*(rmin-rhm2E-std::sqrt(rmin*rmin-rhm2E-rhm2E));
501 G4double Xma=std::pow((1.+Q2mi),power);
502 G4double Xmi=std::pow((1.+Q2ma),power);
505 G4int iXi=
static_cast<int>(rXi);
510 G4double inti=bnti+dXi*(inl[iXi+1]-bnti);
513 G4int iXa=
static_cast<int>(rXa);
518 G4double inta=bnta+dXa*(inl[iXa+1]-bnta);
521 G4int intc=
static_cast<int>(intx);
523 if(intc>bQ2) intc=bQ2;
534 static const double mpi=.13957018;
535 static const G4double mmu=.105658369;
537 static const double hmmu2=mmu2/2;
538 static const double MN=.931494043;
539 static const double MN2=MN*MN;
540 static const double dMN=MN+MN;
541 static const double mcV=(dMN+mpi)*mpi;
542 static const G4int power=7;
543 static const G4double pconv=1./power;
544 static const G4int nX=21;
545 static const G4int lX=nX-1;
546 static const G4int bX=lX-1;
547 static const G4int nE=20;
548 static const G4int bE=nE-1;
549 static const G4int pE=bE-1;
551 static const G4double X0[nX]={5.21412e-05,
552 .437860, .681908, .891529, 1.08434, 1.26751, 1.44494, 1.61915, 1.79198, 1.96493, 2.13937,
553 2.31664, 2.49816, 2.68559, 2.88097, 3.08705, 3.30774, 3.54917, 3.82233, 4.15131, 4.62182};
554 static const G4double X1[nX]={.00102591,
555 1.00443, 1.55828, 2.03126, 2.46406, 2.87311, 3.26723, 3.65199, 4.03134, 4.40835, 4.78561,
556 5.16549, 5.55031, 5.94252, 6.34484, 6.76049, 7.19349, 7.64917, 8.13502, 8.66246, 9.25086};
557 static const G4double X2[nX]={.0120304,
558 2.59903, 3.98637, 5.15131, 6.20159, 7.18024, 8.10986, 9.00426, 9.87265, 10.7217, 11.5564,
559 12.3808, 13.1983, 14.0116, 14.8234, 15.6359, 16.4515, 17.2723, 18.1006, 18.9386, 19.7892};
560 static const G4double X3[nX]={.060124,
561 5.73857, 8.62595, 10.9849, 13.0644, 14.9636, 16.7340, 18.4066, 20.0019, 21.5342, 23.0142,
562 24.4497, 25.8471, 27.2114, 28.5467, 29.8564, 31.1434, 32.4102, 33.6589, 34.8912, 36.1095};
563 static const G4double X4[nX]={.0992363,
564 8.23746, 12.1036, 15.1740, 17.8231, 20.1992, 22.3792, 24.4092, 26.3198, 28.1320, 29.8615,
565 31.5200, 33.1169, 34.6594, 36.1536, 37.6044, 39.0160, 40.3920, 41.7353, 43.0485, 44.3354};
566 static const G4double X5[nX]={.0561127,
567 7.33661, 10.5694, 13.0778, 15.2061, 17.0893, 18.7973, 20.3717, 21.8400, 23.2211, 24.5291,
568 25.7745, 26.9655, 28.1087, 29.2094, 30.2721, 31.3003, 32.2972, 33.2656, 34.2076, 35.1265};
569 static const G4double X6[nX]={.0145859,
570 4.81774, 6.83565, 8.37399, 9.66291, 10.7920, 11.8075, 12.7366, 13.5975, 14.4025, 15.1608,
571 15.8791, 16.5628, 17.2162, 17.8427, 18.4451, 19.0259, 19.5869, 20.1300, 20.6566, 21.1706};
572 static const G4double X7[nX]={.00241155,
573 2.87095, 4.02492, 4.89243, 5.61207, 6.23747, 6.79613, 7.30433, 7.77270, 8.20858, 8.61732,
574 9.00296, 9.36863, 9.71682, 10.0495, 10.3684, 10.6749, 10.9701, 11.2550, 11.5306, 11.7982};
575 static const G4double X8[nX]={.000316863,
576 1.76189, 2.44632, 2.95477, 3.37292, 3.73378, 4.05420, 4.34415, 4.61009, 4.85651, 5.08666,
577 5.30299, 5.50738, 5.70134, 5.88609, 6.06262, 6.23178, 6.39425, 6.55065, 6.70149, 6.84742};
578 static const G4double X9[nX]={3.73544e-05,
579 1.17106, 1.61289, 1.93763, 2.20259, 2.42976, 2.63034, 2.81094, 2.97582, 3.12796, 3.26949,
580 3.40202, 3.52680, 3.64482, 3.75687, 3.86360, 3.96557, 4.06323, 4.15697, 4.24713, 4.33413};
581 static const G4double XA[nX]={4.19131e-06,
582 .849573, 1.16208, 1.38955, 1.57379, 1.73079, 1.86867, 1.99221, 2.10451, 2.20770, 2.30332,
583 2.39252, 2.47622, 2.55511, 2.62977, 2.70066, 2.76818, 2.83265, 2.89437, 2.95355, 3.01051};
584 static const G4double XB[nX]={4.59981e-07,
585 .666131, .905836, 1.07880, 1.21796, 1.33587, 1.43890, 1.53080, 1.61399, 1.69011, 1.76040,
586 1.82573, 1.88682, 1.94421, 1.99834, 2.04959, 2.09824, 2.14457, 2.18878, 2.23107, 2.27162};
587 static const G4double XC[nX]={4.99861e-08,
588 .556280, .752730, .893387, 1.00587, 1.10070, 1.18317, 1.25643, 1.32247, 1.38269, 1.43809,
589 1.48941, 1.53724, 1.58203, 1.62416, 1.66391, 1.70155, 1.73728, 1.77128, 1.80371, 1.83473};
590 static const G4double XD[nX]={5.40832e-09,
591 .488069, .657650, .778236, .874148, .954621, 1.02432, 1.08599, 1.14138, 1.19172, 1.23787,
592 1.28049, 1.32008, 1.35705, 1.39172, 1.42434, 1.45514, 1.48429, 1.51197, 1.53829, 1.56339};
593 static const G4double XE[nX]={5.84029e-10,
594 .445057, .597434, .705099, .790298, .861468, .922865, .976982, 1.02542, 1.06930, 1.10939,
595 1.14630, 1.18050, 1.21233, 1.24208, 1.27001, 1.29630, 1.32113, 1.34462, 1.36691, 1.38812};
596 static const G4double XF[nX]={6.30137e-11,
597 .418735, .560003, .659168, .737230, .802138, .857898, .906854, .950515, .989915, 1.02580,
598 1.05873, 1.08913, 1.11734, 1.14364, 1.16824, 1.19133, 1.21306, 1.23358, 1.25298, 1.27139};
599 static const G4double XG[nX]={6.79627e-12,
600 .405286, .539651, .633227, .706417, .766929, .818642, .863824, .903931, .939963, .972639,
601 1.00250, 1.02995, 1.05532, 1.07887, 1.10082, 1.12134, 1.14058, 1.15867, 1.17572, 1.19183};
602 static const G4double XH[nX]={7.32882e-13,
603 .404391, .535199, .625259, .695036, .752243, .800752, .842823, .879906, .912994, .942802,
604 .969862, .994583, 1.01729, 1.03823, 1.05763, 1.07566, 1.09246, 1.10816, 1.12286, 1.13667};
605 static const G4double XI[nX]={7.90251e-14,
606 .418084, .548382, .636489, .703728, .758106, .803630, .842633, .876608, .906576, .933269,
607 .957233, .978886, .998556, 1.01651, 1.03295, 1.04807, 1.06201, 1.07489, 1.08683, 1.09792};
608 static const G4double XJ[nX]={8.52083e-15,
609 .447299, .579635, .666780, .731788, .783268, .825512, .861013, .891356, .917626, .940597,
610 .960842, .978802, .994820, 1.00917, 1.02208, 1.03373, 1.04427, 1.05383, 1.06253, 1.07046};
612 static const G4double Xmin[nE]={X0[0],X1[0],X2[0],X3[0],X4[0],X5[0],X6[0],X7[0],X8[0],
613 X9[0],XA[0],XB[0],XC[0],XD[0],XE[0],XF[0],XG[0],XH[0],XI[0],XJ[0]};
615 (X0[lX]-X0[0])/lX, (X1[lX]-X1[0])/lX, (X2[lX]-X2[0])/lX, (X3[lX]-X3[0])/lX,
616 (X4[lX]-X4[0])/lX, (X5[lX]-X5[0])/lX, (X6[lX]-X6[0])/lX, (X7[lX]-X7[0])/lX,
617 (X8[lX]-X8[0])/lX, (X9[lX]-X9[0])/lX, (XA[lX]-XA[0])/lX, (XB[lX]-XB[0])/lX,
618 (XC[lX]-XC[0])/lX, (XD[lX]-XD[0])/lX, (XE[lX]-XE[0])/lX, (XF[lX]-XF[0])/lX,
619 (XG[lX]-XG[0])/lX, (XH[lX]-XH[0])/lX, (XI[lX]-XI[0])/lX, (XJ[lX]-XJ[0])/lX};
621 {X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,XA,XB,XC,XD,XE,XF,XG,XH,XI,XJ};
623 .354631, 1.08972, 2.05138, 3.16564, 4.38343, 5.66828, 6.99127, 8.32858, 9.65998, 10.9680,
624 12.2371, 13.4536, 14.6050, 15.6802, 16.6686, 17.5609, 18.3482, 19.0221, 19.5752, 20.0000};
626 .281625, .877354, 1.67084, 2.60566, 3.64420, 4.75838, 5.92589, 7.12829, 8.34989, 9.57708,
627 10.7978, 12.0014, 13.1781, 14.3190, 15.4162, 16.4620, 17.4496, 18.3724, 19.2245, 20.0000};
629 .201909, .642991, 1.24946, 1.98463, 2.82370, 3.74802, 4.74263, 5.79509, 6.89474, 8.03228,
630 9.19947, 10.3889, 11.5938, 12.8082, 14.0262, 15.2427, 16.4527, 17.6518, 18.8356, 20.0000};
632 .140937, .461189, .920216, 1.49706, 2.17728, 2.94985, 3.80580, 4.73758, 5.73867, 6.80331,
633 7.92637, 9.10316, 10.3294, 11.6013, 12.9150, 14.2672, 15.6548, 17.0746, 18.5239, 20.0000};
635 .099161, .337358, .694560, 1.16037, 1.72761, 2.39078, 3.14540, 3.98768, 4.91433, 5.92245,
636 7.00942, 8.17287, 9.41060, 10.7206, 12.1010, 13.5500, 15.0659, 16.6472, 18.2924, 20.0000};
638 .071131, .255084, .543312, .932025, 1.41892, 2.00243, 2.68144, 3.45512, 4.32283, 5.28411,
639 6.33859, 7.48602, 8.72621, 10.0590, 11.4844, 13.0023, 14.6128, 16.3158, 18.1115, 20.0000};
641 .053692, .202354, .443946, .778765, 1.20774, 1.73208, 2.35319, 3.07256, 3.89177, 4.81249,
642 5.83641, 6.96528, 8.20092, 9.54516, 10.9999, 12.5670, 14.2486, 16.0466, 17.9630, 20.0000};
644 .043065, .168099, .376879, .672273, 1.05738, 1.53543, 2.10973, 2.78364, 3.56065, 4.44429,
645 5.43819, 6.54610, 7.77186, 9.11940, 10.5928, 12.1963, 13.9342, 15.8110, 17.8313, 20.0000};
647 .036051, .143997, .327877, .592202, .941572, 1.38068, 1.91433, 2.54746, 3.28517, 4.13277,
648 5.09574, 6.17984, 7.39106, 8.73568, 10.2203, 11.8519, 13.6377, 15.5854, 17.7033, 20.0000};
650 .030977, .125727, .289605, .528146, .846967, 1.25183, 1.74871, 2.34384, 3.04376, 3.85535,
651 4.78594, 5.84329, 7.03567, 8.37194, 9.86163, 11.5150, 13.3430, 15.3576, 17.5719, 20.0000};
653 .027129, .111420, .258935, .475812, .768320, 1.14297, 1.60661, 2.16648, 2.83034, 3.60650,
654 4.50394, 5.53238, 6.70244, 8.02569, 9.51488, 11.1841, 13.0488, 15.1264, 17.4362, 20.0000};
656 .024170, .100153, .234345, .433198, .703363, 1.05184, 1.48607, 2.01409, 2.64459, 3.38708,
657 4.25198, 5.25084, 6.39647, 7.70319, 9.18708, 10.8663, 12.7617, 14.8968, 17.2990, 20.0000};
659 .021877, .091263, .214670, .398677, .650133, .976322, 1.38510, 1.88504, 2.48555, 3.19709,
660 4.03129, 5.00127, 6.12184, 7.40989, 8.88482, 10.5690, 12.4888, 14.6748, 17.1638, 20.0000};
662 .020062, .084127, .198702, .370384, .606100, .913288, 1.30006, 1.77535, 2.34912, 3.03253,
663 3.83822, 4.78063, 5.87634, 7.14459, 8.60791, 10.2929, 12.2315, 14.4621, 17.0320, 20.0000};
665 .018547, .078104, .185102, .346090, .567998, .858331, 1.22535, 1.67824, 2.22735, 2.88443,
666 3.66294, 4.57845, 5.64911, 6.89637, 8.34578, 10.0282, 11.9812, 14.2519, 16.8993, 20.0000};
668 .017143, .072466, .172271, .323007, .531545, .805393, 1.15288, 1.58338, 2.10754, 2.73758,
669 3.48769, 4.37450, 5.41770, 6.64092, 8.07288, 9.74894, 11.7135, 14.0232, 16.7522, 20.0000};
671 .015618, .066285, .158094, .297316, .490692, .745653, 1.07053, 1.47479, 1.96931, 2.56677,
672 3.28205, 4.13289, 5.14068, 6.33158, 7.73808, 9.40133, 11.3745, 13.7279, 16.5577, 20.0000};
674 .013702, .058434, .139923, .264115, .437466, .667179, .961433, 1.32965, 1.78283, 2.33399,
675 2.99871, 3.79596, 4.74916, 5.88771, 7.24937, 8.88367, 10.8576, 13.2646, 16.2417, 20.0000};
677 .011264, .048311, .116235, .220381, .366634, .561656, .813132, 1.13008, 1.52322, 2.00554,
678 2.59296, 3.30542, 4.16834, 5.21490, 6.48964, 8.05434, 9.99835, 12.4580, 15.6567, 20.0000};
680 .008628, .037206, .089928, .171242, .286114, .440251, .640343, .894382, 1.21208, 1.60544,
681 2.08962, 2.68414, 3.41486, 4.31700, 5.44048, 6.85936, 8.69067, 11.1358, 14.5885, 20.0000};
683 {I0,I1,I2,I3,I4,I5,I6,I7,I8,I9,IA,IB,IC,ID,IE,IF,IG,IH,II,IJ};
685-1.98842,-1.58049,-1.17256,-.764638,-.356711, .051215, .459141, .867068, 1.27499, 1.68292,
686 2.09085, 2.49877, 2.90670, 3.31463, 3.72255, 4.13048, 4.53840, 4.94633, 5.35426, 5.76218};
688 static const G4double lEma=lE[nE-1];
689 static const G4double dlE=(lEma-lEmi)/bE;
694 G4int fE=
static_cast<int>(rE);
706 G4double sqE=Enu*std::sqrt(MEm*MEm-mmu2*MN2);
707 G4double E2M=MN*Enu2-(Enu+MN)*hmmu2;
712 G4double Q2mi=(Enu2+Enu2)*(rmin-rhm2E-std::sqrt(rmin*rmin-rhm2E-rhm2E));
715 if(Q2ma>Q2nq) Q2ma=Q2nq;
718 G4double shift=.875/(1.+.2977/Enu/Enu)/std::pow(Enu,.78);
720 G4double Xmi=std::pow((shift-Rmi),power);
721 G4double Xma=std::pow((shift-1.),power);
723 G4double idX=dX[fE]+dE*(dX[sE]-dX[fE]);
724 G4double iXmi=Xmin[fE]+dE*(Xmin[sE]-Xmin[fE]);
726 G4int iXi=
static_cast<int>(rXi);
731 G4double intil=bntil+dXi*(Il[fE][iXi+1]-bntil);
733 G4double intir=bntir+dXi*(Il[sE][iXi+1]-bntir);
734 G4double inti=intil+dE*(intir-intil);
737 G4int iXa=
static_cast<int>(rXa);
742 G4double intal=bntal+dXa*(Il[fE][iXa+1]-bntal);
744 G4double intar=bntar+dXa*(Il[sE][iXa+1]-bntar);
745 G4double inta=intal+dE*(intar-intal);
749 G4int intc=
static_cast<int>(intx);
754 G4double Xlb=mXl+dint*(Xl[fE][intc+1]-mXl);
756 G4double Xrb=mXr+dint*(Xl[sE][intc+1]-mXr);
769 G4double s_value=std::pow((1.+.6/Q2),(-1.-(1.+r)/(12.5+r/.3)));
771 return 1.-s_value*(1.-s_value/2);
777 return 3.+.3581*std::log(1.+Q2/.04);
G4DLLIMPORT std::ostream G4cerr
G4DLLIMPORT std::ostream G4cout
G4int GetExchangePDGCode()
G4double GetNPartons(G4double Q2)
G4double CalculateCrossSection(G4bool CS, G4int F, G4int I, G4int PDG, G4int Z, G4int N, G4double Momentum)
~G4QANuMuNuclearCrossSection()
G4double GetNQE_ExchangeQ2()
G4double ThresholdEnergy(G4int Z, G4int N, G4int PDG=-14)
virtual G4double GetCrossSection(G4bool fCS, G4double pMom, G4int tgZ, G4int tgN, G4int pPDG=0)
static G4VQCrossSection * GetPointer()
G4double GetQEL_ExchangeQ2()
G4double GetDirectPart(G4double Q2)
static G4double tolerance