Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
examples/extended/medical/dna/microdosimetry/src/PhysicsList.cc
이 파일의 문서화 페이지로 가기
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 // This example is provided by the Geant4-DNA collaboration
27 // Any report or published results obtained using the Geant4-DNA software
28 // shall cite the following Geant4-DNA collaboration publication:
29 // Med. Phys. 37 (2010) 4692-4708
30 // The Geant4-DNA web site is available at http://geant4-dna.org
31 //
32 // $ID$
35 
36 #include "PhysicsList.hh"
37 #include "G4SystemOfUnits.hh"
38 
39 // Geant4-DNA MODELS
40 
41 #include "G4DNAElastic.hh"
44 
45 #include "G4DNAExcitation.hh"
48 
49 #include "G4DNAIonisation.hh"
52 
53 #include "G4DNAChargeDecrease.hh"
55 
56 #include "G4DNAChargeIncrease.hh"
58 
59 #include "G4DNAAttachment.hh"
61 
62 #include "G4DNAVibExcitation.hh"
64 
66 
67 //
68 
69 #include "G4LossTableManager.hh"
70 #include "G4EmConfigurator.hh"
71 #include "G4VEmModel.hh"
72 #include "G4DummyModel.hh"
73 #include "G4eIonisation.hh"
74 #include "G4hIonisation.hh"
75 #include "G4ionIonisation.hh"
76 #include "G4eMultipleScattering.hh"
77 #include "G4hMultipleScattering.hh"
78 #include "G4BraggIonGasModel.hh"
80 #include "G4UrbanMscModel.hh"
81 #include "G4MollerBhabhaModel.hh"
82 #include "G4IonFluctuations.hh"
84 
85 #include "G4ElectronCapture.hh"
86 
87 //seb
88 #include "G4PhysicsListHelper.hh"
89 #include "G4WentzelVIModel.hh"
90 #include "G4CoulombScattering.hh"
92 #include "G4BraggIonModel.hh"
93 #include "G4BraggModel.hh"
94 #include "G4BetheBlochModel.hh"
95 #include "G4DNAElastic.hh"
96 
97 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
98 
100 {
101  defaultCutValue = 1*micrometer;
102  fCutForGamma = defaultCutValue;
103  fCutForElectron = defaultCutValue;
104  fCutForPositron = defaultCutValue;
105  fCutForProton = defaultCutValue;
106 
107  SetVerboseLevel(1);
108 }
109 
110 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
111 
113 {}
114 
115 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
116 
118 {
119  ConstructBosons();
122 }
123 
124 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
125 
127 {
128  // gamma
130 }
131 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
132 
134 {
135  // leptons
138 }
139 
140 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
141 
142 //DNA
144 //ENDDNA
145 
147 {
148  // baryons
151 
152  // Geant4 DNA new particles
153  G4DNAGenericIonsManager * genericIonsManager;
154  genericIonsManager=G4DNAGenericIonsManager::Instance();
155  genericIonsManager->GetIon("alpha++");
156  genericIonsManager->GetIon("alpha+");
157  genericIonsManager->GetIon("helium");
158  genericIonsManager->GetIon("hydrogen");
159 }
160 
161 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
162 
164 {
166  ConstructEM();
168 }
169 
170 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
171 
173 {
174 
176  particleIterator->reset();
177 
178  while( (*particleIterator)() )
179  {
180 
181  G4ParticleDefinition* particle = particleIterator->value();
182  G4ProcessManager* pmanager = particle->GetProcessManager();
183  G4String particleName = particle->GetParticleName();
184 
186 
187  // *********************************
188  // 1) Processes for the World region
189  // *********************************
190 
191  if (particleName == "e-") {
192 
193  // STANDARD msc is active in the world
195  msc->AddEmModel(1,new G4UrbanMscModel());
196  ph->RegisterProcess(msc, particle);
197 
198  // STANDARD ionisation is active in the world
199  G4eIonisation* eion = new G4eIonisation();
200  eion->SetEmModel(new G4MollerBhabhaModel(), 1);
201  ph->RegisterProcess(eion, particle);
202 
203  // DNA elastic is not active in the world
204  G4DNAElastic* theDNAElasticProcess = new G4DNAElastic("e-_G4DNAElastic");
205  theDNAElasticProcess->SetEmModel(new G4DummyModel(),1);
206  pmanager->AddDiscreteProcess(theDNAElasticProcess);
207 
208  // DNA excitation is not active in the world
209  G4DNAExcitation* dnaex = new G4DNAExcitation("e-_G4DNAExcitation");
210  dnaex->SetEmModel(new G4DummyModel(),1);
211  pmanager->AddDiscreteProcess(dnaex);
212 
213  // DNA ionisation is not active in the world
214  G4DNAIonisation* dnaioni = new G4DNAIonisation("e-_G4DNAIonisation");
215  dnaioni->SetEmModel(new G4DummyModel(),1);
216  pmanager->AddDiscreteProcess(dnaioni);
217 
218  // DNA attachment is not active in the world
219  G4DNAAttachment* dnaatt = new G4DNAAttachment("e-_G4DNAAttachment");
220  dnaatt->SetEmModel(new G4DummyModel(),1);
221  pmanager->AddDiscreteProcess(dnaatt);
222 
223  // DNA vib. excitation is not active in the world
224  G4DNAVibExcitation* dnavib =
225  new G4DNAVibExcitation("e-_G4DNAVibExcitation");
226  dnavib->SetEmModel(new G4DummyModel(),1);
227  pmanager->AddDiscreteProcess(dnavib);
228 
229  // THE FOLLOWING PROCESS WILL KILL ALL ELECTRONS BELOW A
230  // SELECTED ENERY THRESHOLD
231  // Capture of low-energy e-
232  G4ElectronCapture* ecap = new G4ElectronCapture("Target", 7.4*eV);
233  pmanager->AddDiscreteProcess(ecap);
234  // 7.4 eV is compatible with the validity range of the elastic model
235 
236  } else if ( particleName == "proton" ) {
237 
238  // STANDARD msc is active in the world
240  msc->AddEmModel(1,new G4WentzelVIModel());
241  ph->RegisterProcess(msc, particle);
242 
243  // STANDARD Coulomb scattering is active in the world
245  ph->RegisterProcess(pcou, particle);
246 
247  // STANDARD ionisation is active in the world
248  G4hIonisation* hion = new G4hIonisation();
249  hion->SetEmModel(new G4BraggModel(), 1);
250  hion->SetEmModel(new G4BetheBlochModel(), 2);
251  ph->RegisterProcess(hion, particle);
252 
253  // DNA excitation is not active in the world
254  G4DNAExcitation* dnaex = new G4DNAExcitation("proton_G4DNAExcitation");
255  dnaex->SetEmModel(new G4DummyModel(),1);
256  dnaex->SetEmModel(new G4DummyModel(),2);
257  pmanager->AddDiscreteProcess(dnaex);
258 
259  // DNA ionisation is not active in the world
260  G4DNAIonisation* dnaioni = new G4DNAIonisation("proton_G4DNAIonisation");
261  dnaioni->SetEmModel(new G4DummyModel(),1);
262  dnaioni->SetEmModel(new G4DummyModel(),2);
263  pmanager->AddDiscreteProcess(dnaioni);
264 
265  // DNA elastic is not active in the world
266  G4DNAElastic* dnael = new G4DNAElastic("proton_G4DNAElastic");
267  dnael->SetEmModel(new G4DummyModel(),1);
268  pmanager->AddDiscreteProcess(dnael);
269 
270  // DNA charge decrease is not active in the world
272  ("proton_G4DNAChargeDecrease");
273  dnacd->SetEmModel(new G4DummyModel(),1);
274  pmanager->AddDiscreteProcess(dnacd);
275 
276  } else if ( particleName == "hydrogen" ) {
277 
278  // DNA excitation is not active in the world
279  G4DNAExcitation* dnaex = new G4DNAExcitation("hydrogen_G4DNAExcitation");
280  dnaex->SetEmModel(new G4DummyModel(),1);
281  pmanager->AddDiscreteProcess(dnaex);
282 
283  // DNA ionisation is not active in the world
284  G4DNAIonisation* dnaioni = new G4DNAIonisation
285  ("hydrogen_G4DNAIonisation");
286  dnaioni->SetEmModel(new G4DummyModel(),1);
287  pmanager->AddDiscreteProcess(dnaioni);
288 
289  // DNA elastic is not active in the world
290  G4DNAElastic* dnael = new G4DNAElastic("hydrogen_G4DNAElastic");
291  dnael->SetEmModel(new G4DummyModel(),1);
292  pmanager->AddDiscreteProcess(dnael);
293 
294  // DNA charge increase is not active in the world
296  ("hydrogen_G4DNAChargeIncrease");
297  dnaci->SetEmModel(new G4DummyModel(),1);
298  pmanager->AddDiscreteProcess(dnaci);
299 
300  } else if (particleName == "GenericIon") {
301 
302  // WARNING : THIS IS NEEDED FOR STANDARD ALPHA G4ionIonisation PROCESS
303 
304  // STANDARD msc is active in the world
306  msc->AddEmModel(1, new G4UrbanMscModel());
307  ph->RegisterProcess(msc, particle);
308 
309  // STANDARD ionisation is active in the world
310  G4ionIonisation* hion = new G4ionIonisation();
311  hion->SetEmModel(new G4BraggIonModel(), 1);
312  hion->SetEmModel(new G4BetheBlochModel(), 2);
313  ph->RegisterProcess(hion, particle);
314 
315  } else if ( particleName == "alpha" ) {
316 
317  // STANDARD msc is active in the world
319  msc->AddEmModel(1, new G4UrbanMscModel());
320  ph->RegisterProcess(msc, particle);
321 
322  // STANDARD ionisation is active in the world
323  G4ionIonisation* hion = new G4ionIonisation();
324  hion->SetEmModel(new G4BraggIonModel(), 1);
325  hion->SetEmModel(new G4BetheBlochModel(), 2);
326  ph->RegisterProcess(hion, particle);
327 
328  // DNA excitation is not active in the world
329  G4DNAExcitation* dnaex = new G4DNAExcitation("alpha_G4DNAExcitation");
330  dnaex->SetEmModel(new G4DummyModel(),1);
331  pmanager->AddDiscreteProcess(dnaex);
332 
333  // DNA ionisation is not active in the world
334  G4DNAIonisation* dnaioni = new G4DNAIonisation("alpha_G4DNAIonisation");
335  dnaioni->SetEmModel(new G4DummyModel(),1);
336  pmanager->AddDiscreteProcess(dnaioni);
337 
338  // DNA elastic is not active in the world
339  G4DNAElastic* dnael = new G4DNAElastic("alpha_G4DNAElastic");
340  dnael->SetEmModel(new G4DummyModel(),1);
341  pmanager->AddDiscreteProcess(dnael);
342 
343  // DNA charge decrease is not active in the world
345  ("alpha_G4DNAChargeDecrease");
346  dnacd->SetEmModel(new G4DummyModel(),1);
347  pmanager->AddDiscreteProcess(dnacd);
348 
349  } else if ( particleName == "alpha+" ) {
350 
351  // STANDARD msc is active in the world
353  msc->AddEmModel(1, new G4UrbanMscModel());
354  ph->RegisterProcess(msc, particle);
355 
356  // STANDARD ionisation is active in the world
357  G4ionIonisation* hion = new G4ionIonisation();
358  hion->SetEmModel(new G4BraggIonModel(),1);
359  hion->SetEmModel(new G4BetheBlochModel(), 2);
360  ph->RegisterProcess(hion, particle);
361 
362  // DNA excitation is not active in the world
363  G4DNAExcitation* dnaex = new G4DNAExcitation("alpha+_G4DNAExcitation");
364  dnaex->SetEmModel(new G4DummyModel(),1);
365  pmanager->AddDiscreteProcess(dnaex);
366 
367  // DNA ionisation is not active in the world
368  G4DNAIonisation* dnaioni = new G4DNAIonisation("alpha+_G4DNAIonisation");
369  dnaioni->SetEmModel(new G4DummyModel(),1);
370  pmanager->AddDiscreteProcess(dnaioni);
371 
372  // DNA elastic is not active in the world
373  G4DNAElastic* dnael = new G4DNAElastic("alpha+_G4DNAElastic");
374  dnael->SetEmModel(new G4DummyModel(),1);
375  pmanager->AddDiscreteProcess(dnael);
376 
377  // DNA charge decrease is not active in the world
379  ("alpha+_G4DNAChargeDecrease");
380  dnacd->SetEmModel(new G4DummyModel(),1);
381  pmanager->AddDiscreteProcess(dnacd);
382 
383  // DNA charge increase is not active in the world
385  ("alpha+_G4DNAChargeIncrease");
386  dnaci->SetEmModel(new G4DummyModel(),1);
387  pmanager->AddDiscreteProcess(dnaci);
388 
389  } else if ( particleName == "helium" ) {
390 
391  // DNA excitation is not active in the world
392  G4DNAExcitation* dnaex = new G4DNAExcitation("helium_G4DNAExcitation");
393  dnaex->SetEmModel(new G4DummyModel(),1);
394  pmanager->AddDiscreteProcess(dnaex);
395 
396  // DNA ionisation is not active in the world
397  G4DNAIonisation* dnaioni = new G4DNAIonisation("helium_G4DNAIonisation");
398  dnaioni->SetEmModel(new G4DummyModel(),1);
399  pmanager->AddDiscreteProcess(dnaioni);
400 
401  // DNA elastic is not active in the world
402  G4DNAElastic* dnael = new G4DNAElastic("helium_G4DNAElastic");
403  dnael->SetEmModel(new G4DummyModel(),1);
404  pmanager->AddDiscreteProcess(dnael);
405 
406  // DNA charge increase is not active in the world
408  ("helium_G4DNAChargeIncrease");
409  dnaci->SetEmModel(new G4DummyModel(),1);
410  pmanager->AddDiscreteProcess(dnaci);
411 
412  }
413  }
414 
415 
416 
417  // **************************************
418  // 2) Define processes for Target region
419  // **************************************
420 
421  // STANDARD EM processes should be inactivated when
422  // corresponding DNA processes are used
423  // - STANDARD EM e- processes are inactivated below 1 MeV
424  // - STANDARD EM proton & alpha processes are inactivated below
425  // standEnergyLimit
426  G4double standEnergyLimit = 9.9*MeV;
427  //
428 
429  G4double massFactor = 1.0079/4.0026;
432 
433  G4VEmModel* mod;
434 
435  // *** e-
436 
437  // ---> STANDARD EM processes are inactivated below 1 MeV
438 
439  mod = new G4UrbanMscModel();
441  em_config->SetExtraEmModel("e-","msc",mod,"Target");
442 
443  mod = new G4MollerBhabhaModel();
445  em_config->SetExtraEmModel("e-",
446  "eIoni",
447  mod,
448  "Target",
449  0.0,
450  100*TeV,
451  new G4UniversalFluctuation());
452 
453  // ---> DNA processes activated
454 
455  mod = new G4DNAChampionElasticModel();
456  em_config->SetExtraEmModel("e-","e-_G4DNAElastic",
457  mod,"Target",7.4*eV,1.*MeV);
458 
459  mod = new G4DNABornIonisationModel();
460  em_config->SetExtraEmModel("e-","e-_G4DNAIonisation",
461  mod,"Target",11.*eV,1.*MeV);
462  // Note: valid from 11 eV to 0.999.. MeV then switch to std models at
463  // higher energies ; same for other models
464 
465  mod = new G4DNABornExcitationModel();
466  em_config->SetExtraEmModel("e-","e-_G4DNAExcitation",
467  mod,"Target",9.*eV,1.*MeV);
468 
469  mod = new G4DNAMeltonAttachmentModel();
470  em_config->SetExtraEmModel("e-","e-_G4DNAAttachment",
471  mod,"Target",4.*eV,13.*eV);
472 
473  mod = new G4DNASancheExcitationModel();
474  em_config->SetExtraEmModel("e-","e-_G4DNAVibExcitation",
475  mod,"Target",2.*eV,100.*eV);
476 
477  // *** proton
478 
479  // ---> STANDARD EM processes inactivated below standEnergyLimit
480  // or below 1 MeV for scattering
481 
482  // Inactivate following STANDARD processes
483 
484  mod = new G4WentzelVIModel();
486  em_config->SetExtraEmModel("proton","msc",mod,"Target", 0, 100*TeV);
487 
488  mod = new G4eCoulombScatteringModel();
490  em_config->SetExtraEmModel("proton","CoulombScat",mod,"Target", 0, 100*TeV);
491 
492  mod = new G4BraggModel();
493  mod->SetActivationLowEnergyLimit(standEnergyLimit);
494  em_config->SetExtraEmModel("proton","hIoni",
495  mod,"Target",0.0,2*MeV, new G4IonFluctuations());
496 
497  mod = new G4BetheBlochModel();
498  mod->SetActivationLowEnergyLimit(standEnergyLimit);
499  em_config->SetExtraEmModel("proton","hIoni",
500  mod,"Target",2*MeV,100*TeV,
501  new G4UniversalFluctuation());
502 
503  // ---> DNA processes activated
504 
505  mod = new G4DNAIonElasticModel();
506  em_config->SetExtraEmModel("proton","proton_G4DNAElastic",
507  mod,"Target",100*eV,1.*MeV);
508 
509  mod = new G4DNARuddIonisationModel();
510  em_config->SetExtraEmModel("proton","proton_G4DNAIonisation",
511  mod,"Target",100*eV,0.5*MeV);
512 
513  mod = new G4DNABornIonisationModel();
514  em_config->SetExtraEmModel("proton","proton_G4DNAIonisation",
515  mod,"Target",0.5*MeV,10*MeV);
516 
518  em_config->SetExtraEmModel("proton","proton_G4DNAExcitation",
519  mod,"Target",10*eV,0.5*MeV);
520 
521  mod = new G4DNABornExcitationModel();
522  em_config->SetExtraEmModel("proton","proton_G4DNAExcitation",
523  mod,"Target",0.5*MeV,10*MeV);
524 
526  em_config->SetExtraEmModel("proton","proton_G4DNAChargeDecrease",
527  mod,"Target",100*eV,10*MeV);
528 
529  // *** hydrogen
530 
531  // ---> NO STANDARD EM processes
532 
533  // ---> DNA processes activated
534 
535  mod = new G4DNAIonElasticModel();
536  em_config->SetExtraEmModel("hydrogen","hydrogen_G4DNAElastic",
537  mod,"Target",100.*eV,1.*MeV);
538 
539  mod = new G4DNARuddIonisationModel();
540  em_config->SetExtraEmModel("hydrogen","hydrogen_G4DNAIonisation",
541  mod,"Target",100*eV,10*MeV);
542 
544  em_config->SetExtraEmModel("hydrogen","hydrogen_G4DNAExcitation",
545  mod,"Target",10*eV,0.5*MeV);
546 
547 
549  em_config->SetExtraEmModel("hydrogen","hydrogen_G4DNAChargeIncrease",
550  mod,"Target",100*eV,10*MeV);
551 
552  // *** alpha
553 
554  // ---> STANDARD EM processes inactivated below standEnergyLimit
555  // or below 1 MeV for scattering
556 
557  // Inactivate following STANDARD processes
558 
559  mod = new G4UrbanMscModel();
561  em_config->SetExtraEmModel("alpha","msc",mod,"Target", 0, 100*TeV);
562 
563  mod = new G4BraggIonModel();
564  mod->SetActivationLowEnergyLimit(standEnergyLimit);
565  em_config->SetExtraEmModel("alpha","ionIoni",
566  mod,"Target",0.0,2*MeV/massFactor,
567  new G4IonFluctuations());
568 
569  mod = new G4BetheBlochModel();
570  mod->SetActivationLowEnergyLimit(standEnergyLimit);
571  em_config->SetExtraEmModel("alpha","ionIoni",
572  mod,"Target",2*MeV/massFactor,100*TeV,
573  new G4UniversalFluctuation());
574 
575  // ---> DNA processes activated
576 
577  mod = new G4DNAIonElasticModel();
578  em_config->SetExtraEmModel("alpha","alpha_G4DNAElastic",
579  mod,"Target",100*eV,1.*MeV);
580 
581  mod = new G4DNARuddIonisationModel();
582  em_config->SetExtraEmModel("alpha","alpha_G4DNAIonisation",
583  mod,"Target",1*keV,10*MeV);
584 
586  em_config->SetExtraEmModel("alpha","alpha_G4DNAExcitation",
587  mod,"Target",1*keV,10*MeV);
588 
590  em_config->SetExtraEmModel("alpha","alpha_G4DNAChargeDecrease",
591  mod,"Target",1*keV,10*MeV);
592 
593  // *** alpha+
594 
595  // ---> STANDARD EM processes inactivated below standEnergyLimit
596  // or below 1 MeV for scattering
597 
598  // Inactivate following STANDARD processes
599 
600  mod = new G4UrbanMscModel();
602  em_config->SetExtraEmModel("alpha+","msc",mod,"Target", 0, 100*TeV);
603 
604  mod = new G4BraggIonModel();
605  mod->SetActivationLowEnergyLimit(standEnergyLimit);
606  em_config->SetExtraEmModel("alpha+","ionIoni",
607  mod,"Target",0.0,2*MeV/massFactor,
608  new G4IonFluctuations());
609 
610  mod = new G4BetheBlochModel();
611  mod->SetActivationLowEnergyLimit(standEnergyLimit);
612  em_config->SetExtraEmModel("alpha+","ionIoni",
613  mod,"Target",2*MeV/massFactor,100*TeV,
614  new G4UniversalFluctuation());
615 
616  // ---> DNA processes activated
617 
618  mod = new G4DNAIonElasticModel();
619  em_config->SetExtraEmModel("alpha+","alpha+_G4DNAElastic",
620  mod,"Target",100*eV,1.*MeV);
621 
622  mod = new G4DNARuddIonisationModel();
623  em_config->SetExtraEmModel("alpha+","alpha+_G4DNAIonisation",
624  mod,"Target",1*keV,10*MeV);
625 
627  em_config->SetExtraEmModel("alpha+","alpha+_G4DNAExcitation",
628  mod,"Target",1*keV,10*MeV);
629 
631  em_config->SetExtraEmModel("alpha+","alpha+_G4DNAChargeIncrease",
632  mod,"Target",1*keV,10*MeV);
633 
635  em_config->SetExtraEmModel("alpha+","alpha+_G4DNAChargeDecrease",
636  mod,"Target",1*keV,10*MeV);
637 
638  // *** helium
639 
640  // ---> NO STANDARD EM processes
641 
642  // ---> DNA processes activated
643 
644  mod = new G4DNAIonElasticModel();
645  em_config->SetExtraEmModel("helium","helium_G4DNAElastic",
646  mod,"Target",100*eV,1.*MeV);
647 
648  mod = new G4DNARuddIonisationModel();
649  em_config->SetExtraEmModel("helium","helium_G4DNAIonisation",
650  mod,"Target",1*keV,10*MeV);
651 
653  em_config->SetExtraEmModel("helium","helium_G4DNAExcitation",
654  mod,"Target",1*keV,10*MeV);
655 
657  em_config->SetExtraEmModel("helium","helium_G4DNAChargeIncrease",
658  mod,"Target",1*keV,10*MeV);
659 
660 }
661 
662 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
663 
665 { }
666 
667 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
668 
670 {
671  if (verboseLevel >0)
672  {
673  G4cout << "PhysicsList::SetCuts:";
674  G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl;
675  }
676 
677  // set cut values for gamma at first and for e- second and next for e+,
678  // because some processes for e+/e- need cut values for gamma
679  SetCutValue(fCutForGamma, "gamma");
682  SetCutValue(fCutForProton, "proton");
683 
684  if (verboseLevel>0) { DumpCutValuesTable(); }
685 }
static constexpr double micrometer
Definition: G4SIunits.hh:100
void SetEmModel(G4VEmModel *, G4int index=0)
static constexpr double MeV
Definition: G4SIunits.hh:214
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static constexpr double keV
Definition: G4SIunits.hh:216
#define G4endl
Definition: G4ios.hh:61
const G4String & GetParticleName() const
G4DNABornExcitationModel1 G4DNABornExcitationModel
void SetExtraEmModel(const G4String &particleName, const G4String &processName, G4VEmModel *, const G4String &regionName="", G4double emin=0.0, G4double emax=DBL_MAX, G4VEmFluctuationModel *fm=nullptr)
static constexpr double TeV
Definition: G4SIunits.hh:218
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
double G4double
Definition: G4Types.hh:76
static G4Proton * ProtonDefinition()
Definition: G4Proton.cc:88
void SetActivationLowEnergyLimit(G4double)
Definition: G4VEmModel.hh:728
void SetEmModel(G4VEmModel *, G4int index=0)
PhysicsList()
Implementation of the PhysicsList class.
static constexpr double eV
Definition: G4SIunits.hh:215
static G4Electron * ElectronDefinition()
Definition: G4Electron.cc:89
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4Gamma * GammaDefinition()
Definition: G4Gamma.cc:81
static G4GenericIon * GenericIonDefinition()
Definition: G4GenericIon.cc:88
static G4PhysicsListHelper * GetPhysicsListHelper()
G4ParticleDefinition * GetIon(const G4String &name)
G4ProcessManager * GetProcessManager() const
#define G4DNABornIonisationModel
static G4DNAGenericIonsManager * Instance(void)
std::vector< G4InuclElementaryParticle >::iterator particleIterator
Definition: G4BigBanger.cc:65
G4GLOB_DLL std::ostream G4cout
static G4LossTableManager * Instance()
void SetCutValue(G4double aCut, const G4String &pname)
void AddEmModel(G4int order, G4VEmModel *, const G4Region *region=nullptr)
static G4Positron * PositronDefinition()
Definition: G4Positron.cc:89
void DumpCutValuesTable(G4int flag=1)
G4EmConfigurator * EmConfigurator()