File indexing completed on 2026-03-29 07:51:52
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #include "LETMessenger.hh"
0030
0031 #include "LET.hh"
0032 #include <G4UIcmdWithABool.hh>
0033 #include <G4UIcmdWithAString.hh>
0034 #include <G4UIcmdWithAnInteger.hh>
0035 #include <G4UIcmdWithoutParameter.hh>
0036 #include <G4UIdirectory.hh>
0037
0038 namespace RadioBio
0039 {
0040
0041
0042
0043 LETMessenger::LETMessenger(LET* LET) : G4UImessenger(), fLET(LET)
0044 {
0045
0046 fLETDir = new G4UIdirectory("/LET/");
0047 fLETDir->SetGuidance("commands to setup LET calculation");
0048
0049
0050 fCalculationCmd = new G4UIcmdWithABool("/LET/calculate", this);
0051 fCalculationCmd->SetGuidance("Whether to enable LET calculation");
0052 fCalculationCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
0053 fCalculationCmd->SetToBeBroadcasted(false);
0054
0055
0056 fVerbosityCmd = new G4UIcmdWithAnInteger("/LET/verbose", this);
0057 fVerbosityCmd->SetGuidance("Set verbosity level of LET");
0058 fVerbosityCmd->SetGuidance("0 = quiet");
0059 fVerbosityCmd->SetGuidance("1 = important messages (~10 per run)");
0060 fVerbosityCmd->SetGuidance("2 = debug");
0061 fVerbosityCmd->SetToBeBroadcasted(false);
0062
0063
0064 fResetCmd = new G4UIcmdWithoutParameter("/LET/reset", this);
0065 fResetCmd->SetGuidance("Reset accumulated data");
0066 fResetCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
0067 fResetCmd->SetToBeBroadcasted(false);
0068
0069
0070 fLETPathCmd = new G4UIcmdWithAString("/LET/fileName", this);
0071 fLETPathCmd->SetGuidance("Set the filename for the LET file");
0072 fLETPathCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
0073 fLETPathCmd->SetToBeBroadcasted(false);
0074
0075
0076 fPrintCmd = new G4UIcmdWithoutParameter("/LET/print", this);
0077 fPrintCmd->SetGuidance("Print LET parameters");
0078 fPrintCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
0079 fPrintCmd->SetToBeBroadcasted(false);
0080 }
0081
0082
0083
0084 LETMessenger::~LETMessenger()
0085 {
0086 delete fLETDir;
0087 delete fCalculationCmd;
0088 delete fVerbosityCmd;
0089 delete fResetCmd;
0090 delete fLETPathCmd;
0091 delete fPrintCmd;
0092 }
0093
0094
0095
0096 void LETMessenger::SetNewValue(G4UIcommand* command, G4String newValue)
0097 {
0098 if (command == fCalculationCmd) {
0099 fLET->SetCalculationEnabled(fCalculationCmd->GetNewBoolValue(newValue));
0100 }
0101
0102 if (command == fVerbosityCmd) {
0103 fLET->SetVerboseLevel(fVerbosityCmd->GetNewIntValue(newValue));
0104 }
0105
0106 if (command == fResetCmd) {
0107 fLET->Reset();
0108 }
0109
0110 if (command == fLETPathCmd) {
0111 fLET->SetPath(newValue);
0112 }
0113
0114 if (command == fPrintCmd) {
0115 fLET->PrintParameters();
0116 }
0117 }
0118
0119
0120
0121 }