Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4CascadeParameters.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// Encapsulate all user-configurable parameters with associated envvars
27//
28// 20120912 M. Kelsey -- Add interface to support UI commands
29// 20130304 M. Kelsey -- Add flag to collect and display cascade structure
30// 20130308 M. Kelsey -- Add flag to use separate 3-body momentum generators
31// 20130421 M. Kelsey -- Add flag for CHECK_ECONS, replacing #ifdef's
32// 20130702 M. Kelsey -- Add flag to use N-body phase-space generator
33// 20140311 G. Cosmo -- Implement standard (non-const) singleton pattern
34// 20141030 M. Kelsey -- Add flag to enable direct pi-N absorption
35// 20141211 M. Kelsey -- Change PIN_ABSORPTION flag to double, for energy cut
36
37#ifndef G4CascadeParameters_hh
38#define G4CascadeParameters_hh 1
39
40#include "globals.hh"
41#include <iosfwd>
42
44
45
47public:
48 static const G4CascadeParameters* Instance(); // Singleton
50
51 // Top-level configuration flags
52 static G4int verbose() { return Instance()->VERBOSE_LEVEL; }
53 static G4bool checkConservation() { return Instance()->CHECK_ECONS; }
54 static G4bool usePreCompound() { return Instance()->USE_PRECOMPOUND; }
55 static G4bool useAbla() { return Instance()->USE_ABLA; }
56 static G4bool doCoalescence() { return Instance()->DO_COALESCENCE; }
57 static G4bool showHistory() { return Instance()->SHOW_HISTORY; }
58 static G4bool use3BodyMom() { return Instance()->USE_3BODYMOM; }
59 static G4bool usePhaseSpace() { return Instance()->USE_PHASESPACE; }
60 static G4double piNAbsorption() { return Instance()->PIN_ABSORPTION; }
61 static const G4String& randomFile() { return Instance()->RANDOM_FILE; }
62
63 // Nuclear structure parameters
64 static G4bool useTwoParam() { return Instance()->TWOPARAM_RADIUS; }
65 static G4double radiusScale() { return Instance()->RADIUS_SCALE; }
66 static G4double radiusSmall() { return Instance()->RADIUS_SMALL; }
67 static G4double radiusAlpha() { return Instance()->RADIUS_ALPHA; }
68 static G4double radiusTrailing() { return Instance()->RADIUS_TRAILING; }
69 static G4double fermiScale() { return Instance()->FERMI_SCALE; }
70 static G4double xsecScale() { return Instance()->XSEC_SCALE; }
71 static G4double gammaQDScale() { return Instance()->GAMMAQD_SCALE; }
72
73 // Final-state clustering cuts
74 static G4double dpMaxDoublet() { return Instance()->DPMAX_DOUBLET; }
75 static G4double dpMaxTriplet() { return Instance()->DPMAX_TRIPLET; }
76 static G4double dpMaxAlpha() { return Instance()->DPMAX_ALPHA; }
77
78 static void DumpConfiguration(std::ostream& os) { Instance()->DumpConfig(os); }
79
80private: // Environment variable values, null pointers mean not set
81 const char* G4CASCADE_VERBOSE;
82 const char* G4CASCADE_CHECK_ECONS;
83 const char* G4CASCADE_USE_PRECOMPOUND;
84 const char* G4CASCADE_USE_ABLA;
85 const char* G4CASCADE_DO_COALESCENCE;
86 const char* G4CASCADE_SHOW_HISTORY;
87 const char* G4CASCADE_USE_3BODYMOM;
88 const char* G4CASCADE_USE_PHASESPACE;
89 const char* G4CASCADE_PIN_ABSORPTION;
90 const char* G4CASCADE_RANDOM_FILE;
91 const char* G4NUCMODEL_USE_BEST;
92 const char* G4NUCMODEL_RAD_2PAR;
93 const char* G4NUCMODEL_RAD_SCALE;
94 const char* G4NUCMODEL_RAD_SMALL;
95 const char* G4NUCMODEL_RAD_ALPHA;
96 const char* G4NUCMODEL_RAD_TRAILING;
97 const char* G4NUCMODEL_FERMI_SCALE;
98 const char* G4NUCMODEL_XSEC_SCALE;
99 const char* G4NUCMODEL_GAMMAQD;
100 const char* DPMAX_2CLUSTER;
101 const char* DPMAX_3CLUSTER;
102 const char* DPMAX_4CLUSTER;
103
104 void Initialize(); // Fill parameter values from envvar strings
105
106 G4int VERBOSE_LEVEL; // Top-level configuration flags
107 G4bool CHECK_ECONS;
108 G4bool USE_PRECOMPOUND;
109 G4bool USE_ABLA;
110 G4bool DO_COALESCENCE;
111 G4bool SHOW_HISTORY;
112 G4bool USE_3BODYMOM;
113 G4bool USE_PHASESPACE;
114 G4double PIN_ABSORPTION;
115 G4String RANDOM_FILE;
116
117 G4bool BEST_PAR; // Nuclear structure parameters
118//BEST_PAR has been used in a project on hold.
119//Currently setting BEST_PAR or G4NUCMODEL_USE_BEST does not improve physics performance.
120//Developer can get more information about this from cascade/test/README
121
122 G4bool TWOPARAM_RADIUS;
123 G4double RADIUS_SCALE;
124 G4double RADIUS_SMALL;
125 G4double RADIUS_ALPHA;
126 G4double RADIUS_TRAILING;
127 G4double FERMI_SCALE;
128 G4double XSEC_SCALE;
129 G4double GAMMAQD_SCALE;
130
131 G4double DPMAX_DOUBLET; // Final-state clustering cuts
132 G4double DPMAX_TRIPLET;
133 G4double DPMAX_ALPHA;
134
135private: // Singleton -- no public constructor
137 void DumpConfig(std::ostream& os) const;
138
139 G4CascadeParamMessenger* messenger; // For access via UI commands
141};
142
143#endif /* G4CascadeParameters_hh */
double G4double
Definition G4Types.hh:83
bool G4bool
Definition G4Types.hh:86
int G4int
Definition G4Types.hh:85
static G4double dpMaxDoublet()
static const G4CascadeParameters * Instance()
static G4bool use3BodyMom()
static G4double dpMaxTriplet()
static G4bool doCoalescence()
static G4double xsecScale()
static G4double dpMaxAlpha()
static void DumpConfiguration(std::ostream &os)
static G4bool usePreCompound()
static const G4String & randomFile()
static G4double radiusScale()
static G4bool checkConservation()
static G4bool useTwoParam()
static G4double gammaQDScale()
static G4double radiusAlpha()
static G4double radiusSmall()
static G4double fermiScale()
static G4bool showHistory()
static G4double radiusTrailing()
static G4bool usePhaseSpace()
static G4double piNAbsorption()