Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/electromagnetic/lowenergy/src/G4OrlicLiXsModel.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/lowenergy/src/G4OrlicLiXsModel.cc (Version 11.3.0) and /processes/electromagnetic/lowenergy/src/G4OrlicLiXsModel.cc (Version 9.6.p4)


  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 // Author: Haifa Ben Abdelouahed                   26 // Author: Haifa Ben Abdelouahed
 27 //                                             <<  27 //         
 28 //                                                 28 //
 29 // History:                                        29 // History:
 30 // -----------                                     30 // -----------
 31 //  23 Apr 2008   H. Ben Abdelouahed   1st imp     31 //  23 Apr 2008   H. Ben Abdelouahed   1st implementation
 32 //  28 Apr 2008   MGP        Major revision ac     32 //  28 Apr 2008   MGP        Major revision according to a design iteration
 33 //  21 Apr 2009   ALF Some correction for comp     33 //  21 Apr 2009   ALF Some correction for compatibility to G4VShellCrossSection
 34 //      and changed name to G4OrlicLiCrossSect <<  34 //      and changed name to G4OrlicLiCrossSection 
 35 //  21 Mar 2011   ALF some bug fixing (Z check     35 //  21 Mar 2011   ALF some bug fixing (Z checks, )
 36 //  29 Oct 2011   ALF Changed name to G4OrlicL     36 //  29 Oct 2011   ALF Changed name to G4OrlicLiXsModel
 37 //                                                 37 //
 38 // -------------------------------------------     38 // -------------------------------------------------------------------
 39 // Class description:                              39 // Class description:
 40 // Low Energy Electromagnetic Physics, Cross s     40 // Low Energy Electromagnetic Physics, Cross section, proton ionisation, L shell
 41 // Further documentation available from http:/     41 // Further documentation available from http://www.ge.infn.it/geant4/lowE
 42 // -------------------------------------------     42 // -------------------------------------------------------------------
 43                                                    43 
 44 #include "G4OrlicLiXsModel.hh"                     44 #include "G4OrlicLiXsModel.hh"
 45                                                    45 
 46 #include "globals.hh"                              46 #include "globals.hh"
 47 #include "G4PhysicalConstants.hh"                  47 #include "G4PhysicalConstants.hh"
 48 #include "G4SystemOfUnits.hh"                      48 #include "G4SystemOfUnits.hh"
 49 #include "G4Proton.hh"                             49 #include "G4Proton.hh"
 50 #include "G4Exp.hh"                            << 
 51                                                    50 
 52 //******************************************** << 
 53                                                    51 
 54 G4OrlicLiXsModel::G4OrlicLiXsModel()               52 G4OrlicLiXsModel::G4OrlicLiXsModel()
 55 {                                              <<  53 { 
                                                   >>  54 
 56   transitionManager =  G4AtomicTransitionManag     55   transitionManager =  G4AtomicTransitionManager::Instance();
 57 }                                              << 
 58                                                    56 
 59 //******************************************** <<  57 }
 60                                                    58 
 61 G4OrlicLiXsModel::~G4OrlicLiXsModel()              59 G4OrlicLiXsModel::~G4OrlicLiXsModel()
 62 {;}                                            <<  60 { 
 63                                                    61 
 64 //this L-CrossSection calculation method is do <<  62 }
 65 //I.ORLIC, C.H.SOW and S.M.TANG,International  <<  63 
                                                   >>  64 //this L-CrossSection calculation method is done according to 
                                                   >>  65 //I.ORLIC, C.H.SOW and S.M.TANG,International Journal of PIXE.Vol.4(1994) 217-230 
                                                   >>  66  
 66                                                    67 
 67 //********************************************     68 //********************************************************************************
 68 G4double G4OrlicLiXsModel::CalculateL1CrossSec << 
 69                                                    69 
                                                   >>  70 G4double G4OrlicLiXsModel::CalculateL1CrossSection(G4int zTarget, G4double energyIncident)
                                                   >>  71                
 70 {                                                  72 {
 71                                                    73 
 72   if ( zTarget < 41 )//fixed: no control on z! <<  74   if ( /*(energyIncident < 0.1*MeV || energyIncident > 10*MeV) ||*/ zTarget < 41 )//fixed: no control on z!
                                                   >>  75 
 73     {                                              76     {
                                                   >>  77       //G4cout << "WARNING: L1 Cross-Section exist only for ZTarget between 41 and 92, zero returned " << G4endl;
                                                   >>  78       //G4cout << "energyIncident(MeV): " << energyIncident/MeV << G4endl;
                                                   >>  79       //G4cout << "zTarget: " << zTarget << G4endl;
 74       return 0;                                    80       return 0;
 75     }                                              81     }
 76                                                    82 
                                                   >>  83 
                                                   >>  84   /*
                                                   >>  85   G4double  massIncident; 
                                                   >>  86   G4Proton* aProtone = G4Proton::Proton();
                                                   >>  87   massIncident = aProtone->GetPDGMass(); 
                                                   >>  88   */
                                                   >>  89   
 77   G4double l1BindingEnergy = transitionManager     90   G4double l1BindingEnergy = transitionManager->Shell(zTarget,1)->BindingEnergy()/keV;
                                                   >>  91 //  G4double l1BindingEnergy = (transitionManager->Shell(zTarget,1)->BindingEnergy())/keV;
                                                   >>  92  
 78   G4double lamda =  1836.109; //massIncident/e     93   G4double lamda =  1836.109; //massIncident/electron_mass_c2;
 79                                                    94 
 80   G4double normalizedEnergy =  (energyIncident     95   G4double normalizedEnergy =  (energyIncident/keV)/(lamda*l1BindingEnergy);
 81                                                    96 
 82   G4double x = std::log(normalizedEnergy);         97   G4double x = std::log(normalizedEnergy);
 83                                                    98 
 84   G4double a0 = 0.;                                99   G4double a0 = 0.;
 85   G4double a1 = 0.;                               100   G4double a1 = 0.;
 86   G4double a2 = 0.;                               101   G4double a2 = 0.;
 87   G4double a3 = 0.;                               102   G4double a3 = 0.;
 88   G4double a4 = 0.;                               103   G4double a4 = 0.;
 89   G4double a5 = 0.;                               104   G4double a5 = 0.;
 90   G4double a6 = 0.;                            << 105   G4double a6 = 0.;  
 91   G4double a7 = 0.;                            << 106   G4double a7 = 0.;  
 92   G4double a8 = 0.;                            << 107   G4double a8 = 0.; 
 93   G4double a9 = 0.;                               108   G4double a9 = 0.;
 94                                                   109 
                                                   >> 110                                        
 95   if ( (zTarget>=41 &&  zTarget<=50) && (norma    111   if ( (zTarget>=41 &&  zTarget<=50) && (normalizedEnergy>=0.013 && normalizedEnergy<=1) )
 96     {                                          << 112     {     
                                                   >> 113       
                                                   >> 114       G4cout << "Energy1 (keV) = " << normalizedEnergy * lamda*l1BindingEnergy << G4endl; //debug
                                                   >> 115       
 97       a0=11.274881;                               116       a0=11.274881;
 98       a1=-0.187401;                               117       a1=-0.187401;
 99       a2=-0.943341;                               118       a2=-0.943341;
100       a3=-1.47817;                                119       a3=-1.47817;
101       a4=-1.282343;                               120       a4=-1.282343;
102       a5=-0.386544;                            << 121       a5=-0.386544; 
103       a6=-0.037932;                               122       a6=-0.037932;
104       a7=0.;                                      123       a7=0.;
105       a8=0.;                                      124       a8=0.;
106       a9=0.;                                      125       a9=0.;
107     }                                             126     }
108   else if ( (zTarget>=51 &&  zTarget<=60) && ( << 127   
109     {                                          << 128   else if ( (zTarget>=51 &&  zTarget<=60) && (normalizedEnergy>=0.012 && normalizedEnergy<=0.95)) 
                                                   >> 129     { 
                                                   >> 130 
                                                   >> 131       //      G4cout << "Energy2 (keV) = " << normalizedEnergy * lamda*l1BindingEnergy << G4endl; //debug
                                                   >> 132 
110       a0=11.242637;                               133       a0=11.242637;
111       a1=-0.162515;                               134       a1=-0.162515;
112       a2=1.035774;                                135       a2=1.035774;
113       a3=3.970908;                                136       a3=3.970908;
114       a4=3.968233;                                137       a4=3.968233;
115       a5=1.655714;                                138       a5=1.655714;
116       a6=0.058885;                                139       a6=0.058885;
117       a7=-0.155743;                               140       a7=-0.155743;
118       a8=-0.042228;                               141       a8=-0.042228;
119       a9=-0.003371;                            << 142       a9=-0.003371; 
120     }                                          << 143     } 
121   else if ( (zTarget>=61 &&  zTarget<=70) && ( << 144   
122     {                                          << 145   else if ( (zTarget>=61 &&  zTarget<=70) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.6) ) 
                                                   >> 146     { 
                                                   >> 147 
                                                   >> 148       //      G4cout << "Energy3 (keV) = " << normalizedEnergy * lamda*l1BindingEnergy << G4endl; //debug
                                                   >> 149 
123       a0=6.476722;                                150       a0=6.476722;
124       a1=-25.804787;                              151       a1=-25.804787;
125       a2=-54.061629;                              152       a2=-54.061629;
126       a3=-56.684589;                              153       a3=-56.684589;
127       a4=-33.223367;                              154       a4=-33.223367;
128       a5=-11.034979;                           << 155       a5=-11.034979; 
129       a6=-2.042851;                               156       a6=-2.042851;
130       a7=-0.194075;                               157       a7=-0.194075;
131       a8=-0.007252;                               158       a8=-0.007252;
132       a9=0.;                                      159       a9=0.;
133     }                                          << 160     } 
134   else if ( (zTarget>=71 &&  zTarget<=80) && ( << 161   else if ( (zTarget>=71 &&  zTarget<=80) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.45) )  
135     {                                          << 162     { 
                                                   >> 163 
                                                   >> 164       //      G4cout << "Energy4 (keV) = " << normalizedEnergy * lamda*l1BindingEnergy << G4endl; //debug
                                                   >> 165 
136       a0=12.776794;                               166       a0=12.776794;
137       a1=6.562907;                                167       a1=6.562907;
138       a2=10.158703;                               168       a2=10.158703;
139       a3=7.432592;                                169       a3=7.432592;
140       a4=2.332036;                                170       a4=2.332036;
141       a5=0.317946;                             << 171       a5=0.317946; 
142       a6=0.014479;                                172       a6=0.014479;
143       a7=0.;                                      173       a7=0.;
144       a8=0.;                                      174       a8=0.;
145       a9=0.;                                      175       a9=0.;
146     }                                          << 176     } 
147   else if ( (zTarget>=81 &&  zTarget<=92) && ( << 177   else if ( (zTarget>=81 &&  zTarget<=92) && (normalizedEnergy>=0.008 && normalizedEnergy<=0.3) )  
148     {                                          << 178     { 
                                                   >> 179 
                                                   >> 180       //      G4cout << "Energy5 (keV) = " << normalizedEnergy * lamda*l1BindingEnergy << G4endl; //debug
                                                   >> 181 
149       a0=28.243087;                               182       a0=28.243087;
150       a1=50.199585;                               183       a1=50.199585;
151       a2=58.281684;                               184       a2=58.281684;
152       a3=34.130538;                               185       a3=34.130538;
153       a4=10.268531;                               186       a4=10.268531;
154       a5=1.525302;                             << 187       a5=1.525302; 
155       a6=0.08835;                                 188       a6=0.08835;
156       a7=0.;                                      189       a7=0.;
157       a8=0.;                                      190       a8=0.;
158       a9=0.;                                      191       a9=0.;
159     }                                             192     }
160   else {return 0;}                                193   else {return 0;}
161                                                   194 
162                                                   195 
163   G4double analyticalFunction = a0 + (a1*x)+(a << 196 G4double analyticalFunction = a0 + (a1*x)+(a2*x*x)+(a3*std::pow(x,3))+(a4*std::pow(x,4))+(a5*std::pow(x,5))+(a6*std::pow(x,6))+
164     (a4*std::pow(x,4))+(a5*std::pow(x,5))+(a6* << 197   (a7*std::pow(x,7))+(a8*std::pow(x,8))+(a9*std::pow(x,9)); 
165     (a7*std::pow(x,7))+(a8*std::pow(x,8))+(a9* << 198 
                                                   >> 199 
                                                   >> 200 
                                                   >> 201   G4double L1crossSection =  std::exp(analyticalFunction)/(l1BindingEnergy*l1BindingEnergy);  
166                                                   202 
167   G4double L1crossSection =  G4Exp(analyticalF << 
168                                                   203 
169   if (L1crossSection >= 0) {                      204   if (L1crossSection >= 0) {
170     return L1crossSection * barn;                 205     return L1crossSection * barn;
171   }                                               206   }
172   else {return 0;}                                207   else {return 0;}
                                                   >> 208 
173 }                                                 209 }
174                                                   210 
175 //******************************************** << 211 //*****************************************************************************************************************************************
176                                                   212 
177 G4double G4OrlicLiXsModel::CalculateL2CrossSec << 
178                                                   213 
                                                   >> 214 G4double G4OrlicLiXsModel::CalculateL2CrossSection(G4int zTarget, G4double energyIncident)
                                                   >> 215                
179 {                                                 216 {
180   if ( zTarget < 41) //fixed: no control on z! << 217 
                                                   >> 218 
                                                   >> 219   if ( /*(energyIncident < 0.1*MeV || energyIncident > 10*MeV) ||*/zTarget < 41) //fixed: no control on z!)
                                                   >> 220     
181     {                                             221     {
                                                   >> 222       //G4cout << "WARNING: L2 Cross-Section exist only for ZTarget between 41 and 92, zero returned " << G4endl;
                                                   >> 223       //      G4cout << "energyIncident(MeV): " << energyIncident/MeV << G4endl;
                                                   >> 224       //G4cout << "zTarget: " << zTarget << G4endl; 
182      return 0;                                    225      return 0;
183     }                                             226     }
184                                                   227 
185   G4double  massIncident;                      << 228   
                                                   >> 229   
                                                   >> 230   G4double  massIncident; 
                                                   >> 231   
186   G4Proton* aProtone = G4Proton::Proton();        232   G4Proton* aProtone = G4Proton::Proton();
187                                                << 233   
188   massIncident = aProtone->GetPDGMass();       << 234   massIncident = aProtone->GetPDGMass(); 
189                                                << 235   
190   G4double L2crossSection;                        236   G4double L2crossSection;
191                                                << 237   
192   G4double l2BindingEnergy = (transitionManage    238   G4double l2BindingEnergy = (transitionManager->Shell(zTarget,2)->BindingEnergy())/keV;
                                                   >> 239   
193   G4double lamda =  massIncident/electron_mass    240   G4double lamda =  massIncident/electron_mass_c2;
                                                   >> 241   
194   G4double normalizedEnergy =  (energyIncident    242   G4double normalizedEnergy =  (energyIncident/keV)/(lamda*l2BindingEnergy);
                                                   >> 243   
195   G4double x = std::log(normalizedEnergy);        244   G4double x = std::log(normalizedEnergy);
196                                                << 245   
197   G4double a0 = 0.;                               246   G4double a0 = 0.;
198   G4double a1 = 0.;                               247   G4double a1 = 0.;
199   G4double a2 = 0.;                               248   G4double a2 = 0.;
200   G4double a3 = 0.;                               249   G4double a3 = 0.;
201   G4double a4 = 0.;                               250   G4double a4 = 0.;
202   G4double a5 = 0.;                               251   G4double a5 = 0.;
203                                                << 252   
204   if ( (zTarget>=41 &&  zTarget<=50) &&  (norm << 253   if ( (zTarget>=41 &&  zTarget<=50) &&  (normalizedEnergy>=0.015 && normalizedEnergy<=1.5)) 
205     {                                          << 254     { 
206       a0=11.194798;                               255       a0=11.194798;
207       a1=0.178807;                                256       a1=0.178807;
208       a2=-0.449865;                               257       a2=-0.449865;
209       a3=-0.063528;                               258       a3=-0.063528;
210       a4=-0.015364;                               259       a4=-0.015364;
211       a5=0.;                                   << 260       a5=0.; 
212     }                                             261     }
213   else if ( (zTarget>=51 &&  zTarget<=60) && ( << 262   
214     {                                          << 263   else if ( (zTarget>=51 &&  zTarget<=60) && (normalizedEnergy>=0.012 && normalizedEnergy<=1.0)) 
                                                   >> 264     { 
215       a0=11.241409;                               265       a0=11.241409;
216       a1=0.149635;                             << 266       a1=0.149635; 
217       a2=-0.633269;                               267       a2=-0.633269;
218       a3=-0.17834;                                268       a3=-0.17834;
219       a4=-0.034743;                               269       a4=-0.034743;
220       a5=0.006474; // a little bit better if t    270       a5=0.006474; // a little bit better if this is zero (respect to ecpssr)
221     }                                          << 271       
222   else if ( (zTarget>=61 &&  zTarget<=70) && ( << 272     } 
223     {                                          << 273   
                                                   >> 274   else if ( (zTarget>=61 &&  zTarget<=70) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.65)) 
                                                   >> 275     { 
224       a0=11.247424;                               276       a0=11.247424;
225       a1=0.203051;                                277       a1=0.203051;
226       a2=-0.219083;                               278       a2=-0.219083;
227       a3=0.164514;                                279       a3=0.164514;
228       a4=0.058692;                                280       a4=0.058692;
229       a5=0.007866;                             << 281       a5=0.007866; 
230     }                                          << 282     } 
231   else if ( (zTarget>=71 &&  zTarget<=80) && ( << 283   else if ( (zTarget>=71 &&  zTarget<=80) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.47)) 
232     {                                          << 284     { 
233       a0=11.229924;                               285       a0=11.229924;
234       a1=-0.087241;                               286       a1=-0.087241;
235       a2=-0.753908;                               287       a2=-0.753908;
236       a3=-0.181546;                               288       a3=-0.181546;
237       a4=-0.030406;                               289       a4=-0.030406;
238       a5=0.;                                   << 290       a5=0.; 
239     }                                          << 291     } 
240   else if ( (zTarget>=81 &&  zTarget<=92) && ( << 292   else if ( (zTarget>=81 &&  zTarget<=92) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.35)) 
241     {                                          << 293     { 
242       a0=11.586671;                               294       a0=11.586671;
243       a1=0.730838;                                295       a1=0.730838;
244       a2=-0.056713;                               296       a2=-0.056713;
245       a3=0.053262;                                297       a3=0.053262;
246       a4=-0.003672;                               298       a4=-0.003672;
247       a5=0.;                                   << 299       a5=0.; 
248     }                                             300     }
249   else {return 0;}                                301   else {return 0;}
250                                                << 302   
251   G4double analyticalFunction = a0 + (a1*x)+(a << 303   G4double analyticalFunction = a0 + (a1*x)+(a2*x*x)+(a3*std::pow(x,3))+(a4*std::pow(x,4))+(a5*std::pow(x,5)); 
252     (a4*std::pow(x,4))+(a5*std::pow(x,5));     << 304   
253                                                << 305   
254   L2crossSection =  G4Exp(analyticalFunction)/ << 306   L2crossSection =  std::exp(analyticalFunction)/(l2BindingEnergy*l2BindingEnergy); 
255                                                << 307   
                                                   >> 308   
                                                   >> 309   
256   if (L2crossSection >= 0) {                      310   if (L2crossSection >= 0) {
257     return L2crossSection * barn;                 311     return L2crossSection * barn;
258   }                                               312   }
259   else {return 0;}                                313   else {return 0;}
                                                   >> 314   
260 }                                                 315 }
261                                                   316 
262 //******************************************** << 317 //*****************************************************************************************************************************************
263                                                   318 
264 G4double G4OrlicLiXsModel::CalculateL3CrossSec << 
265                                                   319 
                                                   >> 320 G4double G4OrlicLiXsModel::CalculateL3CrossSection(G4int zTarget, G4double energyIncident)
                                                   >> 321                
266 {                                                 322 {
267                                                << 323   
268   if ( zTarget < 41) //fixed: no control on z! << 324   if ( /*(energyIncident < 0.1*MeV || energyIncident > 10*MeV) ||*/zTarget < 41) //fixed: no control on z!
269     {                                          << 325     
                                                   >> 326     {
                                                   >> 327       //G4cout << "WARNING: L3 Cross-Section exist only for ZTarget between 41 and 92, zero returned " << G4endl;
                                                   >> 328       //G4cout << "energyIncident(MeV): " << energyIncident/MeV << G4endl;
                                                   >> 329       //G4cout << "zTarget: " << zTarget << G4endl; 
270      return 0;                                    330      return 0;
271     }                                             331     }
272                                                << 332   
273   G4double  massIncident;                      << 333   G4double  massIncident; 
                                                   >> 334   
274   G4Proton* aProtone = G4Proton::Proton();        335   G4Proton* aProtone = G4Proton::Proton();
275   massIncident = aProtone->GetPDGMass();       << 336   
276                                                << 337   massIncident = aProtone->GetPDGMass(); 
                                                   >> 338   
                                                   >> 339   
277   G4double L3crossSection;                        340   G4double L3crossSection;
                                                   >> 341   
278   G4double l3BindingEnergy = (transitionManage    342   G4double l3BindingEnergy = (transitionManager->Shell(zTarget,3)->BindingEnergy())/keV;
279                                                << 343   
                                                   >> 344   
280   G4double lamda =  massIncident/electron_mass    345   G4double lamda =  massIncident/electron_mass_c2;
                                                   >> 346   
281   G4double normalizedEnergy =  (energyIncident    347   G4double normalizedEnergy =  (energyIncident/keV)/(lamda*l3BindingEnergy);
                                                   >> 348   
282   G4double x = std::log(normalizedEnergy);        349   G4double x = std::log(normalizedEnergy);
283                                                << 350   
                                                   >> 351   
284   G4double a0 = 0.;                               352   G4double a0 = 0.;
285   G4double a1 = 0.;                               353   G4double a1 = 0.;
286   G4double a2 = 0.;                               354   G4double a2 = 0.;
287   G4double a3 = 0.;                               355   G4double a3 = 0.;
288   G4double a4 = 0.;                               356   G4double a4 = 0.;
289   G4double a5 = 0.;                               357   G4double a5 = 0.;
290                                                << 358   
291   if ( (zTarget>=41 &&  zTarget<=50 ) && (norm    359   if ( (zTarget>=41 &&  zTarget<=50 ) && (normalizedEnergy>=0.015 && normalizedEnergy<=1.5))
292     {                                          << 360     { 
293       a0=11.91837;                                361       a0=11.91837;
294       a1=0.03064;                                 362       a1=0.03064;
295       a2=-0.657644;                               363       a2=-0.657644;
296       a3=-0.14532;                                364       a3=-0.14532;
297       a4=-0.026059;                               365       a4=-0.026059;
298       //a5=-0.044735; Correction to Orlic mode << 366       //a5=-0.044735; Correction to Orlic model as explained in 
299       //Abdelhwahed H Incerti S and Mantero A  << 367       //Abdelhwahed H Incerti S and Mantero A 2009 Nucl. Instrum. Meth.B 267 37  
300     }                                             368     }
                                                   >> 369   
301   else if ( (zTarget>=51 &&  zTarget<=60 ) &&     370   else if ( (zTarget>=51 &&  zTarget<=60 ) && (normalizedEnergy>=0.013 && normalizedEnergy<=1.1))
302     {                                          << 371     { 
303       a0=11.909485;                               372       a0=11.909485;
304       a1=0.15918;                                 373       a1=0.15918;
305       a2=-0.588004;                               374       a2=-0.588004;
306       a3=-0.159466;                               375       a3=-0.159466;
307       a4=-0.033184;                            << 376       a4=-0.033184;       
308     }                                          << 377     } 
                                                   >> 378   
309   else if ( (zTarget>=61 &&  zTarget<=70 ) &&     379   else if ( (zTarget>=61 &&  zTarget<=70 ) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.67))
310     {                                          << 380     { 
311       a0=11.878472;                               381       a0=11.878472;
312       a1=-0.137007;                               382       a1=-0.137007;
313       a2=-0.959475;                               383       a2=-0.959475;
314       a3=-0.316505;                               384       a3=-0.316505;
315       a4=-0.054154;                            << 385       a4=-0.054154;  
316     }                                          << 386     } 
317   else if ( (zTarget>=71 &&  zTarget<=80 ) &&     387   else if ( (zTarget>=71 &&  zTarget<=80 ) && (normalizedEnergy>=0.013 && normalizedEnergy<=0.5))
318     {                                          << 388     { 
319       a0=11.802538;                               389       a0=11.802538;
320       a1=-0.371796;                               390       a1=-0.371796;
321       a2=-1.052238;                               391       a2=-1.052238;
322       a3=-0.28766;                                392       a3=-0.28766;
323       a4=-0.042608;                            << 393       a4=-0.042608;      
324     }                                          << 394     } 
325   else if ( (zTarget>=81 &&  zTarget<=92 ) &&     395   else if ( (zTarget>=81 &&  zTarget<=92 ) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.35))
326     {                                          << 396     { 
327       a0=11.423712;                               397       a0=11.423712;
328       a1=-1.428823;                               398       a1=-1.428823;
329       a2=-1.946979;                               399       a2=-1.946979;
330       a3=-0.585198;                               400       a3=-0.585198;
331       a4=-0.076467;                            << 401       a4=-0.076467;      
332     }                                             402     }
333   else {return 0;}                                403   else {return 0;}
334                                                << 404   
335   G4double analyticalFunction = a0 + (a1*x)+(a << 405   
336     (a3*std::pow(x,3))+(a4*std::pow(x,4))+(a5* << 406   G4double analyticalFunction = a0 + (a1*x)+(a2*x*x)+(a3*std::pow(x,3))+(a4*std::pow(x,4))+(a5*std::pow(x,5)); 
337                                                << 407   
338   L3crossSection =  G4Exp(analyticalFunction)/ << 408   
339                                                << 409   L3crossSection =  std::exp(analyticalFunction)/(l3BindingEnergy*l3BindingEnergy); 
                                                   >> 410   
                                                   >> 411   
340   if (L3crossSection >= 0) {                      412   if (L3crossSection >= 0) {
341     return L3crossSection * barn;                 413     return L3crossSection * barn;
342   }                                               414   }
343   else {return 0;}                                415   else {return 0;}
                                                   >> 416   
                                                   >> 417   
344 }                                                 418 }
345                                                   419