Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4INCLXXInterfaceMessenger Class Reference

#include <G4INCLXXInterfaceMessenger.hh>

+ Inheritance diagram for G4INCLXXInterfaceMessenger:

Public Member Functions

 G4INCLXXInterfaceMessenger (G4INCLXXInterfaceStore *anInterfaceStore)
 
 ~G4INCLXXInterfaceMessenger ()
 
void SetNewValue (G4UIcommand *command, G4String newValues)
 
- Public Member Functions inherited from G4UImessenger
 G4UImessenger ()=default
 
 G4UImessenger (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
 
virtual ~G4UImessenger ()
 
virtual G4String GetCurrentValue (G4UIcommand *command)
 
G4bool CommandsShouldBeInMaster () const
 

Additional Inherited Members

- Protected Member Functions inherited from G4UImessenger
G4String ItoS (G4int i)
 
G4String LtoS (G4long l)
 
G4String DtoS (G4double a)
 
G4String BtoS (G4bool b)
 
G4int StoI (const G4String &s)
 
G4long StoL (const G4String &s)
 
G4double StoD (const G4String &s)
 
G4bool StoB (G4String s)
 
void AddUIcommand (G4UIcommand *newCommand)
 
void CreateDirectory (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
 
template<typename T >
T * CreateCommand (const G4String &cname, const G4String &dsc)
 
- Protected Attributes inherited from G4UImessenger
G4UIdirectorybaseDir = nullptr
 
G4String baseDirName = ""
 
G4bool commandsShouldBeInMaster = false
 

Detailed Description

Definition at line 59 of file G4INCLXXInterfaceMessenger.hh.

Constructor & Destructor Documentation

◆ G4INCLXXInterfaceMessenger()

G4INCLXXInterfaceMessenger::G4INCLXXInterfaceMessenger ( G4INCLXXInterfaceStore * anInterfaceStore)

Definition at line 51 of file G4INCLXXInterfaceMessenger.cc.

51 :
52 theINCLXXInterfaceStore(anInterfaceStore)
53{
54 // Create a directory for the INCL++ commands
55 theINCLXXDirectory = new G4UIdirectory(theUIDirectory);
56 theINCLXXDirectory->SetGuidance("Parameters for the INCL++ model");
57
58 // This command controls whether nucleus-nucleus reactions should accurately
59 // describe the projectile or the target nucleus (default: projectile)
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");
65 accurateNucleusCmd->SetParameterName("AccurateNucleus",true);
66 accurateNucleusCmd->SetDefaultValue("projectile");
68
69 // This command selects the maximum mass number of clusters to be produced in
70 // the INCL++ cascade
71 maxClusterMassCmd = new G4UIcmdWithAnInteger((theUIDirectory + "maxClusterMass").data(),this);
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]");
75 maxClusterMassCmd->SetParameterName("MaxClusterMass",true);
76 maxClusterMassCmd->SetDefaultValue(8);
77 maxClusterMassCmd->SetRange("MaxClusterMass>=2 && MaxClusterMass<=12");
79
80 // This command sets the energy below which PreCoumpound will be used
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);
85 cascadeMinEnergyPerNucleonCmd->SetDefaultValue(1.*MeV);
86 cascadeMinEnergyPerNucleonCmd->SetRange("cascadeMinEnergyPerNucleon>=0");
87 cascadeMinEnergyPerNucleonCmd->SetUnitCategory("Energy");
88 cascadeMinEnergyPerNucleonCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
89
90 // This command allows the user to set several INCL++ internals in one shot
91 inclPhysicsCmd = new G4UIcmdWithAString((theUIDirectory + "setPhysics").data(),this);
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");
95 inclPhysicsCmd->SetParameterName("type", false);
97
98 // This command allows the user to change the de-excitation model to be used
99 // with INCL++
100 useAblaCmd = new G4UIcommand((theUIDirectory + "useAbla").data(),this);
101 useAblaCmd->SetGuidance("Use ABLA++ as de-excitation model after INCL++.");
102 useAblaCmd->AvailableForStates(G4State_Idle);
103}
@ G4State_Idle
@ G4State_PreInit
void SetUnitCategory(const char *unitCategory)
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)
void SetDefaultValue(G4int defVal)
void SetGuidance(const char *aGuidance)
void SetRange(const char *rs)
void AvailableForStates(G4ApplicationState s1)

◆ ~G4INCLXXInterfaceMessenger()

G4INCLXXInterfaceMessenger::~G4INCLXXInterfaceMessenger ( )

Definition at line 105 of file G4INCLXXInterfaceMessenger.cc.

105 {
106 delete theINCLXXDirectory;
107 delete accurateNucleusCmd;
108 delete maxClusterMassCmd;
109 delete cascadeMinEnergyPerNucleonCmd;
110 delete inclPhysicsCmd;
111 delete useAblaCmd;
112}

Member Function Documentation

◆ SetNewValue()

void G4INCLXXInterfaceMessenger::SetNewValue ( G4UIcommand * command,
G4String newValues )
virtual

Reimplemented from G4UImessenger.

Definition at line 114 of file G4INCLXXInterfaceMessenger.cc.

114 {
115 if(command==accurateNucleusCmd) {
116 G4StrUtil::to_lower(newValues);
117 if(newValues=="projectile") {
118 theINCLXXInterfaceStore->SetAccurateProjectile(true);
119 } else if(newValues=="target") {
120 theINCLXXInterfaceStore->SetAccurateProjectile(false);
121 }
122 } else if(command==maxClusterMassCmd) {
123 const G4int parameter = maxClusterMassCmd->GetNewIntValue(newValues);
124 theINCLXXInterfaceStore->SetMaxClusterMass(parameter);
125 } else if(command==cascadeMinEnergyPerNucleonCmd) {
126 const G4double parameter = cascadeMinEnergyPerNucleonCmd->GetNewDoubleValue(newValues);
127 theINCLXXInterfaceStore->SetCascadeMinEnergyPerNucleon(parameter);
128 } else if(command==inclPhysicsCmd) {
129 theINCLXXInterfaceStore->SetINCLPhysics(newValues);
130 } else if(command==useAblaCmd) {
131 theINCLXXInterfaceStore->UseAblaDeExcitation();
132 }
133}
double G4double
Definition G4Types.hh:83
int G4int
Definition G4Types.hh:85
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.
static G4double GetNewDoubleValue(const char *paramString)
static G4int GetNewIntValue(const char *paramString)

The documentation for this class was generated from the following files: