Import Geant4 9.6.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 17:01:34 +02:00
parent b1eb5424d2
commit e2d2f9810a
10384 changed files with 698580 additions and 628834 deletions
@@ -23,13 +23,14 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4LivermoreNuclearGammaConversionModel.cc,v 1.1 2010-11-10 17:09:16 flongo Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// Authors: G.Depaola & F.Longo
//
#include "G4LivermoreNuclearGammaConversionModel.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -39,7 +40,8 @@ using namespace std;
G4LivermoreNuclearGammaConversionModel::G4LivermoreNuclearGammaConversionModel(const G4ParticleDefinition*,
const G4String& nam)
:G4VEmModel(nam),smallEnergy(2.*MeV),isInitialised(false),
:G4VEmModel(nam),fParticleChange(0),smallEnergy(2.*MeV),
isInitialised(false),
crossSectionHandler(0),meanFreePathTable(0)
{
lowEnergyLimit = 2.0*electron_mass_c2;
@@ -157,12 +159,12 @@ void G4LivermoreNuclearGammaConversionModel::SampleSecondaries(std::vector<G4Dyn
G4ParticleMomentum photonDirection = aDynamicGamma->GetMomentumDirection();
G4double epsilon ;
G4double epsilon0 = electron_mass_c2 / photonEnergy ;
G4double epsilon0Local = electron_mass_c2 / photonEnergy ;
// Do it fast if photon energy < 2. MeV
if (photonEnergy < smallEnergy )
{
epsilon = epsilon0 + (0.5 - epsilon0) * G4UniformRand();
epsilon = epsilon0Local + (0.5 - epsilon0Local) * G4UniformRand();
}
else
{
@@ -190,13 +192,13 @@ void G4LivermoreNuclearGammaConversionModel::SampleSecondaries(std::vector<G4Dyn
if (photonEnergy > 50. * MeV) fZ += 8. * (element->GetfCoulomb());
// Limits of the screening variable
G4double screenFactor = 136. * epsilon0 / (element->GetIonisation()->GetZ3()) ;
G4double screenFactor = 136. * epsilon0Local / (element->GetIonisation()->GetZ3()) ;
G4double screenMax = std::exp ((42.24 - fZ)/8.368) - 0.952 ;
G4double screenMin = std::min(4.*screenFactor,screenMax) ;
// Limits of the energy sampling
G4double epsilon1 = 0.5 - 0.5 * std::sqrt(1. - screenMin / screenMax) ;
G4double epsilonMin = std::max(epsilon0,epsilon1);
G4double epsilonMin = std::max(epsilon0Local,epsilon1);
G4double epsilonRange = 0.5 - epsilonMin ;
// Sample the energy rate of the created electron (or positron)