forked from WCSim/WCSim
-
Notifications
You must be signed in to change notification settings - Fork 0
/
WCSimPhysicsListFactoryMessenger.cc
49 lines (40 loc) · 1.9 KB
/
WCSimPhysicsListFactoryMessenger.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "WCSimPhysicsListFactoryMessenger.hh"
#include "WCSimPhysicsListFactory.hh"
#include "G4UIdirectory.hh"
#include "G4ios.hh"
#include "globals.hh"
#include "G4UIcmdWithAString.hh"
WCSimPhysicsListFactoryMessenger::WCSimPhysicsListFactoryMessenger(WCSimPhysicsListFactory* WCSimPhysFactory, G4String inValidListsString)
:thisWCSimPhysicsListFactory(WCSimPhysFactory), ValidListsString(inValidListsString)
{
G4String defaultList="FTFP_BERT";
physListCmd = new G4UIcmdWithAString("/WCSim/physics/list",this);
G4String cmd_hint = "Available options: " + ValidListsString;
physListCmd->SetGuidance(cmd_hint);
physListCmd->SetGuidance("See http://geant4.cern.ch/support/proc_mod_catalog/physics_lists/useCases.shtml");
physListCmd->SetGuidance(" http://geant4.cern.ch/support/proc_mod_catalog/physics_lists/referencePL.shtml");
physListCmd->SetGuidance("Note: Physics list is locked-in after initialization");
physListCmd->SetDefaultValue(defaultList);
physListCmd->SetCandidates(ValidListsString); // ToDo get list of physics lists from G4PhysicsListFactory
SetNewValue(physListCmd, defaultList);
G4String captureModelsString = "Default HP Rad GLG4Sim";
G4String captureModelGuidance = "Available options: " + captureModelsString;
nCaptureModelCmd = new G4UIcmdWithAString("/WCSim/physics/nCapture",this);
nCaptureModelCmd->SetGuidance(captureModelGuidance);
nCaptureModelCmd->SetDefaultValue("Default");
nCaptureModelCmd->SetCandidates(captureModelsString);
}
WCSimPhysicsListFactoryMessenger::~WCSimPhysicsListFactoryMessenger()
{
delete physListCmd;
delete nCaptureModelCmd;
//delete WCSimDir;
}
void WCSimPhysicsListFactoryMessenger::SetNewValue(G4UIcommand* command, G4String newValue)
{
if (command == physListCmd)
thisWCSimPhysicsListFactory->SetList(newValue);
else if (command == nCaptureModelCmd){
thisWCSimPhysicsListFactory->SetnCaptModel(newValue);
}
}