81 if(particle ==
fElectron) { maximumEnergyTransfer *= 0.5; }
86 (1. + 2.0*(tau + 1.)*ratio + ratio*ratio);
90 if (secKinetic>100*
eV && secKinetic <= maximumEnergyTransfer) {
91 cosTheta = std::sqrt(secKinetic / maximumEnergyTransfer);
96 G4double sint = sqrt((1.0 - cosTheta)*(1.0 + cosTheta));
void set(double x, double y, double z)
virtual G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double kinEnergyFinal, G4int Z, const G4Material *mat=0)
static constexpr double MeV
const G4ThreeVector & GetMomentumDirection() const
const G4ParticleDefinition * fElectron
Hep3Vector & rotateUz(const Hep3Vector &)
G4double GetPDGMass() const
G4DNARuddAngle(const G4String &name="")
virtual ~G4DNARuddAngle()
G4ParticleDefinition * GetDefinition() const
static constexpr double electron_mass_c2
static constexpr double twopi
static constexpr double eV
static G4Electron * Electron()
G4ThreeVector fLocalDirection
G4double GetKineticEnergy() const
void PrintGeneratorInformation() const
virtual G4ThreeVector & SampleDirectionForShell(const G4DynamicParticle *dp, G4double kinEnergyFinal, G4int Z, G4int shellIdx, const G4Material *mat=0)