#include <G4GammaConversion.hh>
Inheritance diagram for G4GammaConversion:
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 *) |
Definition at line 75 of file G4GammaConversion.hh.
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] |
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] |
void G4GammaConversion::PrintInfo | ( | ) | [virtual] |