#include <G4StackingMessenger.hh>
Inheritance diagram for G4StackingMessenger:
Public Member Functions | |
G4StackingMessenger (G4StackManager *fCont) | |
~G4StackingMessenger () | |
void | SetNewValue (G4UIcommand *command, G4String newValues) |
Definition at line 48 of file G4StackingMessenger.hh.
G4StackingMessenger::G4StackingMessenger | ( | G4StackManager * | fCont | ) |
Definition at line 38 of file G4StackingMessenger.cc.
References G4UIcommand::AvailableForStates(), G4State_EventProc, G4State_GeomClosed, G4UIcmdWithAnInteger::SetDefaultValue(), G4UIcommand::SetGuidance(), G4UIcmdWithAnInteger::SetParameterName(), and G4UIcommand::SetRange().
00039 :fContainer(fCont) 00040 { 00041 stackDir = new G4UIdirectory("/event/stack/"); 00042 stackDir->SetGuidance("Stack control commands."); 00043 00044 statusCmd = new G4UIcmdWithoutParameter("/event/stack/status",this); 00045 statusCmd->SetGuidance("List current status of the stack."); 00046 00047 clearCmd = new G4UIcmdWithAnInteger("/event/stack/clear",this); 00048 clearCmd->SetGuidance("Clear stacked tracks."); 00049 clearCmd->SetGuidance(" 2 : clear all tracks in all stacks"); 00050 clearCmd->SetGuidance(" 1 : clear tracks in the urgent and waiting stacks"); 00051 clearCmd->SetGuidance(" 0 : clear tracks in the waiting stack (default)"); 00052 clearCmd->SetGuidance("-1 : clear tracks in the urgent stack"); 00053 clearCmd->SetGuidance("-2 : clear tracks in the postponed stack"); 00054 clearCmd->SetParameterName("level",true); 00055 clearCmd->SetDefaultValue(0); 00056 clearCmd->SetRange("level>=-2&&level<=2"); 00057 clearCmd->AvailableForStates(G4State_GeomClosed,G4State_EventProc); 00058 00059 verboseCmd = new G4UIcmdWithAnInteger("/event/stack/verbose",this); 00060 verboseCmd->SetGuidance("Set verbose level for G4StackManager"); 00061 verboseCmd->SetGuidance(" 0 : Silence (default)"); 00062 verboseCmd->SetGuidance(" 1 : Minimum statistics"); 00063 verboseCmd->SetGuidance(" 2 : Detailed reports"); 00064 verboseCmd->SetGuidance("Note - this value is overwritten by /event/verbose command."); 00065 00066 }
G4StackingMessenger::~G4StackingMessenger | ( | ) |
Definition at line 68 of file G4StackingMessenger.cc.
00069 { 00070 delete statusCmd; 00071 delete clearCmd; 00072 delete verboseCmd; 00073 delete stackDir; 00074 }
void G4StackingMessenger::SetNewValue | ( | G4UIcommand * | command, | |
G4String | newValues | |||
) | [virtual] |
Reimplemented from G4UImessenger.
Definition at line 76 of file G4StackingMessenger.cc.
References G4StackManager::ClearPostponeStack(), G4StackManager::ClearUrgentStack(), G4StackManager::ClearWaitingStack(), G4cout, G4endl, G4UIcmdWithAnInteger::GetNewIntValue(), G4StackManager::GetNPostponedTrack(), G4StackManager::GetNUrgentTrack(), G4StackManager::GetNWaitingTrack(), and G4StackManager::SetVerboseLevel().
00077 { 00078 if( command==statusCmd ) 00079 { 00080 G4cout << "========================== Current status of the stack =====" << G4endl; 00081 G4cout << " Number of tracks in the stack" << G4endl; 00082 G4cout << " Urgent stack : " << fContainer->GetNUrgentTrack() << G4endl; 00083 G4cout << " Waiting stack : " << fContainer->GetNWaitingTrack() << G4endl; 00084 G4cout << " Postponed stack : " << fContainer->GetNPostponedTrack() << G4endl; 00085 } 00086 else if( command==clearCmd ) 00087 { 00088 G4int vc = clearCmd->GetNewIntValue(newValues); 00089 switch (vc) 00090 { 00091 case 2: 00092 fContainer->ClearPostponeStack(); 00093 case 1: 00094 fContainer->ClearUrgentStack(); 00095 case 0: 00096 fContainer->ClearWaitingStack(); 00097 break; 00098 case -1: 00099 fContainer->ClearUrgentStack(); 00100 break; 00101 case -2: 00102 fContainer->ClearPostponeStack(); 00103 break; 00104 } 00105 } 00106 else if( command==verboseCmd ) 00107 { 00108 fContainer->SetVerboseLevel(verboseCmd->GetNewIntValue(newValues)); 00109 } 00110 }