#include "G4UIcmdWithADoubleAndUnit.hh" #include "G4UIdirectory.hh" #include "construction.hh" #include "messenger.hh" MyDetectorMessenger::MyDetectorMessenger(MyDetectorConstruction *det) : G4UImessenger(), fMyDetector(det) { fDirCmd = new G4UIdirectory("/sim1/det/"); fDirCmd->SetGuidance("Change Geometry of Detector..."); fMiniX_XYcmd = new G4UIcmdWithADoubleAndUnit("/sim1/det/setMiniXSizeXY",this); fMiniX_XYcmd->SetGuidance("Set The XY of the MiniX"); fMiniX_XYcmd->SetUnitCategory("Length"); fMiniX_XYcmd->AvailableForStates(G4State_PreInit,G4State_Idle); fMiniX_Zcmd = new G4UIcmdWithADoubleAndUnit("/sim1/det/setMiniXSizeZ",this); fMiniX_Zcmd->SetGuidance("Set The Z of the MiniX"); fMiniX_Zcmd->SetUnitCategory("Length"); fMiniX_Zcmd->AvailableForStates(G4State_PreInit,G4State_Idle); } MyDetectorMessenger::~MyDetectorMessenger(){ delete fDirCmd; delete fnRowscmd; delete fnColscmd; } void MyDetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { if( command == fMiniX_XYcmd ) { G4double Mini_XY = fMiniX_XYcmd->GetNewDoubleValue(newValue); fMyDetector->SetMiniX_XY(Mini_XY); } if( command == fMiniX_Zcmd ) { G4double Mini_Z =fMiniX_Zcmd->GetNewDoubleValue(newValue); fMyDetector->SetMiniX_Z(Mini_Z); } }