ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4EmLowEParameters.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4EmLowEParameters.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 //
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"
43 #include "G4PhysicalConstants.hh"
44 #include "G4UnitsTable.hh"
45 #include "G4SystemOfUnits.hh"
46 #include "G4VAtomDeexcitation.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  auger = false;
73  pixe = false;
74  deexIgnoreCut = false;
75 
76  dnaFast = false;
77  dnaStationary = false;
78  dnaMsc = false;
80 
81  namePIXE = "Empirical";
82  nameElectronPIXE = "Livermore";
83 }
84 
85 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
86 
88 {
89  fluo = val;
90 }
91 
93 {
94  return fluo;
95 }
96 
98 {
99  beardenFluoDir = val;
100 }
101 
103 {
104  return beardenFluoDir;
105 }
106 
108 {
109  auger = val;
110  if(val) { fluo = true; }
111 }
112 
114 {
115  return auger;
116 }
117 
119 {
120  pixe = val;
121  if(val) { fluo = true; }
122 }
123 
125 {
126  return pixe;
127 }
128 
130 {
131  deexIgnoreCut = val;
132 }
133 
135 {
136  return deexIgnoreCut;
137 }
138 
140 {
141  dnaFast = val;
142 }
143 
145 {
146  return dnaFast;
147 }
148 
150 {
151  dnaStationary = val;
152 }
153 
155 {
156  return dnaStationary;
157 }
158 
160 {
161  dnaMsc = val;
162 }
163 
165 {
166  return dnaMsc;
167 }
168 
170 {
171  dnaElectronSolvation = val;
172 }
173 
175 {
176  return dnaElectronSolvation;
177 }
178 
180 {
181  namePIXE = sss;
182 }
183 
185 {
186  return namePIXE;
187 }
188 
190 {
192 }
193 
195 {
196  return nameElectronPIXE;
197 }
198 
200 {
201  G4Exception("G4EmLowEParameters", "em0044", JustWarning, ed);
202 }
203 
205 {
206  G4String r = reg;
207  if(r == "" || r == "world" || r == "World") {
208  r = "DefaultRegionForTheWorld";
209  }
210  return r;
211 }
212 
214 {
215  G4String r = CheckRegion(region);
216  G4int nreg = m_regnamesME.size();
217  for(G4int i=0; i<nreg; ++i) {
218  if(r == m_regnamesME[i]) { return; }
219  }
220  m_regnamesME.push_back(r);
221 }
222 
223 const std::vector<G4String>& G4EmLowEParameters::RegionsMicroElec() const
224 {
225  return m_regnamesME;
226 }
227 
228 void G4EmLowEParameters::AddDNA(const G4String& region, const G4String& type)
229 {
230  G4String r = CheckRegion(region);
231  G4int nreg = m_regnamesDNA.size();
232  for(G4int i=0; i<nreg; ++i) {
233  if(r == m_regnamesDNA[i]) { return; }
234  }
235  m_regnamesDNA.push_back(r);
236  m_typesDNA.push_back(type);
237 }
238 
239 const std::vector<G4String>& G4EmLowEParameters::RegionsDNA() const
240 {
241  return m_regnamesDNA;
242 }
243 
244 const std::vector<G4String>& G4EmLowEParameters::TypesDNA() const
245 {
246  return m_typesDNA;
247 }
248 
249 void
251  G4bool fauger, G4bool fpixe)
252 {
253  if(fdeex) { fluo = true; }
254  G4String r = CheckRegion(region);
255  G4int nreg = m_regnamesDeex.size();
256  if(0 == nreg && r != "DefaultRegionForTheWorld") {
257  m_regnamesDeex.push_back("DefaultRegionForTheWorld");
258  m_fluo.push_back(false);
259  m_auger.push_back(false);
260  m_pixe.push_back(false);
261  nreg = 1;
262  }
263  for(G4int i=0; i<nreg; ++i) {
264  if(r == m_regnamesDeex[i]) {
265  m_fluo[i] = fdeex;
266  m_auger[i]= fauger;
267  m_pixe[i] = fpixe;
268  return;
269  }
270  }
271  m_regnamesDeex.push_back(r);
272  m_fluo.push_back(fdeex);
273  m_auger.push_back(fauger);
274  m_pixe.push_back(fpixe);
275 }
276 
278 {
279  G4int n = m_regnamesDeex.size();
280  for(G4int i=0; i<n; ++i) {
282  m_fluo[i], m_auger[i], m_pixe[i]);
283  }
284 }
285 
286 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....