File indexing completed on 2025-01-31 09:22:18
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 "HadrontherapyPrimaryGeneratorMessenger.hh"
0030 #include "HadrontherapyPrimaryGeneratorAction.hh"
0031 #include "G4UIdirectory.hh"
0032 #include "G4UIcmdWithADoubleAndUnit.hh"
0033 #include "G4UIcmdWithADouble.hh"
0034 #include "G4SystemOfUnits.hh"
0035 #include "G4UIcmdWithAString.hh"
0036 #include "G4UIcmdWithAnInteger.hh"
0037 #include "G4UIcmdWithABool.hh"
0038
0039 HadrontherapyPrimaryGeneratorMessenger::HadrontherapyPrimaryGeneratorMessenger(
0040 HadrontherapyPrimaryGeneratorAction* HadrontherapyGun)
0041 :HadrontherapyAction(HadrontherapyGun)
0042 {
0043
0044 changeTheSource = new G4UIdirectory("/primaryParticleData/");
0045 changeTheSource -> SetGuidance("Command to change the source");
0046
0047 NewSource = new G4UIcmdWithABool("/primaryParticleData/NewSource",this);
0048 NewSource -> SetParameterName("NewSource ", true);
0049 NewSource -> SetDefaultValue("false");
0050 NewSource -> SetGuidance("Set if you want read a .txt file"
0051 "\n[usage]: /primaryParticleData/NewSource [true/false]");
0052 NewSource -> AvailableForStates(G4State_Idle, G4State_PreInit);
0053
0054
0055 calculatedPhaseSpaceFileIN=new G4UIcmdWithAString("/primaryParticleData/calculatedPhaseSpaceFileIN",this);
0056 calculatedPhaseSpaceFileIN->SetDefaultValue("");
0057 calculatedPhaseSpaceFileIN->SetGuidance("full path and file name of the phase space file to be used as particle generator");
0058
0059
0060
0061 }
0062
0063 HadrontherapyPrimaryGeneratorMessenger::~HadrontherapyPrimaryGeneratorMessenger()
0064 {
0065
0066 delete NewSource;
0067 delete changeTheSource;
0068 delete calculatedPhaseSpaceFileIN;
0069
0070
0071 }
0072
0073
0074 void HadrontherapyPrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, G4String NewValue)
0075
0076 {
0077 if (command == calculatedPhaseSpaceFileIN)
0078 {
0079 HadrontherapyAction->setCalculatedPhaseSpaceFileIN(NewValue);
0080 }
0081
0082 if (command == NewSource)
0083 {
0084 HadrontherapyAction->setNewSource(NewSource->GetNewBoolValue(NewValue));
0085
0086 }
0087
0088 }
0089
0090
0091