#include <G4DNAExcitation.hh>
Inheritance diagram for G4DNAExcitation:
Public Member Functions | |
G4DNAExcitation (const G4String &processName="DNAExcitation", G4ProcessType type=fElectromagnetic) | |
virtual | ~G4DNAExcitation () |
virtual G4bool | IsApplicable (const G4ParticleDefinition &) |
virtual void | PrintInfo () |
Protected Member Functions | |
virtual void | InitialiseProcess (const G4ParticleDefinition *) |
Definition at line 46 of file G4DNAExcitation.hh.
G4DNAExcitation::G4DNAExcitation | ( | const G4String & | processName = "DNAExcitation" , |
|
G4ProcessType | type = fElectromagnetic | |||
) |
Definition at line 35 of file G4DNAExcitation.cc.
References G4VProcess::SetProcessSubType().
00036 :G4VEmProcess (processName, type), 00037 isInitialised(false) 00038 { 00039 SetProcessSubType(52); 00040 }
G4DNAExcitation::~G4DNAExcitation | ( | ) | [virtual] |
void G4DNAExcitation::InitialiseProcess | ( | const G4ParticleDefinition * | ) | [protected, virtual] |
Implements G4VEmProcess.
Definition at line 68 of file G4DNAExcitation.cc.
References G4VEmProcess::AddEmModel(), G4VEmProcess::EmModel(), G4ParticleDefinition::GetParticleName(), G4VEmProcess::SetBuildTableFlag(), G4VEmProcess::SetEmModel(), G4VEmModel::SetHighEnergyLimit(), and G4VEmModel::SetLowEnergyLimit().
00069 { 00070 if(!isInitialised) 00071 { 00072 isInitialised = true; 00073 SetBuildTableFlag(false); 00074 00075 G4String name = p->GetParticleName(); 00076 00077 if(name == "e-") 00078 { 00079 00080 // Emfietzoglou model 00081 /* 00082 if(!EmModel()) SetEmModel(new G4DNAEmfietzoglouExcitationModel); 00083 EmModel()->SetLowEnergyLimit(8.23*eV); 00084 EmModel()->SetHighEnergyLimit(10*MeV); 00085 */ 00086 // Born model 00087 00088 if(!EmModel()) SetEmModel(new G4DNABornExcitationModel); 00089 EmModel()->SetLowEnergyLimit(9*eV); 00090 EmModel()->SetHighEnergyLimit(1*MeV); 00091 00092 AddEmModel(1, EmModel()); 00093 } 00094 00095 if(name == "proton") 00096 { 00097 if(!EmModel(1)) SetEmModel(new G4DNAMillerGreenExcitationModel,1); 00098 EmModel(1)->SetLowEnergyLimit(10*eV); 00099 EmModel(1)->SetHighEnergyLimit(500*keV); 00100 00101 if(!EmModel(2)) SetEmModel(new G4DNABornExcitationModel,2); 00102 EmModel(2)->SetLowEnergyLimit(500*keV); 00103 EmModel(2)->SetHighEnergyLimit(100*MeV); 00104 00105 AddEmModel(1, EmModel(1)); 00106 AddEmModel(2, EmModel(2)); 00107 } 00108 00109 if(name == "hydrogen") 00110 { 00111 if(!EmModel()) SetEmModel(new G4DNAMillerGreenExcitationModel); 00112 EmModel()->SetLowEnergyLimit(10*eV); 00113 EmModel()->SetHighEnergyLimit(500*keV); 00114 00115 AddEmModel(1, EmModel()); 00116 } 00117 00118 00119 if( name == "alpha" || name == "alpha+" || name == "helium" ) 00120 { 00121 if(!EmModel()) SetEmModel(new G4DNAMillerGreenExcitationModel); 00122 EmModel()->SetLowEnergyLimit(1*keV); 00123 EmModel()->SetHighEnergyLimit(400*MeV); 00124 00125 AddEmModel(1, EmModel()); 00126 } 00127 00128 } 00129 }
G4bool G4DNAExcitation::IsApplicable | ( | const G4ParticleDefinition & | ) | [virtual] |
Implements G4VEmProcess.
Definition at line 49 of file G4DNAExcitation.cc.
References G4Electron::Electron(), G4DNAGenericIonsManager::GetIon(), G4DNAGenericIonsManager::Instance(), and G4Proton::ProtonDefinition().
00050 { 00051 00052 G4DNAGenericIonsManager *instance; 00053 instance = G4DNAGenericIonsManager::Instance(); 00054 00055 return 00056 ( 00057 &p == G4Electron::Electron() 00058 || &p == G4Proton::ProtonDefinition() 00059 || &p == instance->GetIon("hydrogen") 00060 || &p == instance->GetIon("alpha++") 00061 || &p == instance->GetIon("alpha+") 00062 || &p == instance->GetIon("helium") 00063 ); 00064 }
void G4DNAExcitation::PrintInfo | ( | ) | [virtual] |
Implements G4VEmProcess.
Definition at line 133 of file G4DNAExcitation.cc.
References G4VEmProcess::EmModel(), G4cout, G4endl, and G4VEmModel::GetName().
00134 { 00135 if (EmModel(2)) 00136 { 00137 G4cout 00138 << " Total cross sections computed from " 00139 << EmModel(1)->GetName() 00140 << " and " 00141 << EmModel(2)->GetName() 00142 << " models" 00143 << G4endl; 00144 } 00145 else 00146 { 00147 G4cout 00148 << " Total cross sections computed from " 00149 << EmModel()->GetName() 00150 << G4endl; 00151 } 00152 }