208 G4double A[11],ThisPDF[320],ThisCPDF[320];
209 G4double coeff,Ckj,CkjPlus1,CkPlus1j,CkPlus1jPlus1,
a,
b,mmm,F;
210 G4int Ind0,KIndex=0,JIndex=0,IIndex=0;
215 for(
G4int k=0;k<75;k++){
if((
lambda>=LAMBDAN[k])&&(
lambda<LAMBDAN[k+1])){KIndex=k;
break;}}
216 for(
G4int j=0;j<11;j++){A[j]=scrA[11*KIndex+j];}
217 for(
G4int j=0;j<10;j++){
if((Chia2>=A[j])&&(Chia2<A[j+1])){JIndex=j;
break;}}
221 coeff=(
G4Log(LAMBDAN[KIndex+1]/LAMBDAN[KIndex]))*(
G4Log(A[JIndex+1]/A[JIndex]));
225 CkPlus1jPlus1=(
G4Log(
lambda/LAMBDAN[KIndex]))*(
G4Log(Chia2/A[JIndex]))/coeff;
228 Ind0=320*(11*KIndex+JIndex);
229 for(
G4int i=0 ; i<320 ;i++){
230 ThisPDF[i]=Ckj*PDF[Ind0]+CkjPlus1*PDF[Ind0+320]+CkPlus1j*PDF[Ind0+3520]+CkPlus1jPlus1*PDF[Ind0+3840];
231 ThisCPDF[i]=Ckj*CPDF[Ind0]+CkjPlus1*CPDF[Ind0+320]+CkPlus1j*CPDF[Ind0+3520]+CkPlus1jPlus1*CPDF[Ind0+3840];
233 if((i!=0)&&((
rndm>=ThisCPDF[i-1])&&(
rndm<ThisCPDF[i]))) {IIndex=i-1;
break;}
244 F=(ThisCPDF[IIndex]+(mmm-uvalues[IIndex])*ThisPDF[IIndex]
245 +((mmm-uvalues[IIndex])*(mmm-uvalues[IIndex])
246 *(ThisPDF[IIndex+1]-ThisPDF[IIndex]))
247 /(2.*(uvalues[IIndex+1]-uvalues[IIndex])))-
rndm;
250 }
while(std::fabs(b-a)>1.0e-9);
double precision function rndm(RDUMMY)
G4double G4Log(G4double x)