ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4DeexPrecoParameters.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4DeexPrecoParameters.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 // 15.03.2016 V.Ivanchenko
28 //
29 // List of parameters of the pre-compound model
30 // and the deexcitation module
31 //
32 
33 #ifndef G4DeexPrecoParameters_h
34 #define G4DeexPrecoParameters_h 1
35 
36 #include "globals.hh"
37 #include "G4Threading.hh"
38 
40 {
46 };
47 
48 class G4StateManager;
50 
52 {
53 public:
54 
55  explicit G4DeexPrecoParameters();
56 
58 
59  void SetDefaults();
60 
61  // printing
62  std::ostream& StreamInfo(std::ostream& os) const;
63  void Dump() const;
64  friend std::ostream& operator<< (std::ostream& os,
65  const G4DeexPrecoParameters&);
66 
67  // inline access methods
68 
69  inline G4double GetLevelDensity() const;
70 
71  inline G4double GetR0() const;
72 
73  inline G4double GetTransitionsR0() const;
74 
75  inline G4double GetFBUEnergyLimit() const;
76 
77  inline G4double GetFermiEnergy() const;
78 
79  inline G4double GetPrecoLowEnergy() const;
80 
81  inline G4double GetPrecoHighEnergy() const;
82 
83  inline G4double GetPhenoFactor() const;
84 
85  inline G4double GetMinExcitation() const;
86 
87  inline G4double GetMaxLifeTime() const;
88 
89  inline G4double GetMinExPerNucleounForMF() const;
90 
91  inline G4int GetInternalConversionID() const;
92 
93  inline G4int GetMinZForPreco() const;
94 
95  inline G4int GetMinAForPreco() const;
96 
97  inline G4int GetPrecoModelType() const;
98 
99  inline G4int GetDeexModelType() const;
100 
101  inline G4int GetTwoJMAX() const;
102 
103  inline G4int GetUploadZ() const;
104 
105  inline G4int GetVerbose() const;
106 
107  inline G4bool NeverGoBack() const;
108 
109  inline G4bool UseSoftCutoff() const;
110 
111  inline G4bool UseCEM() const;
112 
113  inline G4bool UseGNASH() const;
114 
115  inline G4bool UseHETC() const;
116 
117  inline G4bool UseAngularGen() const;
118 
119  inline G4bool PrecoDummy() const;
120 
121  inline G4bool CorrelatedGamma() const;
122 
123  inline G4bool GetInternalConversionFlag() const;
124 
125  inline G4bool GetLevelDensityFlag() const;
126 
127  inline G4bool GetDiscreteExcitationFlag() const;
128 
129  inline G4bool StoreICLevelData() const;
130 
131  inline G4DeexChannelType GetDeexChannelsType() const;
132 
133  // Set methods
134 
136 
137  void SetR0(G4double);
138 
140 
142 
143  void SetFermiEnergy(G4double);
144 
146 
148 
149  void SetPhenoFactor(G4double);
150 
152 
153  void SetMaxLifeTime(G4double);
154 
156 
158 
159  void SetMinZForPreco(G4int);
160 
161  void SetMinAForPreco(G4int);
162 
163  void SetPrecoModelType(G4int);
164 
165  void SetDeexModelType(G4int);
166 
167  void SetTwoJMAX(G4int);
168 
169  void SetUploadZ(G4int);
170 
171  void SetVerbose(G4int);
172 
173  void SetNeverGoBack(G4bool);
174 
175  void SetUseSoftCutoff(G4bool);
176 
177  void SetUseCEM(G4bool);
178 
179  void SetUseGNASH(G4bool);
180 
181  void SetUseHETC(G4bool);
182 
183  void SetUseAngularGen(G4bool);
184 
185  void SetPrecoDummy(G4bool);
186 
188 
190 
191  // obsolete method (use previous)
193 
195 
197 
199 
201 
202  // obsolete method (has no effect)
203  inline void SetUseFilesNEW(G4bool) {};
204 
205 private:
206 
207  G4bool IsLocked() const;
208 
210  const G4DeexPrecoParameters& operator=
211  (const G4DeexPrecoParameters &right) = delete;
212  G4bool operator==(const G4DeexPrecoParameters &right) const = delete;
213  G4bool operator!=(const G4DeexPrecoParameters &right) const = delete;
214 
217 
218  // Level density parameter
220 
221  // Nuclear radius r0
223 
224  // Nuclear radius r0 for transitions
226 
227  // upper limit of level energy for Fermi Break-up model
229 
230  // Fermi energy level
232 
233  // Excitation per nucleon limits
236 
237  // Preco phenomenological factor
239 
240  // Excitation handler
243 
244  // Multi-fragmentation model
246 
247  // Cross section type
250 
251  // Internal conversion model ID
254 
255  // Preco model
258 
261 
262  // Preco flags
270 
271  // Deex flags
275  G4bool fLD; // use simple level density model
276  G4bool fFD; // use transition to discrete level
277 
278  // type of a set of e-exitation channels
280 
281 #ifdef G4MULTITHREADED
282  static G4Mutex deexPrecoMutex;
283 #endif
284 };
285 
287 {
288  return fLevelDensity;
289 }
290 
292 {
293  return fR0;
294 }
295 
297 {
298  return fTransitionsR0;
299 }
300 
302 {
303  return fFBUEnergyLimit;
304 }
305 
307 {
308  return fFermiEnergy;
309 }
310 
312 {
313  return fPrecoLowEnergy;
314 }
315 
317 {
318  return fPrecoHighEnergy;
319 }
320 
322 {
323  return fPhenoFactor;
324 }
325 
327 {
328  return fMinExcitation;
329 }
330 
332 {
333  return fMaxLifeTime;
334 }
335 
337 {
338  return fMinExPerNucleounForMF;
339 }
340 
342 {
343  return fInternalConversionID;
344 }
345 
347 {
348  return fMinZForPreco;
349 }
350 
352 {
353  return fMinAForPreco;
354 }
355 
357 {
358  return fPrecoType;
359 }
360 
362 {
363  return fDeexType;
364 }
365 
367 {
368  return fTwoJMAX;
369 }
370 
372 {
373  return fMaxZ;
374 }
375 
377 {
378  return fVerbose;
379 }
380 
382 {
383  return fNeverGoBack;
384 }
385 
387 {
388  return fUseSoftCutoff;
389 }
390 
392 {
393  return fUseCEM;
394 }
395 
397 {
398  return fUseGNASH;
399 }
400 
402 {
403  return fUseHETC;
404 }
405 
407 {
408  return fUseAngularGen;
409 }
410 
412 {
413  return fPrecoDummy;
414 }
415 
417 {
418  return fCorrelatedGamma;
419 }
420 
422 {
423  return fStoreAllLevels;
424 }
425 
427 {
428  return fInternalConversion;
429 }
430 
432 {
433  return fLD;
434 }
435 
437 {
438  return fFD;
439 }
440 
442 {
443  return fDeexChannelType;
444 }
445 
446 #endif