Geant4-11
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{
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 fANSTOFluoDir = false;
73 auger = false;
74 pixe = false;
75 deexIgnoreCut = false;
76
77 dnaFast = false;
78 dnaStationary = false;
79 dnaMsc = false;
81
82 namePIXE = "Empirical";
83 nameElectronPIXE = "Livermore";
84 livDataDir = "livermore";
85}
86
87//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
88
90{
91 fluo = val;
92}
93
95{
96 return fluo;
97}
98
100{
101 beardenFluoDir = val;
102}
103
105{
106 return beardenFluoDir;
107}
108
110{
111 fANSTOFluoDir = val;
112}
113
115{
116 return fANSTOFluoDir;
117}
118
120{
121 auger = val;
122 if(val) { fluo = true; }
123}
124
126{
127 return auger;
128}
129
131{
132 pixe = val;
133 if(val) { fluo = true; }
134}
135
137{
138 return pixe;
139}
140
142{
143 deexIgnoreCut = val;
144}
145
147{
148 return deexIgnoreCut;
149}
150
152{
153 dnaFast = val;
154}
155
157{
158 return dnaFast;
159}
160
162{
163 dnaStationary = val;
164}
165
167{
168 return dnaStationary;
169}
170
172{
173 dnaMsc = val;
174}
175
177{
178 return dnaMsc;
179}
180
182{
184}
185
187{
189}
190
192{
193 namePIXE = sss;
194}
195
197{
198 return namePIXE;
199}
200
202{
204}
205
207{
208 return nameElectronPIXE;
209}
210
212{
213 livDataDir = sss;
214}
215
217{
218 return livDataDir;
219}
220
222{
223 G4Exception("G4EmLowEParameters", "em0044", JustWarning, ed);
224}
225
227{
228 G4String r = reg;
229 if(r == "" || r == "world" || r == "World") {
230 r = "DefaultRegionForTheWorld";
231 }
232 return r;
233}
234
236{
237 G4String r = CheckRegion(region);
238 G4int nreg = m_regnamesME.size();
239 for(G4int i=0; i<nreg; ++i) {
240 if(r == m_regnamesME[i]) { return; }
241 }
242 m_regnamesME.push_back(r);
243}
244
245const std::vector<G4String>& G4EmLowEParameters::RegionsMicroElec() const
246{
247 return m_regnamesME;
248}
249
250void G4EmLowEParameters::AddDNA(const G4String& region, const G4String& type)
251{
252 G4String r = CheckRegion(region);
253 G4int nreg = m_regnamesDNA.size();
254 for(G4int i=0; i<nreg; ++i) {
255 if(r == m_regnamesDNA[i]) { return; }
256 }
257 m_regnamesDNA.push_back(r);
258 m_typesDNA.push_back(type);
259}
260
261const std::vector<G4String>& G4EmLowEParameters::RegionsDNA() const
262{
263 return m_regnamesDNA;
264}
265
266const std::vector<G4String>& G4EmLowEParameters::TypesDNA() const
267{
268 return m_typesDNA;
269}
270
271void
273 G4bool fauger, G4bool fpixe)
274{
275 if(fdeex) { fluo = true; }
276 G4String r = CheckRegion(region);
277 G4int nreg = m_regnamesDeex.size();
278 if(0 == nreg && r != "DefaultRegionForTheWorld") {
279 m_regnamesDeex.push_back("DefaultRegionForTheWorld");
280 m_fluo.push_back(false);
281 m_auger.push_back(false);
282 m_pixe.push_back(false);
283 nreg = 1;
284 }
285 for(G4int i=0; i<nreg; ++i) {
286 if(r == m_regnamesDeex[i]) {
287 m_fluo[i] = fdeex;
288 m_auger[i]= fauger;
289 m_pixe[i] = fpixe;
290 return;
291 }
292 }
293 m_regnamesDeex.push_back(r);
294 m_fluo.push_back(fdeex);
295 m_auger.push_back(fauger);
296 m_pixe.push_back(fpixe);
297}
298
300{
301 G4int n = m_regnamesDeex.size();
302 for(G4int i=0; i<n; ++i) {
304 m_fluo[i], m_auger[i], m_pixe[i]);
305 }
306}
307
308//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
static const char sss[MAX_N_PAR+2]
Definition: Evaluator.cc:63
G4DNAModelSubType
@ fMeesungnoen2002eSolvation
static const G4double reg
@ 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
G4DNAModelSubType dnaElectronSolvation
void SetAuger(G4bool val)
void SetDeexActiveRegion(const G4String &region, G4bool fdeex, G4bool fauger, G4bool fpixe)
void SetLivermoreDataDir(const G4String &)
void SetDNAFast(G4bool val)
std::vector< G4String > m_typesDNA
G4bool DNAStationary() const
void SetDeexcitationIgnoreCut(G4bool val)
const std::vector< G4String > & TypesDNA() const
G4bool BeardenFluoDir() const
void SetDNAElectronMsc(G4bool val)
std::vector< G4String > m_regnamesDeex
const G4String & LivermoreDataDir()
void SetFluo(G4bool val)
const std::vector< G4String > & RegionsMicroElec() const
G4bool DeexcitationIgnoreCut() const
const G4String & PIXECrossSectionModel()
void PrintWarning(G4ExceptionDescription &ed) const
void DefineRegParamForDeex(G4VAtomDeexcitation *) const
std::vector< G4bool > m_pixe
G4DNAModelSubType DNAeSolvationSubType() const
std::vector< G4String > m_regnamesME
G4String CheckRegion(const G4String &) const
void AddDNA(const G4String &region, const G4String &type)
void SetDNAStationary(G4bool val)
void SetDNAeSolvationSubType(G4DNAModelSubType val)
G4EmLowEParametersMessenger * theMessenger
const G4String & PIXEElectronCrossSectionModel()
std::vector< G4bool > m_fluo
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
G4bool ANSTOFluoDir() const
std::vector< G4bool > m_auger
void SetPIXEElectronCrossSectionModel(const G4String &)
std::vector< G4String > m_regnamesDNA
void AddMicroElec(const G4String &region)
void SetDeexcitationActiveRegion(const G4String &rname, G4bool valDeexcitation, G4bool valAuger, G4bool valPIXE)