184 if(epsil0 > 1.0) {
return; }
194 epsil = epsil0 + (0.5-epsil0)*rndmEngine->
flat();
201 if (GammaEnergy > 50.*
MeV) { FZ += 8.*(anElement->
GetfCoulomb()); }
205 G4double screenmax = exp ((42.24 - FZ)/8.368) - 0.952 ;
209 G4double epsil1 = 0.5 - 0.5*sqrt(1. - screenmin/screenmax) ;
210 G4double epsilmin =
max(epsil0,epsil1) , epsilrange = 0.5 - epsilmin;
220 G4double NormF1 =
max(F10*epsilrange*epsilrange,0.);
224 if ( NormF1/(NormF1+NormF2) > rndmEngine->
flat()) {
225 epsil = 0.5 - epsilrange*
g4pow->
A13(rndmEngine->
flat());
226 screenvar = screenfac/(epsil*(1-epsil));
230 epsil = epsilmin + epsilrange*rndmEngine->
flat();
231 screenvar = screenfac/(epsil*(1-epsil));
236 }
while( greject < rndmEngine->
flat());
244 G4double ElectTotEnergy, PositTotEnergy;
245 if (rndmEngine->
flat() > 0.5) {
247 ElectTotEnergy = (1.-epsil)*GammaEnergy;
248 PositTotEnergy = epsil*GammaEnergy;
252 PositTotEnergy = (1.-epsil)*GammaEnergy;
253 ElectTotEnergy = epsil*GammaEnergy;
265 if (9. > 36.*rndmEngine->
flat()) { u *= 1.6; }
266 else { u *= 0.53333; }
271 G4double dxEl= sin(TetEl)*cos(Phi),dyEl= sin(TetEl)*sin(Phi),dzEl=cos(TetEl);
272 G4double dxPo=-sin(TetPo)*cos(Phi),dyPo=-sin(TetPo)*sin(Phi),dzPo=cos(TetPo);
283 ElectDirection.rotateUz(GammaDirection);
294 PositDirection.rotateUz(GammaDirection);
301 fvect->push_back(aParticle1);
302 fvect->push_back(aParticle2);
G4ParticleChangeForGamma * fParticleChange
const G4Material * GetMaterial() const
G4double GetlogZ3() const
G4ParticleDefinition * thePositron
G4double ScreenFunction2(G4double ScreenVariable)
static const G4double Egsmall
G4double GetKineticEnergy() const
G4double ScreenFunction1(G4double ScreenVariable)
static const double twopi
G4IonisParamElm * GetIonisation() const
G4ParticleDefinition * theGamma
G4double GetfCoulomb() const
G4double G4Log(G4double x)
G4ParticleDefinition * theElectron
G4double A13(G4double A) const
const G4ThreeVector & GetMomentumDirection() const
const G4Element * SelectRandomAtom(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)