]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TGeant4/TG4Messenger.cxx
Corrected bug in constructor (fIshunt has to be =1)
[u/mrichter/AliRoot.git] / TGeant4 / TG4Messenger.cxx
CommitLineData
2817d3e2 1// $Id$
2// Category: run
3//
4// See the class description in the header file.
5
6#include "TG4Messenger.h"
7#include "TG4GeometryManager.h"
8#include "TG4StepManager.h"
9#include "TG4PhysicsManager.h"
10
11#include <G4UIcmdWithoutParameter.hh>
5688e846 12#include <G4UIcmdWithABool.hh>
2817d3e2 13
14TG4Messenger::TG4Messenger(TG4GeometryManager* geometryManager,
5688e846 15 TG4PhysicsManager* physicsManager,
16 TG4StepManager* stepManager)
2817d3e2 17 : fGeometryManager(geometryManager),
18 fPhysicsManager(physicsManager),
19 fStepManager(stepManager)
20{
21//
5688e846 22 fSetEMCmd
23 = new G4UIcmdWithABool("/g4mc/setEM", this);
24 fSetEMCmd->SetGuidance("Set electromagnetic processes.");
25 fSetEMCmd->SetParameterName("EMControl", false);
26 fSetEMCmd->AvailableForStates(PreInit);
27
28 fSetOpticalCmd
29 = new G4UIcmdWithABool("/g4mc/setOptical", this);
30 fSetOpticalCmd->SetGuidance("Set Cerenkov and optical processes.");
31 fSetOpticalCmd->SetParameterName("OpticalControl", false);
32 fSetOpticalCmd->AvailableForStates(PreInit);
33
34 fSetHadronCmd
35 = new G4UIcmdWithABool("/g4mc/setHadron", this);
36 fSetHadronCmd->SetGuidance("Set hadron processes.");
37 fSetHadronCmd->SetParameterName("HadronControl", false);
38 fSetHadronCmd->AvailableForStates(PreInit);
39
40 fSetSpecialCutsCmd
41 = new G4UIcmdWithABool("/g4mc/setSpecialCuts", this);
42 fSetSpecialCutsCmd->SetGuidance("Set special cuts process.");
43 fSetSpecialCutsCmd
44 ->SetGuidance("!! Support for this option is under development.");
45 fSetSpecialCutsCmd->SetParameterName("SpecialCutsControl", false);
46 fSetSpecialCutsCmd->AvailableForStates(PreInit);
47
48 fSetSpecialControlsCmd
49 = new G4UIcmdWithABool("/g4mc/setSpecialControls", this);
50 fSetSpecialControlsCmd->SetGuidance("Set special controls process.");
51 fSetSpecialControlsCmd
52 ->SetGuidance("!! Support for this option is under development.");
53 fSetSpecialControlsCmd->SetParameterName("SpecialFlagsControl", false);
54 fSetSpecialControlsCmd->AvailableForStates(PreInit);
55
2817d3e2 56 fProcessActivationCmd
57 = new G4UIcmdWithoutParameter("/g4mc/setProcessActivation", this);
58 fProcessActivationCmd->SetGuidance("Activate/inactivate physics processes.");
59 fProcessActivationCmd->AvailableForStates(Idle);
60}
61
62TG4Messenger::TG4Messenger(){
63//
64}
65
66TG4Messenger::TG4Messenger(const TG4Messenger& right) {
67//
68 TG4Globals::Exception("TG4Messenger is protected from copying.");
69}
70
71TG4Messenger::~TG4Messenger() {
72//
5688e846 73 delete fSetEMCmd;
74 delete fSetOpticalCmd;
75 delete fSetHadronCmd;
76 delete fSetSpecialCutsCmd;
77 delete fSetSpecialControlsCmd;
2817d3e2 78 delete fProcessActivationCmd;
79}
80
81// operators
82
83TG4Messenger& TG4Messenger::operator=(const TG4Messenger& right)
84{
85 // check assignement to self
86 if (this == &right) return *this;
87
88 TG4Globals::Exception("TG4Messenger is protected from assigning.");
89
90 return *this;
91}
92
93// public methods
94
95void TG4Messenger::SetNewValue(G4UIcommand* command, G4String newValue)
96{
97// Applies command to the associated object.
98// ---
99
5688e846 100 if (command == fSetEMCmd) {
101 fPhysicsManager
102 ->SetEMPhysics(fSetOpticalCmd->GetNewBoolValue(newValue));
103 }
104 else if (command == fSetOpticalCmd) {
105 fPhysicsManager
106 ->SetOpticalPhysics(fSetOpticalCmd->GetNewBoolValue(newValue));
107 }
108 else if (command == fSetHadronCmd) {
109 fPhysicsManager
110 ->SetHadronPhysics(fSetHadronCmd->GetNewBoolValue(newValue));
111 }
112 else if (command == fSetSpecialCutsCmd) {
113 fPhysicsManager
114 ->SetSpecialCutsPhysics(fSetSpecialCutsCmd->GetNewBoolValue(newValue));
115 }
116 else if (command == fSetSpecialControlsCmd) {
117 fPhysicsManager
118 ->SetSpecialControlsPhysics(
119 fSetSpecialControlsCmd->GetNewBoolValue(newValue));
120 }
2817d3e2 121 if (command == fProcessActivationCmd) {
122 fPhysicsManager->SetProcessActivation();
123 }
124}