source: trunk/source/processes/electromagnetic/utils/src/G4EmCorrections.cc @ 1315

Last change on this file since 1315 was 1315, checked in by garnier, 14 years ago

update geant4-09-04-beta-cand-01 interfaces-V09-03-09 vis-V09-03-08

File size: 61.5 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer                                           *
4// *                                                                  *
5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
7// * conditions of the Geant4 Software License,  included in the file *
8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
9// * include a list of copyright holders.                             *
10// *                                                                  *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work  make  any representation or  warranty, express or implied, *
14// * regarding  this  software system or assume any liability for its *
15// * use.  Please see the license in the file  LICENSE  and URL above *
16// * for the full disclaimer and the limitation of liability.         *
17// *                                                                  *
18// * This  code  implementation is the result of  the  scientific and *
19// * technical work of the GEANT4 collaboration.                      *
20// * By using,  copying,  modifying or  distributing the software (or *
21// * any work based  on the software)  you  agree  to acknowledge its *
22// * use  in  resulting  scientific  publications,  and indicate your *
23// * acceptance of all terms of the Geant4 Software license.          *
24// ********************************************************************
25//
26// $Id: G4EmCorrections.cc,v 1.58 2010/06/04 09:28:46 vnivanch Exp $
27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
28//
29// -------------------------------------------------------------------
30//
31// GEANT4 Class
32//
33// File name:     G4EmCorrections
34//
35// Author:        Vladimir Ivanchenko
36//
37// Creation date: 13.01.2005
38//
39// Modifications:
40// 05.05.2005 V.Ivanchenko Fix misprint in Mott term
41// 26.11.2005 V.Ivanchenko Fix effective charge for heavy ions using original paper
42// 28.04.2006 V.Ivanchenko General cleanup, add finite size corrections
43// 13.05.2006 V.Ivanchenko Add corrections for ion stopping
44// 08.05.2007 V.Ivanchenko Use G4IonTable for ion mass instead of NistTable to avoid
45//                         division by zero
46// 29.02.2008 V.Ivanchenko use expantions for log and power function
47// 21.04.2008 Updated computations for ions (V.Ivanchenko)
48// 20.05.2008 Removed Finite Size correction (V.Ivanchenko)
49//
50//
51// Class Description:
52//
53// This class provides calculation of EM corrections to ionisation
54//
55
56// -------------------------------------------------------------------
57//
58
59#include "G4EmCorrections.hh"
60#include "Randomize.hh"
61#include "G4ParticleTable.hh"
62#include "G4IonTable.hh"
63#include "G4VEmModel.hh"
64#include "G4Proton.hh"
65#include "G4GenericIon.hh"
66#include "G4LPhysicsFreeVector.hh"
67#include "G4PhysicsLogVector.hh"
68#include "G4ProductionCutsTable.hh"
69#include "G4MaterialCutsCouple.hh"
70#include "G4AtomicShells.hh"
71
72//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
73
74G4EmCorrections::G4EmCorrections()
75{
76  particle   = 0;
77  curParticle= 0;
78  material   = 0;
79  curMaterial= 0;
80  curVector  = 0;
81  kinEnergy  = 0.0;
82  ionLEModel = 0;
83  ionHEModel = 0;
84  nIons      = 0;
85  verbose    = 1;
86  ncouples   = 0;
87  massFactor = 1.0;
88  eth        = 2.0*MeV;
89  nbinCorr   = 20;
90  eCorrMin   = 25.*keV;
91  eCorrMax   = 250.*MeV;
92  nist = G4NistManager::Instance();
93  ionTable = G4ParticleTable::GetParticleTable()->GetIonTable();
94  Initialise();
95}
96
97//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
98
99G4EmCorrections::~G4EmCorrections()
100{
101  for(G4int i=0; i<nIons; i++) {delete stopData[i];}
102}
103
104//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
105
106G4double G4EmCorrections::HighOrderCorrections(const G4ParticleDefinition* p,
107                                               const G4Material* mat,
108                                               G4double e, G4double)
109{
110// . Z^3 Barkas effect in the stopping power of matter for charged particles
111//   J.C Ashley and R.H.Ritchie
112//   Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
113//   and ICRU49 report
114//   valid for kineticEnergy < 0.5 MeV
115//   Other corrections from S.P.Ahlen Rev. Mod. Phys., Vol 52, No1, 1980
116
117  SetupKinematics(p, mat, e);
118  if(tau <= 0.0) return 0.0;
119
120  G4double Barkas = BarkasCorrection (p, mat, e);
121  G4double Bloch  = BlochCorrection (p, mat, e);
122  G4double Mott   = MottCorrection (p, mat, e);
123
124  G4double sum = (2.0*(Barkas + Bloch) + Mott);
125
126  if(verbose > 1) {
127    G4cout << "EmCorrections: E(MeV)= " << e/MeV << " Barkas= " << Barkas
128           << " Bloch= " << Bloch << " Mott= " << Mott
129           << " Sum= " << sum << " q2= " << q2 << G4endl; 
130  }
131  sum *= material->GetElectronDensity() * q2 *  twopi_mc2_rcl2 /beta2;
132  return sum;
133}
134
135//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
136
137G4double G4EmCorrections::IonBarkasCorrection(const G4ParticleDefinition* p,
138                                              const G4Material* mat,
139                                              G4double e)
140{
141// . Z^3 Barkas effect in the stopping power of matter for charged particles
142//   J.C Ashley and R.H.Ritchie
143//   Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
144//   and ICRU49 report
145//   valid for kineticEnergy < 0.5 MeV
146
147  SetupKinematics(p, mat, e);
148  G4double res = 0.0;
149  if(tau > 0.0) 
150    res = 2.0*BarkasCorrection(p, mat, e)*
151      material->GetElectronDensity() * q2 *  twopi_mc2_rcl2 /beta2;
152  return res;
153}
154
155//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
156
157G4double G4EmCorrections::ComputeIonCorrections(const G4ParticleDefinition* p,
158                                                const G4Material* mat,
159                                                G4double e)
160{
161// . Z^3 Barkas effect in the stopping power of matter for charged particles
162//   J.C Ashley and R.H.Ritchie
163//   Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
164//   and ICRU49 report
165//   valid for kineticEnergy < 0.5 MeV
166//   Other corrections from S.P.Ahlen Rev. Mod. Phys., Vol 52, No1, 1980
167  SetupKinematics(p, mat, e);
168  if(tau <= 0.0) { return 0.0; }
169
170  G4double Barkas = BarkasCorrection (p, mat, e);
171  G4double Bloch  = BlochCorrection (p, mat, e);
172  G4double Mott   = MottCorrection (p, mat, e);
173
174  G4double sum = 2.0*(Barkas*(charge - 1.0)/charge + Bloch) + Mott;
175
176  if(verbose > 1) {
177    G4cout << "EmCorrections: E(MeV)= " << e/MeV << " Barkas= " << Barkas
178           << " Bloch= " << Bloch << " Mott= " << Mott
179           << " Sum= " << sum << G4endl; 
180  }
181  sum *= material->GetElectronDensity() * q2 *  twopi_mc2_rcl2 /beta2;
182
183  if(verbose > 1) { G4cout << " Sum= " << sum << G4endl; } 
184  return sum;
185}
186
187//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
188
189G4double G4EmCorrections::IonHighOrderCorrections(const G4ParticleDefinition* p,
190                                                  const G4MaterialCutsCouple* couple,
191                                                  G4double e)
192{
193// . Z^3 Barkas effect in the stopping power of matter for charged particles
194//   J.C Ashley and R.H.Ritchie
195//   Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
196//   and ICRU49 report
197//   valid for kineticEnergy < 0.5 MeV
198//   Other corrections from S.P.Ahlen Rev. Mod. Phys., Vol 52, No1, 1980
199
200  G4double sum = 0.0;
201
202  if(ionHEModel) {
203    G4int Z = G4int(p->GetPDGCharge()/eplus + 0.5);
204    if(Z >= 100)   Z = 99;
205    else if(Z < 1) Z = 1;
206
207    // fill vector
208    if(thcorr[Z].size() == 0) {
209      thcorr[Z].resize(ncouples);
210      G4double ethscaled = eth*p->GetPDGMass()/proton_mass_c2;
211
212      for(size_t i=0; i<ncouples; i++) {
213        (thcorr[Z])[i] = ethscaled*ComputeIonCorrections(p, currmat[i], ethscaled);
214        //G4cout << i << ". ethscaled= " << ethscaled
215        //<< " corr= " << (thcorr[Z])[i]/ethscaled << G4endl;
216      } 
217    } 
218    G4double rest = (thcorr[Z])[couple->GetIndex()];
219
220    sum = ComputeIonCorrections(p,couple->GetMaterial(),e) - rest/e;
221
222    if(verbose > 1) { G4cout << " Sum= " << sum << " dSum= " << rest/e << G4endl; } 
223  }
224  return sum;
225}
226
227//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
228
229G4double G4EmCorrections::Bethe(const G4ParticleDefinition* p,
230                                const G4Material* mat, 
231                                G4double e)
232{
233  SetupKinematics(p, mat, e);
234  G4double eexc  = material->GetIonisation()->GetMeanExcitationEnergy();
235  G4double eexc2 = eexc*eexc;
236  G4double dedx = 0.5*std::log(2.0*electron_mass_c2*bg2*tmax/eexc2)-beta2;
237  return dedx;
238}
239
240//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
241
242G4double G4EmCorrections::SpinCorrection(const G4ParticleDefinition* p,
243                                         const G4Material* mat,
244                                         G4double e)
245{
246  SetupKinematics(p, mat, e);
247  G4double dedx  = 0.5*tmax/(kinEnergy + mass);
248  return 0.5*dedx*dedx;
249}
250
251//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
252
253G4double G4EmCorrections:: KShellCorrection(const G4ParticleDefinition* p,
254                                            const G4Material* mat, 
255                                            G4double e)
256{
257  SetupKinematics(p, mat, e);
258  G4double term = 0.0;
259  for (G4int i = 0; i<numberOfElements; i++) {
260
261    G4double Z = (*theElementVector)[i]->GetZ();
262    G4int   iz = G4int(Z);
263    G4double f = 1.0;
264    G4double Z2= (Z-0.3)*(Z-0.3);
265    if(1 == iz) {
266      f  = 0.5;
267      Z2 = 1.0;
268    }
269    G4double e0= 13.6*eV*Z2;
270    term += f*atomDensity[i]*KShell(G4AtomicShells::GetBindingEnergy(iz,0)/e0,ba2/Z2)/Z;
271  }
272
273  term /= material->GetTotNbOfAtomsPerVolume();
274
275  return term;
276}
277
278//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
279
280G4double G4EmCorrections:: LShellCorrection(const G4ParticleDefinition* p,
281                                            const G4Material* mat, 
282                                            G4double e)
283{
284  SetupKinematics(p, mat, e);
285  G4double term = 0.0;
286  for (G4int i = 0; i<numberOfElements; i++) {
287
288    G4double Z = (*theElementVector)[i]->GetZ();
289    G4int   iz = G4int(Z);
290    if(2 < iz) {
291      G4double Zeff = Z - ZD[10];
292      if(iz < 10) Zeff = Z - ZD[iz];
293      G4double Z2= Zeff*Zeff;
294      G4double e0= 13.6*eV*Z2*0.25;
295      G4double f = 0.125;
296      G4int nmax = std::min(4,G4AtomicShells::GetNumberOfShells(iz));
297      for(G4int j=1; j<nmax; j++) {
298        G4double ne = G4double(G4AtomicShells::GetNumberOfElectrons(iz,j));
299        G4double e1 = G4AtomicShells::GetBindingEnergy(iz,j);
300        //   G4cout << "LShell: j= " << j << " ne= " << ne << " e(eV)= " << e/eV
301        //  << " e0(eV)= " << e0/eV << G4endl;
302        term += f*ne*atomDensity[i]*LShell(e1/e0,ba2/Z2)/Z;
303      }
304    }
305  }
306
307  term /= material->GetTotNbOfAtomsPerVolume();
308
309  return term;
310}
311
312//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
313
314G4double G4EmCorrections::KShell(G4double tet, G4double eta)
315{
316  G4double corr = 0.0;
317
318  G4double x = tet;
319  if(tet < TheK[0]) x =  TheK[0]; 
320  G4int itet = Index(x, TheK, nK);
321
322  // assimptotic case
323  if(eta >= Eta[nEtaK-1]) {
324    corr = (Value(x, TheK[itet], TheK[itet+1], UK[itet], UK[itet+1]) + 
325            Value(x, TheK[itet], TheK[itet+1], VK[itet], VK[itet+1])/eta +
326            Value(x, TheK[itet], TheK[itet+1], ZK[itet], ZK[itet+1])/(eta*eta))/eta;
327  } else {
328    G4double y = eta;
329    if(eta < Eta[0])  y =  Eta[0];
330    G4int ieta = Index(y, Eta, nEtaK);
331    corr = Value2(x, y, TheK[itet], TheK[itet+1], Eta[ieta], Eta[ieta+1],
332                  CK[itet][ieta], CK[itet+1][ieta], 
333                  CK[itet][ieta+1], CK[itet+1][ieta+1]);
334    //G4cout << "   x= " <<x<<" y= "<<y<<" tet= " <<TheK[itet]
335    //<<" "<< TheK[itet+1]<<" eta= "<< Eta[ieta]<<" "<< Eta[ieta+1]
336    //       <<" CK= " << CK[itet][ieta]<<" "<< CK[itet+1][ieta]
337    //<<" "<< CK[itet][ieta+1]<<" "<< CK[itet+1][ieta+1]<<G4endl;
338  }
339  //G4cout << "Kshell:  tet= " << tet << " eta= " << eta << "  C= " << corr
340  //<< " itet,ieta= " << itet <<G4endl;
341  return corr;
342}
343
344//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
345
346G4double G4EmCorrections::LShell(G4double tet, G4double eta)
347{
348  G4double corr = 0.0;
349
350  G4double x = tet;
351  if(tet < TheL[0]) x =  TheL[0];
352  G4int itet = Index(x, TheL, nL);
353
354  // assimptotic case
355  if(eta >= Eta[nEtaL-1]) {
356    corr = (Value(x, TheL[itet], TheL[itet+1], UL[itet], UL[itet+1])
357          + Value(x, TheL[itet], TheL[itet+1], VL[itet], VL[itet+1])/eta
358           )/eta;
359  } else {
360    G4double y = eta;
361    if(eta < Eta[0])  y =  Eta[0];
362    G4int ieta = Index(y, Eta, nEtaL);
363    corr = Value2(x, y, TheL[itet], TheL[itet+1], Eta[ieta], Eta[ieta+1],
364               CL[itet][ieta], CL[itet+1][ieta], CL[itet][ieta+1], CL[itet+1][ieta+1]);
365    //G4cout << "   x= " <<x<<" y= "<<y<<" tet= " <<TheL[itet]
366    //<<" "<< TheL[itet+1]<<" eta= "<< Eta[ieta]<<" "<< Eta[ieta+1]
367    //       <<" CL= " << CL[itet][ieta]<<" "<< CL[itet+1][ieta]
368    //<<" "<< CL[itet][ieta+1]<<" "<< CL[itet+1][ieta+1]<<G4endl;
369  }
370  //  G4cout << "Lshell:  tet= " << tet << " eta= " << eta << "  C= " << corr << " itet= " << itet <<G4endl;
371  return corr;
372}
373
374//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
375
376G4double G4EmCorrections::ShellCorrectionSTD(const G4ParticleDefinition* p,
377                                             const G4Material* mat, 
378                                             G4double e)
379{
380  SetupKinematics(p, mat, e);
381  G4double taulim= 8.0*MeV/mass;
382  G4double bg2lim= taulim * (taulim+2.0);
383
384  G4double* shellCorrectionVector =
385            material->GetIonisation()->GetShellCorrectionVector();
386  G4double sh = 0.0;
387  G4double x  = 1.0;
388  G4double taul  = material->GetIonisation()->GetTaul();
389
390  if ( bg2 >= bg2lim ) {
391    for (G4int k=0; k<3; k++) {
392        x *= bg2 ;
393        sh += shellCorrectionVector[k]/x;
394    }
395
396  } else {
397    for (G4int k=0; k<3; k++) {
398        x *= bg2lim ;
399        sh += shellCorrectionVector[k]/x;
400    }
401    sh *= std::log(tau/taul)/std::log(taulim/taul);
402  }
403  sh *= 0.5;
404  return sh;
405}
406
407
408//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
409
410G4double G4EmCorrections::ShellCorrection(const G4ParticleDefinition* p,
411                                          const G4Material* mat,
412                                          G4double e)
413{
414  SetupKinematics(p, mat, e);
415
416  G4double term = 0.0;
417
418  for (G4int i = 0; i<numberOfElements; i++) {
419
420    G4double res = 0.0;
421    G4double Z = (*theElementVector)[i]->GetZ();
422    G4int   iz = G4int(Z);
423    G4double Z2= (Z-0.3)*(Z-0.3);
424    G4double f = 1.0;
425    if(1 == iz) {
426      f  = 0.5;
427      Z2 = 1.0;
428    }
429    G4double e0= 13.6*eV*Z2;
430    res += f*KShell(G4AtomicShells::GetBindingEnergy(iz,0)/e0,ba2/Z2);
431    if(2 < iz) {
432      G4double Zeff = Z - ZD[10];
433      if(iz < 10) Zeff = Z - ZD[iz];
434      Z2= Zeff*Zeff;
435      e0= 13.6*eV*Z2*0.25;
436      f = 0.125;
437      G4double eta = ba2/Z2;
438      G4int ntot = G4AtomicShells::GetNumberOfShells(iz);
439      G4int nmax = std::min(4, ntot);
440      G4double norm   = 0.0;
441      G4double eshell = 0.0;
442      for(G4int j=1; j<nmax; ++j) {
443        G4double e1 = G4AtomicShells::GetBindingEnergy(iz,j);
444        G4int ne = G4AtomicShells::GetNumberOfElectrons(iz,j);
445        norm   += ne;
446        eshell += e1*ne;
447        res += f*ne*LShell(e1/e0,eta);
448      }
449      if(ntot > nmax) {
450        eshell /= norm;
451        G4double eeff = eshell*eta;
452        for(G4int k=nmax; k<ntot; ++k) {
453          G4int ne = G4AtomicShells::GetNumberOfElectrons(iz,k);
454          G4double e1 = G4AtomicShells::GetBindingEnergy(iz,k);
455          res += f*ne*LShell(e1/e0,eeff/e1);
456          //res += f*ne*LShell(e1/eshell,eeff/e1);
457        }
458      }
459        /*
460        if(28 >= iz) {
461          res += f*(Z - 10.)*LShell(eshell,HM[iz-11]*eta);
462        } else if(32 >= iz) {
463          res += f*18.0*LShell(eshell,HM[iz-11]*eta);
464        } else if(60 >= iz) {
465          res += f*18.0*LShell(eshell,HM[iz-11]*eta);
466          res += f*(Z - 28.)*LShell(eshell,HN[iz-33]*eta);
467        } else {
468          res += f*18.0*LShell(eshell,HM[50]*eta);
469          res += f*32.0*LShell(eshell,HN[30]*eta);
470          res += f*(Z - 60.)*LShell(eshell,150.*eta);
471        }
472        */
473    }
474    //term += atomDensity[i]*(res/Z + MSH[iz]/(ba2*ba2));
475    term += res*atomDensity[i]/Z;
476  }
477
478  term /= material->GetTotNbOfAtomsPerVolume();
479  //if(charge < 0.0) { term = -term; }
480  return term;
481}
482
483//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
484
485G4double G4EmCorrections::DensityCorrection(const G4ParticleDefinition* p,
486                                            const G4Material* mat,
487                                            G4double e)
488{
489  SetupKinematics(p, mat, e);
490
491  G4double cden  = material->GetIonisation()->GetCdensity();
492  G4double mden  = material->GetIonisation()->GetMdensity();
493  G4double aden  = material->GetIonisation()->GetAdensity();
494  G4double x0den = material->GetIonisation()->GetX0density();
495  G4double x1den = material->GetIonisation()->GetX1density();
496
497  G4double twoln10 = 2.0*std::log(10.0);
498  G4double dedx = 0.0;
499
500  // density correction
501  G4double x = std::log(bg2)/twoln10;
502  if ( x >= x0den ) {
503    dedx = twoln10*x - cden ;
504    if ( x < x1den ) dedx += aden*std::pow((x1den-x),mden) ;
505  }
506
507  return dedx;
508}
509
510//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
511
512G4double G4EmCorrections::BarkasCorrection(const G4ParticleDefinition* p,
513                                           const G4Material* mat, 
514                                           G4double e)
515{
516// . Z^3 Barkas effect in the stopping power of matter for charged particles
517//   J.C Ashley and R.H.Ritchie
518//   Physical review B Vol.5 No.7 1 April 1972 pp. 2393-2397
519//   valid for kineticEnergy > 0.5 MeV
520
521  SetupKinematics(p, mat, e);
522  G4double BarkasTerm = 0.0;
523
524  for (G4int i = 0; i<numberOfElements; i++) {
525
526    G4double Z = (*theElementVector)[i]->GetZ();
527    G4int iz = G4int(Z);
528
529    G4double X = ba2 / Z;
530    G4double b = 1.3;
531    if(1 == iz) {
532      if(material->GetName() == "G4_lH2") b = 0.6;
533      else                                b = 1.8;
534    }
535    else if(2 == iz)  b = 0.6;
536    else if(10 >= iz) b = 1.8;
537    else if(17 >= iz) b = 1.4;
538    else if(18 == iz) b = 1.8;
539    else if(25 >= iz) b = 1.4;
540    else if(50 >= iz) b = 1.35;
541
542    G4double W = b/std::sqrt(X);
543
544    G4double val;
545    if(W <= engBarkas[0])       val =  corBarkas[0];
546    else if(W >= engBarkas[46]) val =  corBarkas[46]*engBarkas[46]/W;
547    else {
548      G4int iw = Index(W, engBarkas, 47);
549      val = Value(W, engBarkas[iw], engBarkas[iw+1], 
550                  corBarkas[iw], corBarkas[iw+1]);
551    }
552    //    G4cout << "i= " << i << " b= " << b << " W= " << W
553    // << " Z= " << Z << " X= " << X << " val= " << val<< G4endl;
554    BarkasTerm += val*atomDensity[i] / (std::sqrt(Z*X)*X);
555  }
556
557  BarkasTerm *= 1.29*charge/material->GetTotNbOfAtomsPerVolume();
558
559  // temporary protection
560  if(charge < -7.0 ) { BarkasTerm *= (-7.0/charge); }
561
562  return BarkasTerm;
563}
564
565//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
566
567G4double G4EmCorrections::BlochCorrection(const G4ParticleDefinition* p,
568                                          const G4Material* mat,
569                                          G4double e)
570{
571  SetupKinematics(p, mat, e);
572
573  G4double y2 = q2/ba2;
574
575  G4double term = 1.0/(1.0 + y2);
576  G4double del;
577  G4double j = 1.0;
578  do {
579    j += 1.0;
580    del = 1.0/(j* (j*j + y2));
581    term += del;
582  } while (del > 0.01*term);
583
584  G4double res = -y2*term;
585  // temporary protection
586  if(q2 > 49. && res < -0.2) { res = -0.2; }
587
588  return res;
589}
590
591//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
592
593G4double G4EmCorrections::MottCorrection(const G4ParticleDefinition* p,
594                                         const G4Material* mat, 
595                                         G4double e)
596{
597  SetupKinematics(p, mat, e);
598  G4double mterm = CLHEP::pi*fine_structure_const*beta*charge;
599  return mterm;
600}
601
602//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
603
604G4double G4EmCorrections::NuclearDEDX(const G4ParticleDefinition* p,
605                                      const G4Material* mat,
606                                      G4double e,
607                                      G4bool fluct)
608{
609  G4double nloss = 0.0;
610  if(e <= 0.0) return nloss; 
611  SetupKinematics(p, mat, e);
612
613  lossFlucFlag = fluct;
614
615  // Projectile nucleus
616  G4double z1 = std::abs(particle->GetPDGCharge()/eplus);
617  G4double m1 = mass/amu_c2;
618
619  //  loop for the elements in the material
620  for (G4int iel=0; iel<numberOfElements; iel++) {
621    const G4Element* element = (*theElementVector)[iel] ;
622    G4double z2 = element->GetZ();
623    G4double m2 = element->GetA()*mole/g ;
624    nloss += (NuclearStoppingPower(kinEnergy, z1, z2, m1, m2))
625           * atomDensity[iel] ;
626  }
627  nloss *= theZieglerFactor;
628  return nloss;
629}
630
631//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
632
633G4double G4EmCorrections::NuclearStoppingPower(G4double kineticEnergy,
634                                               G4double z1, G4double z2,
635                                               G4double m1, G4double m2)
636{
637  G4double energy = kineticEnergy/keV ;  // energy in keV
638  G4double nloss = 0.0;
639 
640  G4double rm;
641  if(z1 > 1.5) rm = (m1 + m2) * ( Z23[G4int(z1)] + Z23[G4int(z2)] ) ;
642  else         rm = (m1 + m2) * nist->GetZ13(G4int(z2));
643
644  G4double er = 32.536 * m2 * energy / ( z1 * z2 * rm ) ;  // reduced energy
645
646  if (er >= ed[0])       nloss = a[0];
647  else {
648    // the table is inverse in energy
649    for (G4int i=102; i>=0; i--)
650    {
651      if (er <= ed[i]) {
652        nloss = (a[i] - a[i+1])*(er - ed[i+1])/(ed[i] - ed[i+1]) + a[i+1];
653        break;
654      }
655    }
656  }
657
658  // Stragling
659  if(lossFlucFlag) {
660    //    G4double sig = 4.0 * m1 * m2 / ((m1 + m2)*(m1 + m2)*
661    //              (4.0 + 0.197*std::pow(er,-1.6991)+6.584*std::pow(er,-1.0494))) ;
662    G4double sig = 4.0 * m1 * m2 / ((m1 + m2)*(m1 + m2)*
663                                    (4.0 + 0.197/(er*er) + 6.584/er));
664
665    nloss *= G4RandGauss::shoot(1.0,sig) ;
666  }
667   
668  nloss *= 8.462 * z1 * z2 * m1 / rm ; // Return to [ev/(10^15 atoms/cm^2]
669
670  if ( nloss < 0.0) nloss = 0.0 ;
671
672  return nloss;
673}
674
675//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
676
677G4double G4EmCorrections::EffectiveChargeCorrection(const G4ParticleDefinition* p,
678                                                    const G4Material* mat,
679                                                    G4double ekin)
680{
681  G4double factor = 1.0;
682  if(p->GetPDGCharge() <= 2.5*eplus || nIons <= 0) return factor;
683  /*
684  if(verbose > 1) {
685    G4cout << "EffectiveChargeCorrection: " << p->GetParticleName()
686           << " in " << mat->GetName()
687           << " ekin(MeV)= " << ekin/MeV << G4endl;
688  }
689  */
690  if(p != curParticle || mat != curMaterial) {
691    curParticle = p;
692    curMaterial = mat;
693    curVector   = 0;
694    currentZ = p->GetAtomicNumber();
695    if(verbose > 1) {
696      G4cout << "G4EmCorrections::EffectiveChargeCorrection: Zion= " 
697             << currentZ << " Aion= " << p->GetPDGMass()/amu_c2 << G4endl;
698    }
699    massFactor = proton_mass_c2/p->GetPDGMass();
700    idx = -1;
701
702    for(G4int i=0; i<nIons; i++) {
703      if(materialList[i] == mat && currentZ == Zion[i]) {
704        idx = i;
705        break;
706      }
707    }
708    //    G4cout << " idx= " << idx << " dz= " << G4endl;
709    if(idx >= 0) {
710      if(!ionList[idx]) BuildCorrectionVector(); 
711      if(ionList[idx])  curVector = stopData[idx];
712    } else { return factor; }
713  }
714  if(curVector) {
715    factor = curVector->Value(ekin*massFactor);
716    if(verbose > 1) {
717      G4cout << "E= " << ekin << " factor= " << factor << " massfactor= " 
718             << massFactor << G4endl;
719    }
720  }
721  return factor;
722}
723
724//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
725
726void G4EmCorrections::AddStoppingData(G4int Z, G4int A,
727                                      const G4String& mname,
728                                      G4PhysicsVector* dVector)
729{
730  G4int i = 0;
731  for(; i<nIons; i++) {
732    if(Z == Zion[i] && A == Aion[i] && mname == materialName[i]) break;
733  }
734  if(i == nIons) {
735    Zion.push_back(Z);
736    Aion.push_back(A);
737    materialName.push_back(mname);
738    materialList.push_back(0);
739    ionList.push_back(0);
740    stopData.push_back(dVector);
741    nIons++;
742    if(verbose>1) {
743      G4cout << "AddStoppingData Z= " << Z << " A= " << A << " " << mname
744             << "  idx= " << i << G4endl;
745    }
746  }
747}
748
749//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
750
751void G4EmCorrections::BuildCorrectionVector()
752{
753  if(!ionLEModel || !ionHEModel) {
754    return;
755  }
756
757  const G4ParticleDefinition* ion = curParticle;
758  G4int Z = Zion[idx];
759  if(currentZ != Z) {
760    ion = G4ParticleTable::GetParticleTable()->FindIon(Z, Aion[idx], 0, Z);
761  }
762  //G4cout << "BuildCorrectionVector: idx= " << idx << " Z= " << Z
763  //     << " curZ= " << currentZ << G4endl;
764
765  // G4double A = nist->GetAtomicMassAmu(Z);
766  G4double A = G4double(ion->GetBaryonNumber());
767  G4PhysicsVector* v = stopData[idx];
768   
769  const G4ParticleDefinition* p = G4GenericIon::GenericIon();
770  G4double massRatio = proton_mass_c2/ion->GetPDGMass();
771
772  if(verbose>1) {
773    G4cout << "BuildCorrectionVector: Stopping for "
774           << curParticle->GetParticleName() << " in " 
775           << materialName[idx] << " Ion Z= " << Z << " A= " << A
776           << " massRatio= " << massRatio << G4endl;
777  }
778
779  G4PhysicsLogVector* vv = 
780    new G4PhysicsLogVector(eCorrMin,eCorrMax,nbinCorr);
781  vv->SetSpline(true);
782  G4double e, eion, dedx, dedx1;
783  G4double eth0 = v->Energy(0);
784  G4double escal = eth/massRatio;
785  G4double qe = 
786    effCharge.EffectiveChargeSquareRatio(ion, curMaterial, escal); 
787  G4double dedxt = 
788    ionLEModel->ComputeDEDXPerVolume(curMaterial, p, eth, eth)*qe;
789  G4double dedx1t = 
790    ionHEModel->ComputeDEDXPerVolume(curMaterial, p, eth, eth)*qe
791    + ComputeIonCorrections(curParticle, curMaterial, escal);
792  G4double rest = escal*(dedxt - dedx1t);
793  //G4cout << "Escal(MeV)= "<<escal<<" dedxt0= " <<dedxt
794  //     << " dedxt1= " << dedx1t << G4endl;   
795
796  for(G4int i=0; i<=nbinCorr; i++) {
797    e = vv->Energy(i);
798    escal = e/massRatio;
799    eion  = escal/A;
800    if(eion <= eth0) {
801      dedx = v->Value(eth0)*std::sqrt(eion/eth0);
802    } else {
803      dedx = v->Value(eion);
804    }
805    qe = effCharge.EffectiveChargeSquareRatio(curParticle,curMaterial,escal); 
806    if(e <= eth) {
807      dedx1 = ionLEModel->ComputeDEDXPerVolume(curMaterial, p, e, e)*qe;
808    } else {
809      dedx1 = ionHEModel->ComputeDEDXPerVolume(curMaterial, p, e, e)*qe +
810        ComputeIonCorrections(curParticle, curMaterial, escal) + rest/escal;
811    }
812    vv->PutValue(i, dedx/dedx1);
813    if(verbose>1) {
814      G4cout << "  E(meV)= " << e/MeV << "   Correction= " << dedx/dedx1
815             << "   "  << dedx << " " << dedx1
816             << "  massF= " << massFactor << G4endl;
817    }
818  }
819  delete v;
820  ionList[idx]  = ion;
821  stopData[idx] = vv;
822  if(verbose>1) { G4cout << "End data set " << G4endl; }
823}
824
825//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
826
827void G4EmCorrections::InitialiseForNewRun()
828{
829  G4ProductionCutsTable* tb = G4ProductionCutsTable::GetProductionCutsTable();
830  ncouples = tb->GetTableSize();
831  if(currmat.size() != ncouples) {
832    currmat.resize(ncouples);
833    size_t i;
834    for(i=0; i<100; i++) {thcorr[i].clear();}
835    for(i=0; i<ncouples; i++) {
836      currmat[i] = tb->GetMaterialCutsCouple(i)->GetMaterial();
837      G4String nam = currmat[i]->GetName();
838      for(G4int j=0; j<nIons; j++) {
839        if(nam == materialName[j]) { materialList[j] = currmat[i]; }
840      }
841    }
842  }
843}
844
845//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
846
847void G4EmCorrections::Initialise()
848{
849// . Z^3 Barkas effect in the stopping power of matter for charged particles
850//   J.C Ashley and R.H.Ritchie
851//   Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
852  G4int i, j;
853  const G4double fTable[47][2] = {
854   { 0.02, 21.5},
855   { 0.03, 20.0},
856   { 0.04, 18.0},
857   { 0.05, 15.6},
858   { 0.06, 15.0},
859   { 0.07, 14.0},
860   { 0.08, 13.5},
861   { 0.09, 13.},
862   { 0.1,  12.2},
863   { 0.2,  9.25},
864   { 0.3,  7.0},
865   { 0.4,  6.0},
866   { 0.5,  4.5},
867   { 0.6,  3.5},
868   { 0.7,  3.0},
869   { 0.8,  2.5},
870   { 0.9,  2.0},
871   { 1.0,  1.7},
872   { 1.2,  1.2},
873   { 1.3,  1.0},
874   { 1.4,  0.86},
875   { 1.5,  0.7},
876   { 1.6,  0.61},
877   { 1.7,  0.52},
878   { 1.8,  0.5},
879   { 1.9,  0.43},
880   { 2.0,  0.42},
881   { 2.1,  0.3},
882   { 2.4,  0.2},
883   { 3.0,  0.13},
884   { 3.08, 0.1},
885   { 3.1,  0.09},
886   { 3.3,  0.08},
887   { 3.5,  0.07},
888   { 3.8,  0.06},
889   { 4.0,  0.051},
890   { 4.1,  0.04},
891   { 4.8,  0.03},
892   { 5.0,  0.024},
893   { 5.1,  0.02},
894   { 6.0,  0.013},
895   { 6.5,  0.01},
896   { 7.0,  0.009},
897   { 7.1,  0.008},
898   { 8.0,  0.006},
899   { 9.0,  0.0032},
900   { 10.0, 0.0025} };
901
902  for(i=0; i<47; i++) {
903    engBarkas[i] = fTable[i][0];
904    corBarkas[i] = fTable[i][1];
905  }
906
907  const G4double nuca[104][2] = {
908  { 1.0E+8, 5.831E-8},
909  { 8.0E+7, 7.288E-8},
910  { 6.0E+7, 9.719E-8},
911  { 5.0E+7, 1.166E-7},
912  { 4.0E+7, 1.457E-7},
913  { 3.0E+7, 1.942E-7},
914  { 2.0E+7, 2.916E-7},
915  { 1.5E+7, 3.887E-7},
916
917  { 1.0E+7, 5.833E-7},
918  { 8.0E+6, 7.287E-7},
919  { 6.0E+6, 9.712E-7},
920  { 5.0E+6, 1.166E-6},
921  { 4.0E+6, 1.457E-6},
922  { 3.0E+6, 1.941E-6},
923  { 2.0E+6, 2.911E-6},
924  { 1.5E+6, 3.878E-6},
925
926  { 1.0E+6, 5.810E-6},
927  { 8.0E+5, 7.262E-6},
928  { 6.0E+5, 9.663E-6},
929  { 5.0E+5, 1.157E-5},
930  { 4.0E+5, 1.442E-5},
931  { 3.0E+5, 1.913E-5},
932  { 2.0E+5, 2.845E-5},
933  { 1.5E+5, 3.762E-5},
934
935  { 1.0E+5, 5.554E-5},
936  { 8.0E+4, 6.866E-5},
937  { 6.0E+4, 9.020E-5},
938  { 5.0E+4, 1.070E-4},
939  { 4.0E+4, 1.319E-4},
940  { 3.0E+4, 1.722E-4},
941  { 2.0E+4, 2.499E-4},
942  { 1.5E+4, 3.248E-4},
943
944  { 1.0E+4, 4.688E-4},
945  { 8.0E+3, 5.729E-4},
946  { 6.0E+3, 7.411E-4},
947  { 5.0E+3, 8.718E-4},
948  { 4.0E+3, 1.063E-3},
949  { 3.0E+3, 1.370E-3},
950  { 2.0E+3, 1.955E-3},
951  { 1.5E+3, 2.511E-3},
952
953  { 1.0E+3, 3.563E-3},
954  { 8.0E+2, 4.314E-3},
955  { 6.0E+2, 5.511E-3},
956  { 5.0E+2, 6.430E-3},
957  { 4.0E+2, 7.756E-3},
958  { 3.0E+2, 9.855E-3},
959  { 2.0E+2, 1.375E-2},
960  { 1.5E+2, 1.736E-2},
961
962  { 1.0E+2, 2.395E-2},
963  { 8.0E+1, 2.850E-2},
964  { 6.0E+1, 3.552E-2},
965  { 5.0E+1, 4.073E-2},
966  { 4.0E+1, 4.802E-2},
967  { 3.0E+1, 5.904E-2},
968  { 1.5E+1, 9.426E-2},
969
970  { 1.0E+1, 1.210E-1},
971  { 8.0E+0, 1.377E-1},
972  { 6.0E+0, 1.611E-1},
973  { 5.0E+0, 1.768E-1},
974  { 4.0E+0, 1.968E-1},
975  { 3.0E+0, 2.235E-1},
976  { 2.0E+0, 2.613E-1},
977  { 1.5E+0, 2.871E-1},
978
979  { 1.0E+0, 3.199E-1},
980  { 8.0E-1, 3.354E-1},
981  { 6.0E-1, 3.523E-1},
982  { 5.0E-1, 3.609E-1},
983  { 4.0E-1, 3.693E-1},
984  { 3.0E-1, 3.766E-1},
985  { 2.0E-1, 3.803E-1},
986  { 1.5E-1, 3.788E-1},
987
988  { 1.0E-1, 3.711E-1},
989  { 8.0E-2, 3.644E-1},
990  { 6.0E-2, 3.530E-1},
991  { 5.0E-2, 3.444E-1},
992  { 4.0E-2, 3.323E-1},
993  { 3.0E-2, 3.144E-1},
994  { 2.0E-2, 2.854E-1},
995  { 1.5E-2, 2.629E-1},
996
997  { 1.0E-2, 2.298E-1},
998  { 8.0E-3, 2.115E-1},
999  { 6.0E-3, 1.883E-1},
1000  { 5.0E-3, 1.741E-1},
1001  { 4.0E-3, 1.574E-1},
1002  { 3.0E-3, 1.372E-1},
1003  { 2.0E-3, 1.116E-1},
1004  { 1.5E-3, 9.559E-2},
1005
1006  { 1.0E-3, 7.601E-2},
1007  { 8.0E-4, 6.668E-2},
1008  { 6.0E-4, 5.605E-2},
1009  { 5.0E-4, 5.008E-2},
1010  { 4.0E-4, 4.352E-2},
1011  { 3.0E-4, 3.617E-2},
1012  { 2.0E-4, 2.768E-2},
1013  { 1.5E-4, 2.279E-2},
1014
1015  { 1.0E-4, 1.723E-2},
1016  { 8.0E-5, 1.473E-2},
1017  { 6.0E-5, 1.200E-2},
1018  { 5.0E-5, 1.052E-2},
1019  { 4.0E-5, 8.950E-3},
1020  { 3.0E-5, 7.246E-3},
1021  { 2.0E-5, 5.358E-3},
1022  { 1.5E-5, 4.313E-3},
1023  { 0.0, 3.166E-3}
1024  };
1025
1026  for(i=0; i<104; i++) {
1027    ed[i] = nuca[i][0];
1028    a[i] = nuca[i][1];
1029  }
1030
1031  // Constants
1032  theZieglerFactor = eV*cm2*1.0e-15 ; 
1033  alpha2           = fine_structure_const*fine_structure_const;
1034  lossFlucFlag     = true;
1035
1036  // G.S. Khandelwal Nucl. Phys. A116(1968)97 - 111.
1037  // "Shell corrections for K- and L- electrons
1038  nK = 20;
1039  nL = 26;
1040  nEtaK = 29;
1041  nEtaL = 28;
1042
1043  const G4double d[11] = {0., 0., 0., 1.72, 2.09, 2.48, 2.82, 3.16, 3.53, 3.84, 4.15};
1044  const G4double thek[20] = {0.64, 0.65, 0.66, 0.68, 0.70, 0.72, 0.74, 0.75, 0.76, 0.78,
1045                             0.80, 0.82, 0.84, 0.85, 0.86, 0.88, 0.90, 0.92, 0.94, 0.95};
1046  const G4double sk[20] = {1.9477, 1.9232, 1.8996, 1.8550, 1.8137,
1047                           1.7754, 1.7396, 1.7223, 1.7063, 1.6752,
1048                           1.6461, 1.6189, 1.5933, 1.5811, 1.5693,
1049                           1.5467, 1.5254, 1.5053, 1.4863, 1.4772};
1050  const G4double tk[20] = {2.5222, 2.5125, 2.5026, 2.4821, 2.4608,
1051                           2.4388, 2.4163, 2.4044, 2.3933, 2.3701,
1052                           2.3466, 2.3229, 2.2992, 2.2872, 2.2753,
1053                           2.2515, 2.2277, 2.2040, 2.1804, 2.1686};
1054  const G4double uk[20] = {1.9999, 2.0134, 2.0258, 2.0478, 2.0662,
1055                           2.0817, 2.0945, 2.0999, 2.1049, 2.1132,
1056                           2.1197, 2.1246, 2.1280, 2.1292, 2.1301,
1057                           2.1310, 2.1310, 2.1300, 2.1283, 2.1271};
1058  const G4double vk[20] = {8.3410, 8.3373, 8.3340, 8.3287, 8.3247,
1059                           8.3219, 8.3201, 8.3194, 8.3191, 8.3188,
1060                           8.3191, 8.3199, 8.3211, 8.3218, 8.3226,
1061                           8.3244, 8.3264, 8.3285, 8.3308, 8.3320};
1062
1063  for(i=0; i<11; i++) { ZD[i] = d[i];}
1064
1065  for(i=0; i<nK; i++) {
1066    TheK[i] = thek[i];
1067    SK[i]   = sk[i];
1068    TK[i]   = tk[i];
1069    UK[i]   = uk[i];
1070    VK[i]   = vk[i];
1071  }
1072
1073  const G4double thel[26] = {0.24, 0.26, 0.28, 0.30, 0.32,   0.34, 0.35, 0.36, 0.38, 0.40,
1074                             0.42, 0.44, 0.45, 0.46, 0.48,   0.50, 0.52, 0.54, 0.55, 0.56,
1075                             0.58, 0.60, 0.62, 0.64, 0.65,   0.66};
1076  const G4double sl[26] = {15.3343, 13.9389, 12.7909, 11.8343, 11.0283,
1077                           10.3424, 10.0371,  9.7537,  9.2443,  8.8005,
1078                           8.4114,  8.0683,   7.9117, 7.7641, 7.4931,
1079                           7.2506,  7.0327,   6.8362, 6.7452, 6.6584,
1080                           6.4969,  6.3498,   6.2154, 6.0923, 6.0345, 5.9792};
1081  const G4double tl[26] = {35.0669, 33.4344, 32.0073, 30.7466, 29.6226,
1082                           28.6128, 28.4149, 27.6991, 26.8674, 26.1061,
1083                           25.4058, 24.7587, 24.4531, 24.1583, 23.5992,
1084                           23.0771, 22.5880, 22.1285, 21.9090, 21.6958,
1085                           21.2872, 20.9006, 20.5341, 20.1859, 20.0183, 19.8546};
1086  const G4double ul[26] = {0.1215, 0.5265, 0.8411, 1.0878, 1.2828,
1087                           1.4379, 1.5032, 1.5617, 1.6608, 1.7401,
1088                           1.8036, 1.8543, 1.8756, 1.8945, 1.9262,
1089                           1.9508, 1.9696, 1.9836, 1.9890, 1.9935,
1090                           2.0001, 2.0039, 2.0053, 2.0049, 2.0040, 2.0028}; 
1091  for(i=0; i<nL; i++) {
1092    TheL[i] = thel[i];
1093    SL[i]   = sl[i];
1094    TL[i]   = tl[i];
1095    UL[i]   = ul[i];
1096  }
1097
1098  const G4double eta[29] = {0.005, 0.007, 0.01, 0.015, 0.02,
1099                              0.03,  0.04,  0.05, 0.06,  0.08,
1100                              0.1,   0.15,  0.2,  0.3,   0.4,
1101                              0.5,   0.6,   0.7,  0.8,   1.0,
1102                              1.2,   1.4,   1.5,  1.7,   2.0, 3.0, 5.0, 7.0, 10.};
1103
1104  const G4double bk1[29][11] = { 
1105  {0.005, 1.34782E-8, 1.46132E-8, 1.72179E-8, 2.03521E-8, 2.41370E-8, 2.87247E-8, 3.13778E-8, 3.43072E-8, 4.11274E-8, 4.94946E-8}, 
1106  {0.007, 6.87555E-8, 7.44373E-8, 8.74397E-8, 1.03022E-7, 1.21760E-7, 1.44370E-7, 1.57398E-7, 1.71747E-7, 2.05023E-7, 2.45620E-7}, 
1107  {0.01, 3.78413E-7, 4.08831E-7, 4.78154E-7, 5.60760E-7, 6.59478E-7, 7.77847E-7, 8.45709E-7, 9.20187E-7, 1.09192E-6, 1.29981E-6}, 
1108  {0.015, 2.53200E-6, 2.72664E-6, 3.16738E-6, 3.68791E-6, 4.30423E-6, 5.03578E-6, 5.45200E-6, 5.90633E-6, 6.94501E-6, 8.18757E-6}, 
1109  {0.02, 9.43891E-6, 1.01339E-5, 1.16984E-5, 1.35313E-5, 1.56829E-5, 1.82138E-5, 1.96439E-5, 2.11973E-5, 2.47216E-5, 2.88935E-5}, 
1110  {0.03, 5.67088E-5, 6.05576E-5, 6.91311E-5, 7.90324E-5, 9.04832E-5, 1.03744E-4, 1.11147E-4, 1.19122E-4, 1.36980E-4, 1.57744E-4}, 
1111  {0.04, 1.91576E-4, 2.03626E-4, 2.30230E-4, 2.60584E-4, 2.95248E-4, 3.34870E-4, 3.56771E-4, 3.80200E-4, 4.32104E-4, 4.91584E-4}, 
1112  {0.05, 4.74226E-4, 5.02006E-4, 5.62872E-4, 6.31597E-4, 7.09244E-4, 7.97023E-4, 8.45134E-4, 8.96410E-4, 1.00867E-3, 1.13590E-3}, 
1113  {0.06, 9.67285E-4, 1.02029E-3, 1.13566E-3, 1.26476E-3, 1.46928E-3, 1.57113E-3, 1.65921E-3, 1.75244E-3, 1.95562E-3, 2.18336E-3}, 
1114  {0.08, 2.81537E-3, 2.95200E-3, 3.24599E-3, 3.57027E-3, 3.92793E-3, 4.32246E-3, 4.53473E-3, 4.75768E-3, 5.23785E-3, 5.76765E-3}, 
1115  {0.1, 6.14216E-3, 6.40864E-3, 6.97750E-3, 7.59781E-3, 8.27424E-3, 9.01187E-3, 9.40534E-3, 9.81623E-3, 1.06934E-2, 1.16498E-2}, 
1116  {0.15, 2.23096E-2, 2.30790E-2, 2.46978E-2, 2.64300E-2, 2.82832E-2, 3.02661E-2, 3.13090E-2, 3.23878E-2, 3.46580E-2, 3.70873E-2}, 
1117  {0.2, 5.04022E-2, 5.18492E-2, 5.48682E-2, 5.80617E-2, 6.14403E-2, 6.50152E-2, 6.68798E-2, 6.87981E-2, 7.28020E-2, 7.70407E-2}, 
1118  {0.3, 1.38018E-1, 1.41026E-1, 1.47244E-1, 1.53743E-1, 1.60536E-1, 1.67641E-1, 1.71315E-1, 1.75074E-1, 1.82852E-1, 1.90997E-1}, 
1119  {0.4, 2.56001E-1, 2.60576E-1, 2.69992E-1, 2.79776E-1, 2.89946E-1, 3.00525E-1, 3.05974E-1, 3.11533E-1, 3.22994E-1, 3.34935E-1}, 
1120  {0.5, 3.92181E-1, 3.98213E-1, 4.10597E-1, 4.23427E-1, 4.36726E-1, 4.50519E-1, 4.57610E-1, 4.64834E-1, 4.79700E-1, 4.95148E-1}, 
1121  {0.6, 5.37913E-1, 5.45268E-1, 5.60350E-1, 5.75948E-1, 5.92092E-1, 6.08811E-1, 6.17396E-1, 6.26136E-1, 6.44104E-1, 6.62752E-1}, 
1122  {0.7, 6.87470E-1, 6.96021E-1, 7.13543E-1, 7.31650E-1, 7.50373E-1, 7.69748E-1, 7.79591E-1, 7.89811E-1, 8.10602E-1, 8.32167E-1}, 
1123  {0.8, 8.37159E-1, 8.46790E-1, 8.66525E-1, 8.86910E-1, 9.07979E-1, 9.29772E-1, 9.40953E-1, 9.52331E-1, 9.75701E-1, 9.99934E-1}, 
1124  {1.0, 1.12850, 1.14002, 1.16362, 1.18799, 1.21317, 1.23921, 1.25257, 1.26616, 1.29408, 1.32303}, 
1125  {1.2, 1.40232, 1.41545, 1.44232, 1.47007, 1.49875, 1.52842, 1.54364, 1.55913, 1.59095, 1.62396}, 
1126  {1.4, 1.65584, 1.67034, 1.70004, 1.73072, 1.76244, 1.79526, 1.81210, 1.82925, 1.86448, 1.90104}, 
1127  {1.5, 1.77496, 1.79009, 1.82107, 1.85307, 1.88617, 1.92042, 1.93800, 1.95590, 1.99269, 2.03087}, 
1128  {1.7, 1.99863, 2.01490, 2.04822, 2.08265, 2.11827, 2.15555, 2.17409, 2.19337, 2.23302, 2.27419}, 
1129  {2.0, 2.29325, 2.31100, 2.34738, 2.38501, 2.42395, 2.46429, 2.48401, 2.50612, 2.54955, 2.59468}, 
1130  {3.0, 3.08887, 3.11036, 3.15445, 3.20013, 3.24748, 3.29664, 3.32192, 3.34770, 3.40081, 3.45611}, 
1131  {5.0, 4.07599, 4.10219, 4.15606, 4.21199, 4.27010, 4.33056, 4.36172, 4.39353, 4.45918, 4.52772}, 
1132  {7.0, 4.69647, 4.72577, 4.78608, 4.84877, 4.91402, 4.98200, 5.01707, 5.05290, 5.12695, 5.20436}, 
1133  {10.0, 5.32590, 5.35848, 5.42560, 5.49547, 5.56830, 5.64429, 5.68353, 5.72366, 5.80666, 5.89359}
1134  }; 
1135
1136  const G4double bk2[29][11] = { 
1137  {0.005, 5.98040E-8, 7.25636E-8, 8.00602E-8, 8.84294E-8, 1.08253E-7, 1.33148E-7, 1.64573E-7, 2.04459E-7, 2.28346E-7, 2.55370E-7}, 
1138  {0.007, 2.95345E-7, 3.56497E-7, 3.92247E-7, 4.32017E-7, 5.25688E-7, 6.42391E-7, 7.88464E-7, 9.72171E-7, 1.08140E-6, 1.20435E-6}, 
1139  {0.01, 1.55232E-6, 1.86011E-6, 2.03881E-6, 2.23662E-6, 2.69889E-6, 3.26860E-6, 3.26860E-6, 4.84882E-6, 5.36428E-6, 5.94048E-6}, 
1140  {0.015, 9.67802E-6, 1.14707E-5, 1.25008E-5, 1.36329E-5, 1.62480E-5, 1.94200E-5, 2.32783E-5, 2.79850E-5, 3.07181E-5, 3.37432E-5}, 
1141  {0.02, 3.38425E-5, 3.97259E-5, 4.30763E-5, 4.67351E-5, 5.51033E-5, 6.51154E-5, 7.71154E-5, 9.15431E-5, 9.98212E-5, 1.08909E-4}, 
1142  {0.03, 1.81920E-4, 2.10106E-4, 2.25918E-4, 2.43007E-4, 2.81460E-4, 3.26458E-4, 3.79175E-4, 4.41006E-4, 4.75845E-4, 5.13606E-4}, 
1143  {0.04, 5.59802E-4, 6.38103E-4, 6.81511E-4, 7.28042E-4, 8.31425E-4, 9.50341E-4, 1.08721E-3, 1.24485E-3, 1.33245E-3, 1.42650E-3}, 
1144  {0.05, 1.28002E-3, 1.44336E-3, 1.53305E-3, 1.62855E-3, 1.83861E-3, 2.07396E-3, 2.34750E-3, 2.65469E-3, 2.82358E-3, 3.00358E-3}, 
1145  {0.06, 2.42872E-3, 2.72510E-3, 2.88111E-3, 3.04636E-3, 3.40681E-3, 3.81132E-3, 4.26536E-3, 4.77507E-3, 5.05294E-3, 5.34739E-3}, 
1146  {0.08, 6.35222E-3, 6.99730E-3, 7.34446E-3, 7.70916E-3, 8.49478E-3, 9.36187E-3, 1.03189E-2, 1.13754E-2, 1.19441E-2, 1.25417E-2}, 
1147  {0.1, 1.26929E-2, 1.38803E-2, 1.44371E-2, 1.50707E-2, 1.64235E-2, 1.78989E-2, 1.95083E-2, 2.12640E-2, 2.22009E-2, 2.31795E-2}, 
1148  {0.15, 3.96872E-2, 4.24699E-2, 4.39340E-2, 4.54488E-2, 4.86383E-2, 5.20542E-2, 5.57135E-2, 5.96350E-2, 6.17003E-2, 6.38389E-2}, 
1149  {0.2, 8.15290E-2, 8.62830E-2, 8.87650E-2, 9.13200E-2, 9.66589E-2, 1.02320E-1, 1.08326E-1, 1.14701E-1, 1.18035E-1, 1.21472E-1}, 
1150  {0.3, 1.99528E-1, 2.08471E-1, 2.13103E-1, 2.17848E-1, 2.27689E-1, 2.38022E-1, 2.48882E-1, 2.60304E-1, 2.66239E-1, 2.72329E-1}, 
1151  {0.4, 3.47383E-1, 3.60369E-1, 3.67073E-1, 3.73925E-1, 3.88089E-1, 4.02900E-1, 4.18404E-1, 4.34647E-1, 4.43063E-1, 4.51685E-1}, 
1152  {0.5, 5.11214E-1, 5.27935E-1, 5.36554E-1, 5.45354E-1, 5.63515E-1, 5.82470E-1, 6.02273E-1, 6.22986E-1, 6.33705E-1, 6.44677E-1}, 
1153  {0.6, 6.82122E-1, 7.02260E-1, 7.12631E-1, 7.23214E-1, 7.45041E-1, 7.67800E-1, 7.91559E-1, 8.16391E-1, 8.29235E-1, 8.42380E-1}, 
1154  {0.7, 8.54544E-1, 8.77814E-1, 8.89791E-1, 9.02008E-1, 9.27198E-1, 9.53454E-1, 9.80856E-1, 1.00949, 1.02430, 1.03945}, 
1155  {0.8, 1.02508, 1.05121, 1.06466, 1.07838, 1.10667, 1.13615, 1.16692, 1.19907, 1.21570, 1.23272}, 
1156  {1.0, 1.35307, 1.38429, 1.40036, 1.41676, 1.45057, 1.48582, 1.52263, 1.56111, 1.58102, 1.60140}, 
1157  {1.2, 1.65823, 1.69385, 1.71220, 1.73092, 1.76954, 1.80983, 1.85192, 1.89596, 1.91876, 1.94211}, 
1158  {1.4, 1.93902, 1.97852, 1.99887, 2.01964, 2.06251, 2.10727, 2.15406, 2.20304, 2.22842, 2.25442}, 
1159  {1.5, 2.07055, 2.11182, 2.13309, 2.15480, 2.19963, 2.24644, 2.29539, 2.34666, 2.37323, 2.40045}, 
1160  {1.7, 2.31700, 2.36154, 2.38451, 2.40798, 2.45641, 2.50703, 2.56000, 2.61552, 2.64430, 2.67381}, 
1161  {2.0, 2.64162, 2.69053, 2.71576, 2.74154, 2.79481, 2.85052, 2.90887, 2.97009, 3.00185, 3.03442}, 
1162  {3.0, 3.51376, 3.57394, 3.60503, 3.63684, 3.70268, 3.77170, 3.84418, 3.92040, 3.96003, 4.00073}, 
1163  {5.0, 4.59935, 4.67433, 4.71316, 4.75293, 4.83543, 4.92217, 5.01353, 5.10992, 5.16014, 5.21181}, 
1164  {7.0, 5.28542, 5.37040, 5.41445, 5.45962, 5.55344, 5.65226, 5.79496, 5.90517, 5.96269, 6.02191}, 
1165  {10.0, 5.98474, 6.08046, 6.13015, 6.18112, 6.28715, 6.39903, 6.51728, 6.64249, 6.70792, 6.77535}
1166  }; 
1167
1168  const G4double bls1[28][10] = { 
1169  {0.005, 2.4111E-4, 2.5612E-4, 2.7202E-4, 3.0658E-4, 3.4511E-4, 3.8795E-4, 4.3542E-4, 4.6100E-4, 4.8786E-4}, 
1170  {0.007, 6.3947E-4, 6.7058E-4, 7.0295E-4, 7.7167E-4, 8.4592E-4, 9.2605E-4, 1.0125E-3, 1.0583E-3, 1.1058E-3}, 
1171  {0.01, 1.5469E-3, 1.6036E-3, 1.6622E-3, 1.7856E-3, 1.9181E-3, 2.1615E-3, 2.3178E-3, 2.4019E-3, 2.4904E-3}, 
1172  {0.015, 3.7221E-3, 3.8404E-3, 3.9650E-3, 4.2354E-3, 4.5396E-3, 4.8853E-3, 5.2820E-3, 5.5031E-3, 5.7414E-3}, 
1173  {0.02, 6.9449E-3, 7.1910E-3, 7.4535E-3, 8.0336E-3, 8.6984E-3, 9.4638E-3, 1.0348E-2, 1.0841E-2, 1.1372E-2}, 
1174  {0.03, 1.7411E-2, 1.8180E-2, 1.8997E-2, 2.0784E-2, 2.2797E-2, 2.5066E-2, 2.7622E-2, 2.9020E-2, 3.0503E-2}, 
1175  {0.04, 3.8474E-2, 4.0056E-2, 4.1718E-2, 4.5300E-2, 4.9254E-2, 5.3619E-2, 5.8436E-2, 6.1028E-2, 6.3752E-2}, 
1176  {0.05, 6.7371E-2, 6.9928E-2, 7.2596E-2, 7.8282E-2, 8.4470E-2, 9.1206E-2, 9.8538E-2, 1.0244E-1, 1.0652E-1}, 
1177  {0.06, 1.0418E-1, 1.0778E-1, 1.1152E-1, 1.1943E-1, 1.2796E-1, 1.3715E-1, 1.4706E-1, 1.5231E-1, 1.5776E-1}, 
1178  {0.08, 1.9647E-1, 2.0217E-1, 2.0805E-1, 2.2038E-1, 2.3351E-1, 2.4751E-1, 2.6244E-1, 2.7027E-1, 2.7837E-1}, 
1179  {0.1, 3.0594E-1, 3.1361E-1, 3.2150E-1, 3.3796E-1, 3.5537E-1, 3.7381E-1, 3.9336E-1, 4.0357E-1, 4.1410E-1}, 
1180  {0.15, 6.1411E-1, 6.2597E-1, 6.3811E-1, 6.6330E-1, 6.8974E-1, 7.1753E-1, 7.4678E-1, 7.6199E-1, 7.7761E-1}, 
1181  {0.2, 9.3100E-1, 9.5614E-1, 9.7162E-1, 1.0037, 1.0372, 1.0723, 1.1092, 1.1284, 1.1480}, 
1182  {0.3, 1.5172, 1.5372, 1.5576, 1.5998, 1.6438, 1.6899, 1.7382, 1.7632, 1.7889}, 
1183  {0.4, 2.0173, 2.0408, 2.0647, 2.1142, 2.1659, 2.2199, 2.2765, 2.3059, 2.3360}, 
1184  {0.5, 2.3932, 2.4193, 2.4460, 2.5011, 2.5587, 2.6190, 2.6821, 2.7148, 2.7484}, 
1185  {0.6, 2.7091, 2.7374, 2.7663, 2.8260, 2.8884, 2.9538, 3.0222, 3.0577, 3.0941}, 
1186  {0.7, 2.9742, 3.0044, 3.0352, 3.0988, 3.1652, 3.2349, 3.3079, 3.3457, 3.3845}, 
1187  {0.8, 3.2222, 3.2539, 3.2863, 3.3532, 3.4232, 3.4965, 3.5734, 3.6133, 3.6542}, 
1188  {1.0, 3.6690, 3.7033, 3.7384, 3.8108, 3.8866, 3.9661, 4.0495, 4.0928, 4.1371}, 
1189  {1.2, 3.9819, 4.0183, 4.0555, 4.1324, 4.2130, 4.2974, 4.3861, 4.4321, 4.4794}, 
1190  {1.4, 4.2745, 4.3127, 4.3517, 4.4324, 4.5170, 4.6056, 4.6988, 4.7471, 4.7968}, 
1191  {1.5, 4.4047, 4.4436, 4.4834, 4.5658, 4.6521, 4.7426, 4.8378, 4.8872, 4.9379}, 
1192  {1.7, 4.6383, 4.6787, 4.7200, 4.8054, 4.8949, 4.9888, 5.0876, 5.1388, 5.1915}, 
1193  {2.0, 4.9369, 4.9791, 5.0223, 5.1116, 5.2053, 5.3036, 5.4070, 5.4607, 5.5159}, 
1194  {3.0, 5.6514, 5.6981, 5.7459, 5.8450, 5.9489, 6.0581, 6.1730, 6.2328, 6.2943}, 
1195  {5.0, 6.4665, 6.5189, 6.5724, 6.6835, 6.8003, 6.9231, 7.0525, 7.1199, 7.1892}, 
1196  {7.0, 6.8634, 6.9194, 6.9767, 7.0957, 7.2208, 7.3526, 7.4915, 7.5639, 7.6384}
1197  };
1198 
1199
1200  const G4double bls2[28][10] = { 
1201  {0.005, 5.4561E-4, 6.0905E-4, 6.7863E-4, 7.5494E-4, 7.9587E-4, 8.3883E-4, 9.3160E-4, 1.0352E-3, 1.1529E-3}, 
1202  {0.007, 1.2068E-3, 1.3170E-3, 1.4377E-3, 1.5719E-3, 1.6451E-3, 1.7231E-3, 1.8969E-3, 2.1009E-3, 2.3459E-3}, 
1203  {0.01, 2.6832E-3, 2.9017E-3, 3.1534E-3, 3.4479E-3, 3.6149E-3, 3.7976E-3, 4.2187E-3, 4.7320E-3, 5.3636E-3}, 
1204  {0.015, 6.2775E-3, 6.9077E-3, 7.6525E-3, 8.5370E-2, 9.0407E-3, 9.5910E-3, 1.0850E-2, 1.2358E-2, 1.4165E-2}, 
1205  {0.02, 1.2561E-2, 1.3943E-2, 1.5553E-2, 1.7327E-2, 1.8478E-2, 1.9612E-2, 2.2160E-2, 2.5130E-2, 2.8594E-2}, 
1206  {0.03, 3.3750E-2, 3.7470E-2, 4.1528E-2, 4.6170E-2, 4.8708E-2, 5.1401E-2, 5.7297E-2, 6.3943E-2, 7.1441E-2}, 
1207  {0.04, 6.9619E-2, 7.6098E-2, 8.3249E-2, 9.1150E-2, 9.5406E-2, 9.9881E-2, 1.0954E-1, 1.2023E-1, 1.3208E-1}, 
1208  {0.05, 1.1522E-1, 1.2470E-1, 1.3504E-1, 1.4632E-1, 1.5234E-1, 1.5864E-1, 1.7211E-1, 1.8686E-1, 2.0304E-1}, 
1209  {0.06, 1.6931E-1, 1.8179E-1, 1.9530E-1, 2.0991E-1, 2.1767E-1, 2.2576E-1, 2.4295E-1, 2.6165E-1, 2.8201E-1}, 
1210  {0.08, 2.9540E-1, 3.1361E-1, 3.3312E-1, 3.5403E-1, 3.6506E-1, 3.7650E-1, 4.0067E-1, 4.2673E-1, 4.5488E-1}, 
1211  {0.1,  4.3613E-1, 4.5956E-1,  4.852E-1, 5.1115E-1, 5.2514E-1, 5.3961E-1, 5.7008E-1, 6.0277E-1, 6.3793E-1}, 
1212  {0.15, 8.1014E-1, 8.4453E-1, 8.8093E-1, 9.1954E-1, 9.3973E-1, 9.6056E-1, 1.0043, 1.0509, 1.1008}, 
1213  {0.2, 1.1888, 1.2319, 1.2774, 1.3255, 1.3506, 1.3765, 1.4308, 1.4886, 1.5504}, 
1214  {0.3, 1.8422, 1.8983, 1.9575, 2.0201, 2.0528, 2.0864, 2.1569, 2.2319, 2.3120}, 
1215  {0.4, 2.3984, 2.4642, 2.5336, 2.6070, 2.6452, 2.6847, 2.7674, 2.8554, 2.9494}, 
1216  {0.5, 2.8181, 2.8915, 2.9690, 3.0509, 3.0937, 3.1378, 3.2301, 3.3285, 3.4337}, 
1217  {0.6, 3.1698, 3.2494, 3.3336, 3.4226, 3.4691, 3.5171, 3.6175, 3.7246, 3.8391}, 
1218  {0.7, 3.4652, 3.5502, 3.6400, 3.7351, 3.7848, 3.8360, 3.9433, 4.0578, 4.1804}, 
1219  {0.8, 3.7392, 3.8289, 3.9236, 4.0239, 4.0764, 4.1304, 4.2438, 4.3648, 4.4944}, 
1220  {1.0, 4.2295, 4.3269, 4.4299, 4.5391, 4.5962, 4.6551, 4.7786, 4.9106, 5.0520}, 
1221  {1.2, 4.5777, 4.6814, 4.7912, 4.9076, 4.9685, 5.0314, 5.1633, 5.3043, 5.4555}, 
1222  {1.4, 4.9001, 5.0092, 5.1247, 5.2473, 5.3114, 5.3776, 5.5166, 5.6653, 5.8249}, 
1223  {1.5, 5.0434, 5.1550, 5.2731, 5.3984, 5.4640, 5.5317, 5.6739, 5.8260, 5.9893}, 
1224  {1.7, 5.3011, 5.4170, 5.5398, 5.6701, 5.7373, 5.8088, 5.9568, 6.1152, 6.2853}, 
1225  {2.0, 5.6308, 5.7523, 5.8811, 6.0174, 6.0896, 6.1636, 6.3192, 6.4857, 6.6647}, 
1226  {3.0, 6.4224, 6.5580, 6.7019, 6.8549, 6.9351, 7.0180, 7.1925, 7.3795, 7.5808}, 
1227  {5.0, 7.3338, 7.4872, 7.6500, 7.8235, 7.9146, 8.0087, 8.2071, 8.4200, 8.6496}, 
1228  {7.0, 7.7938, 7.9588, 8.1342, 8.3211, 8.4193, 8.5209, 8.7350, 8.9651, 9.2133}
1229  }; 
1230 
1231  const G4double bls3[28][9] = { 
1232  {0.005, 1.2895E-3, 1.3670E-3, 1.4524E-3, 1.6524E-3, 1.9078E-3, 2.2414E-3, 2.6889E-3, 3.3006E-3}, 
1233  {0.007, 2.6467E-3, 2.8242E-3, 3.0238E-3, 3.5045E-3, 4.1260E-3, 4.9376E-3, 6.0050E-3, 7.4152E-3}, 
1234  {0.01, 6.1472E-3, 6.6086E-3, 7.1246E-3, 8.3491E-3, 9.8871E-3, 1.1822E-2, 1.4261E-2, 1.7335E-2}, 
1235  {0.015, 1.63316E-2, 1.7572E-2, 1.8932E-2, 2.2053E-2, 2.5803E-2, 3.0308E-2, 3.5728E-2, 4.2258E-2}, 
1236  {0.02, 3.2634E-2, 3.4900E-2, 3.7348E-2, 4.2850E-2, 4.9278E-2, 5.6798E-2, 6.5610E-2, 7.5963E-2}, 
1237  {0.03, 7.9907E-2, 8.4544E-2, 8.9486E-2, 1.0032E-1, 1.1260E-1, 1.2656E-1, 1.4248E-1, 1.6071E-1}, 
1238  {0.04, 1.4523E-1, 1.5237E-1, 1.5985E-1, 1.7614E-1, 1.9434E-1, 2.1473E-1, 2.3766E-1, 2.6357E-1}, 
1239  {0.05, 2.2082E-1, 2.3036E-1, 2.4038E-1, 2.6199E-1, 2.8590E-1, 3.1248E-1, 3.4212E-1, 3.7536E-1}, 
1240  {0.06, 3.0423E-1, 3.1611E-1, 3.2854E-1, 3.5522E-1, 3.8459E-1, 4.1704E-1, 4.5306E-1, 4.9326E-1}, 
1241  {0.08, 4.8536E-1, 5.0156E-1, 5.1846E-1, 5.5453E-1, 5.9397E-1, 6.3728E-1, 6.8507E-1, 7.3810E-1}, 
1242  {0.1, 6.7586E-1, 6.9596E-1, 7.1688E-1, 7.6141E-1, 8.0992E-1, 8.6301E-1, 9.2142E-1, 9.8604E-1}, 
1243  {0.15, 1.1544, 1.1828, 1.2122, 1.2746, 1.3424, 1.4163, 1.4974, 1.5868}, 
1244  {0.2, 1.6167, 1.6517, 1.6880, 1.7650, 1.8484, 1.9394, 2.0390, 2.1489}, 
1245  {0.3, 2.3979, 2.4432, 2.4902, 2.5899, 2.6980, 2.8159, 2.9451, 3.0876}, 
1246  {0.4, 3.0502, 3.1034, 3.1586, 3.2758, 3.4030, 3.5416, 3.6938, 3.8620}, 
1247  {0.5, 3.5466, 3.6062, 3.6681, 3.7994, 3.9421, 4.0978, 4.2688, 4.4580}, 
1248  {0.6, 3.9620, 4.0270, 4.0945, 4.2378, 4.3935, 4.5636, 4.7506, 4.9576}, 
1249  {0.7, 4.3020, 4.3715, 4.4438, 4.5974, 4.7644, 4.9470, 5.1478, 5.3703}, 
1250  {0.8, 4.6336, 4.7072, 4.7837, 4.9463, 5.1233, 5.3169, 5.5300, 5.7661}, 
1251  {1.0, 5.2041, 5.2845, 5.3682, 5.5462, 5.7400, 5.9523, 6.1863, 6.4458}, 
1252  {1.2, 5.6182, 5.7044, 5.7940, 5.9848, 6.1927, 6.4206, 6.6719, 6.9510}, 
1253  {1.4, 5.9967, 6.0876, 6.1823, 6.3839, 6.6038, 6.8451, 7.1113, 7.4071}, 
1254  {1.5, 6.1652, 6.2583, 6.3553, 6.5618, 6.7871, 7.0344, 7.3073, 7.6107}, 
1255  {1.7, 6.4686, 6.5657, 6.6668, 6.8823, 7.1175, 7.3757, 7.6609, 7.9782}, 
1256  {2.0, 6.8577, 6.9600, 7.0666, 7.2937, 7.5418, 7.8143, 8.1156, 8.4510}, 
1257  {3.0, 7.7981, 7.9134, 8.0336, 8.2901, 8.5708, 8.8796, 9.2214, 9.6027}, 
1258  {5.0, 8.8978, 9.0297, 9.1673, 9.4612, 9.7834, 10.1384, 10.5323, 10.9722}, 
1259  {7.0, 9.4819, 9.6248, 9.7739, 10.0926, 10.4423, 10.8282, 11.2565, 11.7356}
1260  }; 
1261
1262  const G4double bll1[28][10] = { 
1263  {0.005, 3.6324E-5, 4.0609E-5, 4.5430E-5, 5.6969E-5, 7.1625E-5, 9.0279E-5, 1.1407E-4, 1.2834E-4, 1.4447E-4}, 
1264  {0.007, 1.8110E-4, 2.0001E-4, 2.2099E-4, 2.7006E-4, 3.3049E-4, 4.0498E-4, 4.9688E-4, 5.5061E-4, 6.1032E-4}, 
1265  {0.01, 8.6524E-4, 9.4223E-4, 1.0262E-3, 1.2178E-3, 1.4459E-3, 1.7174E-3, 2.0405E-3, 2.2245E-3, 2.4252E-3}, 
1266  {0.015, 4.2293E-3, 4.5314E-3, 4.8551E-3, 5.5731E-3, 6.3968E-3, 7.3414E-3, 8.4242E-3, 9.0236E-3, 9.6652E-3}, 
1267  {0.02, 1.1485E-2, 1.2172E-2, 1.2900E-2, 1.4486E-2, 1.6264E-2, 1.8256E-2, 2.0487E-2, 2.1702E-2, 2.2989E-2}, 
1268  {0.03, 3.9471E-2, 4.1270E-2, 4.3149E-2, 4.7163E-2, 5.1543E-2, 5.6423E-2, 6.1540E-2, 6.4326E-2, 6.7237E-2}, 
1269  {0.04, 8.4454E-2, 8.7599E-2, 9.0860E-2, 9.7747E-2, 1.0516E-1, 1.1313E-1, 1.2171E-1, 1.2625E-1, 1.3096E-1}, 
1270  {0.05, 1.4339E-1, 1.4795E-1, 1.5266E-1, 1.6253E-1, 1.7306E-1, 1.8430E-1, 1.9630E-1, 2.0261E-1, 2.0924E-1}, 
1271  {0.06, 2.1304E-1, 2.1899E-1, 2.2512E-1, 2.3794E-1, 2.5153E-1, 2.6596E-1, 2.8130E-1, 2.8934E-1, 2.9763E-1}, 
1272  {0.08, 3.7382E-1, 3.8241E-1, 3.9122E-1, 4.0955E-1, 4.2888E-1, 4.4928E-1, 4.7086E-1, 4.8212E-1, 4.9371E-1}, 
1273  {0.1, 5.5056E-1, 5.6151E-1, 5.7273E-1, 5.9601E-1, 6.2049E-1, 6.4627E-1, 6.7346E-1, 6.8762E-1, 7.0218E-1}, 
1274  {0.15, 1.0066, 1.0224, 1.0386, 1.0721, 1.1073, 1.1443, 1.1832, 1.2035, 1.2243}, 
1275  {0.2, 1.4376, 1.4572, 1.4773, 1.5188, 1.5624, 1.6083, 1.6566, 1.6817, 1.7076}, 
1276  {0.3, 2.1712, 2.1964, 2.2223, 2.2758, 2.3322, 2.3915, 2.4542, 2.4869, 2.5205}, 
1277  {0.4, 2.7500, 2.7793, 2.8094, 2.8719, 2.9377, 3.0072, 3.0807, 3.1192, 3.1587}, 
1278  {0.5, 3.2033, 3.2359, 3.2693, 3.3389, 3.4122, 3.4898, 3.5721, 3.6151, 3.6595}, 
1279  {0.6, 3.6038, 3.6391, 3.6753, 3.7506, 3.8303, 3.9146, 4.0042, 4.0511, 4.0995}, 
1280  {0.7, 3.9106, 3.9482, 3.9867, 4.0670, 4.1520, 4.2421, 4.3380, 4.3882, 4.4401}, 
1281  {0.8, 4.1790, 4.2185, 4.2590, 4.3437, 4.4333, 4.5285, 4.6298, 4.6830, 4.7380}, 
1282  {1.0, 4.6344, 4.6772, 4.7212, 4.8131, 4.9106, 5.0144, 5.1250, 5.1831, 5.2432}, 
1283  {1.2, 4.9787, 5.0242, 5.0711, 5.1689, 5.2729, 5.3837, 5.5050, 5.5642, 5.6287}, 
1284  {1.4, 5.2688, 5.3166, 5.3658, 5.4687, 5.5782, 5.6950, 5.8198, 5.8855, 5.9554}, 
1285  {1.5, 5.3966, 5.4454, 5.4957, 5.6009, 5.7128, 5.8323, 5.9601, 6.0274, 6.0972}, 
1286  {1.7, 5.6255, 5.6762, 5.7284, 5.8377, 5.9541, 6.0785, 6.2116, 6.2818, 6.3546}, 
1287  {2.0, 5.9170, 5.9701, 6.0248, 6.1395, 6.2618, 6.3925, 6.5327, 6.6066, 6.6833}, 
1288  {3.0, 6.6210, 6.6801, 6.7411, 6.8692, 7.0062, 7.1529, 7.3107, 7.3941, 7.4807}, 
1289  {5.0, 7.4620, 7.5288, 7.5977, 7.7428, 7.8982, 8.0653, 8.2454, 8.3409, 8.4402}, 
1290  {7.0, 7.7362, 7.8079, 7.8821, 8.0383, 8.2061, 8.3866, 8.5816, 8.6850, 8.7927}
1291  }; 
1292
1293  const G4double bll2[28][10] = { 
1294  {0.005, 1.8339E-4, 2.3330E-4, 2.9738E-4, 3.7977E-4, 4.2945E-4, 4.8582E-4, 6.2244E-4, 7.9858E-4, 1.0258E-3}, 
1295  {0.007, 7.5042E-4, 9.2355E-4, 1.1375E-3, 1.4021E-3, 1.5570E-3, 1.7292E-3, 2.1335E-3, 2.6335E-3, 3.2515E-3}, 
1296  {0.01, 2.8829E-3, 3.4275E-3, 4.0758E-3, 4.8457E-3, 5.2839E-3, 5.7617E-3, 6.8504E-3, 8.1442E-3, 9.6816E-3}, 
1297  {0.015, 1.1087E-2, 1.2716E-2, 1.4581E-2, 1.6717E-2, 1.7898E-2, 1.9163E-2, 2.1964E-2, 2.5173E-2, 2.8851E-2}, 
1298  {0.02, 2.5786E-2, 2.8922E-2, 3.2435E-2, 3.6371E-2, 3.8514E-2, 4.0784E-2, 4.5733E-2, 5.1288E-2, 5.7531E-2}, 
1299  {0.03, 7.3461E-2, 8.0264E-2, 8.7705E-2, 9.5852E-2, 1.0021E-1, 1.0478E-1, 1.1458E-1, 1.2535E-1, 1.3721E-1}, 
1300  {0.04, 1.4094E-1, 1.5172E-1, 1.6336E-1, 1.7596E-1, 1.8265E-1, 1.8962E-1, 2.0445E-1, 2.2058E-1, 2.3818E-1}, 
1301  {0.05, 2.2289E-1, 2.3762E-1, 2.5344E-1, 2.7045E-1, 2.7944E-1, 2.8877E-1, 3.0855E-1, 3.2995E-1, 3.5318E-1}, 
1302  {0.06, 3.1503E-1, 3.3361E-1, 3.5346E-1, 3.7473E-1, 3.8594E-1, 3.9756E-1, 4.2212E-1, 4.4861E-1, 4.7727E-1}, 
1303  {0.08, 5.1793E-1, 5.4368E-1, 5.7109E-1, 6.0032E-1, 6.1569E-1, 6.3159E-1, 6.6512E-1, 7.0119E-1, 7.4012E-1}, 
1304  {0.1, 7.3258E-1, 7.6481E-1, 7.9907E-1, 8.3556E-1, 8.5472E-1, 8.7454E-1, 9.1630E-1, 9.6119E-1, 1.0096}, 
1305  {0.15, 1.2677, 1.3137, 1.3626, 1.4147, 1.4421, 1.4703, 1.5300, 1.5942, 1.6636}, 
1306  {0.2, 1.7615, 1.8188, 1.8797, 1.9446, 1.9788, 2.0142, 2.0889, 2.1694, 2.2567}, 
1307  {0.3, 2.5909, 2.6658, 2.7457, 2.8312, 2.8762, 2.9231, 3.0222, 3.1295, 3.2463}, 
1308  {0.4, 3.2417, 3.3302, 3.4249, 3.5266, 3.5803, 3.6361, 3.7546, 3.8835, 4.0242}, 
1309  {0.5, 3.7527, 3.8523, 3.9591, 4.0741, 4.1350, 4.1983, 4.3330, 4.4799, 4.6408}, 
1310  {0.6, 4.2013, 4.3103, 4.4274, 4.5537, 4.6206, 4.6904, 4.8390, 5.0013, 5.1796}, 
1311  {0.7, 4.5493, 4.6664, 4.7925, 4.9286, 5.0009, 5.0762, 5.2370, 5.4129, 5.6066}, 
1312  {0.8, 4.8537, 4.9780, 5.1119, 5.2568, 5.3338, 5.4141, 5.5857, 5.7738, 5.9811}, 
1313  {1.0, 5.3701, 5.5066, 5.6540, 5.8138, 5.8989, 5.9878, 6.1780, 6.3870, 6.6179}, 
1314  {1.2, 5.7648, 5.9114, 6.0701, 6.2424, 6.3343, 6.4303, 6.6361, 6.8626, 7.1137}, 
1315  {1.4, 6.0976, 6.2530, 6.4214, 6.6044, 6.7021, 6.8043, 7.0237, 7.2655, 7.5338}, 
1316  {1.5, 6.2447, 6.4041, 6.5768, 6.7647, 6.8650, 6.9700, 7.1954, 7.4442, 7.7203}, 
1317  {1.7, 6.5087, 6.6752, 6.8558, 7.0526, 7.1578, 7.2679, 7.5045, 7.7660, 8.0565}, 
1318  {2.0, 6.8458, 7.0218, 7.2129, 7.4213, 7.5328, 7.6496, 7.9010, 8.1791, 8.4886}, 
1319  {3.0, 7.6647, 7.8644, 8.0819, 8.3189, 8.4475, 8.5814, 8.8702, 9.1908, 9.5488}, 
1320  {5.0, 8.6515, 8.8816, 9.1330, 9.4090, 9.5572, 9.7132, 10.0504, 10.4259, 10.8466}, 
1321  {7.0, 9.0221, 9.2724, 9.5464, 9.8477, 10.0099, 10.1805, 10.5499, 10.9622, 11.4250}
1322  }; 
1323
1324  const G4double bll3[28][9] = { 
1325  {0.005, 1.3190E-3, 1.4961E-3, 1.6974E-3, 2.1858E-3, 2.8163E-3, 3.6302E-3, 4.6814E-3, 6.0395E-3}, 
1326  {0.007, 4.0158E-3, 4.4623E-3, 4.9592E-3, 6.1257E-3, 7.5675E-3, 9.3502E-3, 1.1556E-2, 1.4290E-2}, 
1327  {0.01, 1.1509E-2, 1.2548E-2, 1.3681E-2, 1.6263E-2, 1.9336E-2, 2.2999E-2, 2.7370E-2, 3.2603E-2}, 
1328  {0.015, 3.3070E-2, 3.5408E-2, 3.7914E-2, 4.3483E-2, 4.9898E-2, 5.7304E-2, 6.5884E-2, 7.5861E-2}, 
1329  {0.02, 6.4555E-2, 6.8394E-2, 7.2472E-2, 8.1413E-2, 9.1539E-2, 1.0304E-1, 1.1617E-1, 1.3121E-1}, 
1330  {0.03, 1.5030E-1, 1.5101E-1, 1.5844E-1, 1.7451E-1, 1.9244E-1, 2.1244E-1, 2.3496E-1, 2.6044E-1}, 
1331  {0.04, 2.5743E-1, 2.6774E-1, 2.7855E-1, 3.0180E-1, 3.2751E-1, 3.5608E-1, 3.8803E-1, 4.2401E-1}, 
1332  {0.05, 3.7846E-1, 3.9195E-1, 4.0607E-1, 4.3635E-1, 4.6973E-1, 5.0672E-1, 5.4798E-1, 5.9436E-1}, 
1333  {0.06, 5.0839E-1, 5.2497E-1, 5.4230E-1, 5.7943E-1, 6.2028E-1, 6.6549E-1, 7.1589E-1, 7.7252E-1}, 
1334  {0.08, 7.8230E-1, 8.0474E-1, 8.2818E-1, 8.7836E-1, 9.3355E-1, 9.9462E-1, 1.0627, 1.1394}, 
1335  {0.1, 1.0621, 1.0900, 1.1192, 1.1816, 1.2503, 1.3265, 1.4116, 1.5076}, 
1336  {0.15, 1.7389, 1.7790, 1.8210, 1.9112, 2.0108, 2.1217, 2.2462, 2.3876}, 
1337  {0.2, 2.3516, 2.4024, 2.4556, 2.5701, 2.6971, 2.8391, 2.9994, 3.1822}, 
1338  {0.3, 3.3741, 3.4427, 3.5148, 3.6706, 3.8445, 4.0404, 4.2631, 4.5193}, 
1339  {0.4, 4.1788, 4.2620, 4.3496, 4.5398, 4.7530, 4.9944, 5.2703, 5.5895}, 
1340  {0.5, 4.8180, 4.9137, 5.0146, 5.2341, 5.4811, 5.7618, 6.0840, 6.4583}, 
1341  {0.6, 5.3765, 5.4830, 5.5954, 5.8406, 6.1173, 6.4326, 6.7958, 7.2191}, 
1342  {0.7, 5.8208, 5.9369, 6.0596, 6.3275, 6.6306, 6.9769, 7.3767, 7.8440}, 
1343  {0.8, 6.2109, 6.3355, 6.4674, 6.7558, 7.0827, 7.4570, 7.8900, 8.3972}, 
1344  {1.0, 6.8747, 7.0142, 7.1621, 7.4861, 7.8546, 8.2778, 8.7690, 9.3464}, 
1345  {1.2, 7.3933, 7.5454, 7.7068, 8.0612, 8.4652, 8.9302, 9.4713, 10.1090}, 
1346  {1.4, 7.8331, 7.9967, 8.1694, 8.5502, 8.9851, 9.4866, 10.0713, 10.7619}, 
1347  {1.5, 8.0286, 8.1967, 8.3753, 8.7681, 9.2181, 9.7352, 10.3399, 11.0546}, 
1348  {1.7, 8.3813, 8.5585, 8.7469, 9.1618, 9.6367, 10.1856, 10.8270, 11.5863}, 
1349  {2.0, 8.8352, 9.0245, 9.2260, 9.6701, 10.1793, 10.7688, 11.4590, 12.2775}, 
1350  {3.0, 9.9511, 10.1714, 10.4062, 10.9254, 11.5229, 12.2172, 13.0332, 14.0048}, 
1351  {5.0, 11.3211, 11.5818, 11.8601, 12.4771, 13.1898, 14.0213, 15.0024, 16.1752}, 
1352  {7.0, 11.9480, 12.2357, 12.5432, 13.2260, 14.0164, 14.9404, 16.0330, 17.3420}
1353  };
1354
1355                             
1356  G4double b, bs; 
1357  for(i=0; i<nEtaK; i++) {
1358
1359    G4double et = eta[i];
1360    G4double loget = std::log(et);
1361    Eta[i] = et;
1362    // G4cout << "### eta[" << i << "]= " << et << "  KShell: tet= " << TheK[0]<<" - " <<TheK[nK-1]<< G4endl;
1363
1364    for(j=0; j<nK; j++) {
1365
1366      if(j < 10) b = bk2[i][10-j];
1367      else       b = bk1[i][20-j];
1368
1369      CK[j][i] = SK[j]*loget + TK[j] - b;
1370      //G4cout << " " << CK[j][i];
1371      if(i == nEtaK-1) ZK[j] = et*(et*et*CK[j][i] - et*UK[j] - VK[j]); 
1372    }
1373    //G4cout << G4endl;
1374    if(i < nEtaL) {
1375      //G4cout << "  LShell:" <<G4endl;
1376      for(j=0; j<nL; j++) {
1377
1378        if(j < 8) {
1379          bs = bls3[i][8-j];
1380          b  = bll3[i][8-j];
1381        } else if(j < 17) {
1382          bs = bls2[i][17-j];
1383          b  = bll2[i][17-j];
1384        } else {
1385          bs = bls1[i][26-j];
1386          b  = bll1[i][26-j];
1387        }
1388        G4double c = SL[j]*loget + TL[j]; 
1389        CL[j][i] = c - bs - 3.0*b;
1390        //G4cout << " " << CL[j][i];
1391        if(i == nEtaL-1) VL[j] = et*(et*CL[j][i] - UL[j]); 
1392      }
1393      //G4cout << G4endl;
1394    }
1395  }
1396  const G4double hm[53] = {
1397    12.0, 12.0, 12.0, 12.0, 11.9, 11.7, 11.5, 11.2, 10.8, 10.4,
1398    10.0,  9.51, 8.97, 8.52, 8.03, 7.46, 6.95, 6.53, 6.18, 5.87, 
1399    5.61,  5.39, 5.19, 5.01, 4.86, 4.72, 4.62, 4.53, 4.44, 4.38, 
1400    4.32,  4.26, 4.20, 4.15, 4.1,  4.04, 4.00, 3.95, 3.93, 3.91, 
1401    3.90,  3.89, 3.89, 3.88, 3.88, 3.88, 3.88, 3.88, 3.89, 3.89, 
1402    3.90, 3.92, 3.93 };
1403  const G4double hn[31] = {
1404    75.5, 61.9, 52.2, 45.1, 39.6, 35.4, 31.9, 29.1, 27.2, 25.8, 
1405    24.5, 23.6, 22.7, 22.0, 21.4, 20.9, 20.5, 20.2, 19.9, 19.7, 
1406    19.5, 19.3, 19.2, 19.1, 18.4, 18.8, 18.7, 18.6, 18.5, 18.4, 
1407    18.2
1408  };
1409  for(i=0; i<53; ++i) {HM[i] = hm[i];}
1410  for(i=0; i<31; ++i) {HN[i] = hn[i];}
1411
1412  const G4double mm[93] = {
1413     0.0,
1414     /*
1415 -0.0001577, 5.396e-05, 0.0004194, -0.0001969, -0.0003447, -0.0001904, 9.612e-05, 4.16e-05, 0.0001899, 0.0001322,
1416 0.0001485, 4.698e-05, -7.726e-05, -6.448e-05, 3.269e-05, -0.0001293, 0.0001483, -8.559e-05, 4.018e-05, 6.239e-05,
1417 4.447e-05, 2.212e-05, -5.568e-06, 3.782e-05, 4.398e-05, 8.942e-05, 0.0002202, 0.0001357, 0.0001195, 0.0001812,
1418 0.0002365, 4.508e-05, 0.0001629, 7.75e-05, 0.0001886, 0.0001601, 0.00015, 5.679e-05, 5.956e-06, -7.309e-05,
1419 -0.0001144, -8.585e-05, -0.0001051, -8.209e-05, -5.871e-05, -3.744e-05, -6.707e-05, -9.199e-06, 1.181e-05, 2.252e-05,
1420 1.051e-05, 7.63e-05, 1.71e-05, 1.705e-05, 1.561e-05, 8.987e-06, 4.957e-06, -1.473e-05, -1.902e-05, -1.491e-05,
1421 -9.891e-08, 2.584e-05, 3.696e-05, 8.651e-06, -3.601e-06, 1.647e-05, 4.536e-05, 9.954e-05, 8.922e-05, 0.0001026,
1422 4.094e-05, 3.788e-05, 1.578e-05, 2.731e-05, -6.035e-05, -9.112e-05, -8.846e-05, -0.0001361, -0.0001959, -0.0001883,
1423 -0.0002854, -0.0004129, -0.0004611, -0.0005523, -0.0005869, -0.0005008, -0.000659, -0.0007045, -0.0007322, -0.0008374,
1424 -0.0008731, -0.0009327,
1425     
1426 -0.0003427, -4.685e-05, 0.0007304, -0.0003158, -0.0004104, -0.001133, -0.0007987, -0.0001528, 8.976e-05, 8.63e-05,
1427 1.764e-05, -0.000136, -0.0002895, -0.0002618, -0.0002878, -0.0003813, 1.417e-05, -0.0004216, -0.0003859, -0.0001028,
1428 -0.0001617, -0.0002141, -0.0002178, 5.59e-05, 9.964e-07, 7.528e-05, 0.0002261, 4.241e-05, 0.0005255, 0.0002139,
1429 -5.821e-05, -2.661e-05, 0.0001039, 3.359e-05, 0.0004229, -0.0004872, 0.0001374, -2.79e-05, -1.319e-05, -0.0001077,
1430 -0.0001923, -0.0001189, -0.0001091, -8.486e-05, 7.506e-05, 0.0001053, 0.0004596, 0.000177, 4.805e-05, 3.97e-05,
1431 0.0004008, 0.0002194, 0.0001639, 0.0003285, 0.000219, 0.0001339, 6.323e-05, 2.013e-05, 2.568e-05, 4.346e-05,
1432 8.455e-05, 8.785e-05, 0.0001393, 9.907e-05, 0.0001003, 0.0001508, 0.0002189, 0.0003885, 0.0003603, 0.0003839,
1433 0.0003321, 0.0002207, 0.0001627, 0.0002282, 0.0002177, 0.0002156, 0.0002855, 0.0002361, 0.0007735, 0.0001157,
1434 -0.0001214, -0.0002944, -0.0003193, -0.0004025, -0.0002436, -7.573e-05, -0.0003741, -0.0003678, -0.0004839, -0.0003934,
1435 -0.0005817, -0.000726,
1436
1437 -118, 40.37, 313.8, -147.3, -257.9, -142.4, 71.91, 31.12, 142.1, 98.92,
1438 112.3, 41.36, -47.15, -17.84, 46.46, -66.91, 141.3, -19.96, 84.66, 110.2,
1439 113.2, 108.7, 92.89, 127.3, 139.3, 187, 288.5, 233.4, 225.3, 284.6,
1440 344.5, 246.2, 359.7, 324.1, 455, 457.1, 481, 459.8, 447.9, 407.5,
1441 399.7, 457.7, 470.4, 511.8, 545.9, 581, 574.1, 638.6, 685.6, 719.6,
1442 740.8, 817.2, 808.3, 839.7, 866.2, 873.2, 879.3, 886.3, 902, 912.7,
1443 927.7, 942.1, 967.1, 962.2, 961.8, 993.4, 1006, 1060, 1046, 1061,
1444 1036, 1060, 1062, 1084, 1048, 1063, 1098, 1093, 1089, 1117,
1445 1085, 1044, 1033, 1027, 1051, 1150, 1064, 1078, 1090, 1140,
1446 1119, 1097,
1447*/
1448
1449 -511.3, -69.91, 1090, -471.2, -612.4, -1690, -1192, -228, 133.9, 128.8,
1450 28.71, -190.6, -408.7, -326.6, -378.5, -507.3, 93.63, -531, -459.2, -21.83,
1451 -74.93, -121.7, -122.8, 285.2, 217.4, 366.3, 598.7, 341.8, 1078, 634.2,
1452 280.5, 430.7, 663.5, 596.4, 1307, 6.814, 992.6, 887, 967.6, 868,
1453 775.9, 1034, 1050, 1204, 1458, 1541, 2186, 1806, 1676, 1718,
1454 2416, 2204, 2197, 2496, 2371, 2370, 2330, 2318, 2379, 2434,
1455 2513, 2533, 2650, 2650, 2684, 2788, 2868, 3157, 3150, 3196,
1456 3162, 3055, 3008, 3133, 3176, 3212, 3356, 3324, 4170, 3320,
1457 3109, 2941, 2973, 2858, 3088, 3447, 3134, 3121, 3086, 3199,
1458 3115, 2979,
1459
1460  };
1461
1462  const G4double ntau[93] = {
1463     0.0,
1464 -251.1, 512.8, 1724, 649, 658.8, 594.1, 946.6, 969.2, 1154, 997.8,
1465 939.3, 775.5, 619.9, 848.3, 973.4, 1035, 1252, 698.8, 1043, 1080,
1466 957, 885.6, 772.1, 847.1, 799.7, 901.7, 1042, 880.8, 857.7, 968,
1467 850.4, 482.8, 781.4, 685, 1093, 847.4, 824.4, 751.5, 638, 489.2,
1468 266.5, 371, 319.2, 356.6, 424.9, 405, 390.8, 610.6, 404.3, 444.6,
1469 439, 579, 466.4, 520.5, 551.1, 441.6, 328.8, 264.3, 260.9, 274,
1470 264.8, 235.1, 290, 196, 178.2, 248.4, 224.3, 268.2, 239.5, 253.9,
1471 219.2, 172.7, 169.5, 199, 53.35, 65.78, 120.2, 77.13, 32.76, 45.53,
1472 -148, -331.4, -386.4, -430.8, -361.1, -108.3, -382.4, -400.1, -458.4, -430.8,
1473 -536.9, -627.6,
1474  };
1475
1476  for(i=0; i<93; i++) {
1477    MSH[i] = mm[i];
1478    TAU[i] = ntau[i];
1479  }
1480  const G4double coseb[14] = {0.0,0.05,0.1,0.15,0.2,0.3,0.4,0.5,0.6,0.8,
1481                              1.0,1.2,1.5,2.0};
1482  const G4double cosxi[14] = {1.0000, 0.9905, 0.9631, 0.9208, 0.8680,
1483                              0.7478, 0.6303, 0.5290, 0.4471, 0.3323,
1484                              0.2610, 0.2145, 0.1696, 0.1261};
1485  for(i=0; i<14; i++) {
1486    COSEB[i] = coseb[i];
1487    COSXI[i] = cosxi[i];
1488  }
1489
1490  for(i=1; i<100; i++) {
1491    Z23[i] = std::pow(G4double(i),0.23);
1492  }
1493}
1494
1495//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
1496
Note: See TracBrowser for help on using the repository browser.