122{
123 if (verboseLevel > 3)
124 G4cout <<
"Calling G4DNARuddIonisationExtendedModel::Initialise()" <<
G4endl;
125
126
127
128 G4String fileProton(
"dna/sigma_ionisation_p_rudd");
129 G4String fileHydrogen(
"dna/sigma_ionisation_h_rudd");
130 G4String fileAlphaPlusPlus(
"dna/sigma_ionisation_alphaplusplus_rudd");
131 G4String fileAlphaPlus(
"dna/sigma_ionisation_alphaplus_rudd");
132 G4String fileHelium(
"dna/sigma_ionisation_he_rudd");
133 G4String fileLithium(
"dna/sigma_ionisation_li_rudd");
134 G4String fileBeryllium(
"dna/sigma_ionisation_be_rudd");
135 G4String fileBoron(
"dna/sigma_ionisation_b_rudd");
136 G4String fileCarbon(
"dna/sigma_ionisation_c_rudd");
137 G4String fileNitrogen(
"dna/sigma_ionisation_n_rudd");
138 G4String fileOxygen(
"dna/sigma_ionisation_o_rudd");
139 G4String fileSilicon(
"dna/sigma_ionisation_si_rudd");
140 G4String fileIron(
"dna/sigma_ionisation_fe_rudd");
141
149
150
151
152
153
154
163
164
178
180
181
182
183
184
186 tableFile[
proton] = fileProton;
187 lowEnergyLimit[
proton] = lowEnergyLimitForA[1];
188 highEnergyLimit[
proton] = 500. * keV;
189
190
191
193 eV,
194 scaleFactor );
196 tableData[
proton] = tableProton;
197
198
199
201 tableFile[hydrogen] = fileHydrogen;
202
203 lowEnergyLimit[hydrogen] = lowEnergyLimitForA[1];
204 highEnergyLimit[hydrogen] = 100. * MeV;
205
206
207
209 eV,
210 scaleFactor );
211 tableHydrogen->
LoadData(fileHydrogen);
212
213 tableData[hydrogen] = tableHydrogen;
214
215
216
218 tableFile[alphaPlusPlus] = fileAlphaPlusPlus;
219
220 lowEnergyLimit[alphaPlusPlus] = lowEnergyLimitForA[4];
221 highEnergyLimit[alphaPlusPlus] = 400. * MeV;
222
223
224
226 eV,
227 scaleFactor );
228 tableAlphaPlusPlus->
LoadData(fileAlphaPlusPlus);
229
230 tableData[alphaPlusPlus] = tableAlphaPlusPlus;
231
232
233
235 tableFile[alphaPlus] = fileAlphaPlus;
236
237 lowEnergyLimit[alphaPlus] = lowEnergyLimitForA[4];
238 highEnergyLimit[alphaPlus] = 400. * MeV;
239
240
241
243 eV,
244 scaleFactor );
245 tableAlphaPlus->
LoadData(fileAlphaPlus);
246 tableData[alphaPlus] = tableAlphaPlus;
247
248
249
251 tableFile[helium] = fileHelium;
252
253 lowEnergyLimit[helium] = lowEnergyLimitForA[4];
254 highEnergyLimit[helium] = 400. * MeV;
255
256
257
259 eV,
260 scaleFactor );
262 tableData[helium] = tableHelium;
263
264
265
267 tableFile[lithium] = fileLithium;
268
269
270
271
272 lowEnergyLimit[lithium] = 0.5*7*MeV;
273 highEnergyLimit[lithium] = 1e6*7*MeV;
274
275
276
277
279 eV,
280 scaleFactor );
281 tableLithium->
LoadData(fileLithium);
282 tableData[lithium] = tableLithium;
283
284
285
287 tableFile[beryllium] = fileBeryllium;
288
289
290
291
292 lowEnergyLimit[beryllium] = 0.5*9*MeV;
293 highEnergyLimit[beryllium] = 1e6*9*MeV;
294
295
296
297
299 eV,
300 scaleFactor );
301 tableBeryllium->
LoadData(fileBeryllium);
302 tableData[beryllium] = tableBeryllium;
303
304
305
307 tableFile[boron] = fileBoron;
308
309
310
311
312 lowEnergyLimit[boron] = 0.5*11*MeV;
313 highEnergyLimit[boron] = 1e6*11*MeV;
314
315
316
317
319 eV,
320 scaleFactor );
322 tableData[boron] = tableBoron;
323
324
325
327 tableFile[carbon] = fileCarbon;
328
329
330
331
332 lowEnergyLimit[carbon] = 0.5*12*MeV;
333 highEnergyLimit[carbon] = 1e6*12*MeV;
334
335
336
337
339 eV,
340 scaleFactor );
342 tableData[carbon] = tableCarbon;
343
344
345
347 tableFile[oxygen] = fileOxygen;
348
349
350
351
352 lowEnergyLimit[oxygen] = 0.5*16*MeV;
353 highEnergyLimit[oxygen] = 1e6*16*MeV;
354
355
356
357
359 eV,
360 scaleFactor );
362 tableData[oxygen] = tableOxygen;
363
364
365
367 tableFile[nitrogen] = fileNitrogen;
368
369
370
371
372 lowEnergyLimit[nitrogen] = 0.5*14*MeV;
373 highEnergyLimit[nitrogen] = 1e6*14*MeV;
374
375
376
377
379 eV,
380 scaleFactor );
381 tableNitrogen->
LoadData(fileNitrogen);
382 tableData[nitrogen] = tableNitrogen;
383
384
385
387 tableFile[silicon] = fileSilicon;
388
389
390
391 lowEnergyLimit[silicon] = 0.5*28*MeV;
392 highEnergyLimit[silicon] = 1e6*28*MeV;
393
394
395
396
398 eV,
399 scaleFactor );
400 tableSilicon->
LoadData(fileSilicon);
401 tableData[silicon] = tableSilicon;
402
403
404
406 tableFile[iron] = fileIron;
407
408
409
410
411 lowEnergyLimit[iron] = 0.5*56*MeV;
412 highEnergyLimit[iron] = 1e6*56*MeV;
413
414
415
416
418 eV,
419 scaleFactor );
421 tableData[iron] = tableIron;
422
423
424
425
426
427
428
429
430
431 if (particle==protonDef)
432 {
435 }
436
437 if (particle==hydrogenDef)
438 {
441 }
442
443 if (particle==heliumDef)
444 {
447 }
448
449 if (particle==alphaPlusDef)
450 {
453 }
454
455 if (particle==alphaPlusPlusDef)
456 {
459 }
460
461 if (particle==lithiumDef)
462 {
465 }
466
467 if (particle==berylliumDef)
468 {
471 }
472
473 if (particle==boronDef)
474 {
477 }
478
479 if (particle==carbonDef)
480 {
483 }
484
485 if (particle==nitrogenDef)
486 {
489 }
490
491 if (particle==oxygenDef)
492 {
495 }
496
497 if (particle==siliconDef)
498 {
501 }
502
503 if (particle==ironDef)
504 {
507 }
508
509
510
511 if( verboseLevel>0 )
512 {
513 G4cout <<
"Rudd ionisation model is initialized " <<
G4endl
514 << "Energy range: "
519 }
520
521
523
524
525
527
528 if (isInitialised) { return; }
530 isInitialised = true;
531}
virtual G4bool LoadData(const G4String &argFileName)
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()
static G4LossTableManager * Instance()
G4VAtomDeexcitation * AtomDeexcitation()
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
const G4String & GetParticleName() const
void SetHighEnergyLimit(G4double)
G4ParticleChangeForGamma * GetParticleChangeForGamma()
G4double LowEnergyLimit() const
G4double HighEnergyLimit() const
void SetLowEnergyLimit(G4double)