Commit in lcdd on MAIN
include/GDMLWriter.hh+13added 1.1
       /GDMLWriterMessenger.hh+34added 1.1
       /LCDDDetectorConstruction.hh+2-11.3 -> 1.4
src/GDMLWriter.cc+26added 1.1
   /GDMLWriterMessenger.cc+33added 1.1
   /LCDDDetectorConstruction.cc+7-41.8 -> 1.9
+115-5
4 added + 2 modified, total 6 files
support dumping current geometry using dumpGDML command

lcdd/include
GDMLWriter.hh added at 1.1
diff -N GDMLWriter.hh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ GDMLWriter.hh	17 Nov 2005 19:59:43 -0000	1.1
@@ -0,0 +1,13 @@
+// $Header: /cvs/lcd/lcdd/include/GDMLWriter.hh,v 1.1 2005/11/17 19:59:43 jeremy Exp $
+#ifndef GDMLWriter_hh
+#define GDMLWriter_hh 1
+
+#include <string>
+
+class GDMLWriter
+{
+public:
+  static void writeCurrentGeometry(const std::string& path);
+};
+
+#endif

lcdd/include
GDMLWriterMessenger.hh added at 1.1
diff -N GDMLWriterMessenger.hh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ GDMLWriterMessenger.hh	17 Nov 2005 19:59:43 -0000	1.1
@@ -0,0 +1,34 @@
+// $Header: /cvs/lcd/lcdd/include/GDMLWriterMessenger.hh,v 1.1 2005/11/17 19:59:43 jeremy Exp $
+
+#ifndef GDMLWriterMessenger_h
+#define GDMLWriterMessenger_h 1
+
+#include "G4UImessenger.hh"
+
+class G4UIcmdWithAString;
+class G4UIdirectory;
+
+/**
+ * @class GDMLWriterMessenger
+ * @brief Messenger for GDMLWriter
+ */
+class GDMLWriterMessenger : public G4UImessenger
+{
+
+public:
+  GDMLWriterMessenger();
+  virtual ~GDMLWriterMessenger();
+
+public:
+
+  void SetNewValue(G4UIcommand *, G4String newVals);
+
+private:
+
+  void defineCommands();
+
+private:
+
+  G4UIcmdWithAString* m_dumpGDMLCmd;
+}; // class
+#endif

lcdd/include
LCDDDetectorConstruction.hh 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- LCDDDetectorConstruction.hh	4 Mar 2005 22:51:02 -0000	1.3
+++ LCDDDetectorConstruction.hh	17 Nov 2005 19:59:43 -0000	1.4
@@ -1,4 +1,4 @@
-// $Header: /cvs/lcd/lcdd/include/LCDDDetectorConstruction.hh,v 1.3 2005/03/04 22:51:02 jeremy Exp $
+// $Header: /cvs/lcd/lcdd/include/LCDDDetectorConstruction.hh,v 1.4 2005/11/17 19:59:43 jeremy Exp $
 
 #ifndef LCDDDetectorConstruction_h
 #define LCDDDetectorConstruction_h 1
@@ -32,6 +32,7 @@
 private:
 
   G4UImessenger* m_messenger;
+  G4UImessenger* m_writerMessenger;
   G4VPhysicalVolume* m_world;
 
   std::string m_URI;

lcdd/src
GDMLWriter.cc added at 1.1
diff -N GDMLWriter.cc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ GDMLWriter.cc	17 Nov 2005 19:59:44 -0000	1.1
@@ -0,0 +1,26 @@
+// $Header: /cvs/lcd/lcdd/src/GDMLWriter.cc,v 1.1 2005/11/17 19:59:44 jeremy Exp $
+#include "GDMLWriter.hh"
+
+// gdml
+#include "G4Writer/G4GDMLWriter.h"
+
+// geant4
+#include "G4VPhysicalVolume.hh"
+#include "G4TransportationManager.hh"
+
+void GDMLWriter::writeCurrentGeometry(const std::string& path)
+{
+  G4cout << "Dumping current geometry to file <" << newVals << ">" << G4endl;
+
+  G4VPhysicalVolume* g4wv =
+    G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking()->GetWorldVolume();
+
+  G4GDMLWriter g4writer("http://www.lcsim.org/schemas/gdml/1.0/gdml.xsd", path);
+
+  try {
+    g4writer.DumpGeometryInfo(g4wv);
+  }
+  catch(std::exception &lerr) {
+    G4cerr << "problem writing geometry: " << lerr.what () << std::endl;
+  }
+}

lcdd/src
GDMLWriterMessenger.cc added at 1.1
diff -N GDMLWriterMessenger.cc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ GDMLWriterMessenger.cc	17 Nov 2005 19:59:44 -0000	1.1
@@ -0,0 +1,33 @@
+// $Header: /cvs/lcd/lcdd/src/GDMLWriterMessenger.cc,v 1.1 2005/11/17 19:59:44 jeremy Exp $
+#include "GDMLWriterMessenger.hh"
+
+// geant4
+#include "G4UIcmdWithAString.hh"
+
+// lcdd
+#include "GDMLWriter.hh"
+
+GDMLWriterMessenger::GDMLWriterMessenger()
+{
+  defineCommands();
+}
+
+GDMLWriterMessenger::~GDMLWriterMessenger()
+{}
+
+void GDMLWriterMessenger::SetNewValue(G4UIcommand *, G4String newVals)
+{
+  GDMLWriter::writeCurrentGeometry(newVals);
+}
+
+void GDMLWriterMessenger::defineCommands()
+{
+  m_dumpGDMLCmd = new G4UIcmdWithAString("/lcdd/dumpGDML", this);
+  m_dumpGDMLCmd->SetGuidance("Dump current geometry to GDML output file.");
+  m_dumpGDMLCmd->SetParameterName("geometryFile", true);
+  m_dumpGDMLCmd->SetDefaultValue("geometry.gdml");
+  m_dumpGDMLCmd->AvailableForStates(G4State_Idle);
+}
+
+
+

lcdd/src
LCDDDetectorConstruction.cc 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- LCDDDetectorConstruction.cc	19 Mar 2005 20:28:43 -0000	1.8
+++ LCDDDetectorConstruction.cc	17 Nov 2005 19:59:44 -0000	1.9
@@ -1,8 +1,9 @@
-// $Header: /cvs/lcd/lcdd/src/LCDDDetectorConstruction.cc,v 1.8 2005/03/19 20:28:43 jeremy Exp $
+// $Header: /cvs/lcd/lcdd/src/LCDDDetectorConstruction.cc,v 1.9 2005/11/17 19:59:44 jeremy Exp $
 
 // LCDD
 #include "LCDDDetectorConstruction.hh"
 #include "LCDDMessenger.hh"
+#include "GDMLWriterMessenger.hh"
 #include "LCDDParser.hh"
 #include "GeometryManager.hh"
 
@@ -20,6 +21,9 @@
   // LCDD messenger
   m_messenger = new LCDDMessenger();
 
+  // writer messenger
+  m_writerMessenger = new GDMLWriterMessenger();  	  
+
   // setup geo manager
   GeometryManager::instance();
 
@@ -29,9 +33,8 @@
 
 LCDDDetectorConstruction::~LCDDDetectorConstruction()
 {
-  if (m_messenger) {
-    delete m_messenger;
-  }
+  delete m_writerMessenger;
+  delete m_messenger;
 }
 
 G4VPhysicalVolume* LCDDDetectorConstruction::Construct()
CVSspam 0.2.8