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