67{
68
69
70
71
72 const G4double t1keV = 1.*CLHEP::keV;
73 const G4double t200keV = 200.*CLHEP::keV;
74 const G4double t100MeV = 100.*CLHEP::MeV;
75
79
80 G4double tmin = (0.552+218.5/Z+557.17/Zsquare)*CLHEP::MeV;
82
83 G4double smin = (0.01239+0.005585*Zlog-0.000923*Zlogsquare)*
G4Exp(1.5*Zlog);
84 G4double s200keV = (0.2651-0.1501*Zlog+0.02283*Zlogsquare)*Zsquare;
85
88
93 G4double chigh = (7.55e-5 - 0.0542e-5*Z)*Zsquare*Z/
G4Log(t100MeV/tmin);
94
95
97 if ( energy < tlow )
98 {
101 }
102 else if ( energy < t200keV )
103 {
105 xs = s200keV *
G4Exp(0.042*Z*x*x);
106 }
107 else if( energy<tmin )
108 {
110 xs = smin *
G4Exp(cmin*x*x);
111 }
112 else
113 {
114 xs = smin + chigh*
G4Log(energy/tmin);
115 }
116 return xs * CLHEP::barn;
117}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
static G4Pow * GetInstance()
G4double logZ(G4int Z) const
G4double energy(const ThreeVector &p, const G4double m)