G4eeToTwoGammaModel Class Reference

#include <G4eeToTwoGammaModel.hh>

Inheritance diagram for G4eeToTwoGammaModel:

G4VEmModel G4PolarizedAnnihilationModel

Public Member Functions

 G4eeToTwoGammaModel (const G4ParticleDefinition *p=0, const G4String &nam="eplus2gg")
virtual ~G4eeToTwoGammaModel ()
virtual void Initialise (const G4ParticleDefinition *, const G4DataVector &)
virtual G4double ComputeCrossSectionPerElectron (const G4ParticleDefinition *, G4double kinEnergy, G4double cutEnergy=0., G4double maxEnergy=DBL_MAX)
virtual G4double ComputeCrossSectionPerAtom (const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0., G4double cutEnergy=0., G4double maxEnergy=DBL_MAX)
virtual G4double CrossSectionPerVolume (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy)
virtual void SampleSecondaries (std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)

Detailed Description

Definition at line 60 of file G4eeToTwoGammaModel.hh.


Constructor & Destructor Documentation

G4eeToTwoGammaModel::G4eeToTwoGammaModel ( const G4ParticleDefinition p = 0,
const G4String nam = "eplus2gg" 
)

Definition at line 85 of file G4eeToTwoGammaModel.cc.

References G4Gamma::Gamma().

00087   : G4VEmModel(nam),
00088     pi_rcl2(pi*classic_electr_radius*classic_electr_radius),
00089     isInitialised(false)
00090 {
00091   theGamma = G4Gamma::Gamma();
00092   fParticleChange = 0;
00093 }

G4eeToTwoGammaModel::~G4eeToTwoGammaModel (  )  [virtual]

Definition at line 97 of file G4eeToTwoGammaModel.cc.

00098 {}


Member Function Documentation

G4double G4eeToTwoGammaModel::ComputeCrossSectionPerAtom ( const G4ParticleDefinition ,
G4double  kinEnergy,
G4double  Z,
G4double  A = 0.,
G4double  cutEnergy = 0.,
G4double  maxEnergy = DBL_MAX 
) [virtual]

Reimplemented from G4VEmModel.

Definition at line 135 of file G4eeToTwoGammaModel.cc.

References ComputeCrossSectionPerElectron().

00139 {
00140   // Calculates the cross section per atom of annihilation into two photons
00141   
00142   G4double cross = Z*ComputeCrossSectionPerElectron(p,kineticEnergy);
00143   return cross;  
00144 }

G4double G4eeToTwoGammaModel::ComputeCrossSectionPerElectron ( const G4ParticleDefinition ,
G4double  kinEnergy,
G4double  cutEnergy = 0.,
G4double  maxEnergy = DBL_MAX 
) [virtual]

Reimplemented in G4PolarizedAnnihilationModel.

Definition at line 112 of file G4eeToTwoGammaModel.cc.

References G4InuclParticleNames::gam.

Referenced by ComputeCrossSectionPerAtom(), G4PolarizedAnnihilationModel::ComputeCrossSectionPerElectron(), and CrossSectionPerVolume().

00116 {
00117   // Calculates the cross section per electron of annihilation into two photons
00118   // from the Heilter formula.
00119 
00120   G4double ekin  = std::max(eV,kineticEnergy);   
00121 
00122   G4double tau   = ekin/electron_mass_c2;
00123   G4double gam   = tau + 1.0;
00124   G4double gamma2= gam*gam;
00125   G4double bg2   = tau * (tau+2.0);
00126   G4double bg    = sqrt(bg2);
00127 
00128   G4double cross = pi_rcl2*((gamma2+4*gam+1.)*log(gam+bg) - (gam+3.)*bg)
00129                  / (bg2*(gam+1.));
00130   return cross;  
00131 }

G4double G4eeToTwoGammaModel::CrossSectionPerVolume ( const G4Material ,
const G4ParticleDefinition ,
G4double  kineticEnergy,
G4double  cutEnergy,
G4double  maxEnergy 
) [virtual]

Reimplemented from G4VEmModel.

Definition at line 148 of file G4eeToTwoGammaModel.cc.

References ComputeCrossSectionPerElectron(), and G4Material::GetElectronDensity().

00153 {
00154   // Calculates the cross section per volume of annihilation into two photons
00155   
00156   G4double eDensity = material->GetElectronDensity();
00157   G4double cross = eDensity*ComputeCrossSectionPerElectron(p,kineticEnergy);
00158   return cross;
00159 }

void G4eeToTwoGammaModel::Initialise ( const G4ParticleDefinition ,
const G4DataVector  
) [virtual]

Implements G4VEmModel.

Reimplemented in G4PolarizedAnnihilationModel.

Definition at line 102 of file G4eeToTwoGammaModel.cc.

References G4VEmModel::GetParticleChangeForGamma().

00104 {
00105   if(isInitialised) { return; }
00106   fParticleChange = GetParticleChangeForGamma();
00107   isInitialised = true;
00108 }

virtual void G4eeToTwoGammaModel::SampleSecondaries ( std::vector< G4DynamicParticle * > *  ,
const G4MaterialCutsCouple ,
const G4DynamicParticle ,
G4double  tmin,
G4double  maxEnergy 
) [virtual]

Implements G4VEmModel.

Reimplemented in G4PolarizedAnnihilationModel.


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:51:50 2013 for Geant4 by  doxygen 1.4.7