#include <G4DNARuddAngle.hh>
|
| G4DNARuddAngle (const G4String &name="") |
|
virtual | ~G4DNARuddAngle () |
|
virtual G4ThreeVector & | SampleDirection (const G4DynamicParticle *dp, G4double kinEnergyFinal, G4int Z, const G4Material *mat=0) |
|
virtual G4ThreeVector & | SampleDirectionForShell (const G4DynamicParticle *dp, G4double kinEnergyFinal, G4int Z, G4int shellIdx, const G4Material *mat=0) |
|
void | PrintGeneratorInformation () const |
|
| G4VEmAngularDistribution (const G4String &name) |
|
virtual | ~G4VEmAngularDistribution () |
|
virtual G4ThreeVector & | SampleDirection (const G4DynamicParticle *dp, G4double finalTotalEnergy, G4int Z, const G4Material *)=0 |
|
virtual G4ThreeVector & | SampleDirectionForShell (const G4DynamicParticle *dp, G4double finalTotalEnergy, G4int Z, G4int shellID, const G4Material *) |
|
virtual void | SamplePairDirections (const G4DynamicParticle *dp, G4double elecKinEnergy, G4double posiKinEnergy, G4ThreeVector &dirElectron, G4ThreeVector &dirPositron, G4int Z=0, const G4Material *mat=nullptr) |
|
const G4String & | GetName () const |
|
G4VEmAngularDistribution & | operator= (const G4VEmAngularDistribution &right)=delete |
|
| G4VEmAngularDistribution (const G4VEmAngularDistribution &)=delete |
|
Definition at line 56 of file G4DNARuddAngle.hh.
◆ G4DNARuddAngle()
G4DNARuddAngle::G4DNARuddAngle |
( |
const G4String & |
name = "" | ) |
|
◆ ~G4DNARuddAngle()
G4DNARuddAngle::~G4DNARuddAngle |
( |
| ) |
|
|
virtual |
◆ PrintGeneratorInformation()
void G4DNARuddAngle::PrintGeneratorInformation |
( |
| ) |
const |
◆ SampleDirection()
Implements G4VEmAngularDistribution.
Definition at line 105 of file G4DNARuddAngle.cc.
108{
110}
virtual G4ThreeVector & SampleDirectionForShell(const G4DynamicParticle *dp, G4double kinEnergyFinal, G4int Z, G4int shellIdx, const G4Material *mat=0)
◆ SampleDirectionForShell()
Reimplemented from G4VEmAngularDistribution.
Definition at line 68 of file G4DNARuddAngle.cc.
72{
75
78
80 if(particle == fElectron) { maximumEnergyTransfer *= 0.5; }
81 else if(mass > MeV) {
82 G4double ratio = electron_mass_c2/mass;
84 maximumEnergyTransfer = 2.0*electron_mass_c2*tau*(tau + 2.) /
85 (1. + 2.0*(tau + 1.)*ratio + ratio*ratio);
86
87 }
88
89 if (secKinetic>100*eV && secKinetic <= maximumEnergyTransfer) {
90 cosTheta = std::sqrt(secKinetic / maximumEnergyTransfer);
91 } else {
93 }
94
95 G4double sint = sqrt((1.0 - cosTheta)*(1.0 + cosTheta));
97
100
102}
void set(double x, double y, double z)
Hep3Vector & rotateUz(const Hep3Vector &)
const G4ThreeVector & GetMomentumDirection() const
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4double GetPDGMass() const
G4ThreeVector fLocalDirection
Referenced by SampleDirection().
The documentation for this class was generated from the following files: