Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
examples/extended/hadronic/Hadr01/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 //
28 //
29 //
30 // $Id: PhysicsList.cc 107541 2017-11-22 08:24:57Z gcosmo $
31 //
33 //
34 // PhysicsList
35 //
36 // Created: 31.04.2006 V.Ivanchenko
37 //
38 // Modified:
39 // 04.06.2006 Adoptation of Hadr01 (V.Ivanchenko)
40 // 26.04.2007 Physics according to 8.3 Physics List (V.Ivanchenko)
41 // 16.10.2012 Renamed used classes (A.Ribon)
42 //
44 //
45 
46 #include "PhysicsList.hh"
47 #include "PhysicsListMessenger.hh"
48 
49 #include "G4DecayPhysics.hh"
50 #include "G4EmStandardPhysics.hh"
55 #include "G4EmStandardPhysicsGS.hh"
56 #include "G4EmLivermorePhysics.hh"
57 #include "G4EmPenelopePhysics.hh"
63 #include "G4NeutronTrackingCut.hh"
65 #include "G4StoppingPhysics.hh"
67 #include "G4IonPhysics.hh"
68 #include "G4EmExtraPhysics.hh"
69 #include "G4EmParameters.hh"
71 
76 #include "G4HadronInelasticQBBC.hh"
84 
85 #include "G4ProcessManager.hh"
86 #include "G4ParticleTypes.hh"
87 #include "G4ParticleTable.hh"
88 #include "G4Gamma.hh"
89 #include "G4Electron.hh"
90 #include "G4Positron.hh"
91 #include "G4Proton.hh"
92 
93 #include "G4SystemOfUnits.hh"
94 
95 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
96 
98 {
100 
101  verboseLevel = 1;
102 
103  fMessenger = new PhysicsListMessenger(this);
105 
106  // Particles
108 
109  // EM physics
111 }
112 
113 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
114 
116 {
117  delete fMessenger;
118  delete fParticleList;
119  delete fEmPhysicsList;
120  for(size_t i=0; i<fHadronPhys.size(); i++) {
121  delete fHadronPhys[i];
122  }
123 }
124 
125 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
126 
128 {
130 }
131 
132 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
133 
135 {
139  for(size_t i=0; i<fHadronPhys.size(); i++) {
140  fHadronPhys[i]->ConstructProcess();
141  }
142 }
143 
144 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
145 
147 {
148  if (verboseLevel>0) {
149  G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
150  }
151  if (name == "emstandard_opt0") {
152 
153  delete fEmPhysicsList;
155 
156  } else if (name == "emstandard_opt1") {
157 
158  delete fEmPhysicsList;
160 
161  } else if (name == "emstandard_opt2") {
162 
163  delete fEmPhysicsList;
165 
166  } else if (name == "emstandard_opt3") {
167 
168  delete fEmPhysicsList;
170 
171  } else if (name == "emstandard_opt4") {
172 
173  delete fEmPhysicsList;
175 
176  } else if (name == "emstandardGS") {
177 
178  delete fEmPhysicsList;
180 
181  } else if (name == "FTFP_BERT_EMV") {
182 
183  AddPhysicsList("FTFP_BERT");
184  AddPhysicsList("emstandard_opt1");
185 
186  } else if (name == "FTFP_BERT_EMX") {
187 
188  AddPhysicsList("FTFP_BERT");
189  AddPhysicsList("emstandard_opt2");
190 
191  } else if (name == "FTFP_BERT_EMY") {
192 
193  AddPhysicsList("FTFP_BERT");
194  AddPhysicsList("emstandard_opt3");
195 
196  } else if (name == "FTFP_BERT_EMZ") {
197 
198  AddPhysicsList("FTFP_BERT");
199  AddPhysicsList("emstandard_opt4");
200 
201  } else if (name == "FTFP_BERT") {
202 
203  SetBuilderList0(false);
205 
206  } else if (name == "FTFP_BERT_TRV") {
207 
208  AddPhysicsList("emstandardGS");
210 
211  SetBuilderList1(false);
213 
214  } else if (name == "FTF_BIC") {
215 
216  SetBuilderList0(false);
218 
219  } else if (name == "QBBC") {
220 
221  AddPhysicsList("emstandard_opt0");
222  SetBuilderList2();
224 
225  } else if (name == "QGSP_BERT") {
226 
227  SetBuilderList0(false);
229 
230  } else if (name == "QGSP_FTFP_BERT") {
231 
232  SetBuilderList0(false);
234 
235  } else if (name == "QGSP_FTFP_BERT_EMV") {
236 
237  AddPhysicsList("QGSP_FTFP_BERT");
238  AddPhysicsList("emstandard_opt1");
239 
240  } else if (name == "QGSP_BERT_EMV") {
241 
242  AddPhysicsList("QGSP_BERT");
243  AddPhysicsList("emstandard_opt1");
244 
245  } else if (name == "QGSP_BERT_EMX") {
246 
247  AddPhysicsList("QGSP_BERT");
248  AddPhysicsList("emstandard_opt2");
249 
250  } else if (name == "QGSP_BERT_HP") {
251 
252  SetBuilderList0(true);
254 
255  } else if (name == "QGSP_BIC") {
256 
257  SetBuilderList0(false);
259 
260  } else if (name == "QGSP_BIC_EMY") {
261 
262  AddPhysicsList("QGSP_BIC");
263  AddPhysicsList("emstandard_opt3");
264 
265  } else if (name == "QGS_BIC") {
266 
267  SetBuilderList0(false);
269 
270  } else if (name == "QGSP_BIC_HP") {
271 
272  SetBuilderList0(true);
274 
275  } else if (name == "RadioactiveDecay") {
276 
278 
279  } else {
280 
281  G4cout << "PhysicsList::AddPhysicsList: <" << name << ">"
282  << " is not defined"
283  << G4endl;
284  }
285 }
286 
287 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
288 
290 {
291  fHadronPhys.push_back( new G4EmExtraPhysics(verboseLevel));
292  if(flagHP) {
294  } else {
296  }
297  fHadronPhys.push_back( new G4StoppingPhysics(verboseLevel));
298  fHadronPhys.push_back( new G4IonPhysics(verboseLevel));
300 }
301 
302 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
303 
305 {
306  fHadronPhys.push_back( new G4EmExtraPhysics(verboseLevel));
307  if(flagHP) {
309  } else {
311  }
312  fHadronPhys.push_back( new G4StoppingPhysics(verboseLevel));
313  fHadronPhys.push_back( new G4IonPhysics(verboseLevel));
315 }
316 
317 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
318 
320 {
321  fHadronPhys.push_back( new G4EmExtraPhysics(verboseLevel));
323  fHadronPhys.push_back( new G4StoppingPhysics(verboseLevel));
324  fHadronPhys.push_back( new G4IonPhysics(verboseLevel));
326 }
327 
328 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
329 
331 {
332  G4cout << "### PhysicsLists available: FTFP_BERT FTFP_BERT_EMV "
333  << "FTFP_BERT_EMX FTFP_BERT_EMZ FTFP_BERT_TRV"
334  << G4endl;
335  G4cout << " FTF_BIC QBBC QGSP_BERT "
336  << "QGSP_BERT_EMV QGSP_BERT_EMX"
337  << G4endl;
338  G4cout << " QGSP_BERT_HP QGSP_FTFP_BERT "
339  << "QGSP_FTFP_BERT_EMV"
340  << G4endl;
341  G4cout << " QGS_BIC QGSP_BIC QGSP_BIC_EMY "
342  << "QGSP_BIC_HP"
343  << G4endl;
344 }
345 
346 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
347 
const XML_Char * name
Definition: expat.h:151
#define G4endl
Definition: G4ios.hh:61
virtual void ConstructParticle()=0
virtual void ConstructProcess()=0
bool G4bool
Definition: G4Types.hh:79
PhysicsList()
Implementation of the PhysicsList class.
void SetDefaultCutValue(G4double newCutValue)
void SetMscStepLimitType(G4MscStepLimitType val)
static constexpr double mm
Definition: SystemOfUnits.h:95
G4GLOB_DLL std::ostream G4cout
std::vector< G4VPhysicsConstructor * > fHadronPhys
static G4EmParameters * Instance()