// M Hentz, 2016 #include "SteppingActionMessenger.hh" #include "SteppingAction.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithADouble.hh" SteppingActionMessenger::SteppingActionMessenger( SteppingAction* steppingAction ) :G4UImessenger(), fSteppingAction(steppingAction), fSteppingActionDir(0), fKillCmd(0) { fSteppingActionDir = new G4UIdirectory( "/step/" ); fSteppingActionDir->SetGuidance( "stepping action control" ); fKillCmd = new G4UIcmdWithADouble( "/step/killAt", this ); fKillCmd->SetGuidance( "Kill particle if it goes beyond given position in z" ); fKillCmd->SetParameterName( "killAt", true ); fKillCmd->AvailableForStates( G4State_PreInit, G4State_Idle ); } SteppingActionMessenger::~SteppingActionMessenger() { delete fKillCmd; delete fSteppingActionDir; } void SteppingActionMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if (command == fKillCmd) { fSteppingAction->SetKillPosition( fKillCmd->GetNewDoubleValue( newValue ) ); } }