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 //
28 //
29 //
30 //
31 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
32 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
33 
34 #include "PhysicsList.hh"
35 #include "PhysicsListMessenger.hh"
36 
37 #include "PhysListEmStandard.hh"
38 #include "G4EmStandardPhysics.hh"
43 #include "G4EmLivermorePhysics.hh"
44 #include "G4EmPenelopePhysics.hh"
45 
46 #include "G4LossTableManager.hh"
47 #include "G4UnitsTable.hh"
48 #include "G4SystemOfUnits.hh"
49 #include "G4EmParameters.hh"
50 
51 // Bosons
52 #include "G4ChargedGeantino.hh"
53 #include "G4Geantino.hh"
54 #include "G4Gamma.hh"
55 #include "G4OpticalPhoton.hh"
56 
57 // leptons
58 #include "G4MuonPlus.hh"
59 #include "G4MuonMinus.hh"
60 #include "G4NeutrinoMu.hh"
61 #include "G4AntiNeutrinoMu.hh"
62 
63 #include "G4Electron.hh"
64 #include "G4Positron.hh"
65 #include "G4NeutrinoE.hh"
66 #include "G4AntiNeutrinoE.hh"
67 
68 // Mesons
69 #include "G4PionPlus.hh"
70 #include "G4PionMinus.hh"
71 #include "G4PionZero.hh"
72 #include "G4Eta.hh"
73 #include "G4EtaPrime.hh"
74 
75 #include "G4KaonPlus.hh"
76 #include "G4KaonMinus.hh"
77 #include "G4KaonZero.hh"
78 #include "G4AntiKaonZero.hh"
79 #include "G4KaonZeroLong.hh"
80 #include "G4KaonZeroShort.hh"
81 
82 // Baryons
83 #include "G4Proton.hh"
84 #include "G4AntiProton.hh"
85 #include "G4Neutron.hh"
86 #include "G4AntiNeutron.hh"
87 
88 // Nuclei
89 #include "G4Deuteron.hh"
90 #include "G4Triton.hh"
91 #include "G4Alpha.hh"
92 #include "G4GenericIon.hh"
93 
94 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
95 
97  fEmPhysicsList(nullptr), fEmName(""),
98  fMessenger(new PhysicsListMessenger(this))
99 {
100  // set default cut value
101  SetDefaultCutValue(1.0*mm);
102 
103  SetVerboseLevel(1);
104 
105  AddPhysicsList("emstandard_opt0");
106 
108 
109  //add new units for cross sections
110  //
111  new G4UnitDefinition( "mm2/g", "mm2/g","Surface/Mass", mm2/g);
112  new G4UnitDefinition( "um2/mg", "um2/mg","Surface/Mass", um*um/mg);
113 }
114 
115 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
116 
118 {
119  delete fMessenger;
120 }
121 
122 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
123 
125 {
126 // pseudo-particles
129 
130 // gamma
132 
133 // optical photon
135 
136 // leptons
141 
146 
147 // mesons
159 
160 // barions
165 
166 // ions
171 }
172 
173 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
174 
176 {
177  // Transportation
178  //
180 
181  // Electromagnetic physics list
182  //
184 }
185 
186 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
187 
189 {
190  if (verboseLevel>0) {
191  G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
192  }
193 
194  if (name == fEmName) return;
195 
196  if (name == "local") {
197 
198  fEmName = name;
199  delete fEmPhysicsList;
201 
202  } else if (name == "emstandard_opt0"){
203  fEmName = name;
204  delete fEmPhysicsList;
206 
207  } else if (name == "emstandard_opt1"){
208  fEmName = name;
209  delete fEmPhysicsList;
211 
212  } else if (name == "emstandard_opt2"){
213  fEmName = name;
214  delete fEmPhysicsList;
216 
217  } else if (name == "emstandard_opt3"){
218  fEmName = name;
219  delete fEmPhysicsList;
221 
222  } else if (name == "emstandard_opt4"){
223  fEmName = name;
224  delete fEmPhysicsList;
226 
227  } else if (name == "empenelope"){
228  fEmName = name;
229  delete fEmPhysicsList;
231 
232  } else if (name == "emlivermore"){
233  fEmName = name;
234  delete fEmPhysicsList;
236 
237  } else {
238 
239  G4cout << "PhysicsList::AddPhysicsList: <" << name << ">"
240  << " is not defined"
241  << G4endl;
242  }
243 
244  // Em options
245  //
248 }
249 
250 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......