ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4EmParameters.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4EmParameters.hh
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 header file
29
//
30
// File name: G4EmParameters
31
//
32
// Author: Vladimir Ivanchenko for migration to MT
33
//
34
//
35
// Creation date: 17.05.2013
36
//
37
// Modifications:
38
//
39
//
40
// Class Description:
41
//
42
// A utility static class, responsable for keeping parameters
43
// for all EM physics processes and models.
44
//
45
// It is initialized by the master thread but can be updated
46
// at any moment. Parameters may be used in run time or at
47
// initialisation
48
//
49
// -------------------------------------------------------------------
50
//
51
52
#ifndef G4EmParameters_h
53
#define G4EmParameters_h 1
54
55
#include "
globals.hh
"
56
#include "
G4ios.hh
"
57
#include "
G4MscStepLimitType.hh
"
58
#include "
G4NuclearFormfactorType.hh
"
59
#include "
G4DNAModelSubType.hh
"
60
#include "
G4EmSaturation.hh
"
61
#include "
G4ThreeVector.hh
"
62
#include "
G4Threading.hh
"
63
#include <vector>
64
65
class
G4EmParametersMessenger
;
66
class
G4EmExtraParameters
;
67
class
G4EmLowEParameters
;
68
class
G4VAtomDeexcitation
;
69
class
G4VEnergyLossProcess
;
70
class
G4VEmProcess
;
71
class
G4StateManager
;
72
73
class
G4EmParameters
74
{
75
public
:
76
77
static
G4EmParameters
*
Instance
();
78
79
~G4EmParameters
();
80
81
void
SetDefaults
();
82
83
// printing
84
void
StreamInfo
(std::ostream& os)
const
;
85
void
Dump
()
const
;
86
friend
std::ostream&
operator<<
(std::ostream& os,
const
G4EmParameters
&);
87
88
// boolean flags
89
void
SetLossFluctuations
(
G4bool
val);
90
G4bool
LossFluctuation
()
const
;
91
92
void
SetBuildCSDARange
(
G4bool
val);
93
G4bool
BuildCSDARange
()
const
;
94
95
void
SetLPM
(
G4bool
val);
96
G4bool
LPM
()
const
;
97
98
void
SetSpline
(
G4bool
val);
99
G4bool
Spline
()
const
;
100
101
void
SetUseCutAsFinalRange
(
G4bool
val);
102
G4bool
UseCutAsFinalRange
()
const
;
103
104
void
SetApplyCuts
(
G4bool
val);
105
G4bool
ApplyCuts
()
const
;
106
107
void
SetFluo
(
G4bool
val);
108
G4bool
Fluo
()
const
;
109
110
void
SetBeardenFluoDir
(
G4bool
val);
111
G4bool
BeardenFluoDir
()
const
;
112
113
void
SetAuger
(
G4bool
val);
114
G4bool
Auger
()
const
;
115
116
// obsolete methods
117
void
SetAugerCascade
(
G4bool
val);
118
G4bool
AugerCascade
()
const
;
119
120
void
SetPixe
(
G4bool
val);
121
G4bool
Pixe
()
const
;
122
123
void
SetDeexcitationIgnoreCut
(
G4bool
val);
124
G4bool
DeexcitationIgnoreCut
()
const
;
125
126
void
SetLateralDisplacement
(
G4bool
val);
127
G4bool
LateralDisplacement
()
const
;
128
129
void
SetLateralDisplacementAlg96
(
G4bool
val);
130
G4bool
LateralDisplacementAlg96
()
const
;
131
132
void
SetMuHadLateralDisplacement
(
G4bool
val);
133
G4bool
MuHadLateralDisplacement
()
const
;
134
135
void
SetLatDisplacementBeyondSafety
(
G4bool
val);
136
G4bool
LatDisplacementBeyondSafety
()
const
;
137
138
void
ActivateAngularGeneratorForIonisation
(
G4bool
val);
139
G4bool
UseAngularGeneratorForIonisation
()
const
;
140
141
void
SetUseMottCorrection
(
G4bool
val);
142
G4bool
UseMottCorrection
()
const
;
143
144
void
SetIntegral
(
G4bool
val);
145
G4bool
Integral
()
const
;
146
147
void
SetBirksActive
(
G4bool
val);
148
G4bool
BirksActive
()
const
;
149
150
void
SetUseICRU90Data
(
G4bool
val);
151
G4bool
UseICRU90Data
()
const
;
152
153
void
SetDNAFast
(
G4bool
val);
154
G4bool
DNAFast
()
const
;
155
156
void
SetDNAStationary
(
G4bool
val);
157
G4bool
DNAStationary
()
const
;
158
159
void
SetDNAElectronMsc
(
G4bool
val);
160
G4bool
DNAElectronMsc
()
const
;
161
162
void
SetGeneralProcessActive
(
G4bool
val);
163
G4bool
GeneralProcessActive
()
const
;
164
165
void
SetEnableSamplingTable
(
G4bool
val);
166
G4bool
EnableSamplingTable
()
const
;
167
168
void
SetEnablePolarisation
(
G4bool
val);
169
G4bool
EnablePolarisation
()
const
;
170
171
G4bool
GetDirectionalSplitting
()
const
;
172
void
SetDirectionalSplitting
(
G4bool
v
);
173
174
G4bool
QuantumEntanglement
()
const
;
175
void
SetQuantumEntanglement
(
G4bool
v);
176
177
G4bool
RetrieveMuDataFromFile
()
const
;
178
void
SetRetrieveMuDataFromFile
(
G4bool
v);
179
180
// 5d
181
void
SetOnIsolated
(
G4bool
val);
182
G4bool
OnIsolated
()
const
;
183
184
void
ActivateDNA
();
185
186
// double parameters with values
187
void
SetMinSubRange
(
G4double
val);
188
G4double
MinSubRange
()
const
;
189
190
void
SetMinEnergy
(
G4double
val);
191
G4double
MinKinEnergy
()
const
;
192
193
void
SetMaxEnergy
(
G4double
val);
194
G4double
MaxKinEnergy
()
const
;
195
196
void
SetMaxEnergyForCSDARange
(
G4double
val);
197
G4double
MaxEnergyForCSDARange
()
const
;
198
199
void
SetLowestElectronEnergy
(
G4double
val);
200
G4double
LowestElectronEnergy
()
const
;
201
202
void
SetLowestMuHadEnergy
(
G4double
val);
203
G4double
LowestMuHadEnergy
()
const
;
204
205
void
SetLowestTripletEnergy
(
G4double
val);
206
G4double
LowestTripletEnergy
()
const
;
207
208
void
SetLinearLossLimit
(
G4double
val);
209
G4double
LinearLossLimit
()
const
;
210
211
void
SetBremsstrahlungTh
(
G4double
val);
212
G4double
BremsstrahlungTh
()
const
;
213
214
void
SetLambdaFactor
(
G4double
val);
215
G4double
LambdaFactor
()
const
;
216
217
void
SetFactorForAngleLimit
(
G4double
val);
218
G4double
FactorForAngleLimit
()
const
;
219
220
void
SetMscThetaLimit
(
G4double
val);
221
G4double
MscThetaLimit
()
const
;
222
223
void
SetMscEnergyLimit
(
G4double
val);
224
G4double
MscEnergyLimit
()
const
;
225
226
void
SetMscRangeFactor
(
G4double
val);
227
G4double
MscRangeFactor
()
const
;
228
229
void
SetMscMuHadRangeFactor
(
G4double
val);
230
G4double
MscMuHadRangeFactor
()
const
;
231
232
void
SetMscGeomFactor
(
G4double
val);
233
G4double
MscGeomFactor
()
const
;
234
235
void
SetMscSafetyFactor
(
G4double
val);
236
G4double
MscSafetyFactor
()
const
;
237
238
void
SetMscLambdaLimit
(
G4double
val);
239
G4double
MscLambdaLimit
()
const
;
240
241
void
SetMscSkin
(
G4double
val);
242
G4double
MscSkin
()
const
;
243
244
void
SetScreeningFactor
(
G4double
val);
245
G4double
ScreeningFactor
()
const
;
246
247
void
SetMaxNIELEnergy
(
G4double
val);
248
G4double
MaxNIELEnergy
()
const
;
249
250
void
SetMaxEnergyFor5DMuPair
(
G4double
val);
251
G4double
MaxEnergyFor5DMuPair
()
const
;
252
253
void
SetStepFunction
(
G4double
v1
,
G4double
v2
);
254
255
void
SetStepFunctionMuHad
(
G4double
v1,
G4double
v2);
256
257
void
SetDirectionalSplittingRadius
(
G4double
r
);
258
G4double
GetDirectionalSplittingRadius
();
259
260
void
SetDirectionalSplittingTarget
(
const
G4ThreeVector
& v);
261
G4ThreeVector
GetDirectionalSplittingTarget
()
const
;
262
263
// integer parameters
264
void
SetNumberOfBins
(
G4int
val);
265
G4int
NumberOfBins
()
const
;
266
267
void
SetNumberOfBinsPerDecade
(
G4int
val);
268
G4int
NumberOfBinsPerDecade
()
const
;
269
270
void
SetVerbose
(
G4int
val);
271
G4int
Verbose
()
const
;
272
273
void
SetWorkerVerbose
(
G4int
val);
274
G4int
WorkerVerbose
()
const
;
275
276
void
SetMscStepLimitType
(
G4MscStepLimitType
val);
277
G4MscStepLimitType
MscStepLimitType
()
const
;
278
279
void
SetMscMuHadStepLimitType
(
G4MscStepLimitType
val);
280
G4MscStepLimitType
MscMuHadStepLimitType
()
const
;
281
282
void
SetNuclearFormfactorType
(
G4NuclearFormfactorType
val);
283
G4NuclearFormfactorType
NuclearFormfactorType
()
const
;
284
285
void
SetDNAeSolvationSubType
(
G4DNAModelSubType
val);
286
G4DNAModelSubType
DNAeSolvationSubType
()
const
;
287
288
//5d
289
void
SetConversionType
(
G4int
val);
290
G4int
GetConversionType
()
const
;
291
292
// string parameters
293
void
SetPIXECrossSectionModel
(
const
G4String
&);
294
const
G4String
&
PIXECrossSectionModel
();
295
296
void
SetPIXEElectronCrossSectionModel
(
const
G4String
&);
297
const
G4String
&
PIXEElectronCrossSectionModel
();
298
299
// parameters per region or per process
300
void
AddPAIModel
(
const
G4String
&
particle
,
301
const
G4String
& region,
302
const
G4String
& type);
303
const
std::vector<G4String>&
ParticlesPAI
()
const
;
304
const
std::vector<G4String>&
RegionsPAI
()
const
;
305
const
std::vector<G4String>&
TypesPAI
()
const
;
306
307
void
AddMicroElec
(
const
G4String
& region);
308
const
std::vector<G4String>&
RegionsMicroElec
()
const
;
309
310
void
AddDNA
(
const
G4String
& region,
const
G4String
& type);
311
const
std::vector<G4String>&
RegionsDNA
()
const
;
312
const
std::vector<G4String>&
TypesDNA
()
const
;
313
314
void
AddPhysics
(
const
G4String
& region,
const
G4String
& type);
315
const
std::vector<G4String>&
RegionsPhysics
()
const
;
316
const
std::vector<G4String>&
TypesPhysics
()
const
;
317
318
void
SetSubCutoff
(
G4bool
val,
const
G4String
& region =
""
);
319
320
void
SetDeexActiveRegion
(
const
G4String
& region,
G4bool
fdeex,
321
G4bool
fauger,
G4bool
fpixe);
322
323
void
SetProcessBiasingFactor
(
const
G4String
& procname,
324
G4double
val,
G4bool
wflag);
325
326
void
ActivateForcedInteraction
(
const
G4String
& procname,
327
const
G4String
& region,
328
G4double
length
,
329
G4bool
wflag);
330
331
void
ActivateSecondaryBiasing
(
const
G4String
&
name
,
332
const
G4String
& region,
333
G4double
factor,
334
G4double
energyLimit
);
335
336
void
SetEmSaturation
(
G4EmSaturation
*);
337
G4EmSaturation
*
GetEmSaturation
();
338
339
// initialisation methods
340
void
DefineRegParamForLoss
(
G4VEnergyLossProcess
*,
341
G4bool
isElectron
)
const
;
342
void
DefineRegParamForEM
(
G4VEmProcess
*)
const
;
343
void
DefineRegParamForDeex
(
G4VAtomDeexcitation
*)
const
;
344
345
G4EmParameters
(
G4EmParameters
&) =
delete
;
346
G4EmParameters
&
operator=
(
const
G4EmParameters
&
right
) =
delete
;
347
348
private
:
349
350
G4EmParameters
();
351
352
void
Initialise
();
353
354
G4bool
IsLocked
()
const
;
355
356
void
PrintWarning
(
G4ExceptionDescription
& ed)
const
;
357
358
static
G4EmParameters
*
theInstance
;
359
360
G4EmParametersMessenger
*
theMessenger
;
361
G4EmExtraParameters
*
fBParameters
;
362
G4EmLowEParameters
*
fCParameters
;
363
G4StateManager
*
fStateManager
;
364
G4EmSaturation
*
emSaturation
;
365
366
G4bool
lossFluctuation
;
367
G4bool
buildCSDARange
;
368
G4bool
flagLPM
;
369
G4bool
spline
;
370
G4bool
cutAsFinalRange
;
371
G4bool
applyCuts
;
372
G4bool
lateralDisplacement
;
373
G4bool
lateralDisplacementAlg96
;
374
G4bool
muhadLateralDisplacement
;
375
G4bool
latDisplacementBeyondSafety
;
376
G4bool
useAngGeneratorForIonisation
;
377
G4bool
useMottCorrection
;
378
G4bool
integral
;
379
G4bool
birks
;
380
G4bool
fICRU90
;
381
G4bool
gener
;
382
G4bool
fSamplingTable
;
383
G4bool
fPolarisation
;
384
G4bool
fMuDataFromFile
;
385
G4bool
onIsolated
;
// 5d model conversion on free ions
386
G4bool
fDNA
;
387
388
G4double
minSubRange
;
389
G4double
minKinEnergy
;
390
G4double
maxKinEnergy
;
391
G4double
maxKinEnergyCSDA
;
392
G4double
max5DEnergyForMuPair
;
393
G4double
lowestElectronEnergy
;
394
G4double
lowestMuHadEnergy
;
395
G4double
lowestTripletEnergy
;
396
G4double
linLossLimit
;
397
G4double
bremsTh
;
398
G4double
lambdaFactor
;
399
G4double
factorForAngleLimit
;
400
G4double
thetaLimit
;
401
G4double
energyLimit
;
402
G4double
maxNIELEnergy
;
403
G4double
rangeFactor
;
404
G4double
rangeFactorMuHad
;
405
G4double
geomFactor
;
406
G4double
safetyFactor
;
407
G4double
lambdaLimit
;
408
G4double
skin
;
409
G4double
factorScreen
;
410
411
G4int
nbins
;
412
G4int
nbinsPerDecade
;
413
G4int
verbose
;
414
G4int
workerVerbose
;
415
G4int
tripletConv
;
// 5d model triplet generation type
416
417
G4MscStepLimitType
mscStepLimit
;
418
G4MscStepLimitType
mscStepLimitMuHad
;
419
G4NuclearFormfactorType
nucFormfactor
;
420
421
#ifdef G4MULTITHREADED
422
static
G4Mutex
emParametersMutex;
423
#endif
424
};
425
426
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
427
428
#endif
429
geant4
tree
geant4-10.6-release
source
processes
electromagnetic
utils
include
G4EmParameters.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:35
using
1.8.2 with
ECCE GitHub integration