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 //
31 //
32 // ClassName: PhysicsList
33 //
34 // Authors: 01.06.17 V.Ivanchenko
35 //
36 //
38 
39 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
40 
41 #include "PhysicsList.hh"
42 #include "PhysicsListMessenger.hh"
43 
44 #include "G4EmStandardPhysics.hh"
49 #include "G4EmStandardPhysicsGS.hh"
50 #include "G4EmStandardPhysicsSS.hh"
52 #include "G4EmLivermorePhysics.hh"
53 #include "G4EmPenelopePhysics.hh"
54 #include "G4EmLowEPPhysics.hh"
55 #include "G4DecayPhysics.hh"
56 
57 #include "G4LDMHi.hh"
58 #include "G4LDMHiBar.hh"
59 #include "G4LDMPhoton.hh"
60 #include "G4LDMBremsstrahlung.hh"
61 #include "G4LDMBremModel.hh"
62 
63 #include "G4UnitsTable.hh"
64 #include "G4SystemOfUnits.hh"
65 #include "G4LossTableManager.hh"
66 #include "G4ProductionCutsTable.hh"
67 #include "G4EmConfigurator.hh"
68 #include "G4EmParameters.hh"
69 
70 #include "G4ProcessManager.hh"
71 #include "G4ParticleTypes.hh"
72 #include "G4ParticleTable.hh"
73 
74 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
75 
78  fLDMPhotonMass(0.5*CLHEP::GeV),fLDMHiMass(0.1*CLHEP::GeV),
79  fLDMPhoton(true),fLDMHi(false)
80 {
81  fMessenger = new PhysicsListMessenger(this);
82 
83  // Decay Physics is always defined
85 
86  // EM physics
87  fEmName = G4String("emstandard_opt0");
89 
90  SetVerboseLevel(1);
91 }
92 
93 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
94 
96 {
97  delete fMessenger;
98  delete fDecayPhysicsList;
99  delete fEmPhysicsList;
100 }
101 
102 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
103 
105 {
109  if(fLDMHi) {
112  }
113 }
114 
115 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
116 
118 {
122  AddDarkMatter();
123 }
124 
125 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
126 
128 {
129  //G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
130  if (name == fEmName) {
131  return;
132 
133  } else if (name == "emstandard_opt0") {
134  fEmName = name;
135  delete fEmPhysicsList;
137 
138  } else if (name == "emstandard_opt1") {
139  fEmName = name;
140  delete fEmPhysicsList;
142 
143  } else if (name == "emstandard_opt2") {
144  fEmName = name;
145  delete fEmPhysicsList;
147 
148  } else if (name == "emstandard_opt3") {
149  fEmName = name;
150  delete fEmPhysicsList;
152 
153  } else if (name == "emstandard_opt4") {
154  fEmName = name;
155  delete fEmPhysicsList;
157 
158  } else if (name == "emstandardWVI") {
159  fEmName = name;
160  delete fEmPhysicsList;
162 
163  } else if (name == "emstandardSS") {
164  fEmName = name;
165  delete fEmPhysicsList;
167 
168  } else if (name == "emstandardGS") {
169  fEmName = name;
170  delete fEmPhysicsList;
171 
173 
174  } else if (name == "emlivermore") {
175  fEmName = name;
176  delete fEmPhysicsList;
178 
179  } else if (name == "empenelope") {
180  fEmName = name;
181  delete fEmPhysicsList;
183 
184  } else if (name == "emlowenergy") {
185  fEmName = name;
186  delete fEmPhysicsList;
188 
189  } else {
190  G4cout << "PhysicsList::AddPhysicsList: <" << name << ">"
191  << " is not defined"
192  << G4endl;
193  return;
194  }
195 }
196 
197 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
198 
200 {
202  if ( verboseLevel > 0 ) { DumpCutValuesTable(); }
203 }
204 
205 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
206 
208 {
209  G4cout << " PhysicsList::AddDarkMatter: " << fLDMPhoton << G4endl;
210  if(fLDMPhoton) {
211  //G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
215  man->AddProcess(ldmb, -1, -1, 5);
216  }
217 }
218 
219 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
220 
222 {
223  G4cout << "### PhysicsList::SetLDMPhotonMass: new value " << val/GeV
224  << " GeV" << G4endl;
225  fLDMPhotonMass = val;
226  fLDMPhoton = true;
227 }
228 
229 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
230 
232 {
233  fLDMHiMass = val;
234  fLDMHi = true;
235 }
236 
237 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......