From 538301fbf252f40f16d24a3292d87fda952d5892 Mon Sep 17 00:00:00 2001
From: Markus Frank <markus.frank@cern.ch>
Date: Tue, 19 Feb 2013 17:05:12 +0000
Subject: [PATCH] Attempt to fix compilation problems for slc6

---
 DDCore/include/DD4hep/GeoHandler.h  | 13 +++++++------
 DDCore/include/XML/LCDDConverter.h  |  2 ++
 DDCore/src/XML/LCDDConverter.cpp    |  1 +
 DDG4/include/DDG4/Geant4Converter.h |  2 ++
 4 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/DDCore/include/DD4hep/GeoHandler.h b/DDCore/include/DD4hep/GeoHandler.h
index 466b27bf0..ed8de7473 100644
--- a/DDCore/include/DD4hep/GeoHandler.h
+++ b/DDCore/include/DD4hep/GeoHandler.h
@@ -31,6 +31,12 @@ namespace DD4hep {
    */
   namespace Geometry {
 
+    struct LCDD;
+    struct Volume;
+    struct PlacedVolume;
+    struct DetElement;
+    struct SensitiveDetector;
+
     /** @class GeoHandler  GeoHandler.h
      *
      * @author  M.Frank
@@ -38,6 +44,7 @@ namespace DD4hep {
      */
     class GeoHandler {
     public:
+
       typedef std::set<TGeoVolume*>                              VolumeSet;
       typedef std::set<const TGeoVolume*>                        ConstVolumeSet;
       typedef std::vector<std::pair<std::string, TGeoMatrix*> >  TransformSet;
@@ -52,12 +59,6 @@ namespace DD4hep {
       typedef std::set<TNamed*>                                  ObjectSet;
       typedef LCDD::HandleMap                                    DefinitionSet;
 
-      typedef Geometry::LCDD              LCDD;
-      typedef Geometry::Volume            Volume;
-      typedef Geometry::PlacedVolume      PlacedVolume;
-      typedef Geometry::DetElement        DetElement;
-      typedef Geometry::SensitiveDetector SensitiveDetector;
-
       struct GeometryInfo   {
 	SolidSet           solids;
 	VolumeSet          volumes;
diff --git a/DDCore/include/XML/LCDDConverter.h b/DDCore/include/XML/LCDDConverter.h
index 91ec11fa8..29796227d 100644
--- a/DDCore/include/XML/LCDDConverter.h
+++ b/DDCore/include/XML/LCDDConverter.h
@@ -45,6 +45,8 @@ namespace DD4hep {
      * @version 1.0
      */
     struct LCDDConverter : public Geometry::GeoHandler  {
+      typedef Geometry::LCDD       LCDD;
+      typedef Geometry::DetElement DetElement;
       typedef std::map<const TGeoElement*,XmlElement*> ElementMap;
       typedef std::map<const TGeoMedium*, XmlElement*> MaterialMap;
       typedef std::map<const TNamed*,     XmlElement*> LimitMap;
diff --git a/DDCore/src/XML/LCDDConverter.cpp b/DDCore/src/XML/LCDDConverter.cpp
index d258e1eed..8f97817a8 100644
--- a/DDCore/src/XML/LCDDConverter.cpp
+++ b/DDCore/src/XML/LCDDConverter.cpp
@@ -55,6 +55,7 @@ typedef Geometry::Readout      Readout;
 typedef Geometry::LimitSet     LimitSet;
 typedef Geometry::IDDescriptor IDDescriptor;
 typedef Geometry::PlacedVolume PlacedVolume;
+typedef Geometry::SensitiveDetector SensitiveDetector;
 
 #define TAG(x)  extern const Tag_t Tag_##x  (#x)
 #define ATTR(x) extern const Tag_t Attr_##x (#x)
diff --git a/DDG4/include/DDG4/Geant4Converter.h b/DDG4/include/DDG4/Geant4Converter.h
index 0ccc723c3..09ae9760e 100644
--- a/DDG4/include/DDG4/Geant4Converter.h
+++ b/DDG4/include/DDG4/Geant4Converter.h
@@ -57,6 +57,8 @@ namespace DD4hep {
      * @version 1.0
      */
     struct Geant4Converter : public Geometry::GeoHandler  {
+      typedef Geometry::LCDD       LCDD;
+      typedef Geometry::DetElement DetElement;
       typedef std::map<const TGeoElement*,G4Element*>               ElementMap;
       typedef std::map<const TGeoMedium*, G4Material*>              MaterialMap;
       typedef std::map<const TNamed*,     G4UserLimits*>            LimitMap;
-- 
GitLab