114{
115
116 if (verboseLevel > 3)
117 G4cout <<
"Calling G4DNARuddIonisationExtendedModel::Initialise()" <<
G4endl;
118
119
120
121 G4String fileProton(
"dna/sigma_ionisation_p_rudd");
122 G4String fileHydrogen(
"dna/sigma_ionisation_h_rudd");
123 G4String fileAlphaPlusPlus(
"dna/sigma_ionisation_alphaplusplus_rudd");
124 G4String fileAlphaPlus(
"dna/sigma_ionisation_alphaplus_rudd");
125 G4String fileHelium(
"dna/sigma_ionisation_he_rudd");
126 G4String fileCarbon(
"dna/sigma_ionisation_c_rudd");
127 G4String fileNitrogen(
"dna/sigma_ionisation_n_rudd");
128 G4String fileOxygen(
"dna/sigma_ionisation_o_rudd");
129 G4String fileIron(
"dna/sigma_ionisation_fe_rudd");
130
142
152
154
155
156
158 tableFile[
proton] = fileProton;
159 lowEnergyLimit[
proton] = lowEnergyLimitForA[1];
160 highEnergyLimit[
proton] = 500. * keV;
161
162
163
165 eV,
166 scaleFactor );
168 tableData[
proton] = tableProton;
169
170
171
173 tableFile[hydrogen] = fileHydrogen;
174
175 lowEnergyLimit[hydrogen] = lowEnergyLimitForA[1];
176 highEnergyLimit[hydrogen] = 100. * MeV;
177
178
179
181 eV,
182 scaleFactor );
183 tableHydrogen->
LoadData(fileHydrogen);
184
185 tableData[hydrogen] = tableHydrogen;
186
187
188
190 tableFile[alphaPlusPlus] = fileAlphaPlusPlus;
191
192 lowEnergyLimit[alphaPlusPlus] = lowEnergyLimitForA[4];
193 highEnergyLimit[alphaPlusPlus] = 400. * MeV;
194
195
196
198 eV,
199 scaleFactor );
200 tableAlphaPlusPlus->
LoadData(fileAlphaPlusPlus);
201
202 tableData[alphaPlusPlus] = tableAlphaPlusPlus;
203
204
205
207 tableFile[alphaPlus] = fileAlphaPlus;
208
209 lowEnergyLimit[alphaPlus] = lowEnergyLimitForA[4];
210 highEnergyLimit[alphaPlus] = 400. * MeV;
211
212
213
215 eV,
216 scaleFactor );
217 tableAlphaPlus->
LoadData(fileAlphaPlus);
218 tableData[alphaPlus] = tableAlphaPlus;
219
220
221
223 tableFile[helium] = fileHelium;
224
225 lowEnergyLimit[helium] = lowEnergyLimitForA[4];
226 highEnergyLimit[helium] = 400. * MeV;
227
228
229
231 eV,
232 scaleFactor );
234 tableData[helium] = tableHelium;
235
236
237
239 tableFile[carbon] = fileCarbon;
240
241 lowEnergyLimit[carbon] = lowEnergyLimitForA[5] * particle->
GetAtomicMass();
242 highEnergyLimit[carbon] = 1e6* particle->
GetAtomicMass() * MeV;
243
244
245
247 eV,
248 scaleFactor );
250 tableData[carbon] = tableCarbon;
251
252
253
255 tableFile[oxygen] = fileOxygen;
256
257 lowEnergyLimit[oxygen] = lowEnergyLimitForA[5]* particle->
GetAtomicMass();
258 highEnergyLimit[oxygen] = 1e6* particle->
GetAtomicMass()* MeV;
259
260
261
263 eV,
264 scaleFactor );
266 tableData[oxygen] = tableOxygen;
267
268
269
271 tableFile[nitrogen] = fileNitrogen;
272
273 lowEnergyLimit[nitrogen] = lowEnergyLimitForA[5]* particle->
GetAtomicMass();
274 highEnergyLimit[nitrogen] = 1e6* particle->
GetAtomicMass()* MeV;
275
276
277
279 eV,
280 scaleFactor );
281 tableNitrogen->
LoadData(fileNitrogen);
282 tableData[nitrogen] = tableNitrogen;
283
284
285
287 tableFile[iron] = fileIron;
288
289 lowEnergyLimit[iron] = lowEnergyLimitForA[5]* particle->
GetAtomicMass();
291
292
293
295 eV,
296 scaleFactor );
298 tableData[iron] = tableIron;
299
300
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350 if( verboseLevel>0 )
351 {
352 G4cout <<
"Rudd ionisation model is initialized " <<
G4endl
353 << "Energy range: "
358 }
359
360
362
363
364
366
367 if (isInitialised) { return; }
369 isInitialised = true;
370}
virtual G4bool LoadData(const G4String &argFileName)
static G4DNAMolecularMaterial * Instance()
const std::vector< double > * GetNumMolPerVolTableFor(const G4Material *) const
static G4LossTableManager * Instance()
G4VAtomDeexcitation * AtomDeexcitation()
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
G4int GetAtomicMass() const
const G4String & GetParticleName() const
void SetHighEnergyLimit(G4double)
G4ParticleChangeForGamma * GetParticleChangeForGamma()
G4double LowEnergyLimit() const
G4double HighEnergyLimit() const
void SetLowEnergyLimit(G4double)