Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4EmLowEParameters.cc
Go to the documentation of this file.
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// -------------------------------------------------------------------
27//
28// GEANT4 Class file
29//
30//
31// File name: G4EmLowEParameters
32//
33// Author: Vladimir Ivanchenko
34//
35// Creation date: 07.05.2019
36//
37// -------------------------------------------------------------------
38//
39//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
40//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
41
42#include "G4EmLowEParameters.hh"
44#include "G4UnitsTable.hh"
45#include "G4SystemOfUnits.hh"
48#include "G4RegionStore.hh"
49#include "G4Region.hh"
50
51//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
52
54{
55 theMessenger = new G4EmLowEParametersMessenger(this);
56 Initialise();
57}
58
59//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
60
62{
63 delete theMessenger;
64}
65
66//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
67
69{
70 fluo = false;
71 beardenFluoDir = false;
72 auger = false;
73 pixe = false;
74 deexIgnoreCut = false;
75
76 dnaFast = false;
77 dnaStationary = false;
78 dnaMsc = false;
79 dnaElectronSolvation = fMeesungnoen2002eSolvation;
80
81 namePIXE = "Empirical";
82 nameElectronPIXE = "Livermore";
83 livDataDir = "livermore";
84}
85
86//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
87
89{
90 fluo = val;
91}
92
94{
95 return fluo;
96}
97
99{
100 beardenFluoDir = val;
101}
102
104{
105 return beardenFluoDir;
106}
107
109{
110 auger = val;
111 if(val) { fluo = true; }
112}
113
115{
116 return auger;
117}
118
120{
121 pixe = val;
122 if(val) { fluo = true; }
123}
124
126{
127 return pixe;
128}
129
131{
132 deexIgnoreCut = val;
133}
134
136{
137 return deexIgnoreCut;
138}
139
141{
142 dnaFast = val;
143}
144
146{
147 return dnaFast;
148}
149
151{
152 dnaStationary = val;
153}
154
156{
157 return dnaStationary;
158}
159
161{
162 dnaMsc = val;
163}
164
166{
167 return dnaMsc;
168}
169
171{
172 dnaElectronSolvation = val;
173}
174
176{
177 return dnaElectronSolvation;
178}
179
181{
182 namePIXE = sss;
183}
184
186{
187 return namePIXE;
188}
189
191{
192 nameElectronPIXE = sss;
193}
194
196{
197 return nameElectronPIXE;
198}
199
201{
202 livDataDir = sss;
203}
204
206{
207 return livDataDir;
208}
209
210void G4EmLowEParameters::PrintWarning(G4ExceptionDescription& ed) const
211{
212 G4Exception("G4EmLowEParameters", "em0044", JustWarning, ed);
213}
214
215G4String G4EmLowEParameters::CheckRegion(const G4String& reg) const
216{
217 G4String r = reg;
218 if(r == "" || r == "world" || r == "World") {
219 r = "DefaultRegionForTheWorld";
220 }
221 return r;
222}
223
225{
226 G4String r = CheckRegion(region);
227 G4int nreg = m_regnamesME.size();
228 for(G4int i=0; i<nreg; ++i) {
229 if(r == m_regnamesME[i]) { return; }
230 }
231 m_regnamesME.push_back(r);
232}
233
234const std::vector<G4String>& G4EmLowEParameters::RegionsMicroElec() const
235{
236 return m_regnamesME;
237}
238
239void G4EmLowEParameters::AddDNA(const G4String& region, const G4String& type)
240{
241 G4String r = CheckRegion(region);
242 G4int nreg = m_regnamesDNA.size();
243 for(G4int i=0; i<nreg; ++i) {
244 if(r == m_regnamesDNA[i]) { return; }
245 }
246 m_regnamesDNA.push_back(r);
247 m_typesDNA.push_back(type);
248}
249
250const std::vector<G4String>& G4EmLowEParameters::RegionsDNA() const
251{
252 return m_regnamesDNA;
253}
254
255const std::vector<G4String>& G4EmLowEParameters::TypesDNA() const
256{
257 return m_typesDNA;
258}
259
260void
262 G4bool fauger, G4bool fpixe)
263{
264 if(fdeex) { fluo = true; }
265 G4String r = CheckRegion(region);
266 G4int nreg = m_regnamesDeex.size();
267 if(0 == nreg && r != "DefaultRegionForTheWorld") {
268 m_regnamesDeex.push_back("DefaultRegionForTheWorld");
269 m_fluo.push_back(false);
270 m_auger.push_back(false);
271 m_pixe.push_back(false);
272 nreg = 1;
273 }
274 for(G4int i=0; i<nreg; ++i) {
275 if(r == m_regnamesDeex[i]) {
276 m_fluo[i] = fdeex;
277 m_auger[i]= fauger;
278 m_pixe[i] = fpixe;
279 return;
280 }
281 }
282 m_regnamesDeex.push_back(r);
283 m_fluo.push_back(fdeex);
284 m_auger.push_back(fauger);
285 m_pixe.push_back(fpixe);
286}
287
289{
290 G4int n = m_regnamesDeex.size();
291 for(G4int i=0; i<n; ++i) {
292 ptr->SetDeexcitationActiveRegion(m_regnamesDeex[i],
293 m_fluo[i], m_auger[i], m_pixe[i]);
294 }
295}
296
297//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
G4DNAModelSubType
@ fMeesungnoen2002eSolvation
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
void SetAuger(G4bool val)
void SetDeexActiveRegion(const G4String &region, G4bool fdeex, G4bool fauger, G4bool fpixe)
void SetLivermoreDataDir(const G4String &)
void SetDNAFast(G4bool val)
G4bool DNAStationary() const
void SetDeexcitationIgnoreCut(G4bool val)
const std::vector< G4String > & TypesDNA() const
G4bool BeardenFluoDir() const
void SetDNAElectronMsc(G4bool val)
const G4String & LivermoreDataDir()
void SetFluo(G4bool val)
const std::vector< G4String > & RegionsMicroElec() const
G4bool DeexcitationIgnoreCut() const
const G4String & PIXECrossSectionModel()
void DefineRegParamForDeex(G4VAtomDeexcitation *) const
G4DNAModelSubType DNAeSolvationSubType() const
void AddDNA(const G4String &region, const G4String &type)
void SetDNAStationary(G4bool val)
void SetDNAeSolvationSubType(G4DNAModelSubType val)
const G4String & PIXEElectronCrossSectionModel()
void SetBeardenFluoDir(G4bool val)
void SetPIXECrossSectionModel(const G4String &)
G4bool DNAElectronMsc() const
void SetPixe(G4bool val)
const std::vector< G4String > & RegionsDNA() const
void SetPIXEElectronCrossSectionModel(const G4String &)
void AddMicroElec(const G4String &region)
void SetDeexcitationActiveRegion(const G4String &rname, G4bool valDeexcitation, G4bool valAuger, G4bool valPIXE)