Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4EmProcessOptions.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 // $Id: G4EmProcessOptions.cc 96088 2016-03-14 16:03:38Z gcosmo $
27 //
28 // -------------------------------------------------------------------
29 //
30 // GEANT4 Class file
31 //
32 //
33 // File name: G4EmProcessOptions
34 //
35 // Author: Vladimir Ivanchenko
36 //
37 // Creation date: 27.02.2004
38 //
39 // Modifications:
40 // 30-06-04 G4EmProcess is pure discrete (V.Ivanchenko)
41 // 24-03-05 Add ApplyCuts and RandomStep (V.Ivanchenko)
42 // 10-01-06 PreciseRange -> CSDARange (V.Ivantchenko)
43 // 10-05-06 Add command MscStepLimit to G4LossTableManager (V.Ivantchenko)
44 // 22-05-06 Add SetBremsstrahlungTh (V.Ivanchenko)
45 // 12-02-07 Add SetSkin, SetLinearLossLimit (V.Ivanchenko)
46 // 30-05-12 Add biasing for G4VEmProcess (D. Sawkey)
47 //
48 // Class Description:
49 //
50 // -------------------------------------------------------------------
51 //
52 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
53 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
54 
55 #include "G4EmProcessOptions.hh"
56 #include "G4EmParameters.hh"
57 #include "G4SystemOfUnits.hh"
58 #include "G4VEmProcess.hh"
59 #include "G4VEnergyLossProcess.hh"
60 #include "G4VAtomDeexcitation.hh"
61 #include "G4Region.hh"
62 #include "G4RegionStore.hh"
63 #include "G4Threading.hh"
64 
65 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
66 
68 {
69  G4cout << "### WARNING: G4EmProcessOptions class is obsolete and "
70  << "will be removed in the next public release \n"
71  << " Please, try to use G4EmParameters class and/or UI "
72  << "interface to EM parameters"
73  << G4endl;
74  theParameters = G4EmParameters::Instance();
75 }
76 
77 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
78 
80 {}
81 
82 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
83 
85 {
86  theParameters->SetLossFluctuations(val);
87 }
88 
89 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
90 
92 {
93  theParameters->SetBuildCSDARange(val);
94 }
95 
96 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
97 
99 {
100  theParameters->SetLPM(val);
101 }
102 
103 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
104 
106 {
107  theParameters->SetSpline(val);
108 }
109 
110 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
111 
113 {
114  theParameters->SetUseCutAsFinalRange(val);
115 }
116 
117 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
118 
120 {
121  theParameters->SetApplyCuts(val);
122 }
123 
124 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
125 
127 {
128  theParameters->SetFluo(val);
129 }
130 
131 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
132 
134 {
135  theParameters->SetAuger(val);
136 }
137 
138 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
139 
141 {
142  theParameters->SetPixe(val);
143 }
144 
145 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
146 
148 {
149  theParameters->SetDeexcitationIgnoreCut(val);
150 }
151 
152 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
153 
155 {
156  theParameters->SetLateralDisplacement(val);
157 }
158 
159 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
160 
162 {
163  theParameters->SetMuHadLateralDisplacement(val);
164 }
165 
166 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
167 
169 {
170  theParameters->SetLatDisplacementBeyondSafety(val);
171 }
172 
173 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
174 
176 {
177  theParameters->SetMinSubRange(val);
178 }
179 
180 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
181 
183 {
184  theParameters->SetMinEnergy(val);
185 }
186 
187 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
188 
190 {
191  theParameters->SetMaxEnergy(val);
192 }
193 
194 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
195 
197 {
198  theParameters->SetMaxEnergy(val);
199 }
200 
201 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
202 
204 {
205  theParameters->SetMaxEnergyForCSDARange(val);
206 }
207 
208 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
209 
211 {
212  theParameters->SetLinearLossLimit(val);
213 }
214 
215 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
216 
218 {
219  theParameters->SetBremsstrahlungTh(val);
220 }
221 
222 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
223 
225 {
226  theParameters->SetLambdaFactor(val);
227 }
228 
229 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
230 
232 {
233  theParameters->SetFactorForAngleLimit(val);
234 }
235 
236 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
237 
239 {
240  theParameters->SetMscThetaLimit(val);
241 }
242 
243 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
244 
246 {
247  theParameters->SetMscRangeFactor(val);
248 }
249 
250 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
251 
253 {
254  theParameters->SetMscGeomFactor(val);
255 }
256 
257 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
258 
260 {
261  theParameters->SetMscSkin(val);
262 }
263 
264 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
265 
267 {
268  theParameters->SetNumberOfBins(val);
269 }
270 
271 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
272 
274 {}
275 
276 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
277 
279 {
280  theParameters->SetNumberOfBins(val);
281 }
282 
283 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
284 
286 {
287  theParameters->SetVerbose(val);
288 }
289 
290 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
291 
293 {
294  theParameters->SetWorkerVerbose(val);
295 }
296 
297 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
298 
300 {
301  theParameters->SetMscStepLimitType(val);
302 }
303 
304 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
305 
307 {
308  theParameters->SetSubCutoff(val, r);
309 }
310 
311 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
312 
314 {
315  theParameters->SetIntegral(val);
316 }
317 
318 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
319 
321 {
322  theParameters->SetStepFunction(v1, v2);
323 }
324 
325 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
326 
327 void
329  G4bool valDeex,
330  G4bool valAuger,
331  G4bool valPIXE)
332 {
333  theParameters->SetDeexActiveRegion(rname, valDeex, valAuger, valPIXE);
334 }
335 
336 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
337 
339 {
340  theParameters->SetPIXECrossSectionModel(mname);
341 }
342 
343 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
344 
345 void
347 {
348  theParameters->SetPIXEElectronCrossSectionModel(mname);
349 }
350 
351 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
352 
353 void
355  G4bool flag)
356 {
357  theParameters->SetProcessBiasingFactor(name, val, flag);
358 }
359 
360 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
361 
362 void
364  G4double length,
365  const G4String& region,
366  G4bool flag)
367 {
368  theParameters->ActivateForcedInteraction(name, region, length, flag);
369 }
370 
371 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
372 
373 void
375  const G4String& region,
376  G4double factor,
377  G4double energyLimit)
378 {
379  theParameters->ActivateSecondaryBiasing(name, region, factor, energyLimit);
380 }
381 
382 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
383 
384 void
386  const G4String& region,
387  G4double factor,
388  G4double energyLimit)
389 {
390  theParameters->ActivateSecondaryBiasing(name, region, factor, energyLimit);
391 }
392 
393 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
394 
void SetLossFluctuations(G4bool val)
const XML_Char * name
Definition: expat.h:151
void SetSkin(G4double val)
void SetMaxEnergyForMuons(G4double val)
void SetApplyCuts(G4bool val)
void SetProcessBiasingFactor(const G4String &procname, G4double val, G4bool wflag)
void SetLambdaFactor(G4double val)
void SetVerbose(G4int val)
void SetPIXE(G4bool val)
void ActivateSecondaryBiasing(const G4String &name, const G4String &region, G4double factor, G4double energyLimit)
void SetDeexcitationIgnoreCut(G4bool val)
void SetLatDisplacementBeyondSafety(G4bool val)
void SetUseCutAsFinalRange(G4bool val)
void SetMscStepLimitType(G4MscStepLimitType val)
void SetSplineFlag(G4bool val)
void SetSubCutoff(G4bool val, const G4String &r="")
void SetLinearLossLimit(G4double val)
void SetAuger(G4bool val)
void SetMinEnergy(G4double val)
void SetNumberOfBins(G4int val)
void SetMscGeomFactor(G4double val)
void SetStepFunction(G4double v1, G4double v2)
void SetMinSubRange(G4double val)
void SetMaxEnergyForCSDARange(G4double val)
void SetDeexcitationIgnoreCuts(G4bool val)
void ActivateSecondaryBiasingForGamma(const G4String &name, const G4String &region, G4double factor, G4double energyLimit)
void SetDEDXBinningForCSDARange(G4int val)
void SetPIXEElectronCrossSectionModel(const G4String &)
void SetMscLateralDisplacement(G4bool val)
int G4int
Definition: G4Types.hh:78
void SetDeexActiveRegion(const G4String &region, G4bool fdeex, G4bool fauger, G4bool fpixe)
void SetMaxEnergy(G4double val)
void SetBremsstrahlungTh(G4double val)
void SetMaxEnergyForCSDARange(G4double val)
void SetFluo(G4bool val)
void SetMinSubRange(G4double val)
void SetAuger(G4bool val)
void SetDEDXBinning(G4int val)
void SetLateralDisplacement(G4bool val)
void SetWorkerVerbose(G4int val)
void SetPIXECrossSectionModel(const G4String &)
G4GLOB_DLL std::ostream G4cout
void SetLambdaBinning(G4int val)
void SetBremsstrahlungTh(G4double val)
bool G4bool
Definition: G4Types.hh:79
void SetMscRangeFactor(G4double val)
void SetLossFluctuations(G4bool val)
void SetMscGeomFactor(G4double val)
void SetVerbose(G4int val)
void SetLinearLossLimit(G4double val)
void SetMaxEnergy(G4double val)
void SetSubCutoff(G4bool val, const G4String &region="")
void SetBuildCSDARange(G4bool val)
void SetDeexcitationActiveRegion(const G4String &rname="", G4bool valDeexcitation=true, G4bool valAuger=true, G4bool valPIXE=true)
void SetPixe(G4bool val)
void SetSpline(G4bool val)
void SetMuHadLateralDisplacement(G4bool val)
void SetFactorForAngleLimit(G4double val)
void SetMinEnergy(G4double val)
void SetLPM(G4bool val)
G4MscStepLimitType
void ActivateSecondaryBiasing(const G4String &name, const G4String &region, G4double factor, G4double energyLimit)
void ActivateForcedInteraction(const G4String &name, G4double length=0.0, const G4String &region="", G4bool flag=true)
static G4EmParameters * Instance()
void SetPIXECrossSectionModel(const G4String &val)
void SetIntegral(G4bool val)
void SetBuildCSDARange(G4bool val)
void SetIntegral(G4bool val)
void ActivateForcedInteraction(const G4String &procname, const G4String &region, G4double length, G4bool wflag)
void SetUseCutAsFinalRange(G4bool val)
#define G4endl
Definition: G4ios.hh:61
void SetMscMuHadLateralDisplacement(G4bool val)
void SetMscStepLimitation(G4MscStepLimitType val)
void SetMscThetaLimit(G4double val)
void SetLambdaFactor(G4double val)
void SetFactorForAngleLimit(G4double val)
double G4double
Definition: G4Types.hh:76
void SetMscRangeFactor(G4double val)
void SetWorkerVerbose(G4int val)
void SetLPMFlag(G4bool val)
void SetProcessBiasingFactor(const G4String &name, G4double val, G4bool flag=true)
void SetStepFunction(G4double v1, G4double v2)
void SetPIXEElectronCrossSectionModel(const G4String &val)
void SetFluo(G4bool val)
void SetApplyCuts(G4bool val)
void SetDisplacementBeyondSafety(G4bool val)
void SetMscSkin(G4double val)
void SetPolarAngleLimit(G4double val)