Geant4 10.7.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 ()
 
 G4UImessenger (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
 
virtual ~G4UImessenger ()
 
virtual G4String GetCurrentValue (G4UIcommand *command)
 
virtual void SetNewValue (G4UIcommand *command, G4String newValue)
 
G4bool operator== (const G4UImessenger &messenger) const
 
G4bool operator!= (const G4UImessenger &messenger) const
 
G4bool CommandsShouldBeInMaster () const
 

Additional Inherited Members

- Protected Member Functions inherited from G4UImessenger
G4String ItoS (G4int i)
 
G4String DtoS (G4double a)
 
G4String BtoS (G4bool b)
 
G4int StoI (G4String s)
 
G4long StoL (G4String s)
 
G4double StoD (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)
Definition: G4UIcommand.hh:156
void SetRange(const char *rs)
Definition: G4UIcommand.hh:120
void AvailableForStates(G4ApplicationState s1)
Definition: G4UIcommand.cc:273

◆ ~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 newValues.toLower();
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.
void toLower()
static G4double GetNewDoubleValue(const char *paramString)
static G4int GetNewIntValue(const char *paramString)

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