G4GammaConversion Class Reference

#include <G4GammaConversion.hh>

Inheritance diagram for G4GammaConversion:

G4VEmProcess G4VDiscreteProcess G4VProcess

Public Member Functions

 G4GammaConversion (const G4String &processName="conv", G4ProcessType type=fElectromagnetic)
virtual ~G4GammaConversion ()
virtual G4bool IsApplicable (const G4ParticleDefinition &)
virtual G4double MinPrimaryEnergy (const G4ParticleDefinition *, const G4Material *)
virtual void PrintInfo ()

Protected Member Functions

virtual void InitialiseProcess (const G4ParticleDefinition *)

Detailed Description

Definition at line 75 of file G4GammaConversion.hh.


Constructor & Destructor Documentation

G4GammaConversion::G4GammaConversion ( const G4String processName = "conv",
G4ProcessType  type = fElectromagnetic 
)

Definition at line 79 of file G4GammaConversion.cc.

References G4Electron::Electron(), fGammaConversion, G4VEmProcess::SetBuildTableFlag(), G4VEmProcess::SetMinKinEnergy(), G4VProcess::SetProcessSubType(), G4VEmProcess::SetSecondaryParticle(), and G4VEmProcess::SetStartFromNullFlag().

00080                      :G4VEmProcess (processName, type),
00081     isInitialised(false)
00082 {
00083   SetMinKinEnergy(2.0*electron_mass_c2);
00084   SetProcessSubType(fGammaConversion);
00085   SetStartFromNullFlag(true);
00086   SetBuildTableFlag(true);
00087   SetSecondaryParticle(G4Electron::Electron());
00088 }

G4GammaConversion::~G4GammaConversion (  )  [virtual]

Definition at line 92 of file G4GammaConversion.cc.

00093 {}


Member Function Documentation

void G4GammaConversion::InitialiseProcess ( const G4ParticleDefinition  )  [protected, virtual]

Implements G4VEmProcess.

Definition at line 104 of file G4GammaConversion.cc.

References G4VEmProcess::AddEmModel(), G4VEmProcess::EmModel(), G4VEmProcess::MaxKinEnergy(), G4VEmProcess::MinKinEnergy(), G4VEmProcess::SetEmModel(), G4VEmModel::SetHighEnergyLimit(), G4VEmModel::SetLowEnergyLimit(), and G4VEmProcess::SetMinKinEnergy().

00105 {
00106   if(!isInitialised) {
00107     isInitialised = true;
00108     const G4double limit = 80*GeV;
00109     G4double emin = std::max(MinKinEnergy(), 2*electron_mass_c2);
00110     G4double emax = MaxKinEnergy();
00111     SetMinKinEnergy(emin);
00112 
00113     if(!EmModel(1)) { SetEmModel(new G4BetheHeitlerModel(), 1); }
00114     EmModel(1)->SetLowEnergyLimit(emin);
00115     G4double ehigh = std::min(emax,limit);
00116     ehigh = std::min(ehigh,EmModel(1)->HighEnergyLimit());
00117     EmModel(1)->SetHighEnergyLimit(ehigh);
00118     AddEmModel(1, EmModel(1));
00119 
00120     if(emax > ehigh) {
00121       if(!EmModel(2)) { SetEmModel(new G4PairProductionRelModel(), 2); }
00122       EmModel(2)->SetLowEnergyLimit(ehigh);
00123       EmModel(2)->SetHighEnergyLimit(emax);
00124       AddEmModel(2, EmModel(2));
00125     }
00126   } 
00127 }

G4bool G4GammaConversion::IsApplicable ( const G4ParticleDefinition  )  [virtual]

Implements G4VEmProcess.

Definition at line 97 of file G4GammaConversion.cc.

References G4Gamma::Gamma().

00098 {
00099   return (&p == G4Gamma::Gamma());
00100 }

G4double G4GammaConversion::MinPrimaryEnergy ( const G4ParticleDefinition ,
const G4Material  
) [virtual]

Reimplemented from G4VEmProcess.

Definition at line 131 of file G4GammaConversion.cc.

00133 {
00134   return 2*electron_mass_c2;
00135 }

void G4GammaConversion::PrintInfo (  )  [virtual]

Implements G4VEmProcess.

Definition at line 139 of file G4GammaConversion.cc.

00140 {}         


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