Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4HadronicParameters.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//---------------------------------------------------------------------------
28//
29// ClassName: G4HadronicParameters
30//
31// Author: 2018 Alberto Ribon
32//
33// Description: Singleton to keep global hadronic parameters.
34//
35// Modified:
36//
37//----------------------------------------------------------------------------
38//
39#ifndef G4HadronicParameters_h
40#define G4HadronicParameters_h 1
41
42#include "globals.hh"
43
45
46
48 public:
49
52
53 G4double GetMaxEnergy() const;
54 void SetMaxEnergy( const G4double val );
55 // Getter/Setter for the upper limit for Geant4 hadronic physics, for any application.
56 // Any hadronic model, physics list builder and constructor should use this method
57 // instead of putting an arbitrary value in the code.
58 // Any application which tries to use hadronic physics for an energy higher than this limit
59 // will get a run-time crash, because no model is found.
60
65 // Getter/Setter of the recommended energy limits, for physics lists, of the
66 // transition region between the Fritiof (FTF) string model and the
67 // intranuclear cascade model, either Bertini (BERT) or Binary (BIC).
68
73 // Getter/Setter of the recommended energy limits, for physics lists, of the
74 // transition region between the two strings models - the Quark Gluon String (QGS)
75 // model and the Fritiof (FTF) model.
76
79 // if max kinetic energy is below this limit EM and hadronic physics is not
80 // instantiated for hyperons, anti-hyperons, anti light ions, b-, c- particles
81
86 // cross section factor for protons and neutrons
87
92 // cross section factor for pions
93
98 // cross section factor for other hadrons and ions
99
100 G4double XSFactorEM() const;
101 void SetXSFactorEM( G4double val );
102 // cross section factor for gamma and leptons
103
105 void SetEnableBCParticles( G4bool val );
106 // Baryons and mesons with c- and b- quarks may be enabled/disabled
107 // This flag is used both by EM and hadronic physics constructors
108
110 void SetEnableHyperNuclei( G4bool val );
111 // Light hyper-nuclei may be enabled/disabled
112 // This flag is used both by EM and hadronic physics constructors
113
114 G4bool ApplyFactorXS() const;
115 void SetApplyFactorXS( G4bool val );
116 // Flag enabling cross section factor definition
117
118 G4int GetVerboseLevel() const;
119 void SetVerboseLevel( const G4int val );
120 // Getter/Setter of the general verbosity level for hadronics.
121
123 void SetEnableCRCoalescence( G4bool val );
124 // Boolean switch that allows to apply the Cosmic Ray (CR) coalescence algorithm
125 // to the secondaries produced by a string model. By default it is disabled.
126
127 inline G4bool EnableIntegralInelasticXS() const;
128 inline G4bool EnableIntegralElasticXS() const;
131 // Enable/disable integral method for main hadrons
132
134 /// For nucleon-hadron interactions, it's not decided what to do with diffraction
135 /// dissociation. For the moment, they are turned off. This option allows it to
136 /// be turned back on. Applies to Baryon Number > 10 or # target nucleons > 10.
138
139 inline G4bool EnableNeutronGeneralProcess() const;
141 // Neutron general process may be enabled/disabled
142
143 private:
145
146 G4bool IsLocked() const;
147
148 static G4HadronicParameters* sInstance;
149
151
152 G4double fMaxEnergy;
153 G4double fMinEnergyTransitionFTF_Cascade;
154 G4double fMaxEnergyTransitionFTF_Cascade;
155 G4double fMinEnergyTransitionQGS_FTF;
156 G4double fMaxEnergyTransitionQGS_FTF;
157 G4double fEnergyThresholdForHeavyHadrons;
158 G4double fXSFactorNucleonInelastic = 1.0;
159 G4double fXSFactorPionInelastic = 1.0;
160 G4double fXSFactorHadronInelastic = 1.0;
161 G4double fXSFactorNucleonElastic = 1.0;
162 G4double fXSFactorPionElastic = 1.0;
163 G4double fXSFactorHadronElastic = 1.0;
164 G4double fXSFactorEM = 1.0;
165 G4double fXSFactorLimit = 0.2;
166
167 G4int fVerboseLevel = 1;
168 G4bool fEnableBC = false;
169 G4bool fEnableHyperNuclei = false;
170 G4bool fApplyFactorXS = false;
171 G4bool fEnableCRCoalescence = false;
172 G4bool fEnableIntegralInelasticXS = true;
173 G4bool fEnableIntegralElasticXS = true;
174 G4bool fEnableDiffDissociationForBGreater10 = false;
175 G4bool fNeutronGeneral = false;
176};
177
179 return fMaxEnergy;
180}
181
183 return fMinEnergyTransitionFTF_Cascade;
184}
186 return fMaxEnergyTransitionFTF_Cascade;
187}
188
190 return fMinEnergyTransitionQGS_FTF;
191}
192
194 return fMaxEnergyTransitionQGS_FTF;
195}
196
198 return fEnergyThresholdForHeavyHadrons;
199}
200
202 return fXSFactorNucleonInelastic;
203}
204
206 return fXSFactorNucleonElastic;
207}
208
210 return fXSFactorPionInelastic;
211}
212
214 return fXSFactorPionElastic;
215}
216
218 return fXSFactorHadronInelastic;
219}
220
222 return fXSFactorHadronElastic;
223}
224
226 return fXSFactorEM;
227}
228
230 return fVerboseLevel;
231}
232
234 return fEnableBC;
235}
236
238 return fEnableHyperNuclei;
239}
240
242 return fApplyFactorXS;
243}
244
246 return fEnableCRCoalescence;
247}
248
250 return fEnableIntegralInelasticXS;
251}
252
254 return fEnableIntegralElasticXS;
255}
256
258 return fEnableDiffDissociationForBGreater10;
259}
260
262 return fNeutronGeneral;
263}
264
265#endif
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
void SetEnableIntegralElasticXS(G4bool val)
G4bool EnableIntegralInelasticXS() const
G4double XSFactorPionElastic() const
void SetEnableDiffDissociationForBGreater10(G4bool val)
static G4HadronicParameters * Instance()
G4bool EnableDiffDissociationForBGreater10() const
G4double XSFactorNucleonElastic() const
G4double GetMinEnergyTransitionFTF_Cascade() const
void SetXSFactorNucleonInelastic(G4double val)
void SetEnableIntegralInelasticXS(G4bool val)
G4bool EnableHyperNuclei() const
G4double GetMinEnergyTransitionQGS_FTF() const
void SetXSFactorPionInelastic(G4double val)
G4bool EnableNeutronGeneralProcess() const
G4double GetMaxEnergyTransitionFTF_Cascade() const
void SetVerboseLevel(const G4int val)
void SetXSFactorPionElastic(G4double val)
G4bool EnableCRCoalescence() const
G4bool EnableBCParticles() const
void SetEnableHyperNuclei(G4bool val)
G4double EnergyThresholdForHeavyHadrons() const
G4bool EnableIntegralElasticXS() const
void SetMaxEnergy(const G4double val)
void SetApplyFactorXS(G4bool val)
void SetEnergyThresholdForHeavyHadrons(G4double val)
void SetMinEnergyTransitionQGS_FTF(const G4double val)
void SetMinEnergyTransitionFTF_Cascade(const G4double val)
G4double XSFactorHadronInelastic() const
void SetEnableBCParticles(G4bool val)
G4double GetMaxEnergyTransitionQGS_FTF() const
void SetXSFactorHadronElastic(G4double val)
void SetXSFactorEM(G4double val)
void SetEnableCRCoalescence(G4bool val)
void SetMaxEnergyTransitionQGS_FTF(const G4double val)
void SetXSFactorHadronInelastic(G4double val)
void SetEnableNeutronGeneralProcess(G4bool val)
void SetXSFactorNucleonElastic(G4double val)
void SetMaxEnergyTransitionFTF_Cascade(const G4double val)
G4double XSFactorPionInelastic() const
G4double XSFactorHadronElastic() const
G4double GetMaxEnergy() const
G4double XSFactorNucleonInelastic() const