Import Geant4 9.6.0 source tree
This commit is contained in:
+9
-7
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user