4 // See the class description in the header file.
6 #include "AliStackingActionMessenger.h"
7 #include "AliStackingAction.h"
8 #include "AliGlobals.h"
10 #include <G4UIdirectory.hh>
11 #include <G4UIcmdWithAnInteger.hh>
12 #include <G4UIcmdWithoutParameter.hh>
14 AliStackingActionMessenger::AliStackingActionMessenger(
15 AliStackingAction* stackingAction)
16 :fStackingAction(stackingAction)
19 fStackingDirectory = new G4UIdirectory("/aliStacking/");
20 fStackingDirectory->SetGuidance("AliStackingAction control commands.");
22 fClearStackCmd = new G4UIcmdWithoutParameter("/aliStacking/clearStack", this);
23 fClearStackCmd->SetGuidance("Clears the primary stack.");
24 fClearStackCmd->AvailableForStates(EventProc);
26 fVerboseCmd = new G4UIcmdWithAnInteger("/aliStacking/verbose", this);
27 fVerboseCmd->SetGuidance("Set verbose level for AliStackingAction");
28 fVerboseCmd->SetParameterName("VerboseLevel", true);
29 fVerboseCmd->SetDefaultValue(0);
30 fVerboseCmd->SetRange("VerboseLevel >= 0 && VerboseLevel <= 1");
31 fVerboseCmd->AvailableForStates(Idle);
34 AliStackingActionMessenger::AliStackingActionMessenger() {
38 AliStackingActionMessenger::AliStackingActionMessenger(
39 const AliStackingActionMessenger& right) {
41 AliGlobals::Exception("AliStackingActionMessenger is protected from copying.");
44 AliStackingActionMessenger::~AliStackingActionMessenger() {
46 delete fStackingDirectory;
47 delete fClearStackCmd;
53 AliStackingActionMessenger&
54 AliStackingActionMessenger::operator=(const AliStackingActionMessenger &right)
56 // check assignement to self
57 if (this == &right) return *this;
59 AliGlobals::Exception(
60 "AliStackingActionMessenger is protected from assigning.");
67 void AliStackingActionMessenger::SetNewValue(G4UIcommand* command,
70 // Applies command to the associated object.
73 if (command == fClearStackCmd) {
74 fStackingAction->ClearPrimaryStack();
76 else if (command == fVerboseCmd) {
78 ->SetVerboseLevel(fVerboseCmd->GetNewIntValue(newValue));