Import Geant4 9.6.0 source tree
This commit is contained in:
@@ -23,9 +23,10 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file field/field04/src/F04RunActionMessenger.cc
|
||||
/// \brief Implementation of the F04RunActionMessenger class
|
||||
//
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
@@ -37,53 +38,61 @@
|
||||
#include "F04RunAction.hh"
|
||||
#include "F04RunActionMessenger.hh"
|
||||
|
||||
F04RunActionMessenger::F04RunActionMessenger(F04RunAction* RA)
|
||||
: runAction (RA)
|
||||
{
|
||||
RndmDir = new G4UIdirectory("/rndm/");
|
||||
RndmDir->SetGuidance("Rndm status control.");
|
||||
|
||||
RndmSaveCmd = new G4UIcmdWithAnInteger("/rndm/save",this);
|
||||
RndmSaveCmd->SetGuidance("set frequency to save rndm status on external files.");
|
||||
RndmSaveCmd->SetGuidance("freq = 0 not saved");
|
||||
RndmSaveCmd->SetGuidance("freq > 0 saved on: beginOfRun.rndm");
|
||||
RndmSaveCmd->SetGuidance("freq = 1 saved on: endOfRun.rndm");
|
||||
RndmSaveCmd->SetGuidance("freq = 2 saved on: endOfEvent.rndm");
|
||||
RndmSaveCmd->SetParameterName("frequency",false);
|
||||
RndmSaveCmd->SetRange("frequency>=0 && frequency<=2");
|
||||
RndmSaveCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
RndmReadCmd = new G4UIcmdWithAString("/rndm/read",this);
|
||||
RndmReadCmd->SetGuidance("get rndm status from an external file.");
|
||||
RndmReadCmd->SetParameterName("fileName",true);
|
||||
RndmReadCmd->SetDefaultValue ("beginOfRun.rndm");
|
||||
RndmReadCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
SetAutoSeedCmd = new G4UIcmdWithABool("/rndm/autoSeed",this);
|
||||
SetAutoSeedCmd->SetGuidance("Switch on/off time-based random seeds");
|
||||
SetAutoSeedCmd->SetGuidance(" true: run seeds determined by system time");
|
||||
SetAutoSeedCmd->SetGuidance("false: use command 'random/resetEngineFrom'");
|
||||
SetAutoSeedCmd->SetGuidance("Default = false");
|
||||
SetAutoSeedCmd->SetParameterName("autoSeed", false);
|
||||
SetAutoSeedCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
F04RunActionMessenger::F04RunActionMessenger(F04RunAction* runAction)
|
||||
: fRunAction (runAction)
|
||||
{
|
||||
fRndmDir = new G4UIdirectory("/rndm/");
|
||||
fRndmDir->SetGuidance("Rndm status control.");
|
||||
|
||||
fRndmSaveCmd = new G4UIcmdWithAnInteger("/rndm/save",this);
|
||||
fRndmSaveCmd->
|
||||
SetGuidance("set frequency to save rndm status on external files.");
|
||||
fRndmSaveCmd->SetGuidance("freq = 0 not saved");
|
||||
fRndmSaveCmd->SetGuidance("freq > 0 saved on: beginOfRun.rndm");
|
||||
fRndmSaveCmd->SetGuidance("freq = 1 saved on: endOfRun.rndm");
|
||||
fRndmSaveCmd->SetGuidance("freq = 2 saved on: endOfEvent.rndm");
|
||||
fRndmSaveCmd->SetParameterName("frequency",false);
|
||||
fRndmSaveCmd->SetRange("frequency>=0 && frequency<=2");
|
||||
fRndmSaveCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fRndmReadCmd = new G4UIcmdWithAString("/rndm/read",this);
|
||||
fRndmReadCmd->SetGuidance("get rndm status from an external file.");
|
||||
fRndmReadCmd->SetParameterName("fileName",true);
|
||||
fRndmReadCmd->SetDefaultValue ("beginOfRun.rndm");
|
||||
fRndmReadCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fSetAutoSeedCmd = new G4UIcmdWithABool("/rndm/autoSeed",this);
|
||||
fSetAutoSeedCmd->SetGuidance("Switch on/off time-based random seeds");
|
||||
fSetAutoSeedCmd->SetGuidance(" true: run seeds determined by system time");
|
||||
fSetAutoSeedCmd->SetGuidance("false: use command 'random/resetEngineFrom'");
|
||||
fSetAutoSeedCmd->SetGuidance("Default = false");
|
||||
fSetAutoSeedCmd->SetParameterName("autoSeed", false);
|
||||
fSetAutoSeedCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
F04RunActionMessenger::~F04RunActionMessenger()
|
||||
{
|
||||
delete RndmDir; delete RndmSaveCmd; delete RndmReadCmd; delete SetAutoSeedCmd;
|
||||
{
|
||||
delete fRndmDir; delete fRndmSaveCmd;
|
||||
delete fRndmReadCmd; delete fSetAutoSeedCmd;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void F04RunActionMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
|
||||
{
|
||||
if (command == RndmSaveCmd)
|
||||
runAction->SetRndmFreq(RndmSaveCmd->GetNewIntValue(newValue));
|
||||
|
||||
if (command == RndmReadCmd)
|
||||
if (command == fRndmSaveCmd)
|
||||
fRunAction->SetRndmFreq(fRndmSaveCmd->GetNewIntValue(newValue));
|
||||
|
||||
if (command == fRndmReadCmd)
|
||||
{ G4cout << "\n---> rndm status restored from file: " << newValue << G4endl;
|
||||
CLHEP::HepRandom::restoreEngineStatus(newValue);
|
||||
CLHEP::HepRandom::showEngineStatus();
|
||||
}
|
||||
|
||||
if(command == SetAutoSeedCmd)
|
||||
runAction->SetAutoSeed(SetAutoSeedCmd->GetNewBoolValue(newValue));
|
||||
if(command == fSetAutoSeedCmd)
|
||||
fRunAction->SetAutoSeed(fSetAutoSeedCmd->GetNewBoolValue(newValue));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user