Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4DeltaAngleFreeScat Class Reference

#include <G4DeltaAngleFreeScat.hh>

Inheritance diagram for G4DeltaAngleFreeScat:
Collaboration diagram for G4DeltaAngleFreeScat:

Public Member Functions

 G4DeltaAngleFreeScat (const G4String &name="")
 
virtual ~G4DeltaAngleFreeScat ()
 
virtual G4ThreeVectorSampleDirection (const G4DynamicParticle *dp, G4double kinEnergyFinal, G4int Z, const G4Material *mat=nullptr) final
 
virtual void PrintGeneratorInformation () const final
 
- 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 = "")
explicit

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
finalvirtual

Definition at line 83 of file G4DeltaAngleFreeScat.cc.

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

Implements G4VEmAngularDistribution.

Definition at line 64 of file G4DeltaAngleFreeScat.cc.

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
static constexpr double twopi
Definition: G4SIunits.hh:76
static constexpr double electron_mass_c2
G4double GetTotalMomentum() const
#define G4UniformRand()
Definition: Randomize.hh:97
const G4ThreeVector & GetMomentumDirection() const
Hep3Vector & rotateUz(const Hep3Vector &)
Definition: ThreeVector.cc:38
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:


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