34 #define INCLXX_IN_GEANT4_MODE 1
59 accurateProjectile(true),
60 theMaxProjMassINCL(18),
61 cascadeMinEnergyPerNucleon(1.*
MeV),
62 conservationTolerance(5*
MeV),
103 const size_t lastDash = versionID.find_last_of(
"-");
104 versionName =
"INCL++ " + versionID.substr(0,lastDash);
116 std::stringstream
ss;
117 ss <<
"Switching from "
118 << (
accurateProjectile ?
"\"accurate projectile\" mode to \"accurate target\"" :
"\"accurate target\" mode to \"accurate projectile\"")
121 <<
"Do this ONLY if you fully understand what it does!";
132 if(theMaxClusterMass!=aMass) {
134 std::stringstream
ss;
135 ss <<
"Changing maximum cluster mass from "
141 <<
"Do this ONLY if you fully understand what this setting does!";
175 G4cout <<
"[INCL++] INCL++ has already emitted " <<
maxWarnings <<
" warnings and will emit no more." <<
G4endl;
183 <<
"================================================================================"
185 <<
" INCL++ WARNING "
189 <<
"================================================================================"
197 std::stringstream
ss;
198 ss <<
"Changing minimim cascade energy from "
204 <<
"Do this ONLY if you fully understand what this setting does!";
222 if(option ==
"default") {
224 }
else if(option ==
"incl42") {
225 const G4String message =
"Changing INCL++ physics to mimick INCL4.2. Do this ONLY if you fully understand the implications!";
241 "SetINCLPhysics argument must be one of: default, incl42"
250 for(std::vector<G4HadronicInteraction *>::const_iterator iInter=interactions.begin(),
e=interactions.end();
251 iInter!=
e; ++iInter) {
253 if(theINCLInterface) {
257 if(!theAblaInterface)
G4double cascadeMinEnergyPerNucleon
G4INCLXXInterfaceStore()
Private constructor.
Header file for the G4INCLXXInterfaceStore class.
G4double conservationTolerance
static constexpr double MeV
void init()
Initialise the members.
static void DeleteInstance()
Delete the singleton instance.
void setLocalEnergyBBType(const LocalEnergyType t)
Set the type of local energy for N-N avatars.
G4bool GetAccurateProjectile() const
Getter for accurateProjectile.
G4double GetConservationTolerance() const
Getter for conservationTolerance.
void message(RunManager *runmanager)
G4bool accurateProjectile
Messenger class for the Geant4 INCL++ interface.
std::vector< G4HadronicInteraction * > FindAllModels(const G4String &name)
void SetMaxClusterMass(const G4int aMass)
Setter for the maximum cluster mass.
G4INCLXXVInterfaceTally * GetTally() const
Getter for the interface tally.
void DeleteModel()
Delete the INCL model engine.
void EmitWarning(const G4String &message)
Emit a warning to G4cout.
void setCrossSectionsType(CrossSectionsType const c)
Set the Cross Section type.
void SetTally(G4INCLXXVInterfaceTally *const aTally)
Setter for the interface tally.
static G4ThreadLocal G4INCLXXInterfaceStore * theInstance
void SetDeExcitation(G4VPreCompoundModel *ptr)
void setClusterMaxMass(const G4int m)
Set the maximum mass for production of clusters.
static G4HadronicInteractionRegistry * Instance()
const G4int maxWarnings
Maximum number of warnings.
static G4INCLXXInterfaceStore * GetInstance()
Get the singleton instance.
void setBackToSpectator(const G4bool b)
Set back-to-spectator.
void SetConservationTolerance(const G4double aTolerance)
Setter for conservationTolerance.
INCL++ intra-nuclear cascade.
void constructINCLXXVersionName()
G4INCL::INCL * GetINCLModel()
Get the cached INCL model engine.
G4int GetMaxProjMassINCL() const
Getter for theMaxProjMassINCL.
G4INCLXXVInterfaceTally * theTally
G4int nWarnings
Static warning counter.
void setClusterAlgorithm(ClusterAlgorithmType const c)
Set the clustering algorithm.
void EmitBigWarning(const G4String &message) const
Emit a BIG warning to G4cout.
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
void SetCascadeMinEnergyPerNucleon(const G4double anEnergy)
Setter for cascadeMinEnergyPerNucleon.
G4int getClusterMaxMass() const
Get the maximum mass for production of clusters.
void setLocalEnergyPiType(const LocalEnergyType t)
Set the type of local energy for N-N avatars.
void SetINCLPhysics(const G4String &option)
Set the INCL physics.
const std::string & getINCLXXVersionName()
void setCoulombType(CoulombType const c)
Set the Coulomb-distortion algorithm.
G4GLOB_DLL std::ostream G4cout
void SetAccurateProjectile(const G4bool b)
Setter for accurateProjectile.
void UseAblaDeExcitation()
Set ABLA V3 to be the de-excitation model to be used with INCL++.
const G4int theMaxProjMassINCL
void setPionPotential(const G4bool pionPot)
Set the type of the potential for nucleons.
void setPotentialType(PotentialType type)
Set the type of the potential for nucleons.
G4INCL::INCL * theINCLModel
~G4INCLXXInterfaceStore()
Private destructor.
G4HadronicInteraction * FindModel(const G4String &name)
G4INCLXXInterfaceMessenger * theINCLXXInterfaceMessenger
Singleton class for configuring the INCL++ Geant4 interface.
G4double GetCascadeMinEnergyPerNucleon() const
Getter for cascadeMinEnergyPerNucleon.
G4INCL::Config & GetINCLConfig()
Getter for theConfig.
#define G4INCL_VERSION_ID