4 added + 2 modified, total 6 files
lcdd/include
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
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
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
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
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
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