Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4DeexPrecoParameters.hh
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// 15.03.2016 V.Ivanchenko
28//
29// List of parameters of the pre-compound model
30// and the deexcitation module
31//
32// Verbosity level depends on the local verbosity level and the verbosity
33// level of hadronics defined in G4HadronicParameters
34
35#ifndef G4DeexPrecoParameters_h
36#define G4DeexPrecoParameters_h 1
37
38#include "globals.hh"
39#include "G4Threading.hh"
40
42{
47 fDummy
48};
49
50class G4StateManager;
52
54{
55public:
56
57 explicit G4DeexPrecoParameters();
58
60
61 void SetDefaults();
62
63 // printing
64 std::ostream& StreamInfo(std::ostream& os) const;
65 void Dump() const;
66 friend std::ostream& operator<< (std::ostream& os,
68
69 G4int GetVerbose() const;
70
71 // inline access methods
72 inline G4double GetLevelDensity() const;
73
74 inline G4double GetR0() const;
75
76 inline G4double GetTransitionsR0() const;
77
78 inline G4double GetFBUEnergyLimit() const;
79
80 inline G4double GetFermiEnergy() const;
81
82 inline G4double GetPrecoLowEnergy() const;
83
84 inline G4double GetPrecoHighEnergy() const;
85
86 inline G4double GetPhenoFactor() const;
87
88 inline G4double GetMinExcitation() const;
89
90 inline G4double GetMaxLifeTime() const;
91
93
94 inline G4int GetMinZForPreco() const;
95
96 inline G4int GetMinAForPreco() const;
97
98 inline G4int GetPrecoModelType() const;
99
100 inline G4int GetDeexModelType() const;
101
102 inline G4int GetTwoJMAX() const;
103
104 inline G4int GetUploadZ() const;
105
106 inline G4bool NeverGoBack() const;
107
108 inline G4bool UseSoftCutoff() const;
109
110 inline G4bool UseCEM() const;
111
112 inline G4bool UseGNASH() const;
113
114 inline G4bool UseHETC() const;
115
116 inline G4bool UseAngularGen() const;
117
118 inline G4bool PrecoDummy() const;
119
120 inline G4bool CorrelatedGamma() const;
121
122 inline G4bool GetInternalConversionFlag() const;
123
124 inline G4bool GetLevelDensityFlag() const;
125
126 inline G4bool GetDiscreteExcitationFlag() const;
127
128 inline G4bool StoreICLevelData() const;
129
130 inline G4bool IsomerProduction() const;
131
133
134 // Set methods
135
137
138 void SetR0(G4double);
139
141
143
145
147
149
151
153
155
157
159
161
163
165
167
168 void SetTwoJMAX(G4int);
169
170 void SetVerbose(G4int);
171
173
175
176 void SetUseCEM(G4bool);
177
178 void SetUseGNASH(G4bool);
179
180 void SetUseHETC(G4bool);
181
183
184 void SetPrecoDummy(G4bool);
185
187
189
190 // obsolete method (use previous)
192
194
196
198
200
202
204 const G4DeexPrecoParameters& operator=
205 (const G4DeexPrecoParameters &right) = delete;
206 G4bool operator==(const G4DeexPrecoParameters &right) const = delete;
207 G4bool operator!=(const G4DeexPrecoParameters &right) const = delete;
208
209private:
210
211 G4bool IsLocked() const;
212
213 G4DeexParametersMessenger* theMessenger;
214 G4StateManager* fStateManager;
215
216 // Level density parameter
217 G4double fLevelDensity;
218
219 // Nuclear radius r0
220 G4double fR0;
221
222 // Nuclear radius r0 for transitions
223 G4double fTransitionsR0;
224
225 // upper limit of level energy for Fermi Break-up model
226 G4double fFBUEnergyLimit;
227
228 // Fermi energy level
229 G4double fFermiEnergy;
230
231 // Excitation per nucleon limits
232 G4double fPrecoLowEnergy;
233 G4double fPrecoHighEnergy;
234
235 // Preco phenomenological factor
236 G4double fPhenoFactor;
237
238 // Excitation handler
239 G4double fMinExcitation;
240 G4double fMaxLifeTime;
241
242 // Multi-fragmentation model
243 G4double fMinExPerNucleounForMF;
244
245 // Cross section type
246 G4int fPrecoType;
247 G4int fDeexType;
248
249 G4int fTwoJMAX;
250
251 // Preco model
252 G4int fMinZForPreco;
253 G4int fMinAForPreco;
254
255 G4int fVerbose;
256
257 // Preco flags
258 G4bool fNeverGoBack;
259 G4bool fUseSoftCutoff;
260 G4bool fUseCEM;
261 G4bool fUseGNASH;
262 G4bool fUseHETC;
263 G4bool fUseAngularGen;
264 G4bool fPrecoDummy;
265
266 // Deex flags
267 G4bool fCorrelatedGamma;
268 G4bool fStoreAllLevels;
269 G4bool fInternalConversion;
270 G4bool fLD; // use simple level density model
271 G4bool fFD; // use transition to discrete level
272 G4bool fIsomerFlag; // enable isomere production
273
274 // type of a set of e-exitation channels
275 G4DeexChannelType fDeexChannelType;
276
277#ifdef G4MULTITHREADED
278 static G4Mutex deexPrecoMutex;
279#endif
280};
281
283{
284 return fLevelDensity;
285}
286
288{
289 return fR0;
290}
291
293{
294 return fTransitionsR0;
295}
296
298{
299 return fFBUEnergyLimit;
300}
301
303{
304 return fFermiEnergy;
305}
306
308{
309 return fPrecoLowEnergy;
310}
311
313{
314 return fPrecoHighEnergy;
315}
316
318{
319 return fPhenoFactor;
320}
321
323{
324 return fMinExcitation;
325}
326
328{
329 return fMaxLifeTime;
330}
331
333{
334 return fMinExPerNucleounForMF;
335}
336
338{
339 return fMinZForPreco;
340}
341
343{
344 return fMinAForPreco;
345}
346
348{
349 return fPrecoType;
350}
351
353{
354 return fDeexType;
355}
356
358{
359 return fTwoJMAX;
360}
361
363{
364 return fNeverGoBack;
365}
366
368{
369 return fUseSoftCutoff;
370}
371
373{
374 return fUseCEM;
375}
376
378{
379 return fUseGNASH;
380}
381
383{
384 return fUseHETC;
385}
386
388{
389 return fUseAngularGen;
390}
391
393{
394 return fPrecoDummy;
395}
396
398{
399 return fCorrelatedGamma;
400}
401
403{
404 return fStoreAllLevels;
405}
406
408{
409 return fInternalConversion;
410}
411
413{
414 return fLD;
415}
416
418{
419 return fFD;
420}
421
423{
424 return fIsomerFlag;
425}
426
428{
429 return fDeexChannelType;
430}
431
432#endif
@ fEvaporation
std::mutex G4Mutex
Definition: G4Threading.hh:81
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
G4int GetUploadZ() const
G4double GetLevelDensity() const
G4double GetPrecoLowEnergy() const
G4bool operator!=(const G4DeexPrecoParameters &right) const =delete
void SetMinExPerNucleounForMF(G4double)
G4bool GetDiscreteExcitationFlag() const
G4DeexPrecoParameters(const G4DeexPrecoParameters &right)=delete
G4double GetPrecoHighEnergy() const
G4double GetTransitionsR0() const
G4DeexChannelType GetDeexChannelsType() const
std::ostream & StreamInfo(std::ostream &os) const
G4double GetMinExPerNucleounForMF() const
G4double GetFBUEnergyLimit() const
G4double GetMinExcitation() const
void SetMinEForMultiFrag(G4double)
friend std::ostream & operator<<(std::ostream &os, const G4DeexPrecoParameters &)
G4bool GetInternalConversionFlag() const
G4bool operator==(const G4DeexPrecoParameters &right) const =delete
void SetDeexChannelsType(G4DeexChannelType)