]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliTrackingActionMessenger.cxx
New Clusterization by IHEP (yuri)
[u/mrichter/AliRoot.git] / AliGeant4 / AliTrackingActionMessenger.cxx
1 // $Id$
2 // Category: event
3 //
4 // Author: I. Hrivnacova
5 //
6 // Class AliTrackingActionMessenger
7 // --------------------------------
8 // See the class description in the header file.
9  
10 #include "AliTrackingActionMessenger.h"
11 #include "AliTrackingAction.h"
12 #include "AliGlobals.h"
13
14 #include <G4UIdirectory.hh>
15 #include <G4UIcmdWithAnInteger.hh>
16
17 //_____________________________________________________________________________
18 AliTrackingActionMessenger::AliTrackingActionMessenger(
19                               AliTrackingAction* trackingAction)
20   :fTrackingAction(trackingAction)
21 {
22 // 
23   fTrackingDirectory = new G4UIdirectory("/aliTracking/");
24   fTrackingDirectory->SetGuidance("AliTrackingAction control commands.");
25
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);
32
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);
40
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);
47 }
48
49 //_____________________________________________________________________________
50 AliTrackingActionMessenger::AliTrackingActionMessenger() {
51 //
52 }
53
54 //_____________________________________________________________________________
55 AliTrackingActionMessenger::AliTrackingActionMessenger(
56                                  const AliTrackingActionMessenger& right) {
57 //                               
58   AliGlobals::Exception(
59     "AliTrackingActionMessenger is protected from copying.");
60 }
61
62 //_____________________________________________________________________________
63 AliTrackingActionMessenger::~AliTrackingActionMessenger() {
64 //
65   delete fTrackingDirectory;
66   delete fVerboseCmd;
67   delete fNewVerboseCmd;
68   delete fNewVerboseTrackCmd;
69 }
70
71 // operators
72
73 //_____________________________________________________________________________
74 AliTrackingActionMessenger& 
75 AliTrackingActionMessenger::operator=(const AliTrackingActionMessenger &right)
76 {
77   // check assignement to self
78   if (this == &right) return *this;
79   
80   AliGlobals::Exception(
81     "AliTrackingActionMessenger is protected from assigning.");
82
83   return *this;
84 }
85
86 // public methods
87
88 //_____________________________________________________________________________
89 void AliTrackingActionMessenger::SetNewValue(G4UIcommand* command, 
90        G4String newValue)
91
92 // Applies command to the associated object.
93 // ---
94
95   if(command == fVerboseCmd) { 
96     fTrackingAction
97       ->SetVerboseLevel(fVerboseCmd->GetNewIntValue(newValue)); 
98   }   
99   else if(command == fNewVerboseCmd) { 
100     fTrackingAction
101       ->SetNewVerboseLevel(fNewVerboseCmd->GetNewIntValue(newValue)); 
102   }   
103   else if(command == fNewVerboseTrackCmd) { 
104     fTrackingAction
105       ->SetNewVerboseTrackID(fNewVerboseTrackCmd->GetNewIntValue(newValue)); 
106   }   
107 }