Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
examples/extended/exoticphysics/dmparticle/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 // $Id: PhysicsList.hh 92047 2015-08-14 07:23:37Z gcosmo $
30 //
32 //
33 // ClassName: PhysicsList
34 //
35 // Authors: 01.06.17 V.Ivanchenko
36 //
37 //
39 
40 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
41 
42 #include "PhysicsList.hh"
43 #include "PhysicsListMessenger.hh"
44 
45 #include "G4EmStandardPhysics.hh"
50 #include "G4EmStandardPhysicsGS.hh"
51 #include "G4EmStandardPhysicsSS.hh"
53 #include "G4EmLivermorePhysics.hh"
54 #include "G4EmPenelopePhysics.hh"
55 #include "G4EmLowEPPhysics.hh"
56 #include "G4DecayPhysics.hh"
57 
58 #include "G4LDMHi.hh"
59 #include "G4LDMHiBar.hh"
60 #include "G4LDMPhoton.hh"
61 #include "G4LDMBremsstrahlung.hh"
62 #include "G4LDMBremModel.hh"
63 
64 #include "G4UnitsTable.hh"
65 #include "G4SystemOfUnits.hh"
66 #include "G4LossTableManager.hh"
67 #include "G4ProductionCutsTable.hh"
68 #include "G4EmConfigurator.hh"
69 #include "G4EmParameters.hh"
70 
71 #include "G4ProcessManager.hh"
72 #include "G4ParticleTypes.hh"
73 #include "G4ParticleTable.hh"
74 
75 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
76 
79  fLDMPhotonMass(0.5*CLHEP::GeV),fLDMHiMass(0.1*CLHEP::GeV),
80  fLDMPhoton(true),fLDMHi(false)
81 {
82  fMessenger = new PhysicsListMessenger(this);
83 
84  // Decay Physics is always defined
86 
87  // EM physics
88  fEmName = G4String("emstandard_opt0");
90 
91  SetVerboseLevel(1);
92 }
93 
94 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
95 
97 {
98  delete fMessenger;
99  delete fDecayPhysicsList;
100  delete fEmPhysicsList;
101 }
102 
103 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
104 
106 {
110  if(fLDMHi) {
113  }
114 }
115 
116 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
117 
119 {
123  AddDarkMatter();
124 }
125 
126 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
127 
129 {
130  //G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
131  if (name == fEmName) {
132  return;
133 
134  } else if (name == "emstandard_opt0") {
135  fEmName = name;
136  delete fEmPhysicsList;
138 
139  } else if (name == "emstandard_opt1") {
140  fEmName = name;
141  delete fEmPhysicsList;
143 
144  } else if (name == "emstandard_opt2") {
145  fEmName = name;
146  delete fEmPhysicsList;
148 
149  } else if (name == "emstandard_opt3") {
150  fEmName = name;
151  delete fEmPhysicsList;
153 
154  } else if (name == "emstandard_opt4") {
155  fEmName = name;
156  delete fEmPhysicsList;
158 
159  } else if (name == "emstandardWVI") {
160  fEmName = name;
161  delete fEmPhysicsList;
163 
164  } else if (name == "emstandardSS") {
165  fEmName = name;
166  delete fEmPhysicsList;
168 
169  } else if (name == "emstandardGS") {
170  fEmName = name;
171  delete fEmPhysicsList;
172 
174 
175  } else if (name == "emlivermore") {
176  fEmName = name;
177  delete fEmPhysicsList;
179 
180  } else if (name == "empenelope") {
181  fEmName = name;
182  delete fEmPhysicsList;
184 
185  } else if (name == "emlowenergy") {
186  fEmName = name;
187  delete fEmPhysicsList;
189 
190  } else {
191  G4cout << "PhysicsList::AddPhysicsList: <" << name << ">"
192  << " is not defined"
193  << G4endl;
194  return;
195  }
196 }
197 
198 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
199 
201 {
203  if ( verboseLevel > 0 ) { DumpCutValuesTable(); }
204 }
205 
206 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
207 
209 {
210  G4cout << " PhysicsList::AddDarkMatter: " << fLDMPhoton << G4endl;
211  if(fLDMPhoton) {
212  //G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
216  man->AddProcess(ldmb, -1, -1, 5);
217  }
218 }
219 
220 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
221 
223 {
224  G4cout << "### PhysicsList::SetLDMPhotonMass: new value " << val/GeV
225  << " GeV" << G4endl;
226  fLDMPhotonMass = val;
227  fLDMPhoton = true;
228 }
229 
230 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
231 
233 {
234  fLDMHiMass = val;
235  fLDMHi = true;
236 }
237 
238 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
const XML_Char * name
Definition: expat.h:151
static G4LDMPhoton * LDMPhotonDefinition(G4double mass)
Definition: G4LDMPhoton.cc:87
static constexpr double mm
Definition: G4SIunits.hh:115
#define G4endl
Definition: G4ios.hh:61
const char * p
Definition: xmltok.h:285
static G4LDMHi * LDMHiDefinition(G4double mass)
Definition: G4LDMHi.cc:85
void SetEnergyRange(G4double lowedge, G4double highedge)
static G4Proton * Proton()
Definition: G4Proton.cc:93
virtual void ConstructParticle()=0
virtual void ConstructProcess()=0
double G4double
Definition: G4Types.hh:76
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
Definition of the G4LDMHi class.
PhysicsList()
Implementation of the PhysicsList class.
Definition of the G4LDMHiBar class.
static constexpr double eV
Definition: G4SIunits.hh:215
void SetDefaultCutValue(G4double newCutValue)
static G4ProductionCutsTable * GetProductionCutsTable()
G4ProcessManager * GetProcessManager() const
static G4LDMHiBar * LDMHiBarDefinition(G4double mass)
Definition: G4LDMHiBar.cc:81
G4GLOB_DLL std::ostream G4cout
void DumpCutValuesTable(G4int flag=1)
static constexpr double GeV
Definition: G4SIunits.hh:217
void SetVerboseLevel(G4int value)