Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4DeltaAngleFreeScat Class Reference

#include <G4DeltaAngleFreeScat.hh>

Inheritance diagram for G4DeltaAngleFreeScat:
G4VEmAngularDistribution

Public Member Functions

 G4DeltaAngleFreeScat (const G4String &name="")
 
virtual ~G4DeltaAngleFreeScat ()
 
virtual G4ThreeVectorSampleDirection (const G4DynamicParticle *dp, G4double kinEnergyFinal, G4int Z, const G4Material *mat=0)
 
void PrintGeneratorInformation () const
 
- Public Member Functions inherited from G4VEmAngularDistribution
 G4VEmAngularDistribution (const G4String &name)
 
virtual ~G4VEmAngularDistribution ()
 
virtual G4ThreeVectorSampleDirectionForShell (const G4DynamicParticle *dp, G4double finalTotalEnergy, G4int Z, G4int shellID, const G4Material *)
 
const G4StringGetName () const
 

Additional Inherited Members

- Protected Attributes inherited from G4VEmAngularDistribution
G4ThreeVector fLocalDirection
 

Detailed Description

Definition at line 54 of file G4DeltaAngleFreeScat.hh.

Constructor & Destructor Documentation

G4DeltaAngleFreeScat::G4DeltaAngleFreeScat ( const G4String name = "")

Definition at line 56 of file G4DeltaAngleFreeScat.cc.

57  : G4VEmAngularDistribution("deltaFree")
58 {}
G4VEmAngularDistribution(const G4String &name)
G4DeltaAngleFreeScat::~G4DeltaAngleFreeScat ( )
virtual

Definition at line 60 of file G4DeltaAngleFreeScat.cc.

61 {}

Member Function Documentation

void G4DeltaAngleFreeScat::PrintGeneratorInformation ( ) const

Definition at line 83 of file G4DeltaAngleFreeScat.cc.

84 {}
G4ThreeVector & G4DeltaAngleFreeScat::SampleDirection ( const G4DynamicParticle dp,
G4double  kinEnergyFinal,
G4int  Z,
const G4Material mat = 0 
)
virtual

Implements G4VEmAngularDistribution.

Definition at line 64 of file G4DeltaAngleFreeScat.cc.

References python.hepunit::electron_mass_c2, G4VEmAngularDistribution::fLocalDirection, G4UniformRand, G4DynamicParticle::GetMomentumDirection(), G4DynamicParticle::GetTotalEnergy(), G4DynamicParticle::GetTotalMomentum(), CLHEP::Hep3Vector::rotateUz(), CLHEP::Hep3Vector::set(), and python.hepunit::twopi.

67 {
68  G4double deltaMomentum =
69  sqrt(kinEnergyFinal*(kinEnergyFinal + 2*electron_mass_c2));
70 
71  G4double costet = kinEnergyFinal*(dp->GetTotalEnergy() + electron_mass_c2) /
72  (deltaMomentum * dp->GetTotalMomentum());
73 
75  G4double sintet = sqrt((1 - costet)*(1 + costet));
76 
77  fLocalDirection.set(sintet*cos(phi), sintet*sin(phi), costet);
79 
80  return fLocalDirection;
81 }
void set(double x, double y, double z)
G4double GetTotalEnergy() const
G4double GetTotalMomentum() const
#define G4UniformRand()
Definition: Randomize.hh:87
const G4ThreeVector & GetMomentumDirection() const
Hep3Vector & rotateUz(const Hep3Vector &)
Definition: ThreeVector.cc:72
float electron_mass_c2
Definition: hepunit.py:274
double G4double
Definition: G4Types.hh:76

The documentation for this class was generated from the following files: