73 alpha2(fine_structure_const*fine_structure_const)
81 G4double p0 = electron_mass_c2*classic_electr_radius;
93 for(
G4int j=1; j<100; ++j) {
178 return cosTetMaxNuc2;
187 if(cosTMax >= 1.0) {
return xsec; }
204 y = x2*(1.0 - 1.3333333*x + 3*x2);
205 if(0.0 < factB) { y -= fb*x2*x*(0.6666667 -
x); }
208 xlog =
G4Log(1.0 + x);
210 if(0.0 < factB) { y -= fb*(x + x1 - 2*xlog); }
216 G4cout <<
"G4WentzelVIRelXSection::ComputeTransportCrossSectionPerAtom scattering on e- <0"
219 <<
" e(MeV)= " <<
tkin <<
" p(MeV/c)= " << sqrt(
mom2)
222 G4cout <<
" 1-costm= " << 1.0-costm <<
" screenZ= " <<
screenZ
242 y = x2*(1.0 - 1.3333333*x + 3*x2);
243 if(0.0 < factB) { y -= fb*x2*x*(0.6666667 -
x); }
246 xlog =
G4Log(1.0 + x);
248 if(0.0 < factB) { y -= fb*(x + x1 - 2*xlog); }
254 G4cout <<
"G4WentzelVIRelXSection::ComputeTransportCrossSectionPerAtom scattering on e- <0"
260 <<
" x= " <<
" x1= " << x1 <<
G4endl;
285 temp.set(0.0,0.0,1.0);
287 CLHEP::HepRandomEngine* rndmEngine = G4Random::getTheEngine();
292 if(elecRatio > 0.0) {
293 if(rndmEngine->flat() <= elecRatio) {
299 if(cost1 < cost2) {
return temp; }
307 /( (1.0 + z1*
factD)*fm*fm );
309 if(rndmEngine->flat() > grej ) {
return temp; }
313 if(cost > 1.0) { cost = 1.0; }
314 else if(cost < -1.0) { cost =-1.0; }
315 G4double sint = sqrt((1.0 - cost)*(1.0 + cost));
322 temp.set(vx1,vy1,cost);
334 G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.)/
335 (1.0 + 2.0*ratio*(tau + 1.0) + ratio*ratio);
344 G4double mom21 = t*(t + 2.0*electron_mass_c2);
static G4Pow * GetInstance()
static G4double ScreenRSquare[100]
G4WentzelVIRelXSection(G4bool combined=true)
const G4ParticleDefinition * theElectron
CLHEP::Hep3Vector G4ThreeVector
G4double ComputeTransportCrossSectionPerAtom(G4double CosThetaMax)
static G4NistManager * Instance()
const G4String & GetParticleName() const
const G4ParticleDefinition * theProton
void SetupParticle(const G4ParticleDefinition *)
G4GLOB_DLL std::ostream G4cout
G4double Z13(G4int Z) const
G4double SetupTarget(G4int Z, G4double cut)
static const double twopi
const G4ParticleDefinition * particle
static G4Proton * Proton()
static G4double FormFactor[100]
void ComputeMaxElectronScattering(G4double cut)
G4double G4Log(G4double x)
static G4Positron * Positron()
G4double GetPDGMass() const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
const G4double x[NPOINTSGL]
static G4EmParameters * Instance()
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
const G4Material * currentMaterial
G4double GetPDGSpin() const
static G4Electron * Electron()
void Initialise(const G4ParticleDefinition *, G4double CosThetaLim)
G4ThreeVector & SampleSingleScattering(G4double CosThetaMin, G4double CosThetaMax, G4double elecRatio)
static const double eplus
G4double GetPDGCharge() const
static const double fermi
const G4ParticleDefinition * thePositron
G4double FactorForAngleLimit() const
G4NistManager * fNistManager
virtual ~G4WentzelVIRelXSection()