34#define INCLXX_IN_GEANT4_MODE 1
49const G4String G4INCLXXInterfaceMessenger::theUIDirectory =
"/process/had/inclxx/";
52 theINCLXXInterfaceStore(anInterfaceStore)
56 theINCLXXDirectory->
SetGuidance(
"Parameters for the INCL++ model");
60 accurateNucleusCmd =
new G4UIcmdWithAString((theUIDirectory +
"accurateNucleus").data(),
this);
61 accurateNucleusCmd->
SetGuidance(
"Set which nucleus will be accurately described in nucleus-nucleus reactions.");
62 accurateNucleusCmd->
SetGuidance(
" projectile: accurate description of projectile-related quantities");
63 accurateNucleusCmd->
SetGuidance(
" target: accurate description of target-related quantities");
64 accurateNucleusCmd->
SetGuidance(
" Default: projectile");
72 maxClusterMassCmd->
SetGuidance(
"Set the maximum cluster mass.");
73 maxClusterMassCmd->
SetGuidance(
" The INCL++ cascade stage will produce clusters with mass up to the value of this parameter (included)");
74 maxClusterMassCmd->
SetGuidance(
" Allowed range: [2,12]");
77 maxClusterMassCmd->
SetRange(
"MaxClusterMass>=2 && MaxClusterMass<=12");
81 cascadeMinEnergyPerNucleonCmd =
new G4UIcmdWithADoubleAndUnit((theUIDirectory +
"cascadeMinEnergyPerNucleon").data(),
this);
82 cascadeMinEnergyPerNucleonCmd->
SetGuidance(
"Set the minimum energy per nucleon at which cascade will be used.");
83 cascadeMinEnergyPerNucleonCmd->
SetGuidance(
" INCL++ will rely on PreCompound for reactions induced by projectiles slower than the given energy (per nucleon, where applicable)");
84 cascadeMinEnergyPerNucleonCmd->
SetParameterName(
"cascadeMinEnergyPerNucleon",
true);
86 cascadeMinEnergyPerNucleonCmd->
SetRange(
"cascadeMinEnergyPerNucleon>=0");
92 inclPhysicsCmd->
SetGuidance(
"Set a global configuration for INCL++.");
93 inclPhysicsCmd->
SetGuidance(
" default: default configuration, most recent options");
94 inclPhysicsCmd->
SetGuidance(
" incl42: try to mimic the behaviour from INCL4.2");
100 useAblaCmd =
new G4UIcommand((theUIDirectory +
"useAbla").data(),
this);
101 useAblaCmd->
SetGuidance(
"Use ABLA++ as de-excitation model after INCL++.");
106 delete theINCLXXDirectory;
107 delete accurateNucleusCmd;
108 delete maxClusterMassCmd;
109 delete cascadeMinEnergyPerNucleonCmd;
110 delete inclPhysicsCmd;
115 if(command==accurateNucleusCmd) {
117 if(newValues==
"projectile") {
119 }
else if(newValues==
"target") {
122 }
else if(command==maxClusterMassCmd) {
125 }
else if(command==cascadeMinEnergyPerNucleonCmd) {
128 }
else if(command==inclPhysicsCmd) {
130 }
else if(command==useAblaCmd) {
Messenger class for the Geant4 INCL++ interface.
G4INCLXXInterfaceMessenger(G4INCLXXInterfaceStore *anInterfaceStore)
~G4INCLXXInterfaceMessenger()
void SetNewValue(G4UIcommand *command, G4String newValues)
Singleton class for configuring the INCL++ Geant4 interface.
void SetAccurateProjectile(const G4bool b)
Setter for accurateProjectile.
void SetCascadeMinEnergyPerNucleon(const G4double anEnergy)
Setter for cascadeMinEnergyPerNucleon.
void UseAblaDeExcitation()
Set ABLA V3 to be the de-excitation model to be used with INCL++.
void SetMaxClusterMass(const G4int aMass)
Setter for the maximum cluster mass.
void SetINCLPhysics(const G4String &option)
Set the INCL physics.
void SetDefaultValue(G4double defVal)
void SetUnitCategory(const char *unitCategory)
static G4double GetNewDoubleValue(const char *paramString)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetDefaultValue(const char *defVal)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
static G4int GetNewIntValue(const char *paramString)
void SetDefaultValue(G4int defVal)
void SetGuidance(const char *aGuidance)
void SetRange(const char *rs)
void AvailableForStates(G4ApplicationState s1)
void to_lower(G4String &str)
Convert string to lowercase.