Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4INCLXXInterfaceMessenger Class Reference

#include <G4INCLXXInterfaceMessenger.hh>

Inheritance diagram for G4INCLXXInterfaceMessenger:
Collaboration 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)
 
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)
 
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
 
G4String baseDirName
 
G4bool commandsShouldBeInMaster
 

Detailed Description

Definition at line 59 of file G4INCLXXInterfaceMessenger.hh.

Constructor & Destructor Documentation

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 mimick 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 V3 as de-excitation model after INCL++.");
102  useAblaCmd->AvailableForStates(G4State_Idle);
103 }
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetUnitCategory(const char *unitCategory)
const XML_Char const XML_Char * data
Definition: expat.h:268
void SetRange(const char *rs)
Definition: G4UIcommand.hh:125
void SetGuidance(const char *aGuidance)
Definition: G4UIcommand.hh:161
void AvailableForStates(G4ApplicationState s1)
Definition: G4UIcommand.cc:240
void SetDefaultValue(const char *defVal)
static constexpr double MeV
Definition: G4SIunits.hh:214
void SetDefaultValue(G4int defVal)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)

Here is the call graph for this function:

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

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 }
static G4int GetNewIntValue(const char *paramString)
void UseAblaDeExcitation()
Set ABLA V3 to be the de-excitation model to be used with INCL++.
static G4double GetNewDoubleValue(const char *paramString)
int G4int
Definition: G4Types.hh:78
void SetAccurateProjectile(const G4bool b)
Setter for accurateProjectile.
void SetCascadeMinEnergyPerNucleon(const G4double anEnergy)
Setter for cascadeMinEnergyPerNucleon.
void SetINCLPhysics(const G4String &option)
Set the INCL physics.
void toLower()
double G4double
Definition: G4Types.hh:76
void SetMaxClusterMass(const G4int aMass)
Setter for the maximum cluster mass.

Here is the call graph for this function:


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