ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PhysicsList.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file 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 publications:
29 // Med. Phys. 45 (2018) e722-e739
30 // Phys. Med. 31 (2015) 861-874
31 // Med. Phys. 37 (2010) 4692-4708
32 // Int. J. Model. Simul. Sci. Comput. 1 (2010) 157\u2013178
33 //
34 // The Geant4-DNA web site is available at http://geant4-dna.org
35 //
38 
39 #include "PhysicsList.hh"
40 #include "PhysicsListMessenger.hh"
41 
42 #include "G4EmDNAPhysics.hh"
49 
50 #include "G4UserSpecialCuts.hh"
51 
52 // particles
53 
54 #include "G4BosonConstructor.hh"
55 #include "G4LeptonConstructor.hh"
56 #include "G4MesonConstructor.hh"
57 #include "G4BosonConstructor.hh"
58 #include "G4BaryonConstructor.hh"
59 #include "G4IonConstructor.hh"
62 
63 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
64 
66  fEmPhysicsList(0), fMessenger(0)
67 {
68  fMessenger = new PhysicsListMessenger(this);
69 
70  SetVerboseLevel(1);
71 
72  // EM physics
74 
75 }
76 
77 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
78 
80 {
81  delete fMessenger;
82  delete fEmPhysicsList;
83 }
84 
85 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
86 
88 {
89  G4BosonConstructor pBosonConstructor;
90  pBosonConstructor.ConstructParticle();
91 
92  G4LeptonConstructor pLeptonConstructor;
93  pLeptonConstructor.ConstructParticle();
94 
95  G4MesonConstructor pMesonConstructor;
96  pMesonConstructor.ConstructParticle();
97 
98  G4BaryonConstructor pBaryonConstructor;
99  pBaryonConstructor.ConstructParticle();
100 
101  G4IonConstructor pIonConstructor;
102  pIonConstructor.ConstructParticle();
103 
104  G4ShortLivedConstructor pShortLivedConstructor;
105  pShortLivedConstructor.ConstructParticle();
106 
107  G4DNAGenericIonsManager* genericIonsManager;
108  genericIonsManager=G4DNAGenericIonsManager::Instance();
109  genericIonsManager->GetIon("alpha++");
110  genericIonsManager->GetIon("alpha+");
111  genericIonsManager->GetIon("helium");
112  genericIonsManager->GetIon("hydrogen");
113 }
114 
115 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
116 
117 #include "G4ProcessManager.hh"
118 #include "G4EmProcessOptions.hh"
119 
121 {
122  // transportation
123  //
125 
126  // electromagnetic physics list
127  //
129 
130  // tracking cut
131  //
132  AddTrackingCut();
133 
134 }
135 
136 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
137 
139 {
140  if (verboseLevel>-1) {
141  G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
142  }
143 
144  if (name == fEmName) return;
145 
146  if (name == "dna") {
147  fEmName = name;
148  delete fEmPhysicsList;
150 
151  } else if (name == "dna_opt1") {
152  fEmName = name;
153  delete fEmPhysicsList;
155 
156  } else if (name == "dna_opt2") {
157  fEmName = name;
158  delete fEmPhysicsList;
160 
161  } else if (name == "dna_opt3") {
162  fEmName = name;
163  delete fEmPhysicsList;
165 
166  } else if (name == "dna_opt4") {
167  fEmName = name;
168  delete fEmPhysicsList;
170 
171  } else if (name == "dna_opt5") {
172  fEmName = name;
173  delete fEmPhysicsList;
175 
176  } else if (name == "dna_opt6") {
177  fEmName = name;
178  delete fEmPhysicsList;
180 
181  } else {
182 
183  G4cout << "PhysicsList::AddPhysicsList: <" << name << ">"
184  << " is not defined"
185  << G4endl;
186  }
187 }
188 
189 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
190 
192 {
193 
195 
197  particleIterator->reset();
198  while ((*particleIterator)())
199  {
201  G4String particleName = particle->GetParticleName();
202 
203  if (particleName == "e-")
204  {
205  ph->RegisterProcess(new G4UserSpecialCuts(), particle);
206  }
207  }
208 }
209 
210 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......