Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
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//
27// -------------------------------------------------------------------
28//
29// GEANT4 Class file
30//
31//
32// File name: G4EmProcessOptions
33//
34// Author: Vladimir Ivanchenko
35//
36// Creation date: 27.02.2004
37//
38// Modifications:
39// 30-06-04 G4EmProcess is pure discrete (V.Ivanchenko)
40// 24-03-05 Add ApplyCuts and RandomStep (V.Ivanchenko)
41// 10-01-06 PreciseRange -> CSDARange (V.Ivantchenko)
42// 10-05-06 Add command MscStepLimit to G4LossTableManager (V.Ivantchenko)
43// 22-05-06 Add SetBremsstrahlungTh (V.Ivanchenko)
44// 12-02-07 Add SetSkin, SetLinearLossLimit (V.Ivanchenko)
45// 30-05-12 Add biasing for G4VEmProcess (D. Sawkey)
46//
47// Class Description:
48//
49// -------------------------------------------------------------------
50//
51//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
52//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
53
54#include "G4EmProcessOptions.hh"
55#include "G4EmParameters.hh"
56#include "G4SystemOfUnits.hh"
57#include "G4VEmProcess.hh"
60#include "G4Region.hh"
61#include "G4RegionStore.hh"
62#include "G4Threading.hh"
63
64//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
65
67{
68 G4cout << "### WARNING: G4EmProcessOptions class is obsolete and "
69 << "will be removed in the next public release \n"
70 << " Please, try to use G4EmParameters class and/or UI "
71 << "interface to EM parameters"
72 << G4endl;
73 theParameters = G4EmParameters::Instance();
74}
75
76//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
77
79{}
80
81//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
82
84{
85 theParameters->SetLossFluctuations(val);
86}
87
88//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
89
91{
92 theParameters->SetBuildCSDARange(val);
93}
94
95//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
96
98{
99 theParameters->SetLPM(val);
100}
101
102//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
103
105{
106 theParameters->SetSpline(val);
107}
108
109//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
110
112{
113 theParameters->SetUseCutAsFinalRange(val);
114}
115
116//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
117
119{
120 theParameters->SetApplyCuts(val);
121}
122
123//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
124
126{
127 theParameters->SetFluo(val);
128}
129
130//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
131
133{
134 theParameters->SetAuger(val);
135}
136
137//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
138
140{
141 theParameters->SetPixe(val);
142}
143
144//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
145
147{
148 theParameters->SetDeexcitationIgnoreCut(val);
149}
150
151//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
152
154{
155 theParameters->SetLateralDisplacement(val);
156}
157
158//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
159
161{
162 theParameters->SetMuHadLateralDisplacement(val);
163}
164
165//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
166
168{
169}
170
171//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
172
174{
175 theParameters->SetMinSubRange(val);
176}
177
178//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
179
181{
182 theParameters->SetMinEnergy(val);
183}
184
185//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
186
188{
189 theParameters->SetMaxEnergy(val);
190}
191
192//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
193
195{
196 theParameters->SetMaxEnergy(val);
197}
198
199//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
200
202{
203 theParameters->SetMaxEnergyForCSDARange(val);
204}
205
206//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
207
209{
210 theParameters->SetLinearLossLimit(val);
211}
212
213//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
214
216{
217 theParameters->SetBremsstrahlungTh(val);
218}
219
220//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
221
223{
224 theParameters->SetLambdaFactor(val);
225}
226
227//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
228
230{
231 theParameters->SetFactorForAngleLimit(val);
232}
233
234//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
235
237{
238 theParameters->SetMscThetaLimit(val);
239}
240
241//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
242
244{
245 theParameters->SetMscRangeFactor(val);
246}
247
248//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
249
251{
252 theParameters->SetMscGeomFactor(val);
253}
254
255//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
256
258{
259 theParameters->SetMscSkin(val);
260}
261
262//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
263
265{
266 theParameters->SetNumberOfBins(val);
267}
268
269//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
270
272{}
273
274//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
275
277{
278 theParameters->SetNumberOfBins(val);
279}
280
281//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
282
284{
285 theParameters->SetVerbose(val);
286}
287
288//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
289
291{
292 theParameters->SetWorkerVerbose(val);
293}
294
295//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
296
298{
299 theParameters->SetMscStepLimitType(val);
300}
301
302//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
303
305{
306 theParameters->SetSubCutoff(val, r);
307}
308
309//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
310
312{
313 theParameters->SetIntegral(val);
314}
315
316//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
317
319{
320 theParameters->SetStepFunction(v1, v2);
321}
322
323//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
324
325void
327 G4bool valDeex,
328 G4bool valAuger,
329 G4bool valPIXE)
330{
331 theParameters->SetDeexActiveRegion(rname, valDeex, valAuger, valPIXE);
332}
333
334//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
335
337{
338 theParameters->SetPIXECrossSectionModel(mname);
339}
340
341//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
342
343void
345{
346 theParameters->SetPIXEElectronCrossSectionModel(mname);
347}
348
349//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
350
351void
353 G4bool flag)
354{
355 theParameters->SetProcessBiasingFactor(name, val, flag);
356}
357
358//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
359
360void
362 G4double length,
363 const G4String& region,
364 G4bool flag)
365{
366 theParameters->ActivateForcedInteraction(name, region, length, flag);
367}
368
369//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
370
371void
373 const G4String& region,
374 G4double factor,
375 G4double energyLimit)
376{
377 theParameters->ActivateSecondaryBiasing(name, region, factor, energyLimit);
378}
379
380//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
381
382void
384 const G4String& region,
385 G4double factor,
386 G4double energyLimit)
387{
388 theParameters->ActivateSecondaryBiasing(name, region, factor, energyLimit);
389}
390
391//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
392
G4MscStepLimitType
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
void SetLambdaFactor(G4double val)
void SetMinEnergy(G4double val)
void SetBuildCSDARange(G4bool val)
static G4EmParameters * Instance()
void SetFactorForAngleLimit(G4double val)
void SetLPM(G4bool val)
void SetLinearLossLimit(G4double val)
void SetMscThetaLimit(G4double val)
void ActivateSecondaryBiasing(const G4String &name, const G4String &region, G4double factor, G4double energyLimit)
void SetSubCutoff(G4bool val, const G4String &region="")
void SetLossFluctuations(G4bool val)
void SetDeexActiveRegion(const G4String &region, G4bool fdeex, G4bool fauger, G4bool fpixe)
void SetPIXEElectronCrossSectionModel(const G4String &)
void SetMuHadLateralDisplacement(G4bool val)
void ActivateForcedInteraction(const G4String &procname, const G4String &region, G4double length, G4bool wflag)
void SetStepFunction(G4double v1, G4double v2)
void SetLateralDisplacement(G4bool val)
void SetWorkerVerbose(G4int val)
void SetUseCutAsFinalRange(G4bool val)
void SetDeexcitationIgnoreCut(G4bool val)
void SetFluo(G4bool val)
void SetVerbose(G4int val)
void SetMscGeomFactor(G4double val)
void SetMscSkin(G4double val)
void SetApplyCuts(G4bool val)
void SetPixe(G4bool val)
void SetMaxEnergyForCSDARange(G4double val)
void SetProcessBiasingFactor(const G4String &procname, G4double val, G4bool wflag)
void SetMscStepLimitType(G4MscStepLimitType val)
void SetBremsstrahlungTh(G4double val)
void SetAuger(G4bool val)
void SetPIXECrossSectionModel(const G4String &)
void SetIntegral(G4bool val)
void SetMaxEnergy(G4double val)
void SetNumberOfBins(G4int val)
void SetSpline(G4bool val)
void SetMinSubRange(G4double val)
void SetMscRangeFactor(G4double val)
void SetBuildCSDARange(G4bool val)
void ActivateForcedInteraction(const G4String &name, G4double length=0.0, const G4String &region="", G4bool flag=true)
void SetAuger(G4bool val)
void SetLinearLossLimit(G4double val)
void SetMaxEnergy(G4double val)
void SetMscRangeFactor(G4double val)
void SetDeexcitationActiveRegion(const G4String &rname="", G4bool valDeexcitation=true, G4bool valAuger=true, G4bool valPIXE=true)
void SetIntegral(G4bool val)
void SetDEDXBinning(G4int val)
void SetLambdaBinning(G4int val)
void SetPolarAngleLimit(G4double val)
void SetPIXECrossSectionModel(const G4String &val)
void SetMscMuHadLateralDisplacement(G4bool val)
void SetBremsstrahlungTh(G4double val)
void SetDEDXBinningForCSDARange(G4int val)
void SetMinSubRange(G4double val)
void SetSkin(G4double val)
void SetPIXEElectronCrossSectionModel(const G4String &val)
void SetLPMFlag(G4bool val)
void SetMscLateralDisplacement(G4bool val)
void ActivateSecondaryBiasing(const G4String &name, const G4String &region, G4double factor, G4double energyLimit)
void SetWorkerVerbose(G4int val)
void SetMaxEnergyForCSDARange(G4double val)
void SetMinEnergy(G4double val)
void SetSplineFlag(G4bool val)
void SetMscGeomFactor(G4double val)
void SetLossFluctuations(G4bool val)
void SetDeexcitationIgnoreCuts(G4bool val)
void SetUseCutAsFinalRange(G4bool val)
void SetLambdaFactor(G4double val)
void SetPIXE(G4bool val)
void SetMscStepLimitation(G4MscStepLimitType val)
void SetMaxEnergyForMuons(G4double val)
void SetFactorForAngleLimit(G4double val)
void SetApplyCuts(G4bool val)
void SetDisplacementBeyondSafety(G4bool val)
void SetVerbose(G4int val)
void SetSubCutoff(G4bool val, const G4String &r="")
void SetStepFunction(G4double v1, G4double v2)
void ActivateSecondaryBiasingForGamma(const G4String &name, const G4String &region, G4double factor, G4double energyLimit)
void SetFluo(G4bool val)
void SetProcessBiasingFactor(const G4String &name, G4double val, G4bool flag=true)