File indexing completed on 2025-02-23 09:22:14
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
0030 #include "ElectronBenchmarkDetectorMessenger.hh"
0031
0032 #include "ElectronBenchmarkDetector.hh"
0033
0034 #include "G4UIcmdWith3Vector.hh"
0035 #include "G4UIcmdWith3VectorAndUnit.hh"
0036 #include "G4UIcmdWithABool.hh"
0037 #include "G4UIcmdWithADouble.hh"
0038 #include "G4UIcmdWithADoubleAndUnit.hh"
0039 #include "G4UIcmdWithAString.hh"
0040 #include "G4UIcmdWithoutParameter.hh"
0041 #include "G4UIdirectory.hh"
0042
0043
0044
0045 ElectronBenchmarkDetectorMessenger::ElectronBenchmarkDetectorMessenger(
0046 ElectronBenchmarkDetector* det)
0047 : G4UImessenger(), fDetector(det), fListDir(0), fPrimFoilMatCmd(0), fPrimFoilThickCmd(0)
0048 {
0049 fListDir = new G4UIdirectory("/primFoil/");
0050 fListDir->SetGuidance("Primary foil commands");
0051
0052
0053 fPrimFoilMatCmd = new G4UIcmdWithAString("/primFoil/material", this);
0054 fPrimFoilMatCmd->SetGuidance("Material of primary foil");
0055 fPrimFoilMatCmd->SetParameterName("primFoilMat", false);
0056 fPrimFoilMatCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
0057 fPrimFoilMatCmd->SetToBeBroadcasted(false);
0058
0059
0060 fPrimFoilThickCmd = new G4UIcmdWithADoubleAndUnit("/primFoil/thickness", this);
0061 fPrimFoilThickCmd->SetGuidance("Thickness of primary foil");
0062 fPrimFoilThickCmd->SetParameterName("thickness", false);
0063 fPrimFoilThickCmd->SetDefaultUnit("cm");
0064 fPrimFoilThickCmd->AvailableForStates(G4State_PreInit);
0065 fPrimFoilThickCmd->SetToBeBroadcasted(false);
0066 }
0067
0068
0069
0070 ElectronBenchmarkDetectorMessenger::~ElectronBenchmarkDetectorMessenger()
0071 {
0072 delete fListDir;
0073 delete fPrimFoilMatCmd;
0074 delete fPrimFoilThickCmd;
0075 }
0076
0077
0078 void ElectronBenchmarkDetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValue)
0079 {
0080 if (command == fPrimFoilMatCmd) {
0081 fDetector->SetPrimFoilMaterial(newValue);
0082 }
0083 else if (command == fPrimFoilThickCmd) {
0084 fDetector->SetPrimFoilThickness(fPrimFoilThickCmd->GetNewDoubleValue(newValue));
0085 }
0086 else {
0087 G4cout << "***** Command is not found !!! " << newValue << G4endl;
0088 }
0089 }
0090
0091