114{
115
116 if (verboseLevel > 3)
117 {
118 G4cout <<
"Calling G4DNARuddIonisationModel::Initialise()" <<
G4endl;
119 }
120
121
122
123 G4String fileProton(
"dna/sigma_ionisation_p_rudd");
124 G4String fileHydrogen(
"dna/sigma_ionisation_h_rudd");
125 G4String fileAlphaPlusPlus(
"dna/sigma_ionisation_alphaplusplus_rudd");
126 G4String fileAlphaPlus(
"dna/sigma_ionisation_alphaplus_rudd");
127 G4String fileHelium(
"dna/sigma_ionisation_he_rudd");
128
132 hydrogenDef = instance->
GetIon(
"hydrogen");
134 alphaPlusDef = instance->
GetIon(
"alpha+");
135 heliumDef = instance->
GetIon(
"helium");
136
142
144
145
146
147
148
150 tableFile[
proton] = fileProton;
151
152 lowEnergyLimit[
proton] = lowEnergyLimitForZ1;
153 highEnergyLimit[
proton] = 500. * keV;
154
155
156
158 eV,
159 scaleFactor );
161 tableData[
proton] = tableProton;
162
163
164
166 tableFile[hydrogen] = fileHydrogen;
167
168 lowEnergyLimit[hydrogen] = lowEnergyLimitForZ1;
169 highEnergyLimit[hydrogen] = 100. * MeV;
170
171
172
174 eV,
175 scaleFactor );
176 tableHydrogen->
LoadData(fileHydrogen);
177
178 tableData[hydrogen] = tableHydrogen;
179
180
181
183 tableFile[alphaPlusPlus] = fileAlphaPlusPlus;
184
185 lowEnergyLimit[alphaPlusPlus] = lowEnergyLimitForZ2;
186 highEnergyLimit[alphaPlusPlus] = 400. * MeV;
187
188
189
191 eV,
192 scaleFactor );
193 tableAlphaPlusPlus->
LoadData(fileAlphaPlusPlus);
194
195 tableData[alphaPlusPlus] = tableAlphaPlusPlus;
196
197
198
200 tableFile[alphaPlus] = fileAlphaPlus;
201
202 lowEnergyLimit[alphaPlus] = lowEnergyLimitForZ2;
203 highEnergyLimit[alphaPlus] = 400. * MeV;
204
205
206
208 eV,
209 scaleFactor );
210 tableAlphaPlus->
LoadData(fileAlphaPlus);
211 tableData[alphaPlus] = tableAlphaPlus;
212
213
214
216 tableFile[helium] = fileHelium;
217
218 lowEnergyLimit[helium] = lowEnergyLimitForZ2;
219 highEnergyLimit[helium] = 400. * MeV;
220
221
222
224 eV,
225 scaleFactor );
227 tableData[helium] = tableHelium;
228
229
230
231 if (particle==protonDef)
232 {
235 }
236
237 if (particle==hydrogenDef)
238 {
241 }
242
243 if (particle==heliumDef)
244 {
247 }
248
249 if (particle==alphaPlusDef)
250 {
253 }
254
255 if (particle==alphaPlusPlusDef)
256 {
259 }
260
261 if( verboseLevel>0 )
262 {
263 G4cout <<
"Rudd ionisation model is initialized " <<
G4endl
264 << "Energy range: "
269 }
270
271
273
274
275
277
278 if (isInitialised)
279 { return;}
281 isInitialised = true;
282
283}
virtual G4bool LoadData(const G4String &argFileName)
static G4DNAGenericIonsManager * Instance(void)
G4ParticleDefinition * GetIon(const G4String &name)
const std::vector< G4double > * GetNumMolPerVolTableFor(const G4Material *) const
Retrieve a table of molecular densities (number of molecules per unit volume) in the G4 unit system f...
static G4DNAMolecularMaterial * Instance()
G4ParticleChangeForGamma * fParticleChangeForGamma
static G4LossTableManager * Instance()
G4VAtomDeexcitation * AtomDeexcitation()
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
const G4String & GetParticleName() const
static G4Proton * ProtonDefinition()
void SetHighEnergyLimit(G4double)
G4ParticleChangeForGamma * GetParticleChangeForGamma()
G4double LowEnergyLimit() const
G4double HighEnergyLimit() const
void SetLowEnergyLimit(G4double)