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.1.p3)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 // Author: Haifa Ben Abdelouahed                  
 27 //                                                
 28 //                                                
 29 // History:                                       
 30 // -----------                                    
 31 //  23 Apr 2008   H. Ben Abdelouahed   1st imp    
 32 //  28 Apr 2008   MGP        Major revision ac    
 33 //  21 Apr 2009   ALF Some correction for comp    
 34 //      and changed name to G4OrlicLiCrossSect    
 35 //  21 Mar 2011   ALF some bug fixing (Z check    
 36 //  29 Oct 2011   ALF Changed name to G4OrlicL    
 37 //                                                
 38 // -------------------------------------------    
 39 // Class description:                             
 40 // Low Energy Electromagnetic Physics, Cross s    
 41 // Further documentation available from http:/    
 42 // -------------------------------------------    
 43                                                   
 44 #include "G4OrlicLiXsModel.hh"                    
 45                                                   
 46 #include "globals.hh"                             
 47 #include "G4PhysicalConstants.hh"                 
 48 #include "G4SystemOfUnits.hh"                     
 49 #include "G4Proton.hh"                            
 50 #include "G4Exp.hh"                               
 51                                                   
 52 //********************************************    
 53                                                   
 54 G4OrlicLiXsModel::G4OrlicLiXsModel()              
 55 {                                                 
 56   transitionManager =  G4AtomicTransitionManag    
 57 }                                                 
 58                                                   
 59 //********************************************    
 60                                                   
 61 G4OrlicLiXsModel::~G4OrlicLiXsModel()             
 62 {;}                                               
 63                                                   
 64 //this L-CrossSection calculation method is do    
 65 //I.ORLIC, C.H.SOW and S.M.TANG,International     
 66                                                   
 67 //********************************************    
 68 G4double G4OrlicLiXsModel::CalculateL1CrossSec    
 69                                                   
 70 {                                                 
 71                                                   
 72   if ( zTarget < 41 )//fixed: no control on z!    
 73     {                                             
 74       return 0;                                   
 75     }                                             
 76                                                   
 77   G4double l1BindingEnergy = transitionManager    
 78   G4double lamda =  1836.109; //massIncident/e    
 79                                                   
 80   G4double normalizedEnergy =  (energyIncident    
 81                                                   
 82   G4double x = std::log(normalizedEnergy);        
 83                                                   
 84   G4double a0 = 0.;                               
 85   G4double a1 = 0.;                               
 86   G4double a2 = 0.;                               
 87   G4double a3 = 0.;                               
 88   G4double a4 = 0.;                               
 89   G4double a5 = 0.;                               
 90   G4double a6 = 0.;                               
 91   G4double a7 = 0.;                               
 92   G4double a8 = 0.;                               
 93   G4double a9 = 0.;                               
 94                                                   
 95   if ( (zTarget>=41 &&  zTarget<=50) && (norma    
 96     {                                             
 97       a0=11.274881;                               
 98       a1=-0.187401;                               
 99       a2=-0.943341;                               
100       a3=-1.47817;                                
101       a4=-1.282343;                               
102       a5=-0.386544;                               
103       a6=-0.037932;                               
104       a7=0.;                                      
105       a8=0.;                                      
106       a9=0.;                                      
107     }                                             
108   else if ( (zTarget>=51 &&  zTarget<=60) && (    
109     {                                             
110       a0=11.242637;                               
111       a1=-0.162515;                               
112       a2=1.035774;                                
113       a3=3.970908;                                
114       a4=3.968233;                                
115       a5=1.655714;                                
116       a6=0.058885;                                
117       a7=-0.155743;                               
118       a8=-0.042228;                               
119       a9=-0.003371;                               
120     }                                             
121   else if ( (zTarget>=61 &&  zTarget<=70) && (    
122     {                                             
123       a0=6.476722;                                
124       a1=-25.804787;                              
125       a2=-54.061629;                              
126       a3=-56.684589;                              
127       a4=-33.223367;                              
128       a5=-11.034979;                              
129       a6=-2.042851;                               
130       a7=-0.194075;                               
131       a8=-0.007252;                               
132       a9=0.;                                      
133     }                                             
134   else if ( (zTarget>=71 &&  zTarget<=80) && (    
135     {                                             
136       a0=12.776794;                               
137       a1=6.562907;                                
138       a2=10.158703;                               
139       a3=7.432592;                                
140       a4=2.332036;                                
141       a5=0.317946;                                
142       a6=0.014479;                                
143       a7=0.;                                      
144       a8=0.;                                      
145       a9=0.;                                      
146     }                                             
147   else if ( (zTarget>=81 &&  zTarget<=92) && (    
148     {                                             
149       a0=28.243087;                               
150       a1=50.199585;                               
151       a2=58.281684;                               
152       a3=34.130538;                               
153       a4=10.268531;                               
154       a5=1.525302;                                
155       a6=0.08835;                                 
156       a7=0.;                                      
157       a8=0.;                                      
158       a9=0.;                                      
159     }                                             
160   else {return 0;}                                
161                                                   
162                                                   
163   G4double analyticalFunction = a0 + (a1*x)+(a    
164     (a4*std::pow(x,4))+(a5*std::pow(x,5))+(a6*    
165     (a7*std::pow(x,7))+(a8*std::pow(x,8))+(a9*    
166                                                   
167   G4double L1crossSection =  G4Exp(analyticalF    
168                                                   
169   if (L1crossSection >= 0) {                      
170     return L1crossSection * barn;                 
171   }                                               
172   else {return 0;}                                
173 }                                                 
174                                                   
175 //********************************************    
176                                                   
177 G4double G4OrlicLiXsModel::CalculateL2CrossSec    
178                                                   
179 {                                                 
180   if ( zTarget < 41) //fixed: no control on z!    
181     {                                             
182      return 0;                                    
183     }                                             
184                                                   
185   G4double  massIncident;                         
186   G4Proton* aProtone = G4Proton::Proton();        
187                                                   
188   massIncident = aProtone->GetPDGMass();          
189                                                   
190   G4double L2crossSection;                        
191                                                   
192   G4double l2BindingEnergy = (transitionManage    
193   G4double lamda =  massIncident/electron_mass    
194   G4double normalizedEnergy =  (energyIncident    
195   G4double x = std::log(normalizedEnergy);        
196                                                   
197   G4double a0 = 0.;                               
198   G4double a1 = 0.;                               
199   G4double a2 = 0.;                               
200   G4double a3 = 0.;                               
201   G4double a4 = 0.;                               
202   G4double a5 = 0.;                               
203                                                   
204   if ( (zTarget>=41 &&  zTarget<=50) &&  (norm    
205     {                                             
206       a0=11.194798;                               
207       a1=0.178807;                                
208       a2=-0.449865;                               
209       a3=-0.063528;                               
210       a4=-0.015364;                               
211       a5=0.;                                      
212     }                                             
213   else if ( (zTarget>=51 &&  zTarget<=60) && (    
214     {                                             
215       a0=11.241409;                               
216       a1=0.149635;                                
217       a2=-0.633269;                               
218       a3=-0.17834;                                
219       a4=-0.034743;                               
220       a5=0.006474; // a little bit better if t    
221     }                                             
222   else if ( (zTarget>=61 &&  zTarget<=70) && (    
223     {                                             
224       a0=11.247424;                               
225       a1=0.203051;                                
226       a2=-0.219083;                               
227       a3=0.164514;                                
228       a4=0.058692;                                
229       a5=0.007866;                                
230     }                                             
231   else if ( (zTarget>=71 &&  zTarget<=80) && (    
232     {                                             
233       a0=11.229924;                               
234       a1=-0.087241;                               
235       a2=-0.753908;                               
236       a3=-0.181546;                               
237       a4=-0.030406;                               
238       a5=0.;                                      
239     }                                             
240   else if ( (zTarget>=81 &&  zTarget<=92) && (    
241     {                                             
242       a0=11.586671;                               
243       a1=0.730838;                                
244       a2=-0.056713;                               
245       a3=0.053262;                                
246       a4=-0.003672;                               
247       a5=0.;                                      
248     }                                             
249   else {return 0;}                                
250                                                   
251   G4double analyticalFunction = a0 + (a1*x)+(a    
252     (a4*std::pow(x,4))+(a5*std::pow(x,5));        
253                                                   
254   L2crossSection =  G4Exp(analyticalFunction)/    
255                                                   
256   if (L2crossSection >= 0) {                      
257     return L2crossSection * barn;                 
258   }                                               
259   else {return 0;}                                
260 }                                                 
261                                                   
262 //********************************************    
263                                                   
264 G4double G4OrlicLiXsModel::CalculateL3CrossSec    
265                                                   
266 {                                                 
267                                                   
268   if ( zTarget < 41) //fixed: no control on z!    
269     {                                             
270      return 0;                                    
271     }                                             
272                                                   
273   G4double  massIncident;                         
274   G4Proton* aProtone = G4Proton::Proton();        
275   massIncident = aProtone->GetPDGMass();          
276                                                   
277   G4double L3crossSection;                        
278   G4double l3BindingEnergy = (transitionManage    
279                                                   
280   G4double lamda =  massIncident/electron_mass    
281   G4double normalizedEnergy =  (energyIncident    
282   G4double x = std::log(normalizedEnergy);        
283                                                   
284   G4double a0 = 0.;                               
285   G4double a1 = 0.;                               
286   G4double a2 = 0.;                               
287   G4double a3 = 0.;                               
288   G4double a4 = 0.;                               
289   G4double a5 = 0.;                               
290                                                   
291   if ( (zTarget>=41 &&  zTarget<=50 ) && (norm    
292     {                                             
293       a0=11.91837;                                
294       a1=0.03064;                                 
295       a2=-0.657644;                               
296       a3=-0.14532;                                
297       a4=-0.026059;                               
298       //a5=-0.044735; Correction to Orlic mode    
299       //Abdelhwahed H Incerti S and Mantero A     
300     }                                             
301   else if ( (zTarget>=51 &&  zTarget<=60 ) &&     
302     {                                             
303       a0=11.909485;                               
304       a1=0.15918;                                 
305       a2=-0.588004;                               
306       a3=-0.159466;                               
307       a4=-0.033184;                               
308     }                                             
309   else if ( (zTarget>=61 &&  zTarget<=70 ) &&     
310     {                                             
311       a0=11.878472;                               
312       a1=-0.137007;                               
313       a2=-0.959475;                               
314       a3=-0.316505;                               
315       a4=-0.054154;                               
316     }                                             
317   else if ( (zTarget>=71 &&  zTarget<=80 ) &&     
318     {                                             
319       a0=11.802538;                               
320       a1=-0.371796;                               
321       a2=-1.052238;                               
322       a3=-0.28766;                                
323       a4=-0.042608;                               
324     }                                             
325   else if ( (zTarget>=81 &&  zTarget<=92 ) &&     
326     {                                             
327       a0=11.423712;                               
328       a1=-1.428823;                               
329       a2=-1.946979;                               
330       a3=-0.585198;                               
331       a4=-0.076467;                               
332     }                                             
333   else {return 0;}                                
334                                                   
335   G4double analyticalFunction = a0 + (a1*x)+(a    
336     (a3*std::pow(x,3))+(a4*std::pow(x,4))+(a5*    
337                                                   
338   L3crossSection =  G4Exp(analyticalFunction)/    
339                                                   
340   if (L3crossSection >= 0) {                      
341     return L3crossSection * barn;                 
342   }                                               
343   else {return 0;}                                
344 }                                                 
345