Import Geant4 0.1.0 source tree
This commit is contained in:
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4eBremsstrahlung.cc,v 2.11 1998/11/13 13:37:33 urban Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4eBremsstrahlung.cc,v 1.6 1999/04/13 09:05:44 urban Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -28,6 +28,7 @@
|
||||
// 20-03-97 : new energy loss+ionisation+brems scheme, L.Urban
|
||||
// 07-04-98 : remove 'tracking cut' of the diffracted particle, MMa
|
||||
// 13-08-98 : new methods SetBining() PrintInfo()
|
||||
// 03-03-99 : Bug fixed in LPM effect, L.Urban
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
@@ -106,7 +107,7 @@ void G4eBremsstrahlung::BuildLossTable(const G4ParticleDefinition& aParticleType
|
||||
G4double KineticEnergy,TotalEnergy,bremloss,Z,x,
|
||||
losslim,loss,rate,natom,Cut;
|
||||
|
||||
const G4double MinKineticEnergy = 1.*keV;
|
||||
const G4double MinKinEnergy = 1.*keV;
|
||||
const G4double MinCut = 1.*keV;
|
||||
const G4double Thigh = 100.*GeV;
|
||||
const G4double Cuthigh = 50.*GeV;
|
||||
@@ -155,7 +156,7 @@ void G4eBremsstrahlung::BuildLossTable(const G4ParticleDefinition& aParticleType
|
||||
|
||||
bremloss = 0.;
|
||||
|
||||
if (KineticEnergy>MinKineticEnergy)
|
||||
if (KineticEnergy>MinKinEnergy)
|
||||
{
|
||||
if (Cut > KineticEnergy) Cut = KineticEnergy ;
|
||||
|
||||
@@ -166,7 +167,7 @@ void G4eBremsstrahlung::BuildLossTable(const G4ParticleDefinition& aParticleType
|
||||
natom = theAtomicNumDensityVector[iel] ;
|
||||
if (KineticEnergy <= Thigh)
|
||||
{
|
||||
//loss for MinKineticEnergy<KineticEnergy<=100 GeV
|
||||
//loss for MinKinEnergy<KineticEnergy<=100 GeV
|
||||
x=log(TotalEnergy/ParticleMass);
|
||||
loss = ComputeBremLoss(Z,natom,KineticEnergy,Cut,x) ;
|
||||
if (&aParticleType==G4Positron::Positron())
|
||||
@@ -236,13 +237,19 @@ void G4eBremsstrahlung::BuildLossTable(const G4ParticleDefinition& aParticleType
|
||||
uu = u*u ;
|
||||
if(u<=kmax)
|
||||
{
|
||||
s2lpm=LPMEnergy*u/TotalEnergysquare ;
|
||||
sp=uu/(uu+MigdalConstant*TotalEnergysquare*
|
||||
(material->GetElectronDensity())) ;
|
||||
w=s2lpm*(1.+1./sp) ;
|
||||
fac=0.5*(sqrt(w*w+4.*s2lpm)-w)/sp;
|
||||
if(fac>1.)
|
||||
fac=1. ;
|
||||
s2lpm=LPMEnergy*u/TotalEnergysquare ;
|
||||
if(s2lpm<1.)
|
||||
{
|
||||
w=s2lpm*(1.+sp) ;
|
||||
fac=sp*(sqrt(w*w+4.*s2lpm*sp*sp)-w)/
|
||||
(sqrt(1.+2.*sp+5.*sp*sp)-1.-sp) ;
|
||||
}
|
||||
else
|
||||
{
|
||||
fac=sp ;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -844,11 +851,10 @@ G4VParticleChange* G4eBremsstrahlung::PostStepDoIt(const G4Track& trackData,
|
||||
G4double Spol = GammaEnergy*GammaEnergy/(GammaEnergy*GammaEnergy +
|
||||
MigdalConstant*(aMaterial->GetElectronDensity())*
|
||||
TotalEnergysquare) ;
|
||||
G4double w = S2LPM*(1.+1./Spol) ;
|
||||
G4double Supr = 0.5*(sqrt(w*w+4.*S2LPM)-w)/Spol ;
|
||||
|
||||
//
|
||||
if (G4UniformRand() > Supr )
|
||||
G4double w=S2LPM*(1.+Spol) ;
|
||||
G4double Supr=Spol*(sqrt(w*w+4.*S2LPM*Spol*Spol)-w)/
|
||||
(sqrt(1.+2.*Spol+5.*Spol*Spol)-1.-Spol) ;
|
||||
if (G4UniformRand() > Supr)
|
||||
GammaEnergy = 0. ;
|
||||
}
|
||||
|
||||
@@ -926,7 +932,7 @@ G4Element* G4eBremsstrahlung::SelectRandomAtom(G4Material* aMaterial) const
|
||||
|
||||
void G4eBremsstrahlung::PrintInfoDefinition()
|
||||
{
|
||||
G4String comments = "Total cross sections from a parametrisation(L.Urban). ";
|
||||
G4String comments = "Total cross sections from a parametrisation. ";
|
||||
comments += "Good description from 1 KeV to 100 GeV.\n";
|
||||
comments += " log scale extrapolation above 100 GeV \n";
|
||||
comments += " Gamma energy sampled from a parametrised formula.";
|
||||
|
||||
Reference in New Issue
Block a user