slic/include
diff -N EventDebuggerMessenger.hh
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ EventDebuggerMessenger.hh 22 Sep 2005 01:10:47 -0000 1.1
@@ -0,0 +1,36 @@
+// $Header: /cvs/lcd/slic/include/EventDebuggerMessenger.hh,v 1.1 2005/09/22 01:10:47 jeremy Exp $
+#ifndef slic_EventDebuggerMessenger_hh
+#define slic_EventDebuggerMessenger_hh 1
+
+// geant4
+#include "G4UImessenger.hh"
+#include "G4UIdirectory.hh"
+#include "G4UIcommand.hh"
+
+class G4UIcmdWithAString;
+class G4UIcmdWithABool;
+
+namespace slic
+{
+ /**
+ * @class EventDebuggerMessenger
+ * @brief G4UImessenger for the EventDebugger
+ */
+ class EventDebuggerMessenger : public G4UImessenger
+ {
+ public:
+ EventDebuggerMessenger();
+ virtual ~EventDebuggerMessenger();
+
+ public:
+ virtual void SetNewValue(G4UIcommand* cmd, G4String newVals);
+
+ private:
+ void defineCommands();
+
+ private:
+ G4UIdirectory* m_debugDir;
+ G4UIcmdWithAString* m_debugMacroCmd;
+ G4UIcmdWithAString* m_cleanupMacroCmd;
+ G4UIcommand* m_addDebugEventsCmd;
+
\ No newline at end of file
slic/src
diff -N EventDebuggerMessenger.cc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ EventDebuggerMessenger.cc 22 Sep 2005 01:10:47 -0000 1.1
@@ -0,0 +1,78 @@
+// $Header: /cvs/lcd/slic/src/EventDebuggerMessenger.cc,v 1.1 2005/09/22 01:10:47 jeremy Exp $
+#include "EventDebuggerMessenger.hh"
+
+// slic
+#include "EventDebugger.hh"
+
+// lcdd
+#include "StringUtil.hh"
+
+// geant4
+#include "G4UIcmdWithAString.hh"
+#include "G4UIcmdWithABool.hh"
+
+namespace slic
+{
+ EventDebuggerMessenger::EventDebuggerMessenger()
+ {
+ defineCommands();
+ }
+
+ EventDebuggerMessenger::~EventDebuggerMessenger()
+ {}
+
+ void EventDebuggerMessenger::SetNewValue(G4UIcommand* cmd, G4String newVals)
+ {
+ EventDebugger* debugger = EventDebugger::instance();
+ if ( cmd == m_debugMacroCmd ) {
+ debugger->setDebugMacro( newVals );
+ }
+ else if ( cmd == m_cleanupMacroCmd ) {
+ debugger->setCleanupMacro( newVals );
+ }
+ else if ( cmd == m_addDebugEventsCmd ) {
+
+ std::vector<std::string> strList;
+ const std::string str = std::string(newVals);
+ const std::string delim = " ";
+
+ StringUtil::split( str, delim, strList );
+
+ EventDebugger::DebugEventList dbgList;
+ for ( std::vector<std::string>::iterator it = strList.begin();
+ it != strList.end();
+ it++ ) {
+ debugger->addDebugEvent(StringUtil::toInt(*it));
+ }
+ }
+ else if ( cmd == m_clearDebugEventsCmd ) {
+ debugger->clearDebugEvents();
+ }
+ else if ( cmd == m_enableDebugCmd ) {
+ debugger->enableDebug( m_enableDebugCmd->GetNewBoolValue( newVals.c_str() ) );
+ }
+ }
+
+ void EventDebuggerMessenger::defineCommands()
+ {
+ m_debugDir = new G4UIdirectory( "/debug/" );
+ m_debugDir->SetGuidance( "Debugging commands." );
+
+ m_debugMacroCmd = new G4UIcmdWithAString( "/debug/debugMacro", this );
+ m_debugMacroCmd->SetGuidance( "Set macro for debugging." );
+
+ m_cleanupMacroCmd = new G4UIcmdWithAString( "/debug/cleanupMacro", this );
+ m_cleanupMacroCmd->SetGuidance( "Set macro to cleanup edebug step." );
+
+ m_addDebugEventsCmd = new G4UIcmdWithAString( "/debug/addEvents", this );
+ m_addDebugEventsCmd->SetGuidance( "Add event IDs to debug, separated by spaces." );
+
+ m_clearDebugEventsCmd = new G4UIcommand( "/debug/clearEvents", this );
+ m_clearDebugEventsCmd->SetGuidance( "Clear the list of events to debug." );
+
+ m_enableDebugCmd = new G4UIcmdWithABool( "/debug/enableDebug", this );
+ m_enableDebugCmd->SetGuidance( "Enable event debugging for all subsequent events." );
+ m_enableDebugCmd->SetParameterName("enable", true);
+ m_enableDebugCmd->SetDefaultValue(true);
+ }
+}