#include <G4MuElecInelastic.hh>
Inheritance diagram for G4MuElecInelastic:
Public Member Functions | |
G4MuElecInelastic (const G4String &processName="MuElecIonisation", G4ProcessType type=fElectromagnetic) | |
virtual | ~G4MuElecInelastic () |
virtual G4bool | IsApplicable (const G4ParticleDefinition &) |
virtual void | PrintInfo () |
Protected Member Functions | |
virtual void | InitialiseProcess (const G4ParticleDefinition *) |
Definition at line 56 of file G4MuElecInelastic.hh.
G4MuElecInelastic::G4MuElecInelastic | ( | const G4String & | processName = "MuElecIonisation" , |
|
G4ProcessType | type = fElectromagnetic | |||
) |
Definition at line 51 of file G4MuElecInelastic.cc.
References G4VProcess::SetProcessSubType().
00052 :G4VEmProcess (processName, type), 00053 isInitialised(false) 00054 { 00055 SetProcessSubType(53); 00056 }
G4MuElecInelastic::~G4MuElecInelastic | ( | ) | [virtual] |
void G4MuElecInelastic::InitialiseProcess | ( | const G4ParticleDefinition * | ) | [protected, virtual] |
Implements G4VEmProcess.
Definition at line 74 of file G4MuElecInelastic.cc.
References G4VEmProcess::AddEmModel(), G4ParticleDefinition::GetParticleName(), G4VEmProcess::Model(), G4VEmProcess::SetBuildTableFlag(), G4VEmModel::SetHighEnergyLimit(), G4VEmModel::SetLowEnergyLimit(), and G4VEmProcess::SetModel().
00075 { 00076 if(!isInitialised) 00077 { 00078 isInitialised = true; 00079 SetBuildTableFlag(false); 00080 G4String name = p->GetParticleName(); 00081 00082 if(name == "e-") 00083 { 00084 if(!Model()) SetModel(new G4MuElecInelasticModel); 00085 Model()->SetLowEnergyLimit(16.7*eV); 00086 Model()->SetHighEnergyLimit(100*MeV); 00087 00088 AddEmModel(1, Model()); 00089 } 00090 00091 else if(name == "proton") 00092 { 00093 if(!Model()) SetModel(new G4MuElecInelasticModel); 00094 Model()->SetLowEnergyLimit(50.*keV); 00095 Model()->SetHighEnergyLimit(1*GeV); 00096 00097 AddEmModel(1, Model()); 00098 } 00099 00100 else 00101 { 00102 if(!Model()) SetModel(new G4MuElecInelasticModel); 00103 Model()->SetLowEnergyLimit(50.*keV); 00104 Model()->SetHighEnergyLimit(100.*GeV); 00105 00106 AddEmModel(1, Model()); 00107 } 00108 } 00109 }
G4bool G4MuElecInelastic::IsApplicable | ( | const G4ParticleDefinition & | ) | [virtual] |
Implements G4VEmProcess.
Definition at line 65 of file G4MuElecInelastic.cc.
References G4Electron::Electron(), G4ParticleDefinition::GetParticleType(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::IsShortLived(), and G4Proton::Proton().
00066 { 00067 return (&p == G4Electron::Electron() || 00068 &p == G4Proton::Proton() || 00069 (p.GetPDGCharge() != 0.0 && !p.IsShortLived() && p.GetParticleType() == "nucleus")); 00070 }
void G4MuElecInelastic::PrintInfo | ( | ) | [virtual] |
Implements G4VEmProcess.
Definition at line 113 of file G4MuElecInelastic.cc.
References G4cout, G4endl, G4VEmModel::GetName(), and G4VEmProcess::Model().
00114 { 00115 if (Model(2)) 00116 { 00117 G4cout 00118 << " Total cross sections computed from " 00119 << Model(1)->GetName() 00120 << " and " 00121 << Model(2)->GetName() 00122 << " models" 00123 << G4endl; 00124 } 00125 else 00126 { 00127 G4cout 00128 << " Total cross sections computed from " 00129 << Model()->GetName() 00130 << G4endl; 00131 } 00132 }