Geant4 11.1.1
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 auger = false;
72 pixe = false;
73 deexIgnoreCut = false;
74
75 dnaFast = false;
76 dnaStationary = false;
77 dnaMsc = false;
78 dnaElectronSolvation = fMeesungnoen2002eSolvation;
79
80 fFluoDirectory = fluoDefault;
81 namePIXE = "Empirical";
82 nameElectronPIXE = "Livermore";
83 livDataDir = "epics_2017";
84}
85
86//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
87
89{
90 fluo = val;
91}
92
94{
95 return fluo;
96}
97
99{
100 return fFluoDirectory;
101}
102
104{
105 fFluoDirectory = fluoDefault;
106 if(fluoBearden == val) { fFluoDirectory = fluoBearden; }
107 else if(fluoANSTO == val) { fFluoDirectory = fluoANSTO; }
108 else if(fluoXDB_EADL == val) { fFluoDirectory = fluoXDB_EADL; }
109}
110
112{
113 fFluoDirectory = val ? fluoBearden : fluoDefault;
114}
115
117{
118 fFluoDirectory = val ? fluoANSTO : fluoDefault;
119}
120
122{
123 fFluoDirectory = val ? fluoXDB_EADL : fluoDefault;
124}
125
127{
128 auger = val;
129 if(val) { fluo = true; }
130}
131
133{
134 return auger;
135}
136
138{
139 pixe = val;
140 if(val) { fluo = true; }
141}
142
144{
145 return pixe;
146}
147
149{
150 deexIgnoreCut = val;
151}
152
154{
155 return deexIgnoreCut;
156}
157
159{
160 dnaFast = val;
161}
162
164{
165 return dnaFast;
166}
167
169{
170 dnaStationary = val;
171}
172
174{
175 return dnaStationary;
176}
177
179{
180 dnaMsc = val;
181}
182
184{
185 return dnaMsc;
186}
187
189{
190 dnaElectronSolvation = val;
191}
192
194{
195 return dnaElectronSolvation;
196}
197
199{
200 namePIXE = sss;
201}
202
204{
205 return namePIXE;
206}
207
209{
210 nameElectronPIXE = sss;
211}
212
214{
215 return nameElectronPIXE;
216}
217
219{
220 livDataDir = sss;
221}
222
224{
225 return livDataDir;
226}
227
228void G4EmLowEParameters::PrintWarning(G4ExceptionDescription& ed) const
229{
230 G4Exception("G4EmLowEParameters", "em0044", JustWarning, ed);
231}
232
233G4String G4EmLowEParameters::CheckRegion(const G4String& reg) const
234{
235 G4String r = reg;
236 if(r == "" || r == "world" || r == "World") {
237 r = "DefaultRegionForTheWorld";
238 }
239 return r;
240}
241
243{
244 G4String r = CheckRegion(region);
245 std::size_t nreg = m_regnamesME.size();
246 for(std::size_t i=0; i<nreg; ++i) {
247 if(r == m_regnamesME[i]) { return; }
248 }
249 m_regnamesME.push_back(r);
250}
251
252const std::vector<G4String>& G4EmLowEParameters::RegionsMicroElec() const
253{
254 return m_regnamesME;
255}
256
257void G4EmLowEParameters::AddDNA(const G4String& region, const G4String& type)
258{
259 G4String r = CheckRegion(region);
260 std::size_t nreg = m_regnamesDNA.size();
261 for(std::size_t i=0; i<nreg; ++i) {
262 if(r == m_regnamesDNA[i]) { return; }
263 }
264 m_regnamesDNA.push_back(r);
265 m_typesDNA.push_back(type);
266}
267
268const std::vector<G4String>& G4EmLowEParameters::RegionsDNA() const
269{
270 return m_regnamesDNA;
271}
272
273const std::vector<G4String>& G4EmLowEParameters::TypesDNA() const
274{
275 return m_typesDNA;
276}
277
278void
280 G4bool fauger, G4bool fpixe)
281{
282 if(fdeex) { fluo = true; }
283 G4String r = CheckRegion(region);
284 std::size_t nreg = m_regnamesDeex.size();
285 if(0 == nreg && r != "DefaultRegionForTheWorld") {
286 m_regnamesDeex.push_back("DefaultRegionForTheWorld");
287 m_fluo.push_back(false);
288 m_auger.push_back(false);
289 m_pixe.push_back(false);
290 nreg = 1;
291 }
292 for(std::size_t i=0; i<nreg; ++i) {
293 if(r == m_regnamesDeex[i]) {
294 m_fluo[i] = fdeex;
295 m_auger[i]= fauger;
296 m_pixe[i] = fpixe;
297 return;
298 }
299 }
300 m_regnamesDeex.push_back(r);
301 m_fluo.push_back(fdeex);
302 m_auger.push_back(fauger);
303 m_pixe.push_back(fpixe);
304}
305
307{
308 std::size_t n = m_regnamesDeex.size();
309 for(std::size_t i=0; i<n; ++i) {
310 ptr->SetDeexcitationActiveRegion(m_regnamesDeex[i],
311 m_fluo[i], m_auger[i], m_pixe[i]);
312 }
313}
314
315//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
G4DNAModelSubType
@ fMeesungnoen2002eSolvation
G4EmFluoDirectory
@ fluoBearden
@ fluoXDB_EADL
@ fluoDefault
@ fluoANSTO
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:59
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
bool G4bool
Definition: G4Types.hh:86
void SetAuger(G4bool val)
void SetDeexActiveRegion(const G4String &region, G4bool fdeex, G4bool fauger, G4bool fpixe)
void SetLivermoreDataDir(const G4String &)
void SetDNAFast(G4bool val)
void SetXDB_EADLFluoDir(G4bool val)
G4bool DNAStationary() const
void SetDeexcitationIgnoreCut(G4bool val)
const std::vector< G4String > & TypesDNA() const
void SetDNAElectronMsc(G4bool val)
void SetFluoDirectory(G4EmFluoDirectory val)
const G4String & LivermoreDataDir()
void SetFluo(G4bool val)
const std::vector< G4String > & RegionsMicroElec() const
G4bool DeexcitationIgnoreCut() const
const G4String & PIXECrossSectionModel()
G4EmFluoDirectory FluoDirectory() const
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 SetANSTOFluoDir(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)