166 G4cout <<
"G4LowEnergyGammaConversion::PostStepDoIt - element = 0" <<
G4endl;
171 G4cout <<
"G4LowEnergyGammaConversion::PostStepDoIt - ionisation = 0" <<
G4endl;
176 if (photonEnergy > 50. *
MeV) fZ += 8. * (element->
GetfCoulomb());
180 G4double screenMax = std::exp ((42.24 - fZ)/8.368) - 0.952 ;
184 G4double epsilon1 = 0.5 - 0.5 * std::sqrt(1. - screenMin / screenMax) ;
186 G4double epsilonRange = 0.5 - epsilonMin ;
200 epsilon = 0.5 - epsilonRange * std::pow(
G4UniformRand(), 0.3333) ;
201 screen = screenFactor / (epsilon * (1. -
epsilon));
207 screen = screenFactor / (epsilon * (1 -
epsilon));
221 electronTotEnergy = (1. -
epsilon) * photonEnergy;
222 positronTotEnergy = epsilon * photonEnergy;
226 positronTotEnergy = (1. -
epsilon) * photonEnergy;
227 electronTotEnergy = epsilon * photonEnergy;
253 G4double dxEle= std::sin(thetaEle)*std::cos(phi),dyEle= std::sin(thetaEle)*std::sin(phi),dzEle=std::cos(thetaEle);
254 G4double dxPos=-std::sin(thetaPos)*std::cos(phi),dyPos=-std::sin(thetaPos)*std::sin(phi),dzPos=std::cos(thetaPos);
268 G4double safety = aStep.GetPostStepPoint()->GetSafety();
273 electronDirection.rotateUz(photonDirection);
282 localEnergyDeposit += electronKineEnergy ;
291 localEnergyDeposit += positronKineEnergy ;
292 positronKineEnergy = 0. ;
296 positronDirection.rotateUz(photonDirection);
300 positronDirection, positronKineEnergy);
G4double ScreenFunction1(G4double screenVariable)
G4double GetlogZ3() const
G4RDVRangeTest * rangeTest
G4double GetKineticEnergy() const
G4GLOB_DLL std::ostream G4cout
G4RDVCrossSectionHandler * crossSectionHandler
static const double twopi
G4IonisParamElm * GetIonisation() const
G4double GetfCoulomb() const
virtual G4bool Escape(const G4ParticleDefinition *particle, const G4MaterialCutsCouple *couple, G4double energy, G4double safety) const =0
const G4double smallEnergy
static G4Positron * Positron()
const G4ThreeVector & GetMomentumDirection() const
G4ParticleChange aParticleChange
static G4Electron * Electron()
G4double ScreenFunction2(G4double screenVariable)
const G4Element * SelectRandomElement(const G4MaterialCutsCouple *material, G4double e) const
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
double epsilon(double density, double temperature)