Geant4 11.4.0
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 (const 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");
67 accurateNucleusCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
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");
78 maxClusterMassCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
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);
96 inclPhysicsCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
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

◆ ~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 to_lower(G4String &str)
Convert string to lowercase.

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