Import Geant4 4.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:18:25 +02:00
parent 36c080dca6
commit 921d3b1cda
3990 changed files with 185376 additions and 82884 deletions
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4PAIxSection.cc,v 1.4.4.1 2001/06/28 19:12:37 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4PAIxSection.cc,v 1.8 2001/10/17 14:01:11 gcosmo Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// G4PAIxSection.cc -- class implementation file
@@ -35,14 +35,17 @@
//
// History:
// 1st version 11.06.97 V. Grichine
// 20.11.98 adapted to a new Material/SandiaTable interface, mma
// 17.05.01 V. Grichine, low energy extension down to 10*keV of proton
// 28.05.01 V.Ivanchenko minor changes to provide ANSI -wall compilation
#include "G4ios.hh"
#include <math.h>
#include "G4PAIxSection.hh"
#include "globals.hh"
#include "G4MaterialTable.hh"
#include "G4Material.hh"
/* ******************************************************************
@@ -781,37 +784,50 @@ G4double G4PAIxSection::DifPAIxSection( G4int i ,
G4double betaGammaSq )
{
G4double be2,cof,x1,x2,x3,x4,x5,x6,x7,x8,result ;
//G4double beta, be4 ;
G4double be4 ;
G4double betaBohr2 = fine_structure_const*fine_structure_const ;
G4double betaBohr4 = betaBohr2*betaBohr2*4.0 ;
be2 = betaGammaSq/(1 + betaGammaSq) ;
be4 = be2*be2 ;
// beta = sqrt(be2) ;
cof = 1 ;
x1 = log(2*electron_mass_c2/fSplineEnergy[i]) ;
x2 = -log((1/betaGammaSq - fRePartDielectricConst[i])*
(1/betaGammaSq - fRePartDielectricConst[i]) +
fImPartDielectricConst[i]*fImPartDielectricConst[i])/2 ;
x3 = -fRePartDielectricConst[i] + 1/betaGammaSq ;
x5 = -1 - fRePartDielectricConst[i] +
be2*((1 +fRePartDielectricConst[i])*(1 + fRePartDielectricConst[i]) +
fImPartDielectricConst[i]*fImPartDielectricConst[i]) ;
if(fImPartDielectricConst[i]==0)
if( betaGammaSq < 0.01 ) x2 = log(be2) ;
else
{
x6=0 ;
x2 = -log( (1/betaGammaSq - fRePartDielectricConst[i])*
(1/betaGammaSq - fRePartDielectricConst[i]) +
fImPartDielectricConst[i]*fImPartDielectricConst[i] )/2 ;
}
if( fImPartDielectricConst[i] == 0.0 ||betaGammaSq < 0.01 )
{
x6=0 ;
}
else
{
x7 = atan2(fImPartDielectricConst[i],x3) ;
x6 = x5 * x7 ;
x3 = -fRePartDielectricConst[i] + 1/betaGammaSq ;
x5 = -1 - fRePartDielectricConst[i] +
be2*((1 +fRePartDielectricConst[i])*(1 + fRePartDielectricConst[i]) +
fImPartDielectricConst[i]*fImPartDielectricConst[i]) ;
x7 = atan2(fImPartDielectricConst[i],x3) ;
x6 = x5 * x7 ;
}
// if(fImPartDielectricConst[i] == 0) x6 = 0 ;
x4 = ((x1 + x2)*fImPartDielectricConst[i] + x6)/hbarc ;
// if( x4 < 0.0 ) x4 = 0.0 ;
x8 = (1 + fRePartDielectricConst[i])*(1 + fRePartDielectricConst[i]) +
fImPartDielectricConst[i]*fImPartDielectricConst[i] ;
result = (x4 + cof*fIntegralTerm[i]/fSplineEnergy[i]/fSplineEnergy[i])*
fine_structure_const/be2/pi ;
result = (x4 + cof*fIntegralTerm[i]/fSplineEnergy[i]/fSplineEnergy[i]) ;
if(result < 1.0e-8) result = 1.0e-8 ;
result *= fine_structure_const/be2/pi ;
// result *= (1-exp(-beta/betaBohr))*(1-exp(-beta/betaBohr)) ;
// result *= (1-exp(-be2/betaBohr2)) ;
result *= (1-exp(-be4/betaBohr4)) ;
if(fDensity >= 0.1)
{
result /= x8 ;