54#ifndef G4WentzelVIRelXSection_h
55#define G4WentzelVIRelXSection_h 1
115 void ComputeMaxElectronScattering(
G4double cut);
181 if(ekin != tkin || mat != currentMaterial) {
182 currentMaterial = mat;
184 mom2 = tkin*(tkin + 2.0*mass);
185 invbeta2 = 1.0 + mass*mass/mom2;
186 factB = spin/invbeta2;
198 factD = std::sqrt(mom2)/value;
226 return cosTetMaxElec;
236 if(cosTMax < cosTMin) {
237 xsec = targetZ*kinFactor*(cosTMin - cosTMax)/
238 ((1.0 - cosTMin + screenZ)*(1.0 - cosTMax + screenZ));
250 G4double cost1 = std::max(cosTMin,cosTetMaxElec);
251 G4double cost2 = std::max(cosTMax,cosTetMaxElec);
253 xsec = kinFactor*(cost1 - cost2)/((1.0 - cost1 + screenZ)*(1.0 - cost2 + screenZ));
G4double GetInvA23() const
G4IonisParamMat * GetIonisation() const
void SetTargetMass(G4double value)
G4double ComputeTransportCrossSectionPerAtom(G4double CosThetaMax)
G4double SetupTarget(G4int Z, G4double cut=DBL_MAX)
void SetRelativisticMass(G4double value)
void SetupParticle(const G4ParticleDefinition *)
G4ThreeVector SampleSingleScattering(G4double CosThetaMin, G4double CosThetaMax, G4double elecRatio=0.0)
G4double GetMomentumSquare() const
void Initialise(const G4ParticleDefinition *, G4double CosThetaLim)
virtual ~G4WentzelVIRelXSection()
G4double GetCosThetaNuc() const
G4double GetCosThetaElec() const
G4double SetupKinematic(G4double kinEnergy, const G4Material *mat)
G4double ComputeNuclearCrossSection(G4double CosThetaMin, G4double CosThetaMax)
G4double ComputeElectronCrossSection(G4double CosThetaMin, G4double CosThetaMax)