#include <G4hBremsstrahlungModel.hh>
Inheritance diagram for G4hBremsstrahlungModel:
Public Member Functions | |
G4hBremsstrahlungModel (const G4ParticleDefinition *p=0, const G4String &nam="hBrem") | |
virtual | ~G4hBremsstrahlungModel () |
Protected Member Functions | |
virtual G4double | ComputeDMicroscopicCrossSection (G4double tkin, G4double Z, G4double gammaEnergy) |
Definition at line 56 of file G4hBremsstrahlungModel.hh.
G4hBremsstrahlungModel::G4hBremsstrahlungModel | ( | const G4ParticleDefinition * | p = 0 , |
|
const G4String & | nam = "hBrem" | |||
) |
Definition at line 57 of file G4hBremsstrahlungModel.cc.
00059 : G4MuBremsstrahlungModel(p, nam) 00060 {}
G4hBremsstrahlungModel::~G4hBremsstrahlungModel | ( | ) | [virtual] |
G4double G4hBremsstrahlungModel::ComputeDMicroscopicCrossSection | ( | G4double | tkin, | |
G4double | Z, | |||
G4double | gammaEnergy | |||
) | [protected, virtual] |
Reimplemented from G4MuBremsstrahlungModel.
Definition at line 69 of file G4hBremsstrahlungModel.cc.
References G4MuBremsstrahlungModel::bh, G4MuBremsstrahlungModel::btf, G4MuBremsstrahlungModel::coeff, G4NistManager::GetA27(), G4ParticleDefinition::GetPDGSpin(), G4NistManager::GetZ13(), G4MuBremsstrahlungModel::mass, G4MuBremsstrahlungModel::nist, G4MuBremsstrahlungModel::particle, and G4MuBremsstrahlungModel::sqrte.
00074 { 00075 G4double dxsection = 0.; 00076 00077 if( gammaEnergy > tkin) return dxsection ; 00078 // G4cout << "G4hBremsstrahlungModel m= " << mass 00079 // << " " << particle->GetParticleName() << G4endl; 00080 G4double E = tkin + mass ; 00081 G4double v = gammaEnergy/E ; 00082 G4double delta = 0.5*mass*mass*v/(E-gammaEnergy) ; 00083 G4double rab0=delta*sqrte ; 00084 00085 G4int iz = G4int(Z); 00086 if(iz < 1) iz = 1; 00087 00088 G4double z13 = 1.0/nist->GetZ13(iz); 00089 G4double dn = mass*nist->GetA27(iz)/(70.*MeV); 00090 00091 G4double b = btf; 00092 if(1 == iz) b = bh; 00093 00094 // nucleus contribution logarithm 00095 G4double rab1=b*z13; 00096 G4double fn=log(rab1/(dn*(electron_mass_c2+rab0*rab1))* 00097 (mass+delta*(dn*sqrte-2.))) ; 00098 if(fn <0.) fn = 0. ; 00099 00100 G4double x = 1.0 - v; 00101 if(particle->GetPDGSpin() != 0) x += 0.75*v*v; 00102 00103 dxsection = coeff*x*Z*Z*fn/gammaEnergy; 00104 00105 return dxsection; 00106 }