62const G4double G4PAIySection::fDelta = 0.005;
63const G4double G4PAIySection::fError = 0.005;
65const G4int G4PAIySection::fMaxSplineSize = 500;
76 fDensity = fElectronDensity = fNormalizationCof = fLowEnergyCof = 0.0;
77 fIntervalNumber = fSplineNumber = 0;
79 for(
G4int i=0; i<500; ++i) {
80 fSplineEnergy[i] = 0.0;
81 fRePartDielectricConst[i] = 0.0;
82 fImPartDielectricConst[i] = 0.0;
83 fIntegralTerm[i] = 0.0;
84 fDifPAIySection[i] = 0.0;
85 fdNdxCerenkov[i] = 0.0;
86 fdNdxPlasmon[i] = 0.0;
87 fIntegralPAIySection[i] = 0.0;
88 fIntegralPAIdEdx[i] = 0.0;
89 fIntegralCerenkov[i] = 0.0;
90 fIntegralPlasmon[i] = 0.0;
91 for(
G4int j=0; j<112; ++j) { fPAItable[i][j] = 0.0; }
123 for( i = 1; i <= fIntervalNumber; i++ )
127 if( energy >= maxEnergyTransfer || i > fIntervalNumber )
129 fEnergyInterval[i] = maxEnergyTransfer;
133 fEnergyInterval[i] = energy;
139 if( fVerbose > 0 && std::fabs( betaGammaSq - 8. ) < 0.4 )
141 G4cout<<i<<
"\t"<<fEnergyInterval[i]/keV<<
" keV \t"<<fA1[i]<<
"\t"<<fA2[i] <<
"\t"<<fA3[i] <<
"\t"<<fA4[i]<<
G4endl;
146 if( fEnergyInterval[fIntervalNumber] != maxEnergyTransfer )
149 fEnergyInterval[fIntervalNumber] = maxEnergyTransfer;
150 fA1[fIntervalNumber] = fA1[fIntervalNumber-1];
151 fA2[fIntervalNumber] = fA2[fIntervalNumber-1];
152 fA3[fIntervalNumber] = fA3[fIntervalNumber-1];
153 fA4[fIntervalNumber] = fA4[fIntervalNumber-1];
157 for( i = 1; i < fIntervalNumber; i++ )
161 if(fEnergyInterval[i+1]-fEnergyInterval[i] <
162 1.5*fDelta*(fEnergyInterval[i+1]+fEnergyInterval[i]))
164 for( j = i; j < fIntervalNumber; j++ )
166 fEnergyInterval[j] = fEnergyInterval[j+1];
176 if( fVerbose > 0 && std::fabs( betaGammaSq - 8. ) < 0.4 )
179 G4cout<<
"for bg2 = "<<betaGammaSq<<
", Tmax = "<< maxEnergyTransfer/keV<<
" keV"<<
G4endl;
180 G4cout<<
"energy \t"<<
"a1 \t"<<
"a2 \t"<<
"a3 \t"<<
"a4 \t"<<
G4endl;
182 for( j = 1; j < fIntervalNumber; j++ )
184 G4cout<<j<<
"\t"<<fEnergyInterval[j]/keV<<
" keV \t"<<fA1[j]<<
"\t"<<fA2[j] <<
"\t"<<fA3[j] <<
"\t"<<fA4[j]<<
G4endl;
191 fLorentzFactor[fRefGammaNumber]*fLorentzFactor[fRefGammaNumber] - 1;
199 for( i = 1; i <= fSplineNumber; i++ )
227 for( i = 0; i < numberOfElements; i++ )
230 sumZ += thisMaterialZ[i];
231 thisMaterialCof[i] = p0+p1*thisMaterialZ[i]+p2*thisMaterialZ[i]*thisMaterialZ[i];
233 for( i = 0; i < numberOfElements; i++ )
235 sumCof += thisMaterialCof[i]*thisMaterialZ[i]/sumZ;
237 fLowEnergyCof = sumCof;
238 delete [] thisMaterialZ;
239 delete [] thisMaterialCof;
254 G4double betaGammaSq = fLorentzFactor[fRefGammaNumber]*
255 fLorentzFactor[fRefGammaNumber] - 1;
266 for(i = 0; i<=fSplineNumber; i++)
268 fPAItable[i][fRefGammaNumber] = fIntegralPAIySection[i];
271 fPAItable[i][0] = fSplineEnergy[i];
274 fPAItable[0][0] = fSplineNumber;
276 for(
G4int j = 1; j < 112; j++)
278 if( j == fRefGammaNumber )
continue;
280 betaGammaSq = fLorentzFactor[j]*fLorentzFactor[j] - 1;
282 for(i = 1; i <= fSplineNumber; i++)
292 for(i = 0; i <= fSplineNumber; i++)
294 fPAItable[i][j] = fIntegralPAIySection[i];
309 for( i = 1; i <= fIntervalNumber-1; i++ )
311 for( j = 1; j <= 2; j++ )
313 fSplineNumber = (i-1)*2 + j;
315 if( j == 1 ) fSplineEnergy[fSplineNumber] = fEnergyInterval[i ]*(1+fDelta);
316 else fSplineEnergy[fSplineNumber] = fEnergyInterval[i+1]*(1-fDelta);
325 for(i=2;i<=fSplineNumber;i++)
327 if(fSplineEnergy[i]<fEnergyInterval[j+1])
329 fIntegralTerm[i] = fIntegralTerm[i-1] +
336 fEnergyInterval[j+1] );
338 fIntegralTerm[i] = fIntegralTerm[i-1] + x +
344 fNormalizationCof = 2*pi*pi*hbarc*hbarc*fine_structure_const/electron_mass_c2;
345 fNormalizationCof *= fElectronDensity/fIntegralTerm[fSplineNumber];
352 for(
G4int k=1;k<=fIntervalNumber-1;k++)
357 fImPartDielectricConst[i] = fNormalizationCof*
359 fRePartDielectricConst[i] = fNormalizationCof*
361 fIntegralTerm[i] *= fNormalizationCof;
382 while ( (i < fSplineNumber) && (fSplineNumber < fMaxSplineSize-1) )
384 if(fSplineEnergy[i+1] > fEnergyInterval[k+1])
394 for(
G4int j = fSplineNumber; j >= i+2; j-- )
396 fSplineEnergy[j] = fSplineEnergy[j-1];
397 fImPartDielectricConst[j] = fImPartDielectricConst[j-1];
398 fRePartDielectricConst[j] = fRePartDielectricConst[j-1];
399 fIntegralTerm[j] = fIntegralTerm[j-1];
401 fDifPAIySection[j] = fDifPAIySection[j-1];
402 fdNdxCerenkov[j] = fdNdxCerenkov[j-1];
403 fdNdxPlasmon[j] = fdNdxPlasmon[j-1];
411 fSplineEnergy[i+1] = en1;
416 G4double a = log10(y2/yy1)/log10(x2/x1);
417 G4double b = log10(yy1) - a*log10(x1);
423 fImPartDielectricConst[i+1] = fNormalizationCof*
425 fRePartDielectricConst[i+1] = fNormalizationCof*
427 fIntegralTerm[i+1] = fIntegralTerm[i] + fNormalizationCof*
438 G4double x = 2*(fDifPAIySection[i+1] - y)/(fDifPAIySection[i+1] + y);
444 if( x > fError && fSplineNumber < fMaxSplineSize-1 )
466 c1 = (x2 - x1)/x1/x2;
467 c2 = (x2 - x1)*(x2 + x1)/x1/x1/x2/x2;
468 c3 = (x2 - x1)*(x1*x1 + x1*x2 + x2*x2)/x1/x1/x1/x2/x2/x2;
471 return fA1[k]*log(x2/x1) + fA2[k]*c1 + fA3[k]*c2/2 + fA4[k]*c3/3;
484 G4double energy2,energy3,energy4,result;
486 energy2 = energy1*energy1;
487 energy3 = energy2*energy1;
488 energy4 = energy3*energy1;
490 result = fA1[k]/energy1+fA2[k]/energy2+fA3[k]/energy3+fA4[k]/energy4;
491 result *=hbarc/energy1;
506 G4double x0, x02, x03, x04, x05, x1, x2, xx1 ,xx2 , xx12,
507 c1, c2, c3, cof1, cof2, xln1, xln2, xln3, result;
512 for(
G4int i=1;i<=fIntervalNumber-1;i++)
514 x1 = fEnergyInterval[i];
515 x2 = fEnergyInterval[i+1];
526 xln3 = log((x2 + x0)/(x1 + x0));
531 c1 = (x2 - x1)/x1/x2;
532 c2 = (x2 - x1)*(x2 +x1)/x1/x1/x2/x2;
533 c3 = (x2 -x1)*(x1*x1 + x1*x2 + x2*x2)/x1/x1/x1/x2/x2/x2;
535 result -= (fA1[i]/x02 + fA3[i]/x04)*xln1;
536 result -= (fA2[i]/x02 + fA4[i]/x04)*c1;
537 result -= fA3[i]*c2/2/x02;
538 result -= fA4[i]*c3/3/x02;
540 cof1 = fA1[i]/x02 + fA3[i]/x04;
541 cof2 = fA2[i]/x03 + fA4[i]/x05;
543 result += 0.5*(cof1 +cof2)*xln2;
544 result += 0.5*(cof1 - cof2)*xln3;
546 result *= 2*hbarc/pi;
561 G4double beta, be2,cof,x1,x2,x3,x4,x5,x6,x7,x8,result;
564 G4double betaBohr = fine_structure_const;
567 be2 = betaGammaSq/(1 + betaGammaSq);
571 x1 = log(2*electron_mass_c2/fSplineEnergy[i]);
573 if( betaGammaSq < 0.01 ) x2 = log(be2);
576 x2 = -log( (1/betaGammaSq - fRePartDielectricConst[i])*
577 (1/betaGammaSq - fRePartDielectricConst[i]) +
578 fImPartDielectricConst[i]*fImPartDielectricConst[i] )/2;
580 if( fImPartDielectricConst[i] == 0.0 ||betaGammaSq < 0.01 )
586 x3 = -fRePartDielectricConst[i] + 1/betaGammaSq;
587 x5 = -1 - fRePartDielectricConst[i] +
588 be2*((1 +fRePartDielectricConst[i])*(1 + fRePartDielectricConst[i]) +
589 fImPartDielectricConst[i]*fImPartDielectricConst[i]);
591 x7 = atan2(fImPartDielectricConst[i],x3);
596 x4 = ((x1 + x2)*fImPartDielectricConst[i] + x6)/hbarc;
598 x8 = (1 + fRePartDielectricConst[i])*(1 + fRePartDielectricConst[i]) +
599 fImPartDielectricConst[i]*fImPartDielectricConst[i];
601 result = (x4 + cof*fIntegralTerm[i]/fSplineEnergy[i]/fSplineEnergy[i]);
602 if(result < 1.0e-8) result = 1.0e-8;
603 result *= fine_structure_const/be2/pi;
608 result *= (1 - exp(-beta/betaBohr/lowCof));
629 G4double logarithm, x3, x5, argument, modul2, dNdxC;
630 G4double be2, be4, betaBohr2,betaBohr4,cofBetaBohr;
634 betaBohr2 = fine_structure_const*fine_structure_const;
635 betaBohr4 = betaBohr2*betaBohr2*cofBetaBohr;
637 be2 = betaGammaSq/(1 + betaGammaSq);
640 if( betaGammaSq < 0.01 ) logarithm = log(1.0+betaGammaSq);
643 logarithm = -log( (1/betaGammaSq - fRePartDielectricConst[i])*
644 (1/betaGammaSq - fRePartDielectricConst[i]) +
645 fImPartDielectricConst[i]*fImPartDielectricConst[i] )*0.5;
646 logarithm += log(1+1.0/betaGammaSq);
649 if( fImPartDielectricConst[i] == 0.0 || betaGammaSq < 0.01 )
655 x3 = -fRePartDielectricConst[i] + 1.0/betaGammaSq;
656 x5 = -1.0 - fRePartDielectricConst[i] +
657 be2*((1.0 +fRePartDielectricConst[i])*(1.0 + fRePartDielectricConst[i]) +
658 fImPartDielectricConst[i]*fImPartDielectricConst[i]);
659 if( x3 == 0.0 ) argument = 0.5*pi;
660 else argument = atan2(fImPartDielectricConst[i],x3);
663 dNdxC = ( logarithm*fImPartDielectricConst[i] + argument )/hbarc;
665 if(dNdxC < 1.0e-8) dNdxC = 1.0e-8;
667 dNdxC *= fine_structure_const/be2/pi;
669 dNdxC *= (1-exp(-be4/betaBohr4));
673 modul2 = (1.0 + fRePartDielectricConst[i])*(1.0 + fRePartDielectricConst[i]) +
674 fImPartDielectricConst[i]*fImPartDielectricConst[i];
691 G4double cof, resonance, modul2, dNdxP;
692 G4double be2, be4, betaBohr2, betaBohr4, cofBetaBohr;
696 betaBohr2 = fine_structure_const*fine_structure_const;
697 betaBohr4 = betaBohr2*betaBohr2*cofBetaBohr;
699 be2 = betaGammaSq/(1 + betaGammaSq);
702 resonance = log(2*electron_mass_c2*be2/fSplineEnergy[i]);
703 resonance *= fImPartDielectricConst[i]/hbarc;
706 dNdxP = ( resonance + cof*fIntegralTerm[i]/fSplineEnergy[i]/fSplineEnergy[i] );
708 if( dNdxP < 1.0e-8 ) dNdxP = 1.0e-8;
710 dNdxP *= fine_structure_const/be2/pi;
711 dNdxP *= (1-exp(-be4/betaBohr4));
715 modul2 = (1 + fRePartDielectricConst[i])*(1 + fRePartDielectricConst[i]) +
716 fImPartDielectricConst[i]*fImPartDielectricConst[i];
733 fIntegralPAIySection[fSplineNumber] = 0;
734 fIntegralPAIdEdx[fSplineNumber] = 0;
735 fIntegralPAIySection[0] = 0;
736 G4int k = fIntervalNumber -1;
738 for(
G4int i = fSplineNumber-1; i >= 1; i--)
740 if(fSplineEnergy[i] >= fEnergyInterval[k])
742 fIntegralPAIySection[i] = fIntegralPAIySection[i+1] +
SumOverInterval(i);
747 fIntegralPAIySection[i] = fIntegralPAIySection[i+1] +
749 fIntegralPAIdEdx[i] = fIntegralPAIdEdx[i+1] +
765 fIntegralCerenkov[fSplineNumber] = 0;
766 fIntegralCerenkov[0] = 0;
767 k = fIntervalNumber -1;
769 for( i = fSplineNumber-1; i >= 1; i-- )
771 if(fSplineEnergy[i] >= fEnergyInterval[k])
778 fIntegralCerenkov[i] = fIntegralCerenkov[i+1] +
795 fIntegralPlasmon[fSplineNumber] = 0;
796 fIntegralPlasmon[0] = 0;
797 G4int k = fIntervalNumber -1;
798 for(
G4int i=fSplineNumber-1;i>=1;i--)
800 if(fSplineEnergy[i] >= fEnergyInterval[k])
806 fIntegralPlasmon[i] = fIntegralPlasmon[i+1] +
824 x0 = fSplineEnergy[i];
825 x1 = fSplineEnergy[i+1];
826 y0 = fDifPAIySection[i];
827 yy1 = fDifPAIySection[i+1];
829 a = log10(yy1/y0)/log10(c);
835 result = b*log(x1/x0);
839 result = y0*(x1*pow(c,a-1) - x0)/a;
844 fIntegralPAIySection[0] += b*log(x1/x0);
848 fIntegralPAIySection[0] += y0*(x1*x1*pow(c,a-2) - x0*x0)/a;
860 x0 = fSplineEnergy[i];
861 x1 = fSplineEnergy[i+1];
862 y0 = fDifPAIySection[i];
863 yy1 = fDifPAIySection[i+1];
865 a = log10(yy1/y0)/log10(c);
871 result = b*log(x1/x0);
875 result = y0*(x1*x1*pow(c,a-2) - x0*x0)/a;
891 x0 = fSplineEnergy[i];
892 x1 = fSplineEnergy[i+1];
893 y0 = fdNdxCerenkov[i];
894 yy1 = fdNdxCerenkov[i+1];
899 a = log10(yy1/y0)/log10(c);
901 if(a < 20.) b = y0/pow(x0,a);
904 if(a == 0) result = b*log(c);
905 else result = y0*(x1*pow(c,a-1) - x0)/a;
908 if( a == 0 ) fIntegralCerenkov[0] += b*log(x1/x0);
909 else fIntegralCerenkov[0] += y0*(x1*x1*pow(c,a-2) - x0*x0)/a;
925 x0 = fSplineEnergy[i];
926 x1 = fSplineEnergy[i+1];
927 y0 = fdNdxPlasmon[i];
928 yy1 = fdNdxPlasmon[i+1];
930 a = log10(yy1/y0)/log10(c);
933 if(a < 20.) b = y0/pow(x0,a);
936 if(a == 0) result = b*log(x1/x0);
937 else result = y0*(x1*pow(c,a-1) - x0)/a;
940 if( a == 0 ) fIntegralPlasmon[0] += b*log(x1/x0);
941 else fIntegralPlasmon[0] += y0*(x1*x1*pow(c,a-2) - x0*x0)/a;
955 G4double x0,x1,y0,yy1,a,d,e0,result;
958 x0 = fSplineEnergy[i];
959 x1 = fSplineEnergy[i+1];
960 y0 = fDifPAIySection[i];
961 yy1 = fDifPAIySection[i+1];
965 a = log10(yy1/y0)/log10(x1/x0);
968 if(a < 20.) b = y0/pow(x0,a);
973 result = b*log(x0/e0);
977 result = y0*(x0 - e0*pow(d,a-1))/a;
982 fIntegralPAIySection[0] += b*log(x0/e0);
986 fIntegralPAIySection[0] += y0*(x0*x0 - e0*e0*pow(d,a-2))/a;
988 x0 = fSplineEnergy[i - 1];
989 x1 = fSplineEnergy[i - 2];
990 y0 = fDifPAIySection[i - 1];
991 yy1 = fDifPAIySection[i - 2];
995 a = log10(yy1/y0)/log10(x1/x0);
1001 result += b*log(e0/x0);
1005 result += y0*(e0*pow(d,a-1) - x0)/a;
1010 fIntegralPAIySection[0] += b*log(e0/x0);
1014 fIntegralPAIySection[0] += y0*(e0*e0*pow(d,a-2) - x0*x0)/a;
1025 G4double x0,x1,y0,yy1,a,d,e0,result;
1028 x0 = fSplineEnergy[i];
1029 x1 = fSplineEnergy[i+1];
1030 y0 = fDifPAIySection[i];
1031 yy1 = fDifPAIySection[i+1];
1035 a = log10(yy1/y0)/log10(x1/x0);
1038 if(a < 20.) b = y0/pow(x0,a);
1043 result = b*log(x0/e0);
1047 result = y0*(x0*x0 - e0*e0*pow(d,a-2))/a;
1049 x0 = fSplineEnergy[i - 1];
1050 x1 = fSplineEnergy[i - 2];
1051 y0 = fDifPAIySection[i - 1];
1052 yy1 = fDifPAIySection[i - 2];
1056 a = log10(yy1/y0)/log10(x1/x0);
1058 if(a < 20.) b = y0/pow(x0,a);
1063 result += b*log(e0/x0);
1067 result += y0*(e0*e0*pow(d,a-2) - x0*x0)/a;
1081 G4double x0,x1,y0,yy1,a,e0,c,d,result;
1084 x0 = fSplineEnergy[i];
1085 x1 = fSplineEnergy[i+1];
1086 y0 = fdNdxCerenkov[i];
1087 yy1 = fdNdxCerenkov[i+1];
1094 a = log10(yy1/y0)/log10(c);
1097 if(a < 20.) b = y0/pow(x0,a);
1100 if( a == 0 ) result = b*log(x0/e0);
1101 else result = y0*(x0 - e0*pow(d,a-1))/a;
1104 if( a == 0 ) fIntegralCerenkov[0] += b*log(x0/e0);
1105 else fIntegralCerenkov[0] += y0*(x0*x0 - e0*e0*pow(d,a-2))/a;
1109 x0 = fSplineEnergy[i - 1];
1110 x1 = fSplineEnergy[i - 2];
1111 y0 = fdNdxCerenkov[i - 1];
1112 yy1 = fdNdxCerenkov[i - 2];
1119 a = log10(yy1/y0)/log10(x1/x0);
1122 if(a < 20.) b = y0/pow(x0,a);
1124 if(a > 20.0) b = 0.0;
1125 else b = y0/pow(x0,a);
1130 if( a == 0 ) result += b*log(e0/x0);
1131 else result += y0*(e0*pow(d,a-1) - x0 )/a;
1135 if( a == 0 ) fIntegralCerenkov[0] += b*log(e0/x0);
1136 else fIntegralCerenkov[0] += y0*(e0*e0*pow(d,a-2) - x0*x0)/a;
1152 G4double x0,x1,y0,yy1,a,c,d,e0,result;
1155 x0 = fSplineEnergy[i];
1156 x1 = fSplineEnergy[i+1];
1157 y0 = fdNdxPlasmon[i];
1158 yy1 = fdNdxPlasmon[i+1];
1162 a = log10(yy1/y0)/log10(c);
1165 if(a < 20.) b = y0/pow(x0,a);
1168 if( a == 0 ) result = b*log(x0/e0);
1169 else result = y0*(x0 - e0*pow(d,a-1))/a;
1172 if( a == 0 ) fIntegralPlasmon[0] += b*log(x0/e0);
1173 else fIntegralPlasmon[0] += y0*(x0*x0 - e0*e0*pow(d,a-2))/a;
1175 x0 = fSplineEnergy[i - 1];
1176 x1 = fSplineEnergy[i - 2];
1177 y0 = fdNdxPlasmon[i - 1];
1178 yy1 = fdNdxPlasmon[i - 2];
1182 a = log10(yy1/y0)/log10(c);
1184 if(a < 20.) b = y0/pow(x0,a);
1187 if( a == 0 ) result += b*log(e0/x0);
1188 else result += y0*(e0*pow(d,a-1) - x0)/a;
1191 if( a == 0 ) fIntegralPlasmon[0] += b*log(e0/x0);
1192 else fIntegralPlasmon[0] += y0*(e0*e0*pow(d,a-2) - x0*x0)/a;
1213 meanNumber = fIntegralPAIySection[1]*step;
1214 numOfCollisions =
G4Poisson(meanNumber);
1218 while(numOfCollisions)
1222 for( iTransfer=1; iTransfer<=fSplineNumber; iTransfer++ )
1224 if(
position >= fIntegralPAIySection[iTransfer] )
break;
1226 loss += fSplineEnergy[iTransfer] ;
1249 meanNumber = fIntegralCerenkov[1]*step;
1250 numOfCollisions =
G4Poisson(meanNumber);
1254 while(numOfCollisions)
1258 for( iTransfer=1; iTransfer<=fSplineNumber; iTransfer++ )
1260 if(
position >= fIntegralCerenkov[iTransfer] )
break;
1262 loss += fSplineEnergy[iTransfer] ;
1285 meanNumber = fIntegralPlasmon[1]*step;
1286 numOfCollisions =
G4Poisson(meanNumber);
1290 while(numOfCollisions)
1294 for( iTransfer=1; iTransfer<=fSplineNumber; iTransfer++ )
1296 if(
position >= fIntegralPlasmon[iTransfer] )
break;
1298 loss += fSplineEnergy[iTransfer] ;
1309void G4PAIySection::CallError(
G4int i,
const G4String& methodName)
const
1311 G4String head =
"G4PAIySection::" + methodName +
"()";
1313 ed <<
"Wrong index " << i <<
" fSplineNumber= " << fSplineNumber <<
G4endl;
1322G4int G4PAIySection::fNumberOfGammas = 111;
1324const G4double G4PAIySection::fLorentzFactor[112] =
13271.094989e+00, 1.107813e+00, 1.122369e+00, 1.138890e+00, 1.157642e+00,
13281.178925e+00, 1.203082e+00, 1.230500e+00, 1.261620e+00, 1.296942e+00,
13291.337032e+00, 1.382535e+00, 1.434181e+00, 1.492800e+00, 1.559334e+00,
13301.634850e+00, 1.720562e+00, 1.817845e+00, 1.928263e+00, 2.053589e+00,
13312.195835e+00, 2.357285e+00, 2.540533e+00, 2.748522e+00, 2.984591e+00,
13323.252533e+00, 3.556649e+00, 3.901824e+00, 4.293602e+00, 4.738274e+00,
13335.242981e+00, 5.815829e+00, 6.466019e+00, 7.203990e+00, 8.041596e+00,
13348.992288e+00, 1.007133e+01, 1.129606e+01, 1.268614e+01, 1.426390e+01,
13351.605467e+01, 1.808721e+01, 2.039417e+01, 2.301259e+01, 2.598453e+01,
13362.935771e+01, 3.318630e+01, 3.753180e+01, 4.246399e+01, 4.806208e+01,
13375.441597e+01, 6.162770e+01, 6.981310e+01, 7.910361e+01, 8.964844e+01,
13381.016169e+02, 1.152013e+02, 1.306197e+02, 1.481198e+02, 1.679826e+02,
13391.905270e+02, 2.161152e+02, 2.451581e+02, 2.781221e+02, 3.155365e+02,
13403.580024e+02, 4.062016e+02, 4.609081e+02, 5.230007e+02, 5.934765e+02,
13416.734672e+02, 7.642575e+02, 8.673056e+02, 9.842662e+02, 1.117018e+03,
13421.267692e+03, 1.438709e+03, 1.632816e+03, 1.853128e+03, 2.103186e+03,
13432.387004e+03, 2.709140e+03, 3.074768e+03, 3.489760e+03, 3.960780e+03,
13444.495394e+03, 5.102185e+03, 5.790900e+03, 6.572600e+03, 7.459837e+03,
13458.466860e+03, 9.609843e+03, 1.090714e+04, 1.237959e+04, 1.405083e+04,
13461.594771e+04, 1.810069e+04, 2.054434e+04, 2.331792e+04, 2.646595e+04,
13473.003901e+04, 3.409446e+04, 3.869745e+04, 4.392189e+04, 4.985168e+04,
13485.658206e+04, 6.422112e+04, 7.289153e+04, 8.273254e+04, 9.390219e+04,
1358G4int G4PAIySection::fRefGammaNumber = 29;
G4long G4Poisson(G4double mean)
G4DLLIMPORT std::ostream G4cout
G4double GetDensity() const
const G4Element * GetElement(G4int iel) const
size_t GetNumberOfElements() const
G4SandiaTable * GetSandiaTable() const
G4double GetElectronDensity() const
const G4String & GetName() const
G4double GetStepCerenkovLoss(G4double step)
G4double RePartDielectricConst(G4double energy)
G4double ImPartDielectricConst(G4int intervalNumber, G4double energy)
G4double GetStepPlasmonLoss(G4double step)
G4double SumOverBordPlasmon(G4int intervalNumber, G4double energy)
void NormShift(G4double betaGammaSq)
void ComputeLowEnergyCof(const G4Material *material)
G4double SumOverBorderdEdx(G4int intervalNumber, G4double energy)
G4double SumOverInterPlasmon(G4int intervalNumber)
void IntegralPAIySection()
G4double GetStepEnergyLoss(G4double step)
void Initialize(const G4Material *material, G4double maxEnergyTransfer, G4double betaGammaSq)
G4double SumOverInterCerenkov(G4int intervalNumber)
G4double SumOverInterval(G4int intervalNumber)
G4double SumOverBorder(G4int intervalNumber, G4double energy)
G4double SumOverBordCerenkov(G4int intervalNumber, G4double energy)
G4double RutherfordIntegral(G4int intervalNumber, G4double limitLow, G4double limitHigh)
G4double DifPAIySection(G4int intervalNumber, G4double betaGammaSq)
G4double SumOverIntervaldEdx(G4int intervalNumber)
G4double PAIdNdxCerenkov(G4int intervalNumber, G4double betaGammaSq)
G4double PAIdNdxPlasmon(G4int intervalNumber, G4double betaGammaSq)
void SplainPAI(G4double betaGammaSq)
G4double GetSandiaMatTablePAI(G4int, G4int)
G4int GetMaxInterval() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
std::ostringstream G4ExceptionDescription