53 G4bool G4QANuMuNuclearCrossSection::onlyCS=
true;
54 G4double G4QANuMuNuclearCrossSection::lastSig=0.;
55 G4double G4QANuMuNuclearCrossSection::lastQEL=0.;
56 G4int G4QANuMuNuclearCrossSection::lastL=0;
57 G4double G4QANuMuNuclearCrossSection::lastE=0.;
58 G4double* G4QANuMuNuclearCrossSection::lastEN=0;
59 G4double* G4QANuMuNuclearCrossSection::lastTX=0;
60 G4double* G4QANuMuNuclearCrossSection::lastQE=0;
61 G4int G4QANuMuNuclearCrossSection::lastPDG=0;
62 G4int G4QANuMuNuclearCrossSection::lastN=0;
63 G4int G4QANuMuNuclearCrossSection::lastZ=0;
64 G4double G4QANuMuNuclearCrossSection::lastP=0.;
65 G4double G4QANuMuNuclearCrossSection::lastTH=0.;
66 G4double G4QANuMuNuclearCrossSection::lastCS=0.;
67 G4int G4QANuMuNuclearCrossSection::lastI=0;
68 std::vector<G4double*>* G4QANuMuNuclearCrossSection::TX =
new std::vector<G4double*>;
69 std::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;
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);
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)
246 G4cout<<
"G4QAMNCS::GetCS:UpdaCur P="<<pMom<<
",f="<<fCS<<
",I="<<lastI<<
",j="<<j<<
G4endl;
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};
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};
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);