1 | #include "ELYSE/PhysicsMessenger.hh" |
---|
2 | |
---|
3 | //Geant4 |
---|
4 | #include "G4UIdirectory.hh" |
---|
5 | #include "G4ios.hh" |
---|
6 | #include "globals.hh" |
---|
7 | #include "G4UIcmdWithAString.hh" |
---|
8 | #include "G4UIcmdWithAnInteger.hh" |
---|
9 | |
---|
10 | //ELYSE |
---|
11 | #include "ELYSE/PhysicsList.hh" |
---|
12 | |
---|
13 | |
---|
14 | ELYSE::PhysicsMessenger::PhysicsMessenger(ELYSE::PhysicsList* ELYSEPhys) |
---|
15 | :ELYSEPhysics(ELYSEPhys) { |
---|
16 | |
---|
17 | ELYSEDir = new G4UIdirectory("/ELYSE/"); |
---|
18 | ELYSEDir->SetGuidance("UI commands of this example"); |
---|
19 | |
---|
20 | physDir = new G4UIdirectory("/ELYSE/phys/"); |
---|
21 | physDir->SetGuidance("PhysicsList control"); |
---|
22 | |
---|
23 | verboseCmd = new G4UIcmdWithAnInteger("/ELYSE/phys/verbose",this); |
---|
24 | verboseCmd->SetGuidance("set verbose for physics processes"); |
---|
25 | verboseCmd->SetParameterName("verbose",true); |
---|
26 | verboseCmd->SetDefaultValue(1); |
---|
27 | verboseCmd->SetRange("verbose>=0"); |
---|
28 | verboseCmd->AvailableForStates(G4State_PreInit,G4State_Idle); |
---|
29 | |
---|
30 | cerenkovCmd = new G4UIcmdWithAnInteger("/ELYSE/phys/cerenkovMaxPhotons",this); |
---|
31 | cerenkovCmd->SetGuidance("set max nb of photons per step"); |
---|
32 | cerenkovCmd->SetParameterName("MaxNumber",false); |
---|
33 | cerenkovCmd->SetRange("MaxNumber>=0"); |
---|
34 | cerenkovCmd->AvailableForStates(G4State_Idle); |
---|
35 | |
---|
36 | }//Ctor |
---|
37 | |
---|
38 | //--------------------------------------------------------------------------------- |
---|
39 | |
---|
40 | ELYSE::PhysicsMessenger::~PhysicsMessenger() { |
---|
41 | delete verboseCmd; |
---|
42 | delete cerenkovCmd; |
---|
43 | delete physDir; |
---|
44 | delete ELYSEDir; |
---|
45 | }//Dtor |
---|
46 | |
---|
47 | //--------------------------------------------------------------------------------- |
---|
48 | |
---|
49 | void ELYSE::PhysicsMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { |
---|
50 | |
---|
51 | if( command == verboseCmd ) { |
---|
52 | ELYSEPhysics->SetVerbose(verboseCmd->GetNewIntValue(newValue)); |
---|
53 | } |
---|
54 | |
---|
55 | if( command == cerenkovCmd ) { |
---|
56 | ELYSEPhysics->SetNbOfPhotonsCerenkov(cerenkovCmd->GetNewIntValue(newValue)); |
---|
57 | } |
---|
58 | |
---|
59 | }//SetNewValue |
---|