Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/electromagnetic/utils/src/G4EmCorrections.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/electromagnetic/utils/src/G4EmCorrections.cc (Version 11.3.0) and /processes/electromagnetic/utils/src/G4EmCorrections.cc (Version 9.5)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
                                                   >>  26 // $Id: G4EmCorrections.cc,v 1.64 2010-12-02 12:19:40 vnivanch Exp $
                                                   >>  27 // GEANT4 tag $Name: not supported by cvs2svn $
 26 //                                                 28 //
 27 // -------------------------------------------     29 // -------------------------------------------------------------------
 28 //                                                 30 //
 29 // GEANT4 Class                                    31 // GEANT4 Class 
 30 //                                                 32 //
 31 // File name:     G4EmCorrections                  33 // File name:     G4EmCorrections
 32 //                                                 34 //
 33 // Author:        Vladimir Ivanchenko              35 // Author:        Vladimir Ivanchenko
 34 //                                                 36 //
 35 // Creation date: 13.01.2005                       37 // Creation date: 13.01.2005
 36 //                                                 38 //
 37 // Modifications:                                  39 // Modifications:
 38 // 05.05.2005 V.Ivanchenko Fix misprint in Mot     40 // 05.05.2005 V.Ivanchenko Fix misprint in Mott term
 39 // 26.11.2005 V.Ivanchenko Fix effective charg     41 // 26.11.2005 V.Ivanchenko Fix effective charge for heavy ions using original paper
 40 // 28.04.2006 V.Ivanchenko General cleanup, ad     42 // 28.04.2006 V.Ivanchenko General cleanup, add finite size corrections
 41 // 13.05.2006 V.Ivanchenko Add corrections for     43 // 13.05.2006 V.Ivanchenko Add corrections for ion stopping
 42 // 08.05.2007 V.Ivanchenko Use G4IonTable for      44 // 08.05.2007 V.Ivanchenko Use G4IonTable for ion mass instead of NistTable to avoid
 43 //                         division by zero        45 //                         division by zero
 44 // 29.02.2008 V.Ivanchenko use expantions for      46 // 29.02.2008 V.Ivanchenko use expantions for log and power function
 45 // 21.04.2008 Updated computations for ions (V     47 // 21.04.2008 Updated computations for ions (V.Ivanchenko)
 46 // 20.05.2008 Removed Finite Size correction (     48 // 20.05.2008 Removed Finite Size correction (V.Ivanchenko)
 47 // 19.04.2012 Fix reproducibility problem (A.R << 
 48 //                                                 49 //
 49 //                                                 50 //
 50 // Class Description:                              51 // Class Description:
 51 //                                                 52 //
 52 // This class provides calculation of EM corre     53 // This class provides calculation of EM corrections to ionisation
 53 //                                                 54 //
 54                                                    55 
 55 // -------------------------------------------     56 // -------------------------------------------------------------------
 56 //                                                 57 //
 57                                                    58 
 58 #include "G4EmCorrections.hh"                      59 #include "G4EmCorrections.hh"
 59 #include "G4PhysicalConstants.hh"              <<  60 #include "Randomize.hh"
 60 #include "G4SystemOfUnits.hh"                  << 
 61 #include "G4ParticleTable.hh"                      61 #include "G4ParticleTable.hh"
 62 #include "G4IonTable.hh"                           62 #include "G4IonTable.hh"
 63 #include "G4VEmModel.hh"                           63 #include "G4VEmModel.hh"
 64 #include "G4Proton.hh"                             64 #include "G4Proton.hh"
 65 #include "G4GenericIon.hh"                         65 #include "G4GenericIon.hh"
                                                   >>  66 #include "G4LPhysicsFreeVector.hh"
 66 #include "G4PhysicsLogVector.hh"                   67 #include "G4PhysicsLogVector.hh"
 67 #include "G4ProductionCutsTable.hh"                68 #include "G4ProductionCutsTable.hh"
 68 #include "G4MaterialCutsCouple.hh"                 69 #include "G4MaterialCutsCouple.hh"
 69 #include "G4AtomicShells.hh"                       70 #include "G4AtomicShells.hh"
 70 #include "G4Log.hh"                            <<  71 #include "G4LPhysicsFreeVector.hh"
 71 #include "G4Exp.hh"                            << 
 72 #include "G4Pow.hh"                            << 
 73                                                    72 
 74 //....oooOO0OOooo........oooOO0OOooo........oo     73 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 75                                                    74 
 76 namespace                                      <<  75 G4EmCorrections::G4EmCorrections()
 77 {                                                  76 {
 78   constexpr G4double inveplus = 1.0/CLHEP::epl <<  77   particle   = 0;
 79   constexpr G4double alpha2 = CLHEP::fine_stru <<  78   curParticle= 0;
 80 }                                              <<  79   material   = 0;
 81 const G4double G4EmCorrections::ZD[11] =       <<  80   curMaterial= 0;
 82     {0., 0., 0., 1.72, 2.09, 2.48, 2.82, 3.16, <<  81   curVector  = 0;
 83 const G4double G4EmCorrections::UK[20] = {1.99 <<  82   kinEnergy  = 0.0;
 84                            2.0817, 2.0945, 2.0 <<  83   ionLEModel = 0;
 85                            2.1197, 2.1246, 2.1 <<  84   ionHEModel = 0;
 86                            2.1310, 2.1310, 2.1 <<  85   nIons      = 0;
 87 const G4double G4EmCorrections::VK[20] = {8.34 <<  86   verbose    = 1;
 88                            8.3219, 8.3201, 8.3 <<  87   ncouples   = 0;
 89                            8.3191, 8.3199, 8.3 <<  88   massFactor = 1.0;
 90                            8.3244, 8.3264, 8.3 <<  89   eth        = 2.0*MeV;
 91 G4double G4EmCorrections::ZK[] = {0.0};        <<  90   nbinCorr   = 20;
 92 const G4double G4EmCorrections::Eta[29] = {0.0 <<  91   eCorrMin   = 25.*keV;
 93                             0.03,  0.04,  0.05 <<  92   eCorrMax   = 250.*MeV;
 94                             0.1,   0.15,  0.2, <<  93   nist = G4NistManager::Instance();
 95                             0.5,   0.6,   0.7, << 
 96                             1.2,   1.4,   1.5, << 
 97 G4double G4EmCorrections::CK[20][29];          << 
 98 G4double G4EmCorrections::CL[26][28];          << 
 99 const G4double G4EmCorrections::UL[] = {0.1215 << 
100                            1.4379, 1.5032, 1.5 << 
101                            1.8036, 1.8543, 1.8 << 
102                            1.9508, 1.9696, 1.9 << 
103                            2.0001, 2.0039, 2.0 << 
104 G4double G4EmCorrections::VL[] = {0.0};        << 
105 G4double G4EmCorrections::sWmaxBarkas = 10.0;  << 
106                                                << 
107 G4PhysicsFreeVector* G4EmCorrections::sBarkasC << 
108 G4PhysicsFreeVector* G4EmCorrections::sThetaK  << 
109 G4PhysicsFreeVector* G4EmCorrections::sThetaL  << 
110                                                << 
111 G4EmCorrections::G4EmCorrections(G4int verb)   << 
112   : verbose(verb)                              << 
113 {                                              << 
114   eth = 2.0*CLHEP::MeV;                        << 
115   eCorrMin = 25.*CLHEP::keV;                   << 
116   eCorrMax = 1.*CLHEP::GeV;                    << 
117                                                << 
118   ionTable = G4ParticleTable::GetParticleTable     94   ionTable = G4ParticleTable::GetParticleTable()->GetIonTable();
119   g4calc = G4Pow::GetInstance();               <<  95   BarkasCorr = ThetaK = ThetaL = 0;
120                                                <<  96   Initialise();
121   // fill vectors                              << 
122   if (nullptr == sBarkasCorr) {                << 
123     Initialise();                              << 
124     isInitializer = true;                      << 
125   }                                            << 
126 }                                                  97 }
127                                                    98 
128 //....oooOO0OOooo........oooOO0OOooo........oo     99 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
129                                                   100 
130 G4EmCorrections::~G4EmCorrections()               101 G4EmCorrections::~G4EmCorrections()
131 {                                                 102 {
132   for (G4int i=0; i<nIons; ++i) { delete stopD << 103   for(G4int i=0; i<nIons; ++i) {delete stopData[i];}
133   if (isInitializer) {                         << 104   delete BarkasCorr;
134     delete sBarkasCorr;                        << 105   delete ThetaK;
135     delete sThetaK;                            << 106   delete ThetaL;
136     delete sThetaL;                            << 
137     sBarkasCorr = sThetaK = sThetaL = nullptr; << 
138   }                                            << 
139 }                                              << 
140                                                << 
141 void G4EmCorrections::SetupKinematics(const G4 << 
142               const G4Material* mat,           << 
143               const G4double kineticEnergy)    << 
144 {                                              << 
145   if(kineticEnergy != kinEnergy || p != partic << 
146     particle = p;                              << 
147     kinEnergy = kineticEnergy;                 << 
148     mass  = p->GetPDGMass();                   << 
149     tau   = kineticEnergy / mass;              << 
150     gamma = 1.0 + tau;                         << 
151     bg2   = tau * (tau+2.0);                   << 
152     beta2 = bg2/(gamma*gamma);                 << 
153     beta  = std::sqrt(beta2);                  << 
154     ba2   = beta2/alpha2;                      << 
155     const G4double ratio = CLHEP::electron_mas << 
156     tmax  = 2.0*CLHEP::electron_mass_c2*bg2    << 
157       /(1. + 2.0*gamma*ratio + ratio*ratio);   << 
158     charge  = p->GetPDGCharge()*inveplus;      << 
159     if(charge > 1.5) { charge = effCharge.Effe << 
160     q2 = charge*charge;                        << 
161   }                                            << 
162   if(mat != material) {                        << 
163     material = mat;                            << 
164     theElementVector = material->GetElementVec << 
165     atomDensity  = material->GetAtomicNumDensi << 
166     numberOfElements = (G4int)material->GetNum << 
167   }                                            << 
168 }                                                 107 }
169                                                   108 
170 //....oooOO0OOooo........oooOO0OOooo........oo    109 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
171                                                   110 
172 G4double G4EmCorrections::HighOrderCorrections    111 G4double G4EmCorrections::HighOrderCorrections(const G4ParticleDefinition* p,
173                                                   112                                                const G4Material* mat,
174                                                << 113                  G4double e, G4double)
175 {                                                 114 {
176   // . Z^3 Barkas effect in the stopping power    115   // . Z^3 Barkas effect in the stopping power of matter for charged particles
177   //   J.C Ashley and R.H.Ritchie                 116   //   J.C Ashley and R.H.Ritchie
178   //   Physical review B Vol.5 No.7 1 April 19    117   //   Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
179   //   and ICRU49 report                          118   //   and ICRU49 report
180   //   valid for kineticEnergy < 0.5 MeV          119   //   valid for kineticEnergy < 0.5 MeV
181   //   Other corrections from S.P.Ahlen Rev. M    120   //   Other corrections from S.P.Ahlen Rev. Mod. Phys., Vol 52, No1, 1980
182                                                   121 
183   SetupKinematics(p, mat, e);                     122   SetupKinematics(p, mat, e);
184   if(tau <= 0.0) { return 0.0; }                  123   if(tau <= 0.0) { return 0.0; }
185                                                   124 
186   const G4double Barkas = BarkasCorrection(p,  << 125   G4double Barkas = BarkasCorrection (p, mat, e);
187   const G4double Bloch  = BlochCorrection(p, m << 126   G4double Bloch  = BlochCorrection (p, mat, e);
188   const G4double Mott = MottCorrection(p, mat, << 127   G4double Mott   = MottCorrection (p, mat, e);
189                                                   128 
190   G4double sum = 2.0*(Barkas + Bloch) + Mott;  << 129   G4double sum = (2.0*(Barkas + Bloch) + Mott);
191                                                   130 
192   if(verbose > 1) {                               131   if(verbose > 1) {
193     G4cout << "EmCorrections: E(MeV)= " << e/M    132     G4cout << "EmCorrections: E(MeV)= " << e/MeV << " Barkas= " << Barkas
194            << " Bloch= " << Bloch << " Mott= " << 133      << " Bloch= " << Bloch << " Mott= " << Mott 
195            << " Sum= " << sum << " q2= " << q2 << 134      << " Sum= " << sum << " q2= " << q2 << G4endl; 
196     G4cout << " ShellCorrection: " << ShellCor    135     G4cout << " ShellCorrection: " << ShellCorrection(p, mat, e) 
197            << " Kshell= " << KShellCorrection( << 136      << " Kshell= " << KShellCorrection(p, mat, e)
198            << " Lshell= " << LShellCorrection( << 137      << " Lshell= " << LShellCorrection(p, mat, e)
199            << "   " << mat->GetName() << G4end << 138      << "   " << mat->GetName() << G4endl;
200   }                                               139   }
201   sum *= material->GetElectronDensity()*q2*CLH << 140   sum *= material->GetElectronDensity() * q2 *  twopi_mc2_rcl2 /beta2;
202   return sum;                                     141   return sum;
203 }                                                 142 }
204                                                   143 
205 //....oooOO0OOooo........oooOO0OOooo........oo    144 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
206                                                   145 
207 G4double G4EmCorrections::IonBarkasCorrection(    146 G4double G4EmCorrections::IonBarkasCorrection(const G4ParticleDefinition* p,
208                                                << 147                 const G4Material* mat,
209                                                << 148                 G4double e)
210 {                                                 149 {
                                                   >> 150   // . Z^3 Barkas effect in the stopping power of matter for charged particles
                                                   >> 151   //   J.C Ashley and R.H.Ritchie
                                                   >> 152   //   Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
                                                   >> 153   //   and ICRU49 report
                                                   >> 154   //   valid for kineticEnergy < 0.5 MeV
                                                   >> 155 
211   SetupKinematics(p, mat, e);                     156   SetupKinematics(p, mat, e);
212   return 2.0*BarkasCorrection(p, mat, e, true) << 157   G4double res = 0.0;
213     material->GetElectronDensity() * q2 * CLHE << 158   if(tau > 0.0) 
                                                   >> 159     res = 2.0*BarkasCorrection(p, mat, e)*
                                                   >> 160       material->GetElectronDensity() * q2 *  twopi_mc2_rcl2 /beta2;
                                                   >> 161   return res;
214 }                                                 162 }
215                                                   163 
216 //....oooOO0OOooo........oooOO0OOooo........oo    164 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
217                                                   165 
218 G4double G4EmCorrections::ComputeIonCorrection    166 G4double G4EmCorrections::ComputeIonCorrections(const G4ParticleDefinition* p,
219                                                << 167             const G4Material* mat,
220                                                << 168             G4double e)
221 {                                                 169 {
222   // . Z^3 Barkas effect in the stopping power    170   // . Z^3 Barkas effect in the stopping power of matter for charged particles
223   //   J.C Ashley and R.H.Ritchie                 171   //   J.C Ashley and R.H.Ritchie
224   //   Physical review B Vol.5 No.7 1 April 19    172   //   Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
225   //   and ICRU49 report                          173   //   and ICRU49 report
226   //   valid for kineticEnergy < 0.5 MeV          174   //   valid for kineticEnergy < 0.5 MeV
227   //   Other corrections from S.P.Ahlen Rev. M    175   //   Other corrections from S.P.Ahlen Rev. Mod. Phys., Vol 52, No1, 1980
228   SetupKinematics(p, mat, e);                     176   SetupKinematics(p, mat, e);
229   if(tau <= 0.0) { return 0.0; }                  177   if(tau <= 0.0) { return 0.0; }
230                                                   178 
231   const G4double Barkas = BarkasCorrection (p, << 179   G4double Barkas = BarkasCorrection (p, mat, e);
232   const G4double Bloch  = BlochCorrection (p,  << 180   G4double Bloch  = BlochCorrection (p, mat, e);
233   const G4double Mott = MottCorrection (p, mat << 181   G4double Mott   = MottCorrection (p, mat, e);
234                                                   182 
235   G4double sum = 2.0*(Barkas*(charge - 1.0)/ch    183   G4double sum = 2.0*(Barkas*(charge - 1.0)/charge + Bloch) + Mott;
236                                                   184 
237   if(verbose > 1) {                               185   if(verbose > 1) {
238     G4cout << "EmCorrections: E(MeV)= " << e/M    186     G4cout << "EmCorrections: E(MeV)= " << e/MeV << " Barkas= " << Barkas
239            << " Bloch= " << Bloch << " Mott= " << 187      << " Bloch= " << Bloch << " Mott= " << Mott 
240            << " Sum= " << sum << G4endl;       << 188      << " Sum= " << sum << G4endl; 
241   }                                               189   }
242   sum *= material->GetElectronDensity() * q2 * << 190   sum *= material->GetElectronDensity() * q2 *  twopi_mc2_rcl2 /beta2;
243                                                   191 
244   if(verbose > 1) { G4cout << " Sum= " << sum     192   if(verbose > 1) { G4cout << " Sum= " << sum << G4endl; } 
245   return sum;                                     193   return sum;
246 }                                                 194 }
247                                                   195 
248 //....oooOO0OOooo........oooOO0OOooo........oo    196 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
249                                                   197 
250 G4double G4EmCorrections::IonHighOrderCorrecti    198 G4double G4EmCorrections::IonHighOrderCorrections(const G4ParticleDefinition* p,
251                                                << 199               const G4MaterialCutsCouple* couple,
252                                                << 200               G4double e)
253 {                                                 201 {
254   // . Z^3 Barkas effect in the stopping power << 202 // . Z^3 Barkas effect in the stopping power of matter for charged particles
255   //   J.C Ashley and R.H.Ritchie              << 203 //   J.C Ashley and R.H.Ritchie
256   //   Physical review B Vol.5 No.7 1 April 19 << 204 //   Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
257   //   and ICRU49 report                       << 205 //   and ICRU49 report
258   //   valid for kineticEnergy < 0.5 MeV       << 206 //   valid for kineticEnergy < 0.5 MeV
259   //   Other corrections from S.P.Ahlen Rev. M << 207 //   Other corrections from S.P.Ahlen Rev. Mod. Phys., Vol 52, No1, 1980
260                                                   208 
261   G4double sum = 0.0;                             209   G4double sum = 0.0;
262                                                   210 
263   if (nullptr != ionHEModel) {                 << 211   if(ionHEModel) {
264     G4int Z = G4lrint(p->GetPDGCharge()*invepl << 212     G4int Z = G4int(p->GetPDGCharge()/eplus + 0.5);
265     Z = std::max(std::min(Z, 99), 1);          << 213     if(Z >= 100)   Z = 99;
266                                                << 214     else if(Z < 1) Z = 1;
267     const G4double ethscaled = eth*p->GetPDGMa << 215 
268     const G4int ionPDG = p->GetPDGEncoding();  << 216     // fill vector
269     auto iter = thcorr.find(ionPDG);           << 217     if(thcorr[Z].size() == 0) {
270     if (iter == thcorr.end()) {  // Not found: << 218       thcorr[Z].resize(ncouples);
271       std::vector<G4double> v;                 << 219       G4double ethscaled = eth*p->GetPDGMass()/proton_mass_c2;
272       for(std::size_t i=0; i<ncouples; ++i){   << 220 
273         v.push_back(ethscaled*ComputeIonCorrec << 221       for(size_t i=0; i<ncouples; ++i) {
274       }                                        << 222   (thcorr[Z])[i] = ethscaled*ComputeIonCorrections(p, currmat[i], ethscaled);
275       thcorr.insert(std::pair< G4int, std::vec << 223   //G4cout << i << ". ethscaled= " << ethscaled 
276     }                                          << 224   //<< " corr= " << (thcorr[Z])[i]/ethscaled << G4endl;
277     G4double rest = 0.0;                       << 225       } 
278     iter = thcorr.find(ionPDG);                << 226     } 
279     if (iter != thcorr.end()) { rest = (iter-> << 227     G4double rest = (thcorr[Z])[couple->GetIndex()];
280                                                   228 
281     sum = ComputeIonCorrections(p,couple->GetM    229     sum = ComputeIonCorrections(p,couple->GetMaterial(),e) - rest/e;
282                                                   230 
283     if(verbose > 1) {                          << 231     if(verbose > 1) { G4cout << " Sum= " << sum << " dSum= " << rest/e << G4endl; } 
284       G4cout << " Sum= " << sum << " dSum= " < << 
285     }                                          << 
286   }                                               232   }
287   return sum;                                     233   return sum;
288 }                                                 234 }
289                                                   235 
290 //....oooOO0OOooo........oooOO0OOooo........oo    236 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
291                                                   237 
292 G4double G4EmCorrections::Bethe(const G4Partic    238 G4double G4EmCorrections::Bethe(const G4ParticleDefinition* p,
293                                 const G4Materi << 239         const G4Material* mat, 
294                                 const G4double << 240         G4double e)
295 {                                                 241 {
296   SetupKinematics(p, mat, e);                     242   SetupKinematics(p, mat, e);
297   const G4double eexc  = material->GetIonisati << 243   G4double eexc  = material->GetIonisation()->GetMeanExcitationEnergy();
298   const G4double eexc2 = eexc*eexc;            << 244   G4double eexc2 = eexc*eexc;
299   return 0.5*G4Log(2.0*electron_mass_c2*bg2*tm << 245   G4double dedx = 0.5*std::log(2.0*electron_mass_c2*bg2*tmax/eexc2)-beta2;
                                                   >> 246   return dedx;
300 }                                                 247 }
301                                                   248 
302 //....oooOO0OOooo........oooOO0OOooo........oo    249 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
303                                                   250 
304 G4double G4EmCorrections::SpinCorrection(const    251 G4double G4EmCorrections::SpinCorrection(const G4ParticleDefinition* p,
305                                          const << 252            const G4Material* mat,
306                                          const << 253            G4double e)
307 {                                                 254 {
308   SetupKinematics(p, mat, e);                     255   SetupKinematics(p, mat, e);
309   const G4double dedx  = 0.5*tmax/(kinEnergy + << 256   G4double dedx  = 0.5*tmax/(kinEnergy + mass);
310   return 0.5*dedx*dedx;                           257   return 0.5*dedx*dedx;
311 }                                                 258 }
312                                                   259 
313 //....oooOO0OOooo........oooOO0OOooo........oo    260 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
314                                                   261 
315 G4double G4EmCorrections:: KShellCorrection(co    262 G4double G4EmCorrections:: KShellCorrection(const G4ParticleDefinition* p,
316                                             co << 263               const G4Material* mat, 
317                                             co << 264               G4double e)
318 {                                                 265 {
319   SetupKinematics(p, mat, e);                     266   SetupKinematics(p, mat, e);
320   G4double term = 0.0;                            267   G4double term = 0.0;
321   for (G4int i = 0; i<numberOfElements; ++i) {    268   for (G4int i = 0; i<numberOfElements; ++i) {
322                                                   269 
323     G4double Z = (*theElementVector)[i]->GetZ(    270     G4double Z = (*theElementVector)[i]->GetZ();
324     G4int   iz = (*theElementVector)[i]->GetZa << 271     G4int   iz = G4int(Z);
325     G4double f = 1.0;                             272     G4double f = 1.0;
326     G4double Z2= (Z-0.3)*(Z-0.3);                 273     G4double Z2= (Z-0.3)*(Z-0.3);
327     if(1 == iz) {                                 274     if(1 == iz) {
328       f  = 0.5;                                   275       f  = 0.5;
329       Z2 = 1.0;                                   276       Z2 = 1.0;
330     }                                             277     }
331     const G4double eta = ba2/Z2;               << 278     G4double eta = ba2/Z2;
332     const G4double tet = (11 < iz) ? sThetaK-> << 279     G4double tet = Z2*(1. + Z2*0.25*alpha2);
                                                   >> 280     if(11 < iz) { tet = ThetaK->Value(Z); }
333     term += f*atomDensity[i]*KShell(tet,eta)/Z    281     term += f*atomDensity[i]*KShell(tet,eta)/Z;
334   }                                               282   }
335                                                   283 
336   term /= material->GetTotNbOfAtomsPerVolume()    284   term /= material->GetTotNbOfAtomsPerVolume();
337                                                   285 
338   return term;                                    286   return term;
339 }                                                 287 }
340                                                   288 
341 //....oooOO0OOooo........oooOO0OOooo........oo    289 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
342                                                   290 
343 G4double G4EmCorrections:: LShellCorrection(co    291 G4double G4EmCorrections:: LShellCorrection(const G4ParticleDefinition* p,
344                                             co << 292               const G4Material* mat, 
345                                             co << 293               G4double e)
346 {                                                 294 {
347   SetupKinematics(p, mat, e);                     295   SetupKinematics(p, mat, e);
348   G4double term = 0.0;                            296   G4double term = 0.0;
349   for (G4int i = 0; i<numberOfElements; ++i) {    297   for (G4int i = 0; i<numberOfElements; ++i) {
350                                                   298 
351     const G4double Z = (*theElementVector)[i]- << 299     G4double Z = (*theElementVector)[i]->GetZ();
352     const G4int iz = (*theElementVector)[i]->G << 300     G4int   iz = G4int(Z);
353     if(2 < iz) {                                  301     if(2 < iz) {
354       const G4double Zeff = (iz < 10) ? Z - ZD << 302       G4double Zeff = Z - ZD[10];
355       const G4double Z2= Zeff*Zeff;            << 303       if(iz < 10) { Zeff = Z - ZD[iz]; }
356       const G4double eta = ba2/Z2;             << 304       G4double Z2= Zeff*Zeff;
357       G4double tet = sThetaL->Value(Z);        << 305       G4double f = 0.125;
358       G4int nmax = std::min(4, G4AtomicShells: << 306       G4double eta = ba2/Z2;
359       for (G4int j=1; j<nmax; ++j) {           << 307       G4double tet = ThetaL->Value(Z);
                                                   >> 308       G4int nmax = std::min(4,G4AtomicShells::GetNumberOfShells(iz));
                                                   >> 309       for(G4int j=1; j<nmax; ++j) {
360         G4int ne = G4AtomicShells::GetNumberOf    310         G4int ne = G4AtomicShells::GetNumberOfElectrons(iz,j);
361         if (15 >= iz) {                        << 311   if(15 >= iz) {
362           tet = (3 > j) ? 0.25*Z2*(1.0 + 5*Z2* << 312     if(3 > j) { tet = 0.25*Z2*(1.0 + 5*Z2*alpha2/16.); }
363             0.25*Z2*(1.0 + Z2*alpha2/16.);     << 313     else      { tet = 0.25*Z2*(1.0 + Z2*alpha2/16.); }
364         }                                      << 314   }
365         //G4cout << " LShell: j= " << j << " n << 315   //G4cout << " LShell: j= " << j << " ne= " << ne << " e(eV)= " << e/eV
366         //       << " ThetaL= " << tet << G4en << 316   //       << " ThetaL= " << tet << G4endl;
367         term += 0.125*ne*atomDensity[i]*LShell << 317         term += f*ne*atomDensity[i]*LShell(tet,eta)/Z;
368       }                                           318       }
369     }                                             319     }
370   }                                               320   }
371                                                   321 
372   term /= material->GetTotNbOfAtomsPerVolume()    322   term /= material->GetTotNbOfAtomsPerVolume();
373                                                   323 
374   return term;                                    324   return term;
375 }                                                 325 }
376                                                   326 
377 //....oooOO0OOooo........oooOO0OOooo........oo    327 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
378                                                   328 
379 G4double G4EmCorrections::KShell(const G4doubl << 329 G4double G4EmCorrections::KShell(G4double tet, G4double eta)
380 {                                                 330 {
381   G4double corr = 0.0;                            331   G4double corr = 0.0;
382                                                   332 
383   static const G4double TheK[20] =             << 
384     {0.64, 0.65, 0.66, 0.68, 0.70, 0.72, 0.74, << 
385      0.80, 0.82, 0.84, 0.85, 0.86, 0.88, 0.90, << 
386                                                << 
387                                                << 
388   G4double x = tet;                               333   G4double x = tet;
389   G4int itet = 0;                                 334   G4int itet = 0;
390   G4int ieta = 0;                                 335   G4int ieta = 0;
391   if(tet < TheK[0]) {                             336   if(tet < TheK[0]) { 
392     x =  TheK[0];                                 337     x =  TheK[0]; 
393   } else if(tet > TheK[nK-1]) {                   338   } else if(tet > TheK[nK-1]) { 
394     x =  TheK[nK-1];                              339     x =  TheK[nK-1];
395     itet = nK-2;                                  340     itet = nK-2; 
396   } else {                                        341   } else { 
397     itet = Index(x, TheK, nK);                    342     itet = Index(x, TheK, nK);
398   }                                               343   }
399   // asymptotic case                           << 344   // assimptotic case
400   if(eta >= Eta[nEtaK-1]) {                       345   if(eta >= Eta[nEtaK-1]) {
401     corr =                                     << 346     corr = (Value(x, TheK[itet], TheK[itet+1], UK[itet], UK[itet+1]) + 
402       (Value(x, TheK[itet], TheK[itet+1], UK[i << 347             Value(x, TheK[itet], TheK[itet+1], VK[itet], VK[itet+1])/eta +
403        Value(x, TheK[itet], TheK[itet+1], VK[i << 348             Value(x, TheK[itet], TheK[itet+1], ZK[itet], ZK[itet+1])/(eta*eta))/eta;
404        Value(x, TheK[itet], TheK[itet+1], ZK[i << 
405   } else {                                        349   } else {
406     G4double y = eta;                             350     G4double y = eta;
407     if(eta < Eta[0]) {                            351     if(eta < Eta[0]) { 
408       y = Eta[0];                              << 352       y =  Eta[0]; 
409     } else {                                      353     } else { 
410       ieta = Index(y, Eta, nEtaK);                354       ieta = Index(y, Eta, nEtaK);
411     }                                             355     }
412     corr = Value2(x, y, TheK[itet], TheK[itet+    356     corr = Value2(x, y, TheK[itet], TheK[itet+1], Eta[ieta], Eta[ieta+1],
413                   CK[itet][ieta], CK[itet+1][i    357                   CK[itet][ieta], CK[itet+1][ieta], 
414                   CK[itet][ieta+1], CK[itet+1] << 358       CK[itet][ieta+1], CK[itet+1][ieta+1]);
415     //G4cout << "   x= " <<x<<" y= "<<y<<" tet    359     //G4cout << "   x= " <<x<<" y= "<<y<<" tet= " <<TheK[itet]
416     //           <<" "<< TheK[itet+1]<<" eta=  << 360     //     <<" "<< TheK[itet+1]<<" eta= "<< Eta[ieta]<<" "<< Eta[ieta+1]
417     //           <<" CK= " << CK[itet][ieta]<< << 361     //     <<" CK= " << CK[itet][ieta]<<" "<< CK[itet+1][ieta]
418     //           <<" "<< CK[itet][ieta+1]<<" " << 362     //     <<" "<< CK[itet][ieta+1]<<" "<< CK[itet+1][ieta+1]<<G4endl;
419   }                                               363   }
420   //G4cout << "Kshell:  tet= " << tet << " eta    364   //G4cout << "Kshell:  tet= " << tet << " eta= " << eta << "  C= " << corr
421   //         << " itet= " << itet << "  ieta=  << 365   //   << " itet= " << itet << "  ieta= " << ieta <<G4endl;
422   return corr;                                    366   return corr;
423 }                                                 367 }
424                                                   368 
425 //....oooOO0OOooo........oooOO0OOooo........oo    369 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
426                                                   370 
427 G4double G4EmCorrections::LShell(const G4doubl << 371 G4double G4EmCorrections::LShell(G4double tet, G4double eta)
428 {                                                 372 {
429   G4double corr = 0.0;                            373   G4double corr = 0.0;
430                                                   374 
431   static const G4double TheL[26] =             << 
432     {0.24, 0.26, 0.28, 0.30, 0.32,   0.34, 0.3 << 
433      0.42, 0.44, 0.45, 0.46, 0.48,   0.50, 0.5 << 
434      0.58, 0.60, 0.62, 0.64, 0.65,   0.66};    << 
435                                                << 
436   G4double x = tet;                               375   G4double x = tet;
437   G4int itet = 0;                                 376   G4int itet = 0;
438   G4int ieta = 0;                                 377   G4int ieta = 0;
439   if(tet < TheL[0]) {                             378   if(tet < TheL[0]) { 
440     x =  TheL[0];                                 379     x =  TheL[0]; 
441   } else if(tet > TheL[nL-1]) {                   380   } else if(tet > TheL[nL-1]) { 
442     x =  TheL[nL-1];                              381     x =  TheL[nL-1];
443     itet = nL-2;                                  382     itet = nL-2; 
444   } else {                                        383   } else { 
445     itet = Index(x, TheL, nL);                    384     itet = Index(x, TheL, nL);
446   }                                               385   }
447                                                   386 
448   // asymptotic case                           << 387   // assimptotic case
449   if(eta >= Eta[nEtaL-1]) {                       388   if(eta >= Eta[nEtaL-1]) {
450     corr = (Value(x, TheL[itet], TheL[itet+1],    389     corr = (Value(x, TheL[itet], TheL[itet+1], UL[itet], UL[itet+1])
451               + Value(x, TheL[itet], TheL[itet << 390         + Value(x, TheL[itet], TheL[itet+1], VL[itet], VL[itet+1])/eta
452             )/eta;                             << 391       )/eta;
453   } else {                                        392   } else {
454     G4double y = eta;                             393     G4double y = eta;
455     if(eta < Eta[0]) {                            394     if(eta < Eta[0]) { 
456       y =  Eta[0];                                395       y =  Eta[0]; 
457     } else {                                      396     } else { 
458       ieta = Index(y, Eta, nEtaL);                397       ieta = Index(y, Eta, nEtaL);
459     }                                             398     }
460     corr = Value2(x, y, TheL[itet], TheL[itet+    399     corr = Value2(x, y, TheL[itet], TheL[itet+1], Eta[ieta], Eta[ieta+1],
461                   CL[itet][ieta], CL[itet+1][i << 400       CL[itet][ieta], CL[itet+1][ieta], 
462                   CL[itet][ieta+1], CL[itet+1] << 401       CL[itet][ieta+1], CL[itet+1][ieta+1]);
463     //G4cout << "   x= " <<x<<" y= "<<y<<" tet    402     //G4cout << "   x= " <<x<<" y= "<<y<<" tet= " <<TheL[itet]
464     //           <<" "<< TheL[itet+1]<<" eta=  << 403     //     <<" "<< TheL[itet+1]<<" eta= "<< Eta[ieta]<<" "<< Eta[ieta+1]
465     //           <<" CL= " << CL[itet][ieta]<< << 404     //     <<" CL= " << CL[itet][ieta]<<" "<< CL[itet+1][ieta]
466     //           <<" "<< CL[itet][ieta+1]<<" " << 405     //     <<" "<< CL[itet][ieta+1]<<" "<< CL[itet+1][ieta+1]<<G4endl;
467   }                                               406   }
468   //G4cout<<"Lshell:  tet= "<<tet<<" eta= "<<e    407   //G4cout<<"Lshell:  tet= "<<tet<<" eta= "<<eta<<" itet= "<<itet
469   //        <<" ieta= "<<ieta<<"  Corr= "<<cor << 408   //  <<" ieta= "<<ieta<<"  Corr= "<<corr<<G4endl;
470   return corr;                                    409   return corr;
471 }                                                 410 }
472                                                   411 
473 //....oooOO0OOooo........oooOO0OOooo........oo    412 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
474                                                   413 
475 G4double G4EmCorrections::ShellCorrectionSTD(c    414 G4double G4EmCorrections::ShellCorrectionSTD(const G4ParticleDefinition* p,
476                                              c << 415                const G4Material* mat, 
477                                              c << 416                G4double e)
478 {                                                 417 {
479   SetupKinematics(p, mat, e);                     418   SetupKinematics(p, mat, e);
480   G4double taulim= 8.0*MeV/mass;                  419   G4double taulim= 8.0*MeV/mass;
481   G4double bg2lim= taulim * (taulim+2.0);         420   G4double bg2lim= taulim * (taulim+2.0);
482                                                   421 
483   G4double* shellCorrectionVector =               422   G4double* shellCorrectionVector =
484             material->GetIonisation()->GetShel    423             material->GetIonisation()->GetShellCorrectionVector();
485   G4double sh = 0.0;                              424   G4double sh = 0.0;
486   G4double x  = 1.0;                              425   G4double x  = 1.0;
487   G4double taul  = material->GetIonisation()->    426   G4double taul  = material->GetIonisation()->GetTaul();
488                                                   427 
489   if ( bg2 >= bg2lim ) {                          428   if ( bg2 >= bg2lim ) {
490     for (G4int k=0; k<3; ++k) {                << 429     for (G4int k=0; k<3; k++) {
491         x *= bg2 ;                                430         x *= bg2 ;
492         sh += shellCorrectionVector[k]/x;         431         sh += shellCorrectionVector[k]/x;
493     }                                             432     }
494                                                   433 
495   } else {                                        434   } else {
496     for (G4int k=0; k<3; ++k) {                << 435     for (G4int k=0; k<3; k++) {
497         x *= bg2lim ;                             436         x *= bg2lim ;
498         sh += shellCorrectionVector[k]/x;         437         sh += shellCorrectionVector[k]/x;
499     }                                             438     }
500     sh *= G4Log(tau/taul)/G4Log(taulim/taul);  << 439     sh *= std::log(tau/taul)/std::log(taulim/taul);
501   }                                               440   }
502   sh *= 0.5;                                      441   sh *= 0.5;
503   return sh;                                      442   return sh;
504 }                                                 443 }
505                                                   444 
506                                                   445 
507 //....oooOO0OOooo........oooOO0OOooo........oo    446 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
508                                                   447 
509 G4double G4EmCorrections::ShellCorrection(cons    448 G4double G4EmCorrections::ShellCorrection(const G4ParticleDefinition* p,
510                                           cons << 449             const G4Material* mat,
511                                           cons << 450             G4double ekin)
512 {                                                 451 {
513   SetupKinematics(p, mat, ekin);                  452   SetupKinematics(p, mat, ekin);
                                                   >> 453 
514   G4double term = 0.0;                            454   G4double term = 0.0;
515   //G4cout << "### G4EmCorrections::ShellCorre    455   //G4cout << "### G4EmCorrections::ShellCorrection " << mat->GetName()
516   //       << "   " << ekin/MeV << " MeV " <<  << 456   //   << "   " << ekin/MeV << " MeV " << G4endl;
517   for (G4int i = 0; i<numberOfElements; ++i) {    457   for (G4int i = 0; i<numberOfElements; ++i) {
518                                                   458 
519     G4double res = 0.0;                           459     G4double res = 0.0;
520     G4double res0 = 0.0;                          460     G4double res0 = 0.0;
521     const G4double Z = (*theElementVector)[i]- << 461     G4double Z = (*theElementVector)[i]->GetZ();
522     const G4int iz = (*theElementVector)[i]->G << 462     G4int   iz = G4int(Z);
523     G4double Z2= (Z-0.3)*(Z-0.3);                 463     G4double Z2= (Z-0.3)*(Z-0.3);
524     G4double f = 1.0;                             464     G4double f = 1.0;
525     if(1 == iz) {                                 465     if(1 == iz) {
526       f  = 0.5;                                   466       f  = 0.5;
527       Z2 = 1.0;                                   467       Z2 = 1.0;
528     }                                             468     }
529     G4double eta = ba2/Z2;                        469     G4double eta = ba2/Z2;
530     G4double tet = (11 < iz) ? sThetaK->Value( << 470     G4double tet = Z2*(1. + Z2*0.25*alpha2);
                                                   >> 471     if(11 < iz) { tet = ThetaK->Value(Z); }
531     res0 = f*KShell(tet,eta);                     472     res0 = f*KShell(tet,eta);
532     res += res0;                                  473     res += res0;
533     //G4cout << " Z= " << iz << " Shell 0" <<     474     //G4cout << " Z= " << iz << " Shell 0" << " tet= " << tet 
534     //       << " eta= " << eta << "  resK= "     475     //       << " eta= " << eta << "  resK= " << res0 << G4endl;
535                                                << 
536     if(2 < iz) {                                  476     if(2 < iz) {
537       const G4double Zeff = (iz < 10) ? Z - ZD << 477       G4double Zeff = Z - ZD[10];
                                                   >> 478       if(iz < 10) { Zeff = Z - ZD[iz]; }
538       Z2= Zeff*Zeff;                              479       Z2= Zeff*Zeff;
539       eta = ba2/Z2;                               480       eta = ba2/Z2;
540       tet = sThetaL->Value(Z);                 << 
541       f = 0.125;                                  481       f = 0.125;
542       const G4int ntot = G4AtomicShells::GetNu << 482       tet = ThetaL->Value(Z);
543       const G4int nmax = std::min(4, ntot);    << 483       G4int ntot = G4AtomicShells::GetNumberOfShells(iz);
                                                   >> 484       G4int nmax = std::min(4, ntot);
544       G4double norm   = 0.0;                      485       G4double norm   = 0.0;
545       G4double eshell = 0.0;                      486       G4double eshell = 0.0;
546       for(G4int j=1; j<nmax; ++j) {               487       for(G4int j=1; j<nmax; ++j) {
547         G4int ne = G4AtomicShells::GetNumberOf    488         G4int ne = G4AtomicShells::GetNumberOfElectrons(iz,j);
548         if(15 >= iz) {                         << 489   if(15 >= iz) {
549           tet = (3 > j) ? 0.25*Z2*(1.0 + 5*Z2* << 490     if(3 > j) { tet = 0.25*Z2*(1.0 + 5*Z2*alpha2/16.); }
550       0.25*Z2*(1.0 + Z2*alpha2/16.);           << 491     else      { tet = 0.25*Z2*(1.0 + Z2*alpha2/16.); }
551         }                                      << 492   }
552         norm   += ne;                          << 493   norm   += ne;
553         eshell += tet*ne;                      << 494   eshell += tet*ne;
554         res0 = f*ne*LShell(tet,eta);              495         res0 = f*ne*LShell(tet,eta);
555         res += res0;                              496         res += res0;
556         //G4cout << " Zeff= " << Zeff << " She << 497   //G4cout << " Z= " << iz << " Shell " << j << " Ne= " << ne
557         //       << " tet= " << tet << " eta=  << 498   //       << " tet= " << tet << " eta= " << eta 
558         //       << "  resL= " << res0 << G4en << 499   //       << "  resL= " << res0 << G4endl;
559       }                                           500       }
560       if(ntot > nmax) {                           501       if(ntot > nmax) {
561   if (norm > 0.0) { norm = 1.0/norm; }         << 502   eshell /= norm;
562         eshell *= norm;                        << 503   // Add M-shell
563                                                << 
564   static const G4double HM[53] = {             << 
565     12.0, 12.0, 12.0, 12.0, 11.9, 11.7, 11.5,  << 
566     10.0,  9.51, 8.97, 8.52, 8.03, 7.46, 6.95, << 
567     5.61,  5.39, 5.19, 5.01, 4.86, 4.72, 4.62, << 
568     4.32,  4.26, 4.20, 4.15, 4.1,  4.04, 4.00, << 
569     3.90,  3.89, 3.89, 3.88, 3.88, 3.88, 3.88, << 
570     3.90, 3.92, 3.93 };                        << 
571   static const G4double HN[31] = {             << 
572     75.5, 61.9, 52.2, 45.1, 39.6, 35.4, 31.9,  << 
573     24.5, 23.6, 22.7, 22.0, 21.4, 20.9, 20.5,  << 
574     19.5, 19.3, 19.2, 19.1, 18.4, 18.8, 18.7,  << 
575     18.2};                                     << 
576                                                << 
577         // Add M-shell                         << 
578         if(28 > iz) {                             504         if(28 > iz) {
579           res += f*(iz - 10)*LShell(eshell,HM[    505           res += f*(iz - 10)*LShell(eshell,HM[iz-11]*eta);
580         } else if(63 > iz) {                   << 506   } else if(63 > iz) { 
581           res += f*18*LShell(eshell,HM[iz-11]*    507           res += f*18*LShell(eshell,HM[iz-11]*eta);
582         } else {                               << 508   } else {
583           res += f*18*LShell(eshell,HM[52]*eta    509           res += f*18*LShell(eshell,HM[52]*eta);
584         }                                      << 510   }
585         // Add N-shell                         << 511   // Add N-shell
586         if(32 < iz) {                             512         if(32 < iz) {
587           if(60 > iz) {                           513           if(60 > iz) {
588             res += f*(iz - 28)*LShell(eshell,H << 514       res += f*(iz - 28)*LShell(eshell,HN[iz-33]*eta);
589           } else if(63 > iz) {                 << 515     } else if(63 > iz) {
590             res += 4*LShell(eshell,HN[iz-33]*e << 516       res += 4*LShell(eshell,HN[iz-33]*eta);
591           } else {                             << 517     } else {
592             res += 4*LShell(eshell,HN[30]*eta) << 518       res += 4*LShell(eshell,HN[30]*eta);
                                                   >> 519     }
                                                   >> 520     // Add O-P-shells
                                                   >> 521     if(60 < iz) {
                                                   >> 522       res += f*(iz - 60)*LShell(eshell,150*eta);
593           }                                       523           }
594           // Add O-P-shells                    << 524   }
595           if(60 < iz) {                        << 
596             res += f*(iz - 60)*LShell(eshell,1 << 
597           }                                    << 
598         }                                      << 
599       }                                           525       }
600     }                                             526     }
601     term += res*atomDensity[i]/Z;                 527     term += res*atomDensity[i]/Z;
602   }                                               528   }
603                                                   529 
604   term /= material->GetTotNbOfAtomsPerVolume()    530   term /= material->GetTotNbOfAtomsPerVolume();
605   //G4cout << "##Shell Correction=" << term << << 531   //G4cout << "#     Shell Correction= " << term << G4endl;
606   return term;                                    532   return term;
607 }                                                 533 }
608                                                   534 
609 //....oooOO0OOooo........oooOO0OOooo........oo    535 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
610                                                   536 
611 G4double G4EmCorrections::DensityCorrection(co    537 G4double G4EmCorrections::DensityCorrection(const G4ParticleDefinition* p,
612                                             co << 538               const G4Material* mat,
613                                             co << 539               G4double e)
614 {                                                 540 {
615   SetupKinematics(p, mat, e);                     541   SetupKinematics(p, mat, e);
616                                                   542 
617   G4double cden  = material->GetIonisation()->    543   G4double cden  = material->GetIonisation()->GetCdensity();
618   G4double mden  = material->GetIonisation()->    544   G4double mden  = material->GetIonisation()->GetMdensity();
619   G4double aden  = material->GetIonisation()->    545   G4double aden  = material->GetIonisation()->GetAdensity();
620   G4double x0den = material->GetIonisation()->    546   G4double x0den = material->GetIonisation()->GetX0density();
621   G4double x1den = material->GetIonisation()->    547   G4double x1den = material->GetIonisation()->GetX1density();
622                                                   548 
                                                   >> 549   G4double twoln10 = 2.0*std::log(10.0);
623   G4double dedx = 0.0;                            550   G4double dedx = 0.0;
624                                                   551 
625   // density correction                           552   // density correction
626   static const G4double twoln10 = 2.0*G4Log(10 << 553   G4double x = std::log(bg2)/twoln10;
627   G4double x = G4Log(bg2)/twoln10;             << 
628   if ( x >= x0den ) {                             554   if ( x >= x0den ) {
629     dedx = twoln10*x - cden ;                     555     dedx = twoln10*x - cden ;
630     if ( x < x1den ) dedx += aden*G4Exp(G4Log( << 556     if ( x < x1den ) dedx += aden*std::pow((x1den-x),mden) ;
631   }                                               557   }
632                                                   558 
633   return dedx;                                    559   return dedx;
634 }                                                 560 }
635                                                   561 
636 //....oooOO0OOooo........oooOO0OOooo........oo    562 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
637                                                   563 
638 G4double G4EmCorrections::BarkasCorrection(con    564 G4double G4EmCorrections::BarkasCorrection(const G4ParticleDefinition* p,
639                                            con << 565              const G4Material* mat, 
640                                            con << 566              G4double e)
641                                            con << 
642 {                                                 567 {
643   // . Z^3 Barkas effect in the stopping power    568   // . Z^3 Barkas effect in the stopping power of matter for charged particles
644   //   J.C Ashley and R.H.Ritchie                 569   //   J.C Ashley and R.H.Ritchie
645   //   Physical review B Vol.5 No.7 1 April 19    570   //   Physical review B Vol.5 No.7 1 April 1972 pp. 2393-2397
646   //   valid for kineticEnergy > 0.5 MeV          571   //   valid for kineticEnergy > 0.5 MeV
647                                                   572 
648   if (!isInitialized) { SetupKinematics(p, mat << 573   SetupKinematics(p, mat, e);
649   G4double BarkasTerm = 0.0;                      574   G4double BarkasTerm = 0.0;
650                                                   575 
651   for (G4int i = 0; i<numberOfElements; ++i) {    576   for (G4int i = 0; i<numberOfElements; ++i) {
652                                                   577 
653     const G4int iz = (*theElementVector)[i]->G << 578     G4double Z = (*theElementVector)[i]->GetZ();
                                                   >> 579     G4int iz = G4int(Z);
654     if(iz == 47) {                                580     if(iz == 47) {
655       BarkasTerm += atomDensity[i]*0.006812*G4 << 581       BarkasTerm += atomDensity[i]*0.006812*std::pow(beta,-0.9);
656     } else if(iz >= 64) {                         582     } else if(iz >= 64) {
657       BarkasTerm += atomDensity[i]*0.002833*G4 << 583       BarkasTerm += atomDensity[i]*0.002833*std::pow(beta,-1.2);
658     } else {                                      584     } else {    
659                                                   585 
660       const G4double Z = (*theElementVector)[i << 586       G4double X = ba2 / Z;
661       const G4double X = ba2 / Z;              << 
662       G4double b = 1.3;                           587       G4double b = 1.3;
663       if(1 == iz) { b = (material->GetName() = << 588       if(1 == iz) {
                                                   >> 589   if(material->GetName() == "G4_lH2") { b = 0.6; }
                                                   >> 590   else                                { b = 1.8; }
                                                   >> 591       }
664       else if(2 == iz)  { b = 0.6; }              592       else if(2 == iz)  { b = 0.6; }
665       else if(10 >= iz) { b = 1.8; }              593       else if(10 >= iz) { b = 1.8; }
666       else if(17 >= iz) { b = 1.4; }              594       else if(17 >= iz) { b = 1.4; }
667       else if(18 == iz) { b = 1.8; }              595       else if(18 == iz) { b = 1.8; }
668       else if(25 >= iz) { b = 1.4; }              596       else if(25 >= iz) { b = 1.4; }
669       else if(50 >= iz) { b = 1.35;}              597       else if(50 >= iz) { b = 1.35;}
670                                                   598 
671       const G4double W = b/std::sqrt(X);       << 599       G4double W = b/std::sqrt(X);
672                                                   600 
673       G4double val = sBarkasCorr->Value(W, idx << 601       G4double val = BarkasCorr->Value(W);
674       if (W > sWmaxBarkas) { val *= (sWmaxBark << 602       if(W > BarkasCorr->Energy(46)) { 
                                                   >> 603   val *= BarkasCorr->Energy(46)/W; 
                                                   >> 604       } 
675       //    G4cout << "i= " << i << " b= " <<     605       //    G4cout << "i= " << i << " b= " << b << " W= " << W 
676       // << " Z= " << Z << " X= " << X << " va    606       // << " Z= " << Z << " X= " << X << " val= " << val<< G4endl;
677       BarkasTerm += val*atomDensity[i] / (std:    607       BarkasTerm += val*atomDensity[i] / (std::sqrt(Z*X)*X);
678     }                                             608     }
679   }                                               609   }
680                                                   610 
681   BarkasTerm *= 1.29*charge/material->GetTotNb    611   BarkasTerm *= 1.29*charge/material->GetTotNbOfAtomsPerVolume();
682                                                   612 
                                                   >> 613   // temporary protection
                                                   >> 614   //if(charge < -7.0 ) { BarkasTerm *= (-7.0/charge); }
                                                   >> 615 
683   return BarkasTerm;                              616   return BarkasTerm;
684 }                                                 617 }
685                                                   618 
686 //....oooOO0OOooo........oooOO0OOooo........oo    619 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
687                                                   620 
688 G4double G4EmCorrections::BlochCorrection(cons    621 G4double G4EmCorrections::BlochCorrection(const G4ParticleDefinition* p,
689                                           cons << 622             const G4Material* mat,
690                                           cons << 623             G4double e)
691                                           cons << 
692 {                                                 624 {
693   if (!isInitialized) { SetupKinematics(p, mat << 625   SetupKinematics(p, mat, e);
694                                                   626 
695   G4double y2 = q2/ba2;                           627   G4double y2 = q2/ba2;
696                                                   628 
697   G4double term = 1.0/(1.0 + y2);                 629   G4double term = 1.0/(1.0 + y2);
698   G4double del;                                   630   G4double del;
699   G4double j = 1.0;                               631   G4double j = 1.0;
700   do {                                            632   do {
701     j += 1.0;                                     633     j += 1.0;
702     del = 1.0/(j* (j*j + y2));                    634     del = 1.0/(j* (j*j + y2));
703     term += del;                                  635     term += del;
704     // Loop checking, 03-Aug-2015, Vladimir Iv << 
705   } while (del > 0.01*term);                      636   } while (del > 0.01*term);
706                                                   637 
707   return -y2*term;                             << 638   G4double res = -y2*term;
                                                   >> 639   // temporary protection
                                                   >> 640   //if(q2 > 49. && res < -0.2) { res = -0.2; }
                                                   >> 641 
                                                   >> 642   return res;
708 }                                                 643 }
709                                                   644 
710 //....oooOO0OOooo........oooOO0OOooo........oo    645 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
711                                                   646 
712 G4double G4EmCorrections::MottCorrection(const    647 G4double G4EmCorrections::MottCorrection(const G4ParticleDefinition* p,
713                                          const << 648            const G4Material* mat, 
714                                          const << 649            G4double e)
715                                          const << 
716 {                                                 650 {
717   if (!isInitialized) { SetupKinematics(p, mat << 651   SetupKinematics(p, mat, e);
718   return CLHEP::pi*CLHEP::fine_structure_const << 652   G4double mterm = CLHEP::pi*fine_structure_const*beta*charge;
                                                   >> 653   return mterm;
719 }                                                 654 }
720                                                   655 
721 //....oooOO0OOooo........oooOO0OOooo........oo    656 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
722                                                   657 
723 G4double                                       << 658 G4double G4EmCorrections::NuclearDEDX(const G4ParticleDefinition* p,
724 G4EmCorrections::EffectiveChargeCorrection(con << 659               const G4Material* mat,
725                                            con << 660               G4double e,
726                                            con << 661               G4bool fluct)
727 {                                                 662 {
728   G4double factor = 1.0;                       << 663   G4double nloss = 0.0;
729   if(p->GetPDGCharge() <= 2.5*CLHEP::eplus ||  << 664   if(e <= 0.0) return nloss; 
                                                   >> 665   SetupKinematics(p, mat, e);
                                                   >> 666 
                                                   >> 667   lossFlucFlag = fluct;
                                                   >> 668 
                                                   >> 669   // Projectile nucleus
                                                   >> 670   G4double z1 = std::fabs(particle->GetPDGCharge()/eplus);
                                                   >> 671   G4double m1 = mass/amu_c2;
                                                   >> 672 
                                                   >> 673   //  loop for the elements in the material
                                                   >> 674   for (G4int iel=0; iel<numberOfElements; iel++) {
                                                   >> 675     const G4Element* element = (*theElementVector)[iel] ;
                                                   >> 676     G4double z2 = element->GetZ();
                                                   >> 677     G4double m2 = element->GetA()*mole/g ;
                                                   >> 678     nloss += (NuclearStoppingPower(kinEnergy, z1, z2, m1, m2))
                                                   >> 679            * atomDensity[iel] ;
                                                   >> 680   }
                                                   >> 681   nloss *= theZieglerFactor;
                                                   >> 682   return nloss;
                                                   >> 683 }
                                                   >> 684 
                                                   >> 685 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
                                                   >> 686 
                                                   >> 687 G4double G4EmCorrections::NuclearStoppingPower(G4double kineticEnergy,
                                                   >> 688                                                G4double z1, G4double z2,
                                                   >> 689                                                G4double m1, G4double m2)
                                                   >> 690 {
                                                   >> 691   G4double energy = kineticEnergy/keV ;  // energy in keV
                                                   >> 692   G4double nloss = 0.0;
730                                                   693   
                                                   >> 694   G4double rm;
                                                   >> 695   if(z1 > 1.5) rm = (m1 + m2) * ( Z23[G4int(z1)] + Z23[G4int(z2)] ) ;
                                                   >> 696   else         rm = (m1 + m2) * nist->GetZ13(G4int(z2));
                                                   >> 697 
                                                   >> 698   G4double er = 32.536 * m2 * energy / ( z1 * z2 * rm ) ;  // reduced energy
                                                   >> 699 
                                                   >> 700   if (er >= ed[0])       nloss = a[0];
                                                   >> 701   else {
                                                   >> 702     // the table is inverse in energy
                                                   >> 703     for (G4int i=102; i>=0; i--)
                                                   >> 704     {
                                                   >> 705       if (er <= ed[i]) {
                                                   >> 706   nloss = (a[i] - a[i+1])*(er - ed[i+1])/(ed[i] - ed[i+1]) + a[i+1];
                                                   >> 707   break;
                                                   >> 708       }
                                                   >> 709     }
                                                   >> 710   }
                                                   >> 711 
                                                   >> 712   // Stragling
                                                   >> 713   if(lossFlucFlag) {
                                                   >> 714     //    G4double sig = 4.0 * m1 * m2 / ((m1 + m2)*(m1 + m2)*
                                                   >> 715     //              (4.0 + 0.197*std::pow(er,-1.6991)+6.584*std::pow(er,-1.0494))) ;
                                                   >> 716     G4double sig = 4.0 * m1 * m2 / ((m1 + m2)*(m1 + m2)*
                                                   >> 717             (4.0 + 0.197/(er*er) + 6.584/er));
                                                   >> 718 
                                                   >> 719     nloss *= G4RandGauss::shoot(1.0,sig) ;
                                                   >> 720   }
                                                   >> 721    
                                                   >> 722   nloss *= 8.462 * z1 * z2 * m1 / rm ; // Return to [ev/(10^15 atoms/cm^2]
                                                   >> 723 
                                                   >> 724   if ( nloss < 0.0) nloss = 0.0 ;
                                                   >> 725 
                                                   >> 726   return nloss;
                                                   >> 727 }
                                                   >> 728 
                                                   >> 729 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
                                                   >> 730 
                                                   >> 731 G4double G4EmCorrections::EffectiveChargeCorrection(const G4ParticleDefinition* p,
                                                   >> 732                 const G4Material* mat,
                                                   >> 733                 G4double ekin)
                                                   >> 734 {
                                                   >> 735   G4double factor = 1.0;
                                                   >> 736   if(p->GetPDGCharge() <= 2.5*eplus || nIons <= 0) return factor;
                                                   >> 737   /*
731   if(verbose > 1) {                               738   if(verbose > 1) {
732     G4cout << "EffectiveChargeCorrection: " <<    739     G4cout << "EffectiveChargeCorrection: " << p->GetParticleName() 
733            << " in " << mat->GetName()         << 740      << " in " << mat->GetName()
734            << " ekin(MeV)= " << ekin/MeV << G4    741            << " ekin(MeV)= " << ekin/MeV << G4endl;
735   }                                               742   }
736                                                << 743   */
737   if(p != curParticle || mat != curMaterial) {    744   if(p != curParticle || mat != curMaterial) {
738     curParticle = p;                              745     curParticle = p;
739     curMaterial = mat;                            746     curMaterial = mat;
740     curVector   = nullptr;                     << 747     curVector   = 0;
741     currentZ = p->GetAtomicNumber();              748     currentZ = p->GetAtomicNumber();
742     if(verbose > 1) {                             749     if(verbose > 1) {
743       G4cout << "G4EmCorrections::EffectiveCha    750       G4cout << "G4EmCorrections::EffectiveChargeCorrection: Zion= " 
744              << currentZ << " Aion= " << p->Ge << 751        << currentZ << " Aion= " << p->GetPDGMass()/amu_c2 << G4endl;
745     }                                             752     }
746     massFactor = CLHEP::proton_mass_c2/p->GetP << 753     massFactor = proton_mass_c2/p->GetPDGMass();
747     idx = -1;                                     754     idx = -1;
748                                                   755 
749     for(G4int i=0; i<nIons; ++i) {                756     for(G4int i=0; i<nIons; ++i) {
750       if(materialList[i] == mat && currentZ ==    757       if(materialList[i] == mat && currentZ == Zion[i]) {
751         idx = i;                                  758         idx = i;
752         break;                                    759         break;
753       }                                           760       }
754     }                                             761     }
755     //G4cout << " idx= " << idx << " dz= " <<  << 762     //    G4cout << " idx= " << idx << " dz= " << G4endl;
756     if(idx >= 0) {                                763     if(idx >= 0) {
757       if(nullptr == ionList[idx]) { BuildCorre << 764       if(!ionList[idx]) BuildCorrectionVector(); 
758       curVector = stopData[idx];               << 765       if(ionList[idx])  curVector = stopData[idx];
759     } else {                                   << 766     } else { return factor; }
760       return factor;                           << 
761     }                                          << 
762   }                                               767   }
763   if(nullptr != curVector) {                   << 768   if(curVector) {
764     factor = curVector->Value(ekin*massFactor)    769     factor = curVector->Value(ekin*massFactor);
765     if(verbose > 1) {                             770     if(verbose > 1) {
766       G4cout << "E= " << ekin << " factor= " <    771       G4cout << "E= " << ekin << " factor= " << factor << " massfactor= " 
767              << massFactor << G4endl;          << 772        << massFactor << G4endl;
768     }                                             773     }
769   }                                               774   }
770   return factor;                                  775   return factor;
771 }                                                 776 }
772                                                   777 
773 //....oooOO0OOooo........oooOO0OOooo........oo    778 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
774                                                   779 
775 void G4EmCorrections::AddStoppingData(const G4 << 780 void G4EmCorrections::AddStoppingData(G4int Z, G4int A,
776                                       const G4 << 781               const G4String& mname,
777                                       G4Physic << 782               G4PhysicsVector* dVector)
778 {                                                 783 {
779   G4int i = 0;                                    784   G4int i = 0;
780   for(; i<nIons; ++i) {                           785   for(; i<nIons; ++i) {
781     if(Z == Zion[i] && A == Aion[i] && mname =    786     if(Z == Zion[i] && A == Aion[i] && mname == materialName[i]) break;
782   }                                               787   }
783   if(i == nIons) {                                788   if(i == nIons) {
784     Zion.push_back(Z);                            789     Zion.push_back(Z);
785     Aion.push_back(A);                            790     Aion.push_back(A);
786     materialName.push_back(mname);                791     materialName.push_back(mname);
787     materialList.push_back(nullptr);           << 792     materialList.push_back(0);
788     ionList.push_back(nullptr);                << 793     ionList.push_back(0);
789     stopData.push_back(dVector);                  794     stopData.push_back(dVector);
790     nIons++;                                      795     nIons++;
791     if(verbose > 1) {                          << 796     if(verbose>1) {
792       G4cout << "AddStoppingData Z= " << Z <<     797       G4cout << "AddStoppingData Z= " << Z << " A= " << A << " " << mname
793              << "  idx= " << i << G4endl;      << 798        << "  idx= " << i << G4endl;
794     }                                             799     }
795   }                                               800   }
796 }                                                 801 }
797                                                   802 
798 //....oooOO0OOooo........oooOO0OOooo........oo    803 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
799                                                   804 
800 void G4EmCorrections::BuildCorrectionVector()     805 void G4EmCorrections::BuildCorrectionVector()
801 {                                                 806 {
802   if(nullptr == ionLEModel || nullptr == ionHE << 807   if(!ionLEModel || !ionHEModel) {
803     return;                                       808     return;
804   }                                               809   }
805                                                   810 
806   const G4ParticleDefinition* ion = curParticl    811   const G4ParticleDefinition* ion = curParticle;
807   const G4ParticleDefinition* gion = G4Generic << 
808   G4int Z = Zion[idx];                            812   G4int Z = Zion[idx];
809   G4double A = Aion[idx];                      << 813   if(currentZ != Z) {
                                                   >> 814     ion = G4ParticleTable::GetParticleTable()->FindIon(Z, Aion[idx], 0, Z);
                                                   >> 815   }
                                                   >> 816   //G4cout << "BuildCorrectionVector: idx= " << idx << " Z= " << Z 
                                                   >> 817   //   << " curZ= " << currentZ << G4endl;
                                                   >> 818 
                                                   >> 819   // G4double A = nist->GetAtomicMassAmu(Z);
                                                   >> 820   G4double A = G4double(ion->GetBaryonNumber());
810   G4PhysicsVector* v = stopData[idx];             821   G4PhysicsVector* v = stopData[idx];
811                                                << 822     
812   if(verbose > 1) {                            << 823   const G4ParticleDefinition* p = G4GenericIon::GenericIon();
                                                   >> 824   G4double massRatio = proton_mass_c2/ion->GetPDGMass();
                                                   >> 825 
                                                   >> 826   if(verbose>1) {
813     G4cout << "BuildCorrectionVector: Stopping    827     G4cout << "BuildCorrectionVector: Stopping for "
814            << curParticle->GetParticleName() < << 828      << curParticle->GetParticleName() << " in " 
815            << materialName[idx] << " Ion Z= "  << 829      << materialName[idx] << " Ion Z= " << Z << " A= " << A
816            << " massFactor= " << massFactor << << 830      << " massRatio= " << massRatio << G4endl;
817     G4cout << "    Nbins=" << nbinCorr << " Em << 
818      << " Emax(MeV)=" << eCorrMax << " ion: "  << 
819            << ion->GetParticleName() << G4endl << 
820   }                                               831   }
821                                                   832 
822   auto vv = new G4PhysicsLogVector(eCorrMin,eC << 833   G4PhysicsLogVector* vv = 
823   const G4double eth0 = v->Energy(0);          << 834     new G4PhysicsLogVector(eCorrMin,eCorrMax,nbinCorr);
824   const G4double escal = eth/massFactor;       << 835   vv->SetSpline(true);
                                                   >> 836   G4double e, eion, dedx, dedx1;
                                                   >> 837   G4double eth0 = v->Energy(0);
                                                   >> 838   G4double escal = eth/massRatio;
825   G4double qe =                                   839   G4double qe = 
826     effCharge.EffectiveChargeSquareRatio(curPa << 840     effCharge.EffectiveChargeSquareRatio(ion, curMaterial, escal); 
827   const G4double dedxt =                       << 841   G4double dedxt = 
828     ionLEModel->ComputeDEDXPerVolume(curMateri << 842     ionLEModel->ComputeDEDXPerVolume(curMaterial, p, eth, eth)*qe;
829   const G4double dedx1t =                      << 843   G4double dedx1t = 
830     ionHEModel->ComputeDEDXPerVolume(curMateri << 844     ionHEModel->ComputeDEDXPerVolume(curMaterial, p, eth, eth)*qe 
831     + ComputeIonCorrections(curParticle, curMa    845     + ComputeIonCorrections(curParticle, curMaterial, escal);
832   const G4double rest = escal*(dedxt - dedx1t) << 846   G4double rest = escal*(dedxt - dedx1t);
833   if(verbose > 1) {                            << 847   //G4cout << "Escal(MeV)= "<<escal<<" dedxt0= " <<dedxt 
834     G4cout << "Escal(MeV)= " << escal << " qe= << 848   //   << " dedxt1= " << dedx1t << G4endl;   
835            << " dedxt= " << dedxt << " dedx1t= << 849 
836   }                                            << 
837   for(G4int i=0; i<=nbinCorr; ++i) {              850   for(G4int i=0; i<=nbinCorr; ++i) {
838     // energy in the local table (GenericIon)  << 851     e = vv->Energy(i);
839     G4double e = vv->Energy(i);                << 852     escal = e/massRatio;
840     // energy of the real ion                  << 853     eion  = escal/A;
841     G4double eion = e/massFactor;              << 854     if(eion <= eth0) {
842     // energy in the imput stopping data vecto << 855       dedx = v->Value(eth0)*std::sqrt(eion/eth0);
843     G4double e1 = eion/A;                      << 856     } else {
844     G4double dedx = (e1 < eth0)                << 857       dedx = v->Value(eion);
845       ? v->Value(eth0)*std::sqrt(e1/eth0) : v- << 858     }
846     qe = effCharge.EffectiveChargeSquareRatio( << 859     qe = effCharge.EffectiveChargeSquareRatio(curParticle,curMaterial,escal); 
847     G4double dedx1 = (e <= eth)                << 860     if(e <= eth) {
848       ? ionLEModel->ComputeDEDXPerVolume(curMa << 861       dedx1 = ionLEModel->ComputeDEDXPerVolume(curMaterial, p, e, e)*qe;
849       : ionHEModel->ComputeDEDXPerVolume(curMa << 862     } else {
850       ComputeIonCorrections(curParticle, curMa << 863       dedx1 = ionHEModel->ComputeDEDXPerVolume(curMaterial, p, e, e)*qe +
                                                   >> 864   ComputeIonCorrections(curParticle, curMaterial, escal) + rest/escal;
                                                   >> 865     }
851     vv->PutValue(i, dedx/dedx1);                  866     vv->PutValue(i, dedx/dedx1);
852     if(verbose > 1) {                          << 867     if(verbose>1) {
853       G4cout << "E(MeV)=" << e/CLHEP::MeV << " << 868       G4cout << "  E(meV)= " << e/MeV << "   Correction= " << dedx/dedx1
854        << " e1=" << e1 << " dedxRatio= " << de << 869        << "   "  << dedx << " " << dedx1 
855              << " dedx="  << dedx << " dedx1=" << 870        << "  massF= " << massFactor << G4endl;
856              << " qe=" << qe << " rest/eion="  << 
857     }                                             871     }
858   }                                               872   }
859   delete v;                                       873   delete v;
860   ionList[idx]  = ion;                            874   ionList[idx]  = ion;
861   stopData[idx] = vv;                             875   stopData[idx] = vv;
862   if(verbose > 1) { G4cout << "End data set "  << 876   if(verbose>1) { G4cout << "End data set " << G4endl; }
863 }                                                 877 }
864                                                   878 
865 //....oooOO0OOooo........oooOO0OOooo........oo    879 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
866                                                   880 
867 void G4EmCorrections::InitialiseForNewRun()       881 void G4EmCorrections::InitialiseForNewRun()
868 {                                                 882 {
869   G4ProductionCutsTable* tb = G4ProductionCuts    883   G4ProductionCutsTable* tb = G4ProductionCutsTable::GetProductionCutsTable();
870   ncouples = tb->GetTableSize();                  884   ncouples = tb->GetTableSize();
871   if(currmat.size() != ncouples) {                885   if(currmat.size() != ncouples) {
872     currmat.resize(ncouples);                     886     currmat.resize(ncouples);
873     for(auto it = thcorr.begin(); it != thcorr << 887     size_t i;
874       (it->second).clear();                    << 888     for(i=0; i<100; ++i) {thcorr[i].clear();}
875     }                                          << 889     for(i=0; i<ncouples; ++i) {
876     thcorr.clear();                            << 890       currmat[i] = tb->GetMaterialCutsCouple(i)->GetMaterial();
877     for(std::size_t i=0; i<ncouples; ++i) {    << 
878       currmat[i] = tb->GetMaterialCutsCouple(( << 
879       G4String nam = currmat[i]->GetName();       891       G4String nam = currmat[i]->GetName();
880       for(G4int j=0; j<nIons; ++j) {              892       for(G4int j=0; j<nIons; ++j) {
881         if(nam == materialName[j]) { materialL << 893   if(nam == materialName[j]) { materialList[j] = currmat[i]; }
882       }                                           894       }
883     }                                             895     }
884   }                                               896   }
885 }                                                 897 }
886                                                   898 
887 //....oooOO0OOooo........oooOO0OOooo........oo    899 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
888                                                   900 
889 void G4EmCorrections::Initialise()                901 void G4EmCorrections::Initialise()
890 {                                                 902 {
891   // Z^3 Barkas effect in the stopping power o << 903 // . Z^3 Barkas effect in the stopping power of matter for charged particles
892   // J.C Ashley and R.H.Ritchie                << 904 //   J.C Ashley and R.H.Ritchie
893   // Physical review B Vol.5 No.7 1 April 1972 << 905 //   Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
894   // G.S. Khandelwal Nucl. Phys. A116(1968)97  << 
895   // "Shell corrections for K- and L- electron << 
896                                                << 
897   G4int i, j;                                     906   G4int i, j;
898   static const G4double fTable[47][2] = {      << 907   const G4double fTable[47][2] = {
899    { 0.02, 21.5},                                 908    { 0.02, 21.5},
900    { 0.03, 20.0},                                 909    { 0.03, 20.0},
901    { 0.04, 18.0},                                 910    { 0.04, 18.0},
902    { 0.05, 15.6},                                 911    { 0.05, 15.6},
903    { 0.06, 15.0},                                 912    { 0.06, 15.0},
904    { 0.07, 14.0},                                 913    { 0.07, 14.0},
905    { 0.08, 13.5},                                 914    { 0.08, 13.5},
906    { 0.09, 13.},                                  915    { 0.09, 13.},
907    { 0.1,  12.2},                                 916    { 0.1,  12.2},
908    { 0.2,  9.25},                                 917    { 0.2,  9.25},
909    { 0.3,  7.0},                                  918    { 0.3,  7.0},
910    { 0.4,  6.0},                                  919    { 0.4,  6.0},
911    { 0.5,  4.5},                                  920    { 0.5,  4.5},
912    { 0.6,  3.5},                                  921    { 0.6,  3.5},
913    { 0.7,  3.0},                                  922    { 0.7,  3.0},
914    { 0.8,  2.5},                                  923    { 0.8,  2.5},
915    { 0.9,  2.0},                                  924    { 0.9,  2.0},
916    { 1.0,  1.7},                                  925    { 1.0,  1.7},
917    { 1.2,  1.2},                                  926    { 1.2,  1.2},
918    { 1.3,  1.0},                                  927    { 1.3,  1.0},
919    { 1.4,  0.86},                                 928    { 1.4,  0.86},
920    { 1.5,  0.7},                                  929    { 1.5,  0.7},
921    { 1.6,  0.61},                                 930    { 1.6,  0.61},
922    { 1.7,  0.52},                                 931    { 1.7,  0.52},
923    { 1.8,  0.5},                                  932    { 1.8,  0.5},
924    { 1.9,  0.43},                                 933    { 1.9,  0.43},
925    { 2.0,  0.42},                                 934    { 2.0,  0.42},
926    { 2.1,  0.3},                                  935    { 2.1,  0.3},
927    { 2.4,  0.2},                                  936    { 2.4,  0.2},
928    { 3.0,  0.13},                                 937    { 3.0,  0.13},
929    { 3.08, 0.1},                                  938    { 3.08, 0.1},
930    { 3.1,  0.09},                                 939    { 3.1,  0.09},
931    { 3.3,  0.08},                                 940    { 3.3,  0.08},
932    { 3.5,  0.07},                                 941    { 3.5,  0.07},
933    { 3.8,  0.06},                                 942    { 3.8,  0.06},
934    { 4.0,  0.051},                                943    { 4.0,  0.051},
935    { 4.1,  0.04},                                 944    { 4.1,  0.04},
936    { 4.8,  0.03},                                 945    { 4.8,  0.03},
937    { 5.0,  0.024},                                946    { 5.0,  0.024},
938    { 5.1,  0.02},                                 947    { 5.1,  0.02},
939    { 6.0,  0.013},                                948    { 6.0,  0.013},
940    { 6.5,  0.01},                                 949    { 6.5,  0.01},
941    { 7.0,  0.009},                                950    { 7.0,  0.009},
942    { 7.1,  0.008},                                951    { 7.1,  0.008},
943    { 8.0,  0.006},                                952    { 8.0,  0.006},
944    { 9.0,  0.0032},                               953    { 9.0,  0.0032},
945    { 10.0, 0.0025} };                             954    { 10.0, 0.0025} };
946                                                   955 
947   sBarkasCorr = new G4PhysicsFreeVector(47, fa << 956   BarkasCorr = new G4LPhysicsFreeVector(47, 0.02, 10.);
948   for(i=0; i<47; ++i) { sBarkasCorr->PutValues << 957   for(i=0; i<47; ++i) { BarkasCorr->PutValues(i, fTable[i][0], fTable[i][1]); }
                                                   >> 958   BarkasCorr->SetSpline(true);
                                                   >> 959 
                                                   >> 960   const G4double nuca[104][2] = {
                                                   >> 961   { 1.0E+8, 5.831E-8},
                                                   >> 962   { 8.0E+7, 7.288E-8},
                                                   >> 963   { 6.0E+7, 9.719E-8},
                                                   >> 964   { 5.0E+7, 1.166E-7},
                                                   >> 965   { 4.0E+7, 1.457E-7},
                                                   >> 966   { 3.0E+7, 1.942E-7},
                                                   >> 967   { 2.0E+7, 2.916E-7},
                                                   >> 968   { 1.5E+7, 3.887E-7},
                                                   >> 969 
                                                   >> 970   { 1.0E+7, 5.833E-7},
                                                   >> 971   { 8.0E+6, 7.287E-7},
                                                   >> 972   { 6.0E+6, 9.712E-7},
                                                   >> 973   { 5.0E+6, 1.166E-6},
                                                   >> 974   { 4.0E+6, 1.457E-6},
                                                   >> 975   { 3.0E+6, 1.941E-6},
                                                   >> 976   { 2.0E+6, 2.911E-6},
                                                   >> 977   { 1.5E+6, 3.878E-6},
                                                   >> 978 
                                                   >> 979   { 1.0E+6, 5.810E-6},
                                                   >> 980   { 8.0E+5, 7.262E-6},
                                                   >> 981   { 6.0E+5, 9.663E-6},
                                                   >> 982   { 5.0E+5, 1.157E-5},
                                                   >> 983   { 4.0E+5, 1.442E-5},
                                                   >> 984   { 3.0E+5, 1.913E-5},
                                                   >> 985   { 2.0E+5, 2.845E-5},
                                                   >> 986   { 1.5E+5, 3.762E-5},
                                                   >> 987 
                                                   >> 988   { 1.0E+5, 5.554E-5},
                                                   >> 989   { 8.0E+4, 6.866E-5},
                                                   >> 990   { 6.0E+4, 9.020E-5},
                                                   >> 991   { 5.0E+4, 1.070E-4},
                                                   >> 992   { 4.0E+4, 1.319E-4},
                                                   >> 993   { 3.0E+4, 1.722E-4},
                                                   >> 994   { 2.0E+4, 2.499E-4},
                                                   >> 995   { 1.5E+4, 3.248E-4},
                                                   >> 996 
                                                   >> 997   { 1.0E+4, 4.688E-4},
                                                   >> 998   { 8.0E+3, 5.729E-4},
                                                   >> 999   { 6.0E+3, 7.411E-4},
                                                   >> 1000   { 5.0E+3, 8.718E-4},
                                                   >> 1001   { 4.0E+3, 1.063E-3},
                                                   >> 1002   { 3.0E+3, 1.370E-3},
                                                   >> 1003   { 2.0E+3, 1.955E-3},
                                                   >> 1004   { 1.5E+3, 2.511E-3},
                                                   >> 1005 
                                                   >> 1006   { 1.0E+3, 3.563E-3},
                                                   >> 1007   { 8.0E+2, 4.314E-3},
                                                   >> 1008   { 6.0E+2, 5.511E-3},
                                                   >> 1009   { 5.0E+2, 6.430E-3},
                                                   >> 1010   { 4.0E+2, 7.756E-3},
                                                   >> 1011   { 3.0E+2, 9.855E-3},
                                                   >> 1012   { 2.0E+2, 1.375E-2},
                                                   >> 1013   { 1.5E+2, 1.736E-2},
                                                   >> 1014 
                                                   >> 1015   { 1.0E+2, 2.395E-2},
                                                   >> 1016   { 8.0E+1, 2.850E-2},
                                                   >> 1017   { 6.0E+1, 3.552E-2},
                                                   >> 1018   { 5.0E+1, 4.073E-2},
                                                   >> 1019   { 4.0E+1, 4.802E-2},
                                                   >> 1020   { 3.0E+1, 5.904E-2},
                                                   >> 1021   { 1.5E+1, 9.426E-2},
                                                   >> 1022 
                                                   >> 1023   { 1.0E+1, 1.210E-1},
                                                   >> 1024   { 8.0E+0, 1.377E-1},
                                                   >> 1025   { 6.0E+0, 1.611E-1},
                                                   >> 1026   { 5.0E+0, 1.768E-1},
                                                   >> 1027   { 4.0E+0, 1.968E-1},
                                                   >> 1028   { 3.0E+0, 2.235E-1},
                                                   >> 1029   { 2.0E+0, 2.613E-1},
                                                   >> 1030   { 1.5E+0, 2.871E-1},
                                                   >> 1031 
                                                   >> 1032   { 1.0E+0, 3.199E-1},
                                                   >> 1033   { 8.0E-1, 3.354E-1},
                                                   >> 1034   { 6.0E-1, 3.523E-1},
                                                   >> 1035   { 5.0E-1, 3.609E-1},
                                                   >> 1036   { 4.0E-1, 3.693E-1},
                                                   >> 1037   { 3.0E-1, 3.766E-1},
                                                   >> 1038   { 2.0E-1, 3.803E-1},
                                                   >> 1039   { 1.5E-1, 3.788E-1},
                                                   >> 1040 
                                                   >> 1041   { 1.0E-1, 3.711E-1},
                                                   >> 1042   { 8.0E-2, 3.644E-1},
                                                   >> 1043   { 6.0E-2, 3.530E-1},
                                                   >> 1044   { 5.0E-2, 3.444E-1},
                                                   >> 1045   { 4.0E-2, 3.323E-1},
                                                   >> 1046   { 3.0E-2, 3.144E-1},
                                                   >> 1047   { 2.0E-2, 2.854E-1},
                                                   >> 1048   { 1.5E-2, 2.629E-1},
                                                   >> 1049 
                                                   >> 1050   { 1.0E-2, 2.298E-1},
                                                   >> 1051   { 8.0E-3, 2.115E-1},
                                                   >> 1052   { 6.0E-3, 1.883E-1},
                                                   >> 1053   { 5.0E-3, 1.741E-1},
                                                   >> 1054   { 4.0E-3, 1.574E-1},
                                                   >> 1055   { 3.0E-3, 1.372E-1},
                                                   >> 1056   { 2.0E-3, 1.116E-1},
                                                   >> 1057   { 1.5E-3, 9.559E-2},
                                                   >> 1058 
                                                   >> 1059   { 1.0E-3, 7.601E-2},
                                                   >> 1060   { 8.0E-4, 6.668E-2},
                                                   >> 1061   { 6.0E-4, 5.605E-2},
                                                   >> 1062   { 5.0E-4, 5.008E-2},
                                                   >> 1063   { 4.0E-4, 4.352E-2},
                                                   >> 1064   { 3.0E-4, 3.617E-2},
                                                   >> 1065   { 2.0E-4, 2.768E-2},
                                                   >> 1066   { 1.5E-4, 2.279E-2},
                                                   >> 1067 
                                                   >> 1068   { 1.0E-4, 1.723E-2},
                                                   >> 1069   { 8.0E-5, 1.473E-2},
                                                   >> 1070   { 6.0E-5, 1.200E-2},
                                                   >> 1071   { 5.0E-5, 1.052E-2},
                                                   >> 1072   { 4.0E-5, 8.950E-3},
                                                   >> 1073   { 3.0E-5, 7.246E-3},
                                                   >> 1074   { 2.0E-5, 5.358E-3},
                                                   >> 1075   { 1.5E-5, 4.313E-3},
                                                   >> 1076   { 0.0, 3.166E-3}
                                                   >> 1077   };
                                                   >> 1078 
                                                   >> 1079   for(i=0; i<104; ++i) {
                                                   >> 1080     ed[i] = nuca[i][0];
                                                   >> 1081     a[i] = nuca[i][1];
                                                   >> 1082   }
949                                                   1083 
950   const G4double SK[20] = {1.9477, 1.9232, 1.8 << 1084   // Constants
                                                   >> 1085   theZieglerFactor = eV*cm2*1.0e-15 ; 
                                                   >> 1086   alpha2           = fine_structure_const*fine_structure_const;
                                                   >> 1087   lossFlucFlag     = true;
                                                   >> 1088 
                                                   >> 1089   // G.S. Khandelwal Nucl. Phys. A116(1968)97 - 111.
                                                   >> 1090   // "Shell corrections for K- and L- electrons
                                                   >> 1091 
                                                   >> 1092   nK = 20;
                                                   >> 1093   nL = 26;
                                                   >> 1094   nEtaK = 29;
                                                   >> 1095   nEtaL = 28;
                                                   >> 1096 
                                                   >> 1097   const G4double d[11] = {0., 0., 0., 1.72, 2.09, 2.48, 2.82, 3.16, 3.53, 3.84, 4.15};
                                                   >> 1098   const G4double thek[20] = {0.64, 0.65, 0.66, 0.68, 0.70, 0.72, 0.74, 0.75, 0.76, 0.78,
                                                   >> 1099                              0.80, 0.82, 0.84, 0.85, 0.86, 0.88, 0.90, 0.92, 0.94, 0.95};
                                                   >> 1100   const G4double sk[20] = {1.9477, 1.9232, 1.8996, 1.8550, 1.8137,
951                            1.7754, 1.7396, 1.7    1101                            1.7754, 1.7396, 1.7223, 1.7063, 1.6752,
952                            1.6461, 1.6189, 1.5    1102                            1.6461, 1.6189, 1.5933, 1.5811, 1.5693,
953                            1.5467, 1.5254, 1.5    1103                            1.5467, 1.5254, 1.5053, 1.4863, 1.4772};
954   const G4double TK[20] = {2.5222, 2.5125, 2.5 << 1104   const G4double tk[20] = {2.5222, 2.5125, 2.5026, 2.4821, 2.4608,
955                            2.4388, 2.4163, 2.4    1105                            2.4388, 2.4163, 2.4044, 2.3933, 2.3701,
956                            2.3466, 2.3229, 2.2    1106                            2.3466, 2.3229, 2.2992, 2.2872, 2.2753,
957                            2.2515, 2.2277, 2.2    1107                            2.2515, 2.2277, 2.2040, 2.1804, 2.1686};
                                                   >> 1108   const G4double uk[20] = {1.9999, 2.0134, 2.0258, 2.0478, 2.0662,
                                                   >> 1109                            2.0817, 2.0945, 2.0999, 2.1049, 2.1132,
                                                   >> 1110                            2.1197, 2.1246, 2.1280, 2.1292, 2.1301,
                                                   >> 1111                            2.1310, 2.1310, 2.1300, 2.1283, 2.1271};
                                                   >> 1112   const G4double vk[20] = {8.3410, 8.3373, 8.3340, 8.3287, 8.3247,
                                                   >> 1113                            8.3219, 8.3201, 8.3194, 8.3191, 8.3188,
                                                   >> 1114                            8.3191, 8.3199, 8.3211, 8.3218, 8.3226,
                                                   >> 1115                            8.3244, 8.3264, 8.3285, 8.3308, 8.3320};
                                                   >> 1116 
                                                   >> 1117   for(i=0; i<11; ++i) { ZD[i] = d[i];}
                                                   >> 1118 
                                                   >> 1119   for(i=0; i<nK; ++i) {
                                                   >> 1120     TheK[i] = thek[i];
                                                   >> 1121     SK[i]   = sk[i];
                                                   >> 1122     TK[i]   = tk[i];
                                                   >> 1123     UK[i]   = uk[i];
                                                   >> 1124     VK[i]   = vk[i];
                                                   >> 1125   }
958                                                   1126 
959   const G4double SL[26] = {15.3343, 13.9389, 1 << 1127   const G4double thel[26] = {0.24, 0.26, 0.28, 0.30, 0.32,   0.34, 0.35, 0.36, 0.38, 0.40,
                                                   >> 1128                              0.42, 0.44, 0.45, 0.46, 0.48,   0.50, 0.52, 0.54, 0.55, 0.56,
                                                   >> 1129                              0.58, 0.60, 0.62, 0.64, 0.65,   0.66};
                                                   >> 1130   const G4double sl[26] = {15.3343, 13.9389, 12.7909, 11.8343, 11.0283,
960                            10.3424, 10.0371,      1131                            10.3424, 10.0371,  9.7537,  9.2443,  8.8005,
961                            8.4114,  8.0683,    << 1132          8.4114,  8.0683,   7.9117, 7.7641, 7.4931,
962                            7.2506,  7.0327,       1133                            7.2506,  7.0327,   6.8362, 6.7452, 6.6584,
963                            6.4969,  6.3498,       1134                            6.4969,  6.3498,   6.2154, 6.0923, 6.0345, 5.9792};
964   const G4double TL[26] = {35.0669, 33.4344, 3 << 1135   const G4double tl[26] = {35.0669, 33.4344, 32.0073, 30.7466, 29.6226,
965                            28.6128, 28.1449, 2    1136                            28.6128, 28.1449, 27.6991, 26.8674, 26.1061,
966                            25.4058, 24.7587, 2    1137                            25.4058, 24.7587, 24.4531, 24.1583, 23.5992,
967                            23.0771, 22.5880, 2    1138                            23.0771, 22.5880, 22.1285, 21.9090, 21.6958,
968                            21.2872, 20.9006, 2    1139                            21.2872, 20.9006, 20.5341, 20.1859, 20.0183, 19.8546};
                                                   >> 1140   const G4double ul[26] = {0.1215, 0.5265, 0.8411, 1.0878, 1.2828,
                                                   >> 1141                            1.4379, 1.5032, 1.5617, 1.6608, 1.7401,
                                                   >> 1142                            1.8036, 1.8543, 1.8756, 1.8945, 1.9262,
                                                   >> 1143                            1.9508, 1.9696, 1.9836, 1.9890, 1.9935,
                                                   >> 1144                            2.0001, 2.0039, 2.0053, 2.0049, 2.0040, 2.0028};  
                                                   >> 1145   for(i=0; i<nL; ++i) {
                                                   >> 1146     TheL[i] = thel[i];
                                                   >> 1147     SL[i]   = sl[i];
                                                   >> 1148     TL[i]   = tl[i];
                                                   >> 1149     UL[i]   = ul[i];
                                                   >> 1150   }
                                                   >> 1151 
                                                   >> 1152   const G4double eta[29] = {0.005, 0.007, 0.01, 0.015, 0.02,
                                                   >> 1153                               0.03,  0.04,  0.05, 0.06,  0.08,
                                                   >> 1154                               0.1,   0.15,  0.2,  0.3,   0.4,
                                                   >> 1155                               0.5,   0.6,   0.7,  0.8,   1.0,
                                                   >> 1156                               1.2,   1.4,   1.5,  1.7,   2.0, 3.0, 5.0, 7.0, 10.};
969                                                   1157 
970   const G4double bk1[29][11] = {                  1158   const G4double bk1[29][11] = { 
971   {0.005, 1.34782E-8, 1.46132E-8, 1.72179E-8,     1159   {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}, 
972   {0.007, 6.87555E-8, 7.44373E-8, 8.74397E-8,     1160   {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}, 
973   {0.01, 3.78413E-7, 4.08831E-7, 4.78154E-7, 5    1161   {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}, 
974   {0.015, 2.53200E-6, 2.72664E-6, 3.16738E-6,     1162   {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}, 
975   {0.02, 9.43891E-6, 1.01339E-5, 1.16984E-5, 1    1163   {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}, 
976   {0.03, 5.67088E-5, 6.05576E-5, 6.91311E-5, 7    1164   {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}, 
977   {0.04, 1.91576E-4, 2.03626E-4, 2.30230E-4, 2    1165   {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}, 
978   {0.05, 4.74226E-4, 5.02006E-4, 5.62872E-4, 6    1166   {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}, 
979   {0.06, 9.67285E-4, 1.02029E-3, 1.13566E-3, 1    1167   {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}, 
980   {0.08, 2.81537E-3, 2.95200E-3, 3.24599E-3, 3    1168   {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}, 
981   {0.1, 6.14216E-3, 6.40864E-3, 6.97750E-3, 7.    1169   {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}, 
982   {0.15, 2.23096E-2, 2.30790E-2, 2.46978E-2, 2    1170   {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}, 
983   {0.2, 5.04022E-2, 5.18492E-2, 5.48682E-2, 5.    1171   {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}, 
984   {0.3, 1.38018E-1, 1.41026E-1, 1.47244E-1, 1.    1172   {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}, 
985   {0.4, 2.56001E-1, 2.60576E-1, 2.69992E-1, 2.    1173   {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}, 
986   {0.5, 3.92181E-1, 3.98213E-1, 4.10597E-1, 4.    1174   {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}, 
987   {0.6, 5.37913E-1, 5.45268E-1, 5.60350E-1, 5.    1175   {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}, 
988   {0.7, 6.87470E-1, 6.96021E-1, 7.13543E-1, 7.    1176   {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}, 
989   {0.8, 8.37159E-1, 8.46790E-1, 8.66525E-1, 8.    1177   {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}, 
990   {1.0, 1.12850, 1.14002, 1.16362, 1.18799, 1.    1178   {1.0, 1.12850, 1.14002, 1.16362, 1.18799, 1.21317, 1.23921, 1.25257, 1.26616, 1.29408, 1.32303}, 
991   {1.2, 1.40232, 1.41545, 1.44232, 1.47007, 1.    1179   {1.2, 1.40232, 1.41545, 1.44232, 1.47007, 1.49875, 1.52842, 1.54364, 1.55913, 1.59095, 1.62396}, 
992   {1.4, 1.65584, 1.67034, 1.70004, 1.73072, 1.    1180   {1.4, 1.65584, 1.67034, 1.70004, 1.73072, 1.76244, 1.79526, 1.81210, 1.82925, 1.86448, 1.90104}, 
993   {1.5, 1.77496, 1.79009, 1.82107, 1.85307, 1.    1181   {1.5, 1.77496, 1.79009, 1.82107, 1.85307, 1.88617, 1.92042, 1.93800, 1.95590, 1.99269, 2.03087}, 
994   {1.7, 1.99863, 2.01490, 2.04822, 2.08265, 2.    1182   {1.7, 1.99863, 2.01490, 2.04822, 2.08265, 2.11827, 2.15555, 2.17409, 2.19337, 2.23302, 2.27419}, 
995   {2.0, 2.29325, 2.31100, 2.34738, 2.38501, 2.    1183   {2.0, 2.29325, 2.31100, 2.34738, 2.38501, 2.42395, 2.46429, 2.48401, 2.50612, 2.54955, 2.59468}, 
996   {3.0, 3.08887, 3.11036, 3.15445, 3.20013, 3.    1184   {3.0, 3.08887, 3.11036, 3.15445, 3.20013, 3.24748, 3.29664, 3.32192, 3.34770, 3.40081, 3.45611}, 
997   {5.0, 4.07599, 4.10219, 4.15606, 4.21199, 4.    1185   {5.0, 4.07599, 4.10219, 4.15606, 4.21199, 4.27010, 4.33056, 4.36172, 4.39353, 4.45918, 4.52772}, 
998   {7.0, 4.69647, 4.72577, 4.78608, 4.84877, 4.    1186   {7.0, 4.69647, 4.72577, 4.78608, 4.84877, 4.91402, 4.98200, 5.01707, 5.05290, 5.12695, 5.20436}, 
999   {10.0, 5.32590, 5.35848, 5.42560, 5.49547, 5    1187   {10.0, 5.32590, 5.35848, 5.42560, 5.49547, 5.56830, 5.64429, 5.68353, 5.72366, 5.80666, 5.89359}
1000   };                                             1188   }; 
1001                                                  1189 
1002   const G4double bk2[29][11] = {                 1190   const G4double bk2[29][11] = { 
1003   {0.005, 5.98040E-8, 7.25636E-8, 8.00602E-8,    1191   {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}, 
1004   {0.007, 2.95345E-7, 3.56497E-7, 3.92247E-7,    1192   {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}, 
1005   {0.01, 1.55232E-6, 1.86011E-6, 2.03881E-6,     1193   {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}, 
1006   {0.015, 9.67802E-6, 1.14707E-5, 1.25008E-5,    1194   {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}, 
1007   {0.02, 3.38425E-5, 3.97259E-5, 4.30763E-5,     1195   {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}, 
1008   {0.03, 1.81920E-4, 2.10106E-4, 2.25918E-4,     1196   {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}, 
1009   {0.04, 5.59802E-4, 6.38103E-4, 6.81511E-4,     1197   {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}, 
1010   {0.05, 1.28002E-3, 1.44336E-3, 1.53305E-3,     1198   {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}, 
1011   {0.06, 2.42872E-3, 2.72510E-3, 2.88111E-3,     1199   {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}, 
1012   {0.08, 6.35222E-3, 6.99730E-3, 7.34446E-3,     1200   {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}, 
1013   {0.1, 1.26929E-2, 1.38803E-2, 1.44371E-2, 1    1201   {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}, 
1014   {0.15, 3.96872E-2, 4.24699E-2, 4.39340E-2,     1202   {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}, 
1015   {0.2, 8.15290E-2, 8.62830E-2, 8.87650E-2, 9    1203   {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}, 
1016   {0.3, 1.99528E-1, 2.08471E-1, 2.13103E-1, 2    1204   {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}, 
1017   {0.4, 3.47383E-1, 3.60369E-1, 3.67073E-1, 3    1205   {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}, 
1018   {0.5, 5.11214E-1, 5.27935E-1, 5.36554E-1, 5    1206   {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}, 
1019   {0.6, 6.82122E-1, 7.02260E-1, 7.12631E-1, 7    1207   {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}, 
1020   {0.7, 8.54544E-1, 8.77814E-1, 8.89791E-1, 9    1208   {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}, 
1021   {0.8, 1.02508, 1.05121, 1.06466, 1.07838, 1    1209   {0.8, 1.02508, 1.05121, 1.06466, 1.07838, 1.10667, 1.13615, 1.16692, 1.19907, 1.21570, 1.23272}, 
1022   {1.0, 1.35307, 1.38429, 1.40036, 1.41676, 1    1210   {1.0, 1.35307, 1.38429, 1.40036, 1.41676, 1.45057, 1.48582, 1.52263, 1.56111, 1.58102, 1.60140}, 
1023   {1.2, 1.65823, 1.69385, 1.71220, 1.73092, 1    1211   {1.2, 1.65823, 1.69385, 1.71220, 1.73092, 1.76954, 1.80983, 1.85192, 1.89596, 1.91876, 1.94211}, 
1024   {1.4, 1.93902, 1.97852, 1.99887, 2.01964, 2    1212   {1.4, 1.93902, 1.97852, 1.99887, 2.01964, 2.06251, 2.10727, 2.15406, 2.20304, 2.22842, 2.25442}, 
1025   {1.5, 2.07055, 2.11182, 2.13309, 2.15480, 2    1213   {1.5, 2.07055, 2.11182, 2.13309, 2.15480, 2.19963, 2.24644, 2.29539, 2.34666, 2.37323, 2.40045}, 
1026   {1.7, 2.31700, 2.36154, 2.38451, 2.40798, 2    1214   {1.7, 2.31700, 2.36154, 2.38451, 2.40798, 2.45641, 2.50703, 2.56000, 2.61552, 2.64430, 2.67381}, 
1027   {2.0, 2.64162, 2.69053, 2.71576, 2.74154, 2    1215   {2.0, 2.64162, 2.69053, 2.71576, 2.74154, 2.79481, 2.85052, 2.90887, 2.97009, 3.00185, 3.03442}, 
1028   {3.0, 3.51376, 3.57394, 3.60503, 3.63684, 3    1216   {3.0, 3.51376, 3.57394, 3.60503, 3.63684, 3.70268, 3.77170, 3.84418, 3.92040, 3.96003, 4.00073}, 
1029   {5.0, 4.59935, 4.67433, 4.71316, 4.75293, 4    1217   {5.0, 4.59935, 4.67433, 4.71316, 4.75293, 4.83543, 4.92217, 5.01353, 5.10992, 5.16014, 5.21181}, 
1030   {7.0, 5.28542, 5.37040, 5.41445, 5.45962, 5    1218   {7.0, 5.28542, 5.37040, 5.41445, 5.45962, 5.55344, 5.65226, 5.79496, 5.90517, 5.96269, 6.02191}, 
1031   {10.0, 5.98474, 6.08046, 6.13015, 6.18112,     1219   {10.0, 5.98474, 6.08046, 6.13015, 6.18112, 6.28715, 6.39903, 6.51728, 6.64249, 6.70792, 6.77535}
1032   };                                             1220   }; 
1033                                                  1221 
1034   const G4double bls1[28][10] = {                1222   const G4double bls1[28][10] = { 
1035   {0.005, 2.4111E-4, 2.5612E-4, 2.7202E-4, 3.    1223   {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}, 
1036   {0.007, 6.3947E-4, 6.7058E-4, 7.0295E-4, 7.    1224   {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}, 
1037   {0.01, 1.5469E-3, 1.6036E-3, 1.6622E-3, 1.7    1225   {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}, 
1038   {0.015, 3.7221E-3, 3.8404E-3, 3.9650E-3, 4.    1226   {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}, 
1039   {0.02, 6.9449E-3, 7.1910E-3, 7.4535E-3, 8.0    1227   {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}, 
1040   {0.03, 1.7411E-2, 1.8180E-2, 1.8997E-2, 2.0    1228   {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}, 
1041   {0.04, 3.8474E-2, 4.0056E-2, 4.1718E-2, 4.5    1229   {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}, 
1042   {0.05, 6.7371E-2, 6.9928E-2, 7.2596E-2, 7.8    1230   {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}, 
1043   {0.06, 1.0418E-1, 1.0778E-1, 1.1152E-1, 1.1    1231   {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}, 
1044   {0.08, 1.9647E-1, 2.0217E-1, 2.0805E-1, 2.2    1232   {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}, 
1045   {0.1, 3.0594E-1, 3.1361E-1, 3.2150E-1, 3.37    1233   {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}, 
1046   {0.15, 6.1411E-1, 6.2597E-1, 6.3811E-1, 6.6    1234   {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}, 
1047   {0.2, 9.3100E-1, 9.5614E-1, 9.7162E-1, 1.00    1235   {0.2, 9.3100E-1, 9.5614E-1, 9.7162E-1, 1.0037, 1.0372, 1.0723, 1.1092, 1.1284, 1.1480}, 
1048   {0.3, 1.5172, 1.5372, 1.5576, 1.5998, 1.643    1236   {0.3, 1.5172, 1.5372, 1.5576, 1.5998, 1.6438, 1.6899, 1.7382, 1.7632, 1.7889}, 
1049   {0.4, 2.0173, 2.0408, 2.0647, 2.1142, 2.165    1237   {0.4, 2.0173, 2.0408, 2.0647, 2.1142, 2.1659, 2.2199, 2.2765, 2.3059, 2.3360}, 
1050   {0.5, 2.3932, 2.4193, 2.4460, 2.5011, 2.558    1238   {0.5, 2.3932, 2.4193, 2.4460, 2.5011, 2.5587, 2.6190, 2.6821, 2.7148, 2.7484}, 
1051   {0.6, 2.7091, 2.7374, 2.7663, 2.8260, 2.888    1239   {0.6, 2.7091, 2.7374, 2.7663, 2.8260, 2.8884, 2.9538, 3.0222, 3.0577, 3.0941}, 
1052   {0.7, 2.9742, 3.0044, 3.0352, 3.0988, 3.165    1240   {0.7, 2.9742, 3.0044, 3.0352, 3.0988, 3.1652, 3.2349, 3.3079, 3.3457, 3.3845}, 
1053   {0.8, 3.2222, 3.2539, 3.2863, 3.3532, 3.423    1241   {0.8, 3.2222, 3.2539, 3.2863, 3.3532, 3.4232, 3.4965, 3.5734, 3.6133, 3.6542}, 
1054   {1.0, 3.6690, 3.7033, 3.7384, 3.8108, 3.886    1242   {1.0, 3.6690, 3.7033, 3.7384, 3.8108, 3.8866, 3.9661, 4.0495, 4.0928, 4.1371}, 
1055   {1.2, 3.9819, 4.0183, 4.0555, 4.1324, 4.213    1243   {1.2, 3.9819, 4.0183, 4.0555, 4.1324, 4.2130, 4.2974, 4.3861, 4.4321, 4.4794}, 
1056   {1.4, 4.2745, 4.3127, 4.3517, 4.4324, 4.517    1244   {1.4, 4.2745, 4.3127, 4.3517, 4.4324, 4.5170, 4.6056, 4.6988, 4.7471, 4.7968}, 
1057   {1.5, 4.4047, 4.4436, 4.4834, 4.5658, 4.652    1245   {1.5, 4.4047, 4.4436, 4.4834, 4.5658, 4.6521, 4.7426, 4.8378, 4.8872, 4.9379}, 
1058   {1.7, 4.6383, 4.6787, 4.7200, 4.8054, 4.894    1246   {1.7, 4.6383, 4.6787, 4.7200, 4.8054, 4.8949, 4.9888, 5.0876, 5.1388, 5.1915}, 
1059   {2.0, 4.9369, 4.9791, 5.0223, 5.1116, 5.205    1247   {2.0, 4.9369, 4.9791, 5.0223, 5.1116, 5.2053, 5.3036, 5.4070, 5.4607, 5.5159}, 
1060   {3.0, 5.6514, 5.6981, 5.7459, 5.8450, 5.948    1248   {3.0, 5.6514, 5.6981, 5.7459, 5.8450, 5.9489, 6.0581, 6.1730, 6.2328, 6.2943}, 
1061   {5.0, 6.4665, 6.5189, 6.5724, 6.6835, 6.800    1249   {5.0, 6.4665, 6.5189, 6.5724, 6.6835, 6.8003, 6.9231, 7.0525, 7.1199, 7.1892}, 
1062   {7.0, 6.8634, 6.9194, 6.9767, 7.0957, 7.220    1250   {7.0, 6.8634, 6.9194, 6.9767, 7.0957, 7.2208, 7.3526, 7.4915, 7.5639, 7.6384}
1063   };                                             1251   };
1064                                                  1252  
                                                   >> 1253 
1065   const G4double bls2[28][10] = {                1254   const G4double bls2[28][10] = { 
1066   {0.005, 5.4561E-4, 6.0905E-4, 6.7863E-4, 7.    1255   {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}, 
1067   {0.007, 1.2068E-3, 1.3170E-3, 1.4377E-3, 1.    1256   {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}, 
1068   {0.01, 2.6832E-3, 2.9017E-3, 3.1534E-3, 3.4    1257   {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}, 
1069   {0.015, 6.2775E-3, 6.9077E-3, 7.6525E-3, 8.    1258   {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}, 
1070   {0.02, 1.2561E-2, 1.3943E-2, 1.5553E-2, 1.7    1259   {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}, 
1071   {0.03, 3.3750E-2, 3.7470E-2, 4.1528E-2, 4.6    1260   {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}, 
1072   {0.04, 6.9619E-2, 7.6098E-2, 8.3249E-2, 9.1    1261   {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}, 
1073   {0.05, 1.1522E-1, 1.2470E-1, 1.3504E-1, 1.4    1262   {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}, 
1074   {0.06, 1.6931E-1, 1.8179E-1, 1.9530E-1, 2.0    1263   {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}, 
1075   {0.08, 2.9540E-1, 3.1361E-1, 3.3312E-1, 3.5    1264   {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}, 
1076   {0.1,  4.3613E-1, 4.5956E-1,  4.852E-1, 5.1    1265   {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}, 
1077   {0.15, 8.1014E-1, 8.4453E-1, 8.8093E-1, 9.1    1266   {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}, 
1078   {0.2, 1.1888, 1.2319, 1.2774, 1.3255, 1.350    1267   {0.2, 1.1888, 1.2319, 1.2774, 1.3255, 1.3506, 1.3765, 1.4308, 1.4886, 1.5504}, 
1079   {0.3, 1.8422, 1.8983, 1.9575, 2.0201, 2.052    1268   {0.3, 1.8422, 1.8983, 1.9575, 2.0201, 2.0528, 2.0864, 2.1569, 2.2319, 2.3120}, 
1080   {0.4, 2.3984, 2.4642, 2.5336, 2.6070, 2.645    1269   {0.4, 2.3984, 2.4642, 2.5336, 2.6070, 2.6452, 2.6847, 2.7674, 2.8554, 2.9494}, 
1081   {0.5, 2.8181, 2.8915, 2.9690, 3.0509, 3.093    1270   {0.5, 2.8181, 2.8915, 2.9690, 3.0509, 3.0937, 3.1378, 3.2301, 3.3285, 3.4337}, 
1082   {0.6, 3.1698, 3.2494, 3.3336, 3.4226, 3.469    1271   {0.6, 3.1698, 3.2494, 3.3336, 3.4226, 3.4691, 3.5171, 3.6175, 3.7246, 3.8391}, 
1083   {0.7, 3.4652, 3.5502, 3.6400, 3.7351, 3.784    1272   {0.7, 3.4652, 3.5502, 3.6400, 3.7351, 3.7848, 3.8360, 3.9433, 4.0578, 4.1804}, 
1084   {0.8, 3.7392, 3.8289, 3.9236, 4.0239, 4.076    1273   {0.8, 3.7392, 3.8289, 3.9236, 4.0239, 4.0764, 4.1304, 4.2438, 4.3648, 4.4944}, 
1085   {1.0, 4.2295, 4.3269, 4.4299, 4.5391, 4.596    1274   {1.0, 4.2295, 4.3269, 4.4299, 4.5391, 4.5962, 4.6551, 4.7786, 4.9106, 5.0520}, 
1086   {1.2, 4.5777, 4.6814, 4.7912, 4.9076, 4.968    1275   {1.2, 4.5777, 4.6814, 4.7912, 4.9076, 4.9685, 5.0314, 5.1633, 5.3043, 5.4555}, 
1087   {1.4, 4.9001, 5.0092, 5.1247, 5.2473, 5.311    1276   {1.4, 4.9001, 5.0092, 5.1247, 5.2473, 5.3114, 5.3776, 5.5166, 5.6653, 5.8249}, 
1088   {1.5, 5.0434, 5.1550, 5.2731, 5.3984, 5.464    1277   {1.5, 5.0434, 5.1550, 5.2731, 5.3984, 5.4640, 5.5317, 5.6739, 5.8260, 5.9893}, 
1089   {1.7, 5.3011, 5.4170, 5.5398, 5.6701, 5.737    1278   {1.7, 5.3011, 5.4170, 5.5398, 5.6701, 5.7373, 5.8088, 5.9568, 6.1152, 6.2853}, 
1090   {2.0, 5.6308, 5.7523, 5.8811, 6.0174, 6.089    1279   {2.0, 5.6308, 5.7523, 5.8811, 6.0174, 6.0896, 6.1636, 6.3192, 6.4857, 6.6647}, 
1091   {3.0, 6.4224, 6.5580, 6.7019, 6.8549, 6.935    1280   {3.0, 6.4224, 6.5580, 6.7019, 6.8549, 6.9351, 7.0180, 7.1925, 7.3795, 7.5808}, 
1092   {5.0, 7.3338, 7.4872, 7.6500, 7.8235, 7.914    1281   {5.0, 7.3338, 7.4872, 7.6500, 7.8235, 7.9146, 8.0087, 8.2071, 8.4200, 8.6496}, 
1093   {7.0, 7.7938, 7.9588, 8.1342, 8.3211, 8.419    1282   {7.0, 7.7938, 7.9588, 8.1342, 8.3211, 8.4193, 8.5209, 8.7350, 8.9651, 9.2133}
1094   };                                             1283   }; 
1095                                                  1284  
1096   const G4double bls3[28][9] = {                 1285   const G4double bls3[28][9] = { 
1097   {0.005, 1.2895E-3, 1.3670E-3, 1.4524E-3, 1.    1286   {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}, 
1098   {0.007, 2.6467E-3, 2.8242E-3, 3.0238E-3, 3.    1287   {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}, 
1099   {0.01, 6.1472E-3, 6.6086E-3, 7.1246E-3, 8.3    1288   {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}, 
1100   {0.015, 1.63316E-2, 1.7572E-2, 1.8932E-2, 2    1289   {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}, 
1101   {0.02, 3.2634E-2, 3.4900E-2, 3.7348E-2, 4.2    1290   {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}, 
1102   {0.03, 7.9907E-2, 8.4544E-2, 8.9486E-2, 1.0    1291   {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}, 
1103   {0.04, 1.4523E-1, 1.5237E-1, 1.5985E-1, 1.7    1292   {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}, 
1104   {0.05, 2.2082E-1, 2.3036E-1, 2.4038E-1, 2.6    1293   {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}, 
1105   {0.06, 3.0423E-1, 3.1611E-1, 3.2854E-1, 3.5    1294   {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}, 
1106   {0.08, 4.8536E-1, 5.0156E-1, 5.1846E-1, 5.5    1295   {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}, 
1107   {0.1, 6.7586E-1, 6.9596E-1, 7.1688E-1, 7.61    1296   {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}, 
1108   {0.15, 1.1544, 1.1828, 1.2122, 1.2746, 1.34    1297   {0.15, 1.1544, 1.1828, 1.2122, 1.2746, 1.3424, 1.4163, 1.4974, 1.5868}, 
1109   {0.2, 1.6167, 1.6517, 1.6880, 1.7650, 1.848    1298   {0.2, 1.6167, 1.6517, 1.6880, 1.7650, 1.8484, 1.9394, 2.0390, 2.1489}, 
1110   {0.3, 2.3979, 2.4432, 2.4902, 2.5899, 2.698    1299   {0.3, 2.3979, 2.4432, 2.4902, 2.5899, 2.6980, 2.8159, 2.9451, 3.0876}, 
1111   {0.4, 3.0502, 3.1034, 3.1586, 3.2758, 3.403    1300   {0.4, 3.0502, 3.1034, 3.1586, 3.2758, 3.4030, 3.5416, 3.6938, 3.8620}, 
1112   {0.5, 3.5466, 3.6062, 3.6681, 3.7994, 3.942    1301   {0.5, 3.5466, 3.6062, 3.6681, 3.7994, 3.9421, 4.0978, 4.2688, 4.4580}, 
1113   {0.6, 3.9620, 4.0270, 4.0945, 4.2378, 4.393    1302   {0.6, 3.9620, 4.0270, 4.0945, 4.2378, 4.3935, 4.5636, 4.7506, 4.9576}, 
1114   {0.7, 4.3020, 4.3715, 4.4438, 4.5974, 4.764    1303   {0.7, 4.3020, 4.3715, 4.4438, 4.5974, 4.7644, 4.9470, 5.1478, 5.3703}, 
1115   {0.8, 4.6336, 4.7072, 4.7837, 4.9463, 5.123    1304   {0.8, 4.6336, 4.7072, 4.7837, 4.9463, 5.1233, 5.3169, 5.5300, 5.7661}, 
1116   {1.0, 5.2041, 5.2845, 5.3682, 5.5462, 5.740    1305   {1.0, 5.2041, 5.2845, 5.3682, 5.5462, 5.7400, 5.9523, 6.1863, 6.4458}, 
1117   {1.2, 5.6182, 5.7044, 5.7940, 5.9848, 6.192    1306   {1.2, 5.6182, 5.7044, 5.7940, 5.9848, 6.1927, 6.4206, 6.6719, 6.9510}, 
1118   {1.4, 5.9967, 6.0876, 6.1823, 6.3839, 6.603    1307   {1.4, 5.9967, 6.0876, 6.1823, 6.3839, 6.6038, 6.8451, 7.1113, 7.4071}, 
1119   {1.5, 6.1652, 6.2583, 6.3553, 6.5618, 6.787    1308   {1.5, 6.1652, 6.2583, 6.3553, 6.5618, 6.7871, 7.0344, 7.3073, 7.6107}, 
1120   {1.7, 6.4686, 6.5657, 6.6668, 6.8823, 7.117    1309   {1.7, 6.4686, 6.5657, 6.6668, 6.8823, 7.1175, 7.3757, 7.6609, 7.9782}, 
1121   {2.0, 6.8577, 6.9600, 7.0666, 7.2937, 7.541    1310   {2.0, 6.8577, 6.9600, 7.0666, 7.2937, 7.5418, 7.8143, 8.1156, 8.4510}, 
1122   {3.0, 7.7981, 7.9134, 8.0336, 8.2901, 8.570    1311   {3.0, 7.7981, 7.9134, 8.0336, 8.2901, 8.5708, 8.8796, 9.2214, 9.6027}, 
1123   {5.0, 8.8978, 9.0297, 9.1673, 9.4612, 9.783    1312   {5.0, 8.8978, 9.0297, 9.1673, 9.4612, 9.7834, 10.1384, 10.5323, 10.9722}, 
1124   {7.0, 9.4819, 9.6248, 9.7739, 10.0926, 10.4    1313   {7.0, 9.4819, 9.6248, 9.7739, 10.0926, 10.4423, 10.8282, 11.2565, 11.7356}
1125   };                                             1314   }; 
1126                                                  1315 
1127   const G4double bll1[28][10] = {                1316   const G4double bll1[28][10] = { 
1128   {0.005, 3.6324E-5, 4.0609E-5, 4.5430E-5, 5.    1317   {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}, 
1129   {0.007, 1.8110E-4, 2.0001E-4, 2.2099E-4, 2.    1318   {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}, 
1130   {0.01, 8.6524E-4, 9.4223E-4, 1.0262E-3, 1.2    1319   {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}, 
1131   {0.015, 4.2293E-3, 4.5314E-3, 4.8551E-3, 5.    1320   {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}, 
1132   {0.02, 1.1485E-2, 1.2172E-2, 1.2900E-2, 1.4    1321   {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}, 
1133   {0.03, 3.9471E-2, 4.1270E-2, 4.3149E-2, 4.7    1322   {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}, 
1134   {0.04, 8.4454E-2, 8.7599E-2, 9.0860E-2, 9.7    1323   {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}, 
1135   {0.05, 1.4339E-1, 1.4795E-1, 1.5266E-1, 1.6    1324   {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}, 
1136   {0.06, 2.1304E-1, 2.1899E-1, 2.2512E-1, 2.3    1325   {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}, 
1137   {0.08, 3.7382E-1, 3.8241E-1, 3.9122E-1, 4.0    1326   {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}, 
1138   {0.1, 5.5056E-1, 5.6151E-1, 5.7273E-1, 5.96    1327   {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}, 
1139   {0.15, 1.0066, 1.0224, 1.0386, 1.0721, 1.10    1328   {0.15, 1.0066, 1.0224, 1.0386, 1.0721, 1.1073, 1.1443, 1.1832, 1.2035, 1.2243}, 
1140   {0.2, 1.4376, 1.4572, 1.4773, 1.5188, 1.562    1329   {0.2, 1.4376, 1.4572, 1.4773, 1.5188, 1.5624, 1.6083, 1.6566, 1.6817, 1.7076}, 
1141   {0.3, 2.1712, 2.1964, 2.2223, 2.2758, 2.332    1330   {0.3, 2.1712, 2.1964, 2.2223, 2.2758, 2.3322, 2.3915, 2.4542, 2.4869, 2.5205}, 
1142   {0.4, 2.7500, 2.7793, 2.8094, 2.8719, 2.937    1331   {0.4, 2.7500, 2.7793, 2.8094, 2.8719, 2.9377, 3.0072, 3.0807, 3.1192, 3.1587}, 
1143   {0.5, 3.2033, 3.2359, 3.2693, 3.3389, 3.412    1332   {0.5, 3.2033, 3.2359, 3.2693, 3.3389, 3.4122, 3.4898, 3.5721, 3.6151, 3.6595}, 
1144   {0.6, 3.6038, 3.6391, 3.6753, 3.7506, 3.830    1333   {0.6, 3.6038, 3.6391, 3.6753, 3.7506, 3.8303, 3.9146, 4.0042, 4.0511, 4.0995}, 
1145   {0.7, 3.9106, 3.9482, 3.9867, 4.0670, 4.152    1334   {0.7, 3.9106, 3.9482, 3.9867, 4.0670, 4.1520, 4.2421, 4.3380, 4.3882, 4.4401}, 
1146   {0.8, 4.1790, 4.2185, 4.2590, 4.3437, 4.433    1335   {0.8, 4.1790, 4.2185, 4.2590, 4.3437, 4.4333, 4.5285, 4.6298, 4.6830, 4.7380}, 
1147   {1.0, 4.6344, 4.6772, 4.7212, 4.8131, 4.910    1336   {1.0, 4.6344, 4.6772, 4.7212, 4.8131, 4.9106, 5.0144, 5.1250, 5.1831, 5.2432}, 
1148   {1.2, 4.9787, 5.0242, 5.0711, 5.1689, 5.272    1337   {1.2, 4.9787, 5.0242, 5.0711, 5.1689, 5.2729, 5.3837, 5.5050, 5.5642, 5.6287}, 
1149   {1.4, 5.2688, 5.3166, 5.3658, 5.4687, 5.578    1338   {1.4, 5.2688, 5.3166, 5.3658, 5.4687, 5.5782, 5.6950, 5.8198, 5.8855, 5.9554}, 
1150   {1.5, 5.3966, 5.4454, 5.4957, 5.6009, 5.712    1339   {1.5, 5.3966, 5.4454, 5.4957, 5.6009, 5.7128, 5.8323, 5.9601, 6.0274, 6.0972}, 
1151   {1.7, 5.6255, 5.6762, 5.7284, 5.8377, 5.954    1340   {1.7, 5.6255, 5.6762, 5.7284, 5.8377, 5.9541, 6.0785, 6.2116, 6.2818, 6.3546}, 
1152   {2.0, 5.9170, 5.9701, 6.0248, 6.1395, 6.261    1341   {2.0, 5.9170, 5.9701, 6.0248, 6.1395, 6.2618, 6.3925, 6.5327, 6.6066, 6.6833}, 
1153   {3.0, 6.6210, 6.6801, 6.7411, 6.8692, 7.006    1342   {3.0, 6.6210, 6.6801, 6.7411, 6.8692, 7.0062, 7.1529, 7.3107, 7.3941, 7.4807}, 
1154   {5.0, 7.4620, 7.5288, 7.5977, 7.7428, 7.898    1343   {5.0, 7.4620, 7.5288, 7.5977, 7.7428, 7.8982, 8.0653, 8.2454, 8.3409, 8.4402}, 
1155   {7.0, 7.7362, 7.8079, 7.8821, 8.0383, 8.206    1344   {7.0, 7.7362, 7.8079, 7.8821, 8.0383, 8.2061, 8.3866, 8.5816, 8.6850, 8.7927}
1156   };                                             1345   }; 
1157                                                  1346 
1158   const G4double bll2[28][10] = {                1347   const G4double bll2[28][10] = { 
1159   {0.005, 1.8339E-4, 2.3330E-4, 2.9738E-4, 3.    1348   {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}, 
1160   {0.007, 7.5042E-4, 9.2355E-4, 1.1375E-3, 1.    1349   {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}, 
1161   {0.01, 2.8829E-3, 3.4275E-3, 4.0758E-3, 4.8    1350   {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}, 
1162   {0.015, 1.1087E-2, 1.2716E-2, 1.4581E-2, 1.    1351   {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}, 
1163   {0.02, 2.5786E-2, 2.8922E-2, 3.2435E-2, 3.6    1352   {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}, 
1164   {0.03, 7.3461E-2, 8.0264E-2, 8.7705E-2, 9.5    1353   {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}, 
1165   {0.04, 1.4094E-1, 1.5172E-1, 1.6336E-1, 1.7    1354   {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}, 
1166   {0.05, 2.2289E-1, 2.3762E-1, 2.5344E-1, 2.7    1355   {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}, 
1167   {0.06, 3.1503E-1, 3.3361E-1, 3.5346E-1, 3.7    1356   {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}, 
1168   {0.08, 5.1793E-1, 5.4368E-1, 5.7109E-1, 6.0    1357   {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}, 
1169   {0.1, 7.3258E-1, 7.6481E-1, 7.9907E-1, 8.35    1358   {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}, 
1170   {0.15, 1.2677, 1.3137, 1.3626, 1.4147, 1.44    1359   {0.15, 1.2677, 1.3137, 1.3626, 1.4147, 1.4421, 1.4703, 1.5300, 1.5942, 1.6636}, 
1171   {0.2, 1.7615, 1.8188, 1.8797, 1.9446, 1.978    1360   {0.2, 1.7615, 1.8188, 1.8797, 1.9446, 1.9788, 2.0142, 2.0889, 2.1694, 2.2567}, 
1172   {0.3, 2.5909, 2.6658, 2.7457, 2.8312, 2.876    1361   {0.3, 2.5909, 2.6658, 2.7457, 2.8312, 2.8762, 2.9231, 3.0222, 3.1295, 3.2463}, 
1173   {0.4, 3.2417, 3.3302, 3.4249, 3.5266, 3.580    1362   {0.4, 3.2417, 3.3302, 3.4249, 3.5266, 3.5803, 3.6361, 3.7546, 3.8835, 4.0242}, 
1174   {0.5, 3.7527, 3.8523, 3.9591, 4.0741, 4.135    1363   {0.5, 3.7527, 3.8523, 3.9591, 4.0741, 4.1350, 4.1983, 4.3330, 4.4799, 4.6408}, 
1175   {0.6, 4.2013, 4.3103, 4.4274, 4.5537, 4.620    1364   {0.6, 4.2013, 4.3103, 4.4274, 4.5537, 4.6206, 4.6904, 4.8390, 5.0013, 5.1796}, 
1176   {0.7, 4.5493, 4.6664, 4.7925, 4.9286, 5.000    1365   {0.7, 4.5493, 4.6664, 4.7925, 4.9286, 5.0009, 5.0762, 5.2370, 5.4129, 5.6066}, 
1177   {0.8, 4.8537, 4.9780, 5.1119, 5.2568, 5.333    1366   {0.8, 4.8537, 4.9780, 5.1119, 5.2568, 5.3338, 5.4141, 5.5857, 5.7738, 5.9811}, 
1178   {1.0, 5.3701, 5.5066, 5.6540, 5.8138, 5.898    1367   {1.0, 5.3701, 5.5066, 5.6540, 5.8138, 5.8989, 5.9878, 6.1780, 6.3870, 6.6179}, 
1179   {1.2, 5.7648, 5.9114, 6.0701, 6.2424, 6.334    1368   {1.2, 5.7648, 5.9114, 6.0701, 6.2424, 6.3343, 6.4303, 6.6361, 6.8626, 7.1137}, 
1180   {1.4, 6.0976, 6.2530, 6.4214, 6.6044, 6.702    1369   {1.4, 6.0976, 6.2530, 6.4214, 6.6044, 6.7021, 6.8043, 7.0237, 7.2655, 7.5338}, 
1181   {1.5, 6.2447, 6.4041, 6.5768, 6.7647, 6.865    1370   {1.5, 6.2447, 6.4041, 6.5768, 6.7647, 6.8650, 6.9700, 7.1954, 7.4442, 7.7203}, 
1182   {1.7, 6.5087, 6.6752, 6.8558, 7.0526, 7.157    1371   {1.7, 6.5087, 6.6752, 6.8558, 7.0526, 7.1578, 7.2679, 7.5045, 7.7660, 8.0565}, 
1183   {2.0, 6.8458, 7.0218, 7.2129, 7.4213, 7.532    1372   {2.0, 6.8458, 7.0218, 7.2129, 7.4213, 7.5328, 7.6496, 7.9010, 8.1791, 8.4886}, 
1184   {3.0, 7.6647, 7.8644, 8.0819, 8.3189, 8.447    1373   {3.0, 7.6647, 7.8644, 8.0819, 8.3189, 8.4475, 8.5814, 8.8702, 9.1908, 9.5488}, 
1185   {5.0, 8.6515, 8.8816, 9.1330, 9.4090, 9.557    1374   {5.0, 8.6515, 8.8816, 9.1330, 9.4090, 9.5572, 9.7132, 10.0504, 10.4259, 10.8466}, 
1186   {7.0, 9.0221, 9.2724, 9.5464, 9.8477, 10.00    1375   {7.0, 9.0221, 9.2724, 9.5464, 9.8477, 10.0099, 10.1805, 10.5499, 10.9622, 11.4250}
1187   };                                             1376   }; 
1188                                                  1377 
1189   const G4double bll3[28][9] = {                 1378   const G4double bll3[28][9] = { 
1190   {0.005, 1.3190E-3, 1.4961E-3, 1.6974E-3, 2.    1379   {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}, 
1191   {0.007, 4.0158E-3, 4.4623E-3, 4.9592E-3, 6.    1380   {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}, 
1192   {0.01, 1.1509E-2, 1.2548E-2, 1.3681E-2, 1.6    1381   {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}, 
1193   {0.015, 3.3070E-2, 3.5408E-2, 3.7914E-2, 4.    1382   {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}, 
1194   {0.02, 6.4555E-2, 6.8394E-2, 7.2472E-2, 8.1    1383   {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}, 
1195   {0.03, 1.5030E-1, 1.5101E-1, 1.5844E-1, 1.7    1384   {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}, 
1196   {0.04, 2.5743E-1, 2.6774E-1, 2.7855E-1, 3.0    1385   {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}, 
1197   {0.05, 3.7846E-1, 3.9195E-1, 4.0607E-1, 4.3    1386   {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}, 
1198   {0.06, 5.0839E-1, 5.2497E-1, 5.4230E-1, 5.7    1387   {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}, 
1199   {0.08, 7.8230E-1, 8.0474E-1, 8.2818E-1, 8.7    1388   {0.08, 7.8230E-1, 8.0474E-1, 8.2818E-1, 8.7836E-1, 9.3355E-1, 9.9462E-1, 1.0627, 1.1394}, 
1200   {0.1, 1.0621, 1.0900, 1.1192, 1.1816, 1.250    1389   {0.1, 1.0621, 1.0900, 1.1192, 1.1816, 1.2503, 1.3265, 1.4116, 1.5076}, 
1201   {0.15, 1.7389, 1.7790, 1.8210, 1.9112, 2.01    1390   {0.15, 1.7389, 1.7790, 1.8210, 1.9112, 2.0108, 2.1217, 2.2462, 2.3876}, 
1202   {0.2, 2.3516, 2.4024, 2.4556, 2.5701, 2.697    1391   {0.2, 2.3516, 2.4024, 2.4556, 2.5701, 2.6971, 2.8391, 2.9994, 3.1822}, 
1203   {0.3, 3.3741, 3.4427, 3.5148, 3.6706, 3.844    1392   {0.3, 3.3741, 3.4427, 3.5148, 3.6706, 3.8445, 4.0404, 4.2631, 4.5193}, 
1204   {0.4, 4.1788, 4.2620, 4.3496, 4.5398, 4.753    1393   {0.4, 4.1788, 4.2620, 4.3496, 4.5398, 4.7530, 4.9944, 5.2703, 5.5895}, 
1205   {0.5, 4.8180, 4.9137, 5.0146, 5.2341, 5.481    1394   {0.5, 4.8180, 4.9137, 5.0146, 5.2341, 5.4811, 5.7618, 6.0840, 6.4583}, 
1206   {0.6, 5.3765, 5.4830, 5.5954, 5.8406, 6.117    1395   {0.6, 5.3765, 5.4830, 5.5954, 5.8406, 6.1173, 6.4326, 6.7958, 7.2191}, 
1207   {0.7, 5.8208, 5.9369, 6.0596, 6.3275, 6.630    1396   {0.7, 5.8208, 5.9369, 6.0596, 6.3275, 6.6306, 6.9769, 7.3767, 7.8440}, 
1208   {0.8, 6.2109, 6.3355, 6.4674, 6.7558, 7.082    1397   {0.8, 6.2109, 6.3355, 6.4674, 6.7558, 7.0827, 7.4570, 7.8900, 8.3972}, 
1209   {1.0, 6.8747, 7.0142, 7.1621, 7.4861, 7.854    1398   {1.0, 6.8747, 7.0142, 7.1621, 7.4861, 7.8546, 8.2778, 8.7690, 9.3464}, 
1210   {1.2, 7.3933, 7.5454, 7.7068, 8.0612, 8.465    1399   {1.2, 7.3933, 7.5454, 7.7068, 8.0612, 8.4652, 8.9302, 9.4713, 10.1090}, 
1211   {1.4, 7.8331, 7.9967, 8.1694, 8.5502, 8.985    1400   {1.4, 7.8331, 7.9967, 8.1694, 8.5502, 8.9851, 9.4866, 10.0713, 10.7619}, 
1212   {1.5, 8.0286, 8.1967, 8.3753, 8.7681, 9.218    1401   {1.5, 8.0286, 8.1967, 8.3753, 8.7681, 9.2181, 9.7352, 10.3399, 11.0546}, 
1213   {1.7, 8.3813, 8.5585, 8.7469, 9.1618, 9.636    1402   {1.7, 8.3813, 8.5585, 8.7469, 9.1618, 9.6367, 10.1856, 10.8270, 11.5863}, 
1214   {2.0, 8.8352, 9.0245, 9.2260, 9.6701, 10.17    1403   {2.0, 8.8352, 9.0245, 9.2260, 9.6701, 10.1793, 10.7688, 11.4590, 12.2775}, 
1215   {3.0, 9.9511, 10.1714, 10.4062, 10.9254, 11    1404   {3.0, 9.9511, 10.1714, 10.4062, 10.9254, 11.5229, 12.2172, 13.0332, 14.0048}, 
1216   {5.0, 11.3211, 11.5818, 11.8601, 12.4771, 1    1405   {5.0, 11.3211, 11.5818, 11.8601, 12.4771, 13.1898, 14.0213, 15.0024, 16.1752}, 
1217   {7.0, 11.9480, 12.2357, 12.5432, 13.2260, 1    1406   {7.0, 11.9480, 12.2357, 12.5432, 13.2260, 14.0164, 14.9404, 16.0330, 17.3420}
1218   };                                             1407   };
1219                                                  1408                              
1220   G4double b, bs;                                1409   G4double b, bs; 
1221   for(i=0; i<nEtaK; ++i) {                       1410   for(i=0; i<nEtaK; ++i) {
1222                                                  1411 
1223     G4double et = Eta[i];                     << 1412     G4double et = eta[i];
1224     G4double loget = G4Log(et);               << 1413     G4double loget = std::log(et);
                                                   >> 1414     Eta[i] = et;
                                                   >> 1415     //G4cout << "### eta["<<i<<"]="<<et<<"  KShell: tet= "<<TheK[0]<<" - "<<TheK[nK-1]<<G4endl;
1225                                                  1416 
1226     for(j=0; j<nK; ++j) {                        1417     for(j=0; j<nK; ++j) {
1227                                                  1418 
1228       if(j < 10) { b = bk2[i][10-j]; }           1419       if(j < 10) { b = bk2[i][10-j]; }
1229       else       { b = bk1[i][20-j]; }           1420       else       { b = bk1[i][20-j]; }
1230                                                  1421 
1231       CK[j][i] = SK[j]*loget + TK[j] - b;        1422       CK[j][i] = SK[j]*loget + TK[j] - b;
1232                                                  1423 
1233       if(i == nEtaK-1) {                         1424       if(i == nEtaK-1) { 
1234         ZK[j] = et*(et*et*CK[j][i] - et*UK[j] << 1425   ZK[j] = et*(et*et*CK[j][i] - et*UK[j] - VK[j]); 
1235         //G4cout << "i= " << i << " j= " << j << 1426   //G4cout << "i= " << i << " j= " << j 
1236         //       << " CK[j][i]= " <<  CK[j][i << 1427   //       << " CK[j][i]= " <<  CK[j][i]
1237         //       << " ZK[j]= " << ZK[j] << "  << 1428   //       << " ZK[j]= " << ZK[j] << "  b= " << b << G4endl;  
1238       }                                          1429       } 
1239     }                                            1430     }
1240     //G4cout << G4endl;                          1431     //G4cout << G4endl;
1241     if(i < nEtaL) {                              1432     if(i < nEtaL) {
1242       //G4cout << "  LShell:" <<G4endl;          1433       //G4cout << "  LShell:" <<G4endl;
1243       for(j=0; j<nL; ++j) {                      1434       for(j=0; j<nL; ++j) {
1244                                                  1435 
1245         if(j < 8) {                              1436         if(j < 8) {
1246           bs = bls3[i][8-j];                     1437           bs = bls3[i][8-j];
1247           b  = bll3[i][8-j];                     1438           b  = bll3[i][8-j];
1248         } else if(j < 17) {                      1439         } else if(j < 17) {
1249           bs = bls2[i][17-j];                    1440           bs = bls2[i][17-j];
1250           b  = bll2[i][17-j];                    1441           b  = bll2[i][17-j];
1251         } else {                                 1442         } else {
1252           bs = bls1[i][26-j];                    1443           bs = bls1[i][26-j];
1253           b  = bll1[i][26-j];                    1444           b  = bll1[i][26-j];
1254         }                                     << 1445   }
1255         G4double c = SL[j]*loget + TL[j];     << 1446   G4double c = SL[j]*loget + TL[j]; 
1256         CL[j][i] = c - bs - 3.0*b;               1447         CL[j][i] = c - bs - 3.0*b;
1257         if(i == nEtaL-1) {                       1448         if(i == nEtaL-1) { 
1258           VL[j] = et*(et*CL[j][i] - UL[j]);   << 1449     VL[j] = et*(et*CL[j][i] - UL[j]); 
1259           //G4cout << "i= " << i << " j= " << << 1450     //G4cout << "i= " << i << " j= " << j 
1260           //         << " CL[j][i]= " <<  CL[ << 1451     //   << " CL[j][i]= " <<  CL[j][i]
1261           //         << " VL[j]= " << VL[j] < << 1452     //   << " VL[j]= " << VL[j] << " b= " << b << " bs= " << bs 
1262           //         << " et= " << et << G4en << 1453     //   << " et= " << et << G4endl; 
1263           //" UL= " << UL[j] << " TL= " << TL << 1454     //" UL= " << UL[j] << " TL= " << TL[j] << " SL= " << SL[j] <<G4endl;  
1264         }                                     << 1455   }
1265       }                                          1456       }
1266       //G4cout << G4endl;                        1457       //G4cout << G4endl;
1267     }                                            1458     }
1268   }                                              1459   }
                                                   >> 1460   const G4double hm[53] = {
                                                   >> 1461     12.0, 12.0, 12.0, 12.0, 11.9, 11.7, 11.5, 11.2, 10.8, 10.4,
                                                   >> 1462     10.0,  9.51, 8.97, 8.52, 8.03, 7.46, 6.95, 6.53, 6.18, 5.87, 
                                                   >> 1463     5.61,  5.39, 5.19, 5.01, 4.86, 4.72, 4.62, 4.53, 4.44, 4.38, 
                                                   >> 1464     4.32,  4.26, 4.20, 4.15, 4.1,  4.04, 4.00, 3.95, 3.93, 3.91, 
                                                   >> 1465     3.90,  3.89, 3.89, 3.88, 3.88, 3.88, 3.88, 3.88, 3.89, 3.89, 
                                                   >> 1466     3.90, 3.92, 3.93 };
                                                   >> 1467   const G4double hn[31] = {
                                                   >> 1468     75.5, 61.9, 52.2, 45.1, 39.6, 35.4, 31.9, 29.1, 27.2, 25.8, 
                                                   >> 1469     24.5, 23.6, 22.7, 22.0, 21.4, 20.9, 20.5, 20.2, 19.9, 19.7, 
                                                   >> 1470     19.5, 19.3, 19.2, 19.1, 18.4, 18.8, 18.7, 18.6, 18.5, 18.4, 
                                                   >> 1471     18.2
                                                   >> 1472   };
                                                   >> 1473   for(i=0; i<53; ++i) {HM[i] = hm[i];}
                                                   >> 1474   for(i=0; i<31; ++i) {HN[i] = hn[i];}
1269                                                  1475 
1270   const G4double xzk[34] = { 11.7711,            1476   const G4double xzk[34] = { 11.7711,
1271     13.3669, 15.5762, 17.1715, 18.7667, 20.85    1477     13.3669, 15.5762, 17.1715, 18.7667, 20.8523, 23.0606, 24.901, 26.9861, 29.4394, 31.77,
1272     34.3457, 37.4119, 40.3555, 42.3177, 44.77    1478     34.3457, 37.4119, 40.3555, 42.3177, 44.7705, 47.2234, 50.78, 53.8458, 56.4214, 58.3834,
1273     60.9586, 63.6567, 66.5998, 68.807, 71.872    1479     60.9586, 63.6567, 66.5998, 68.807, 71.8728, 74.5706, 77.3911, 81.8056, 85.7297, 89.8988,
1274                              93.4549, 96.2753 << 1480            93.4549, 96.2753, 99.709};
1275   const G4double yzk[34] = { 0.70663,            1481   const G4double yzk[34] = { 0.70663,
1276     0.72033, 0.73651, 0.74647, 0.75518, 0.763    1482     0.72033, 0.73651, 0.74647, 0.75518, 0.76388, 0.77258, 0.78129, 0.78625, 0.7937, 0.79991,
1277     0.80611, 0.8123, 0.8185, 0.82097, 0.82467    1483     0.80611, 0.8123, 0.8185, 0.82097, 0.82467, 0.82838, 0.83457, 0.83702, 0.84198, 0.8432,
1278     0.84565, 0.84936, 0.85181, 0.85303, 0.855    1484     0.84565, 0.84936, 0.85181, 0.85303, 0.85548, 0.85794, 0.8604, 0.86283, 0.86527, 0.86646,
1279                              0.86891, 0.87011 << 1485            0.86891, 0.87011, 0.87381};
1280                                                  1486 
1281   const G4double xzl[36] = { 15.5102,            1487   const G4double xzl[36] = { 15.5102,
1282     16.7347, 17.9592, 19.551, 21.0204, 22.612    1488     16.7347, 17.9592, 19.551, 21.0204, 22.6122, 24.9388, 27.3878, 29.5918, 31.3061, 32.898,
1283     34.4898, 36.2041, 38.4082, 40.3674, 42.57    1489     34.4898, 36.2041, 38.4082, 40.3674, 42.5714, 44.898, 47.4694, 49.9184, 52.7347, 55.9184,
1284     59.3469, 61.9184, 64.6122, 67.4286, 71.46    1490     59.3469, 61.9184, 64.6122, 67.4286, 71.4694, 75.2653, 78.3265, 81.2653, 85.551, 88.7347,
1285                              91.551, 94.2449, << 1491            91.551, 94.2449, 96.449, 98.4082, 99.7551};
1286   const G4double yzl[36] = { 0.29875,            1492   const G4double yzl[36] = { 0.29875,
1287     0.31746, 0.33368, 0.35239, 0.36985, 0.387    1493     0.31746, 0.33368, 0.35239, 0.36985, 0.38732, 0.41102, 0.43472, 0.45343, 0.4659, 0.47713,
1288     0.4896, 0.50083, 0.51331, 0.52328, 0.5307    1494     0.4896, 0.50083, 0.51331, 0.52328, 0.53077, 0.54075, 0.54823, 0.55572, 0.56445, 0.57193,
1289     0.58191, 0.5869, 0.59189, 0.60062, 0.6068    1495     0.58191, 0.5869, 0.59189, 0.60062, 0.60686, 0.61435, 0.61809, 0.62183, 0.62931, 0.6343,
1290                               0.6368, 0.64054 << 1496            0.6368, 0.64054, 0.64304, 0.64428, 0.64678};
                                                   >> 1497 
                                                   >> 1498   ThetaK = new G4LPhysicsFreeVector(34, xzk[0], xzk[33]);
                                                   >> 1499   ThetaL = new G4LPhysicsFreeVector(36, xzl[0], xzl[35]);
                                                   >> 1500   for(i=0; i<34; ++i) { ThetaK->PutValues(i, xzk[i], yzk[i]); }
                                                   >> 1501   for(i=0; i<36; ++i) { ThetaL->PutValues(i, xzl[i], yzl[i]); }
                                                   >> 1502   ThetaK->SetSpline(true);
                                                   >> 1503   ThetaL->SetSpline(true);
                                                   >> 1504 
                                                   >> 1505   const G4double coseb[14] = {0.0,0.05,0.1,0.15,0.2,0.3,0.4,0.5,0.6,0.8,
                                                   >> 1506                               1.0,1.2,1.5,2.0};
                                                   >> 1507   const G4double cosxi[14] = {1.0000, 0.9905, 0.9631, 0.9208, 0.8680,
                                                   >> 1508                               0.7478, 0.6303, 0.5290, 0.4471, 0.3323,
                                                   >> 1509                               0.2610, 0.2145, 0.1696, 0.1261};
                                                   >> 1510   for(i=0; i<14; ++i) {
                                                   >> 1511     COSEB[i] = coseb[i];
                                                   >> 1512     COSXI[i] = cosxi[i];
                                                   >> 1513   }
1291                                                  1514 
1292   sThetaK = new G4PhysicsFreeVector(34, false << 1515   for(i=1; i<100; ++i) {
1293   for(i=0; i<34; ++i) { sThetaK->PutValues(i, << 1516     Z23[i] = std::pow(G4double(i),0.23);
1294   sThetaL = new G4PhysicsFreeVector(36, false << 1517   }
1295   for(i=0; i<36; ++i) { sThetaL->PutValues(i, << 
1296 }                                                1518 }
1297                                                  1519 
1298 //....oooOO0OOooo........oooOO0OOooo........o    1520 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
1299                                                  1521 
1300                                                  1522