4 // Author: I. Hrivnacova
6 // Class AliTrackingActionMessenger
7 // --------------------------------
8 // See the class description in the header file.
10 #include "AliTrackingActionMessenger.h"
11 #include "AliTrackingAction.h"
12 #include "AliGlobals.h"
14 #include <G4UIdirectory.hh>
15 #include <G4UIcmdWithAnInteger.hh>
17 //_____________________________________________________________________________
18 AliTrackingActionMessenger::AliTrackingActionMessenger(
19 AliTrackingAction* trackingAction)
20 :fTrackingAction(trackingAction)
23 fTrackingDirectory = new G4UIdirectory("/aliTracking/");
24 fTrackingDirectory->SetGuidance("AliTrackingAction control commands.");
26 fVerboseCmd = new G4UIcmdWithAnInteger("/aliTracking/verbose", this);
27 fVerboseCmd->SetGuidance("Set verbose level for AliTrackingAction");
28 fVerboseCmd->SetParameterName("VerboseLevel", true);
29 fVerboseCmd->SetDefaultValue(2);
30 fVerboseCmd->SetRange("VerboseLevel >= 0 && VerboseLevel <= 3");
31 fVerboseCmd->AvailableForStates(Idle);
33 fNewVerboseCmd = new G4UIcmdWithAnInteger("/aliTracking/newVerbose", this);
34 fNewVerboseCmd->SetGuidance("Set new verbose level (/tracking/verbose)");
35 fNewVerboseCmd->SetGuidance("when a track with specified track ID ");
36 fNewVerboseCmd->SetGuidance("(/aliTracking/newVerboseTrack)\n starts tracking");
37 fNewVerboseCmd->SetParameterName("NewVerboseLevel", false);
38 fNewVerboseCmd->SetRange("NewVerboseLevel >= 0 && NewVerboseLevel <= 5");
39 fNewVerboseCmd->AvailableForStates(PreInit, Init, Idle);
41 fNewVerboseTrackCmd = new G4UIcmdWithAnInteger("/aliTracking/newVerboseTrack", this);
42 fNewVerboseTrackCmd->SetGuidance("Set the track ID for which the new verbose level");
43 fNewVerboseTrackCmd->SetGuidance("(/aliTracking/newVerbose) will be applied.");
44 fNewVerboseTrackCmd->SetParameterName("NewVerboseLevelTrackID", false);
45 fNewVerboseTrackCmd->SetRange("NewVerboseLevelTrackID >= 0");
46 fNewVerboseTrackCmd->AvailableForStates(PreInit, Init, Idle);
49 //_____________________________________________________________________________
50 AliTrackingActionMessenger::AliTrackingActionMessenger() {
54 //_____________________________________________________________________________
55 AliTrackingActionMessenger::AliTrackingActionMessenger(
56 const AliTrackingActionMessenger& right) {
58 AliGlobals::Exception(
59 "AliTrackingActionMessenger is protected from copying.");
62 //_____________________________________________________________________________
63 AliTrackingActionMessenger::~AliTrackingActionMessenger() {
65 delete fTrackingDirectory;
67 delete fNewVerboseCmd;
68 delete fNewVerboseTrackCmd;
73 //_____________________________________________________________________________
74 AliTrackingActionMessenger&
75 AliTrackingActionMessenger::operator=(const AliTrackingActionMessenger &right)
77 // check assignement to self
78 if (this == &right) return *this;
80 AliGlobals::Exception(
81 "AliTrackingActionMessenger is protected from assigning.");
88 //_____________________________________________________________________________
89 void AliTrackingActionMessenger::SetNewValue(G4UIcommand* command,
92 // Applies command to the associated object.
95 if(command == fVerboseCmd) {
97 ->SetVerboseLevel(fVerboseCmd->GetNewIntValue(newValue));
99 else if(command == fNewVerboseCmd) {
101 ->SetNewVerboseLevel(fNewVerboseCmd->GetNewIntValue(newValue));
103 else if(command == fNewVerboseTrackCmd) {
105 ->SetNewVerboseTrackID(fNewVerboseTrackCmd->GetNewIntValue(newValue));