94 for(
G4int j=1; j<100; ++j) {
200 return cosTetMaxNuc2;
209 if(cosTMax >= 1.0) {
return xSection; }
225 y = x2*(1.0 - 1.3333333*x + 3*
x2);
226 if(0.0 < factB) { y -= fb*x2*x*(0.6666667 -
x); }
229 xlog =
G4Log(1.0 + x);
231 if(0.0 < factB) { y -= fb*(x + x1 - 2*xlog); }
237 G4cout <<
"G4WentzelOKandVIxSection::ComputeTransportCrossSectionPerAtom" 238 <<
" scattering on e- <0" 241 <<
" e(MeV)= " <<
tkin <<
" p(MeV/c)= " << sqrt(
mom2)
244 G4cout <<
" 1-costm= " << 1.0-costm <<
" screenZ= " <<
screenZ 264 y = x2*(1.0 - 1.3333333*x + 3*
x2);
265 if(0.0 < factB) { y -= fb*x2*x*(0.6666667 -
x); }
268 xlog =
G4Log(1.0 + x);
270 if(0.0 < factB) { y -= fb*(x + x1 - 2*xlog); }
276 G4cout <<
"G4WentzelOKandVIxSection::ComputeTransportCrossSectionPerAtom" 277 <<
" scattering on nucleus <0" 283 <<
" x= " <<
" x1= " << x1 <<
G4endl;
315 if(elecRatio > 0.0) {
316 if(rndmEngineMod->
flat() <= elecRatio) {
329 /((1.0 + z1*
factD)*fm*fm);
331 if(rndmEngineMod->
flat() <= grej) {
334 if(cost > 1.0) { cost = 1.0; }
335 else if(cost < -1.0) { cost =-1.0; }
336 G4double sint = sqrt((1.0 - cost)*(1.0 + cost));
339 temp.
set(sint*cos(phi),sint*sin(phi),cost);
354 (1.0 + 2.0*ratio*(tau + 1.0) + ratio*ratio);
const G4ParticleDefinition * theElectron
void set(double x, double y, double z)
const G4ParticleDefinition * theProton
static G4Pow * GetInstance()
void SetupParticle(const G4ParticleDefinition *)
static G4double ScreenRSquareElec[100]
void SetTargetMass(G4double value)
G4WentzelOKandVIxSection(G4bool combined=true)
static const double hbarc
static G4double FormFactor[100]
G4double ComputeSecondTransportMoment(G4double CosThetaMax)
const G4ParticleDefinition * particle
void ComputeMaxElectronScattering(G4double cut)
static G4NistManager * Instance()
G4double SetupTarget(G4int Z, G4double cut=DBL_MAX)
G4double FactorForAngleLimit() const
virtual ~G4WentzelOKandVIxSection()
G4double ComputeTransportCrossSectionPerAtom(G4double CosThetaMax)
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
static const double amu_c2
static const double fermi
static const double twopi
static G4Proton * Proton()
G4double GetPDGSpin() const
G4double G4Log(G4double x)
G4double Z13(G4int Z) const
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
static G4Positron * Positron()
int classic_electr_radius
const G4ParticleDefinition * thePositron
G4double GetPDGMass() const
const G4Material * currentMaterial
static G4EmParameters * Instance()
G4NistManager * fNistManager
static G4Electron * Electron()
static G4double ScreenRSquare[100]
static const double eplus
G4double Z23(G4int Z) const
G4double GetAtomicMassAmu(const G4String &symb) const
G4double GetPDGCharge() const
void Initialise(const G4ParticleDefinition *, G4double CosThetaLim)
G4ThreeVector & SampleSingleScattering(G4double CosThetaMin, G4double CosThetaMax, G4double elecRatio=0.0)