From c802223da3240292d7b569a731b804fcb88c83ec Mon Sep 17 00:00:00 2001
From: Markus Frank <markus.frank@cern.ch>
Date: Thu, 25 Sep 2014 19:41:11 +0000
Subject: [PATCH] Improve doxygen documentation

---
 DDCore/include/DD4hep/Callback.h              |   2 +
 DDCore/include/DD4hep/DD4hepUnits.h           |   1 +
 DDCore/include/DD4hep/DetectorTools.h         |   9 +-
 DDCore/include/DD4hep/Dictionary.h            |   9 +
 DDCore/include/DD4hep/Factories.h             |  37 +-
 DDCore/include/DD4hep/NamedObject.h           |   4 +-
 DDCore/include/DD4hep/ObjectExtensions.h      |   4 +-
 DDCore/include/DD4hep/Objects.h               |  20 +-
 DDCore/include/DD4hep/Parsers.h               |   3 +
 DDCore/include/DD4hep/Plugins.h               |   7 +-
 DDCore/include/DD4hep/Primitives.h            |   5 +-
 DDCore/include/DD4hep/Printout.h              |   7 +-
 DDCore/include/DD4hep/Readout.h               |  10 +-
 DDCore/include/DD4hep/Segmentations.h         |  12 +-
 DDCore/include/DD4hep/Shapes.h                |  10 +-
 DDCore/include/DD4hep/ToStream.h              |   3 +
 DDCore/include/DD4hep/VolumeManager.h         |  10 +-
 DDCore/include/DD4hep/Volumes.h               |  51 +-
 DDCore/include/XML/DocumentHandler.h          |  12 +-
 DDCore/src/DetectorTools.cpp                  |  12 +-
 DDCore/src/XML/XMLElements.cpp                |   4 +
 DDG4/include/DDG4/ComponentProperties.h       |  19 +-
 DDG4/include/DDG4/ComponentUtils.h            |   4 +-
 DDG4/include/DDG4/Defs.h                      |  10 +-
 DDG4/include/DDG4/Geant4Data.h                |  89 +-
 DDG4/include/DDG4/Geant4Field.h               |  11 +-
 DDG4/include/DDG4/Geant4Handle.h              |  19 +-
 DDG4/include/DDG4/Geant4HierarchyDump.h       |   3 +-
 DDG4/include/DDG4/Geant4HitCollection.h       |  29 +-
 DDG4/include/DDG4/Geant4Hits.h                |  25 +-
 DDG4/include/DDG4/Geant4InputAction.h         |  12 +-
 DDG4/include/DDG4/Geant4InputHandling.h       |   8 +-
 DDG4/include/DDG4/Geant4InteractionMerger.h   |   9 +-
 .../DDG4/Geant4InteractionVertexBoost.h       |  15 +-
 .../DDG4/Geant4InteractionVertexSmear.h       |  18 +-
 DDG4/include/DDG4/Geant4IsotropeGenerator.h   |   8 +-
 DDG4/include/DDG4/Geant4Kernel.h              |  26 +-
 DDG4/include/DDG4/Geant4Mapping.h             |  17 +-
 DDG4/include/DDG4/Geant4MonteCarloTruth.h     |   3 +-
 DDG4/include/DDG4/Geant4OutputAction.h        |  15 +-
 DDG4/include/DDG4/Geant4Particle.h            |  11 +-
 DDG4/include/DDG4/Geant4ParticleGun.h         |  11 +-
 DDG4/include/DDG4/Geant4ParticleHandler.h     |  18 +-
 DDG4/include/DDG4/Geant4ParticlePrint.h       |  12 +-
 DDG4/include/DDG4/Geant4PhysicsList.h         |  32 +-
 DDG4/include/DDG4/Geant4Primary.h             |   9 +-
 DDG4/include/DDG4/Geant4PrimaryHandler.h      |  12 +-
 DDG4/include/DDG4/Geant4Primitives.h          |   8 +-
 DDG4/include/DDG4/Geant4Random.h              |   8 +-
 DDG4/include/DDG4/Geant4RunAction.h           |  13 +-
 DDG4/include/DDG4/Geant4SensDetAction.h       |  20 +-
 DDG4/include/DDG4/Geant4SensitiveDetector.h   |  14 +-
 DDG4/include/DDG4/Geant4StackingAction.h      |  14 +-
 DDG4/include/DDG4/Geant4StepHandler.h         |  10 +-
 DDG4/include/DDG4/Geant4TestActions.h         |  27 +-
 DDG4/include/DDG4/Geant4TouchableHandler.h    |   9 +-
 DDG4/include/DDG4/Geant4TrackHandler.h        |  10 +-
 DDG4/include/DDG4/Geant4TrackingAction.h      |  14 +-
 DDG4/include/DDG4/Geant4UIManager.h           |  12 +-
 DDG4/include/DDG4/Geant4UIMessenger.h         |   9 +-
 DDG4/include/DDG4/Geant4UserParticleHandler.h |  13 +-
 DDG4/include/DDG4/Geant4UserPhysicsList.h     |  11 +-
 DDG4/include/DDG4/Geant4VolumeManager.h       |  11 +-
 DDG4/lcio/LCIOConversions.cpp                 |   2 +-
 DDG4/plugins/Geant4SensDetFilters.cpp         |  35 +-
 DDG4/python/DDG4.py                           |   4 +-
 DDG4/src/Geant4Exec.cpp                       |  29 +-
 DDG4/src/Geant4VolumeManager.cpp              |   1 +
 doc/LaTex/CERN-logo.png                       | Bin 0 -> 2935 bytes
 doc/doxygen/DD4hep.css                        | 949 ++++++++++++++++++
 doc/doxygen/DD4hepFigures.dox                 |  31 +
 doc/doxygen/DD4hepFooter.html                 |  16 +
 doc/doxygen/DD4hepHeader.html                 |  50 +
 doc/doxygen/DD4hepMainpage.dox                | 244 +++++
 74 files changed, 1695 insertions(+), 546 deletions(-)
 create mode 100644 doc/LaTex/CERN-logo.png
 create mode 100644 doc/doxygen/DD4hep.css
 create mode 100644 doc/doxygen/DD4hepFigures.dox
 create mode 100644 doc/doxygen/DD4hepFooter.html
 create mode 100644 doc/doxygen/DD4hepHeader.html
 create mode 100644 doc/doxygen/DD4hepMainpage.dox

diff --git a/DDCore/include/DD4hep/Callback.h b/DDCore/include/DD4hep/Callback.h
index 1a97069c9..9d64fd5bb 100644
--- a/DDCore/include/DD4hep/Callback.h
+++ b/DDCore/include/DD4hep/Callback.h
@@ -62,6 +62,8 @@ namespace DD4hep {
     template <typename T> static const T* c_cast(const void* p) {
       return (const T*) p;
     }
+
+    /// Wrapper around a C++ member function pointer
     template <typename T> struct Wrapper {
     public:
       typedef T pmf_t;
diff --git a/DDCore/include/DD4hep/DD4hepUnits.h b/DDCore/include/DD4hep/DD4hepUnits.h
index 5c952a28e..ab6bb6996 100644
--- a/DDCore/include/DD4hep/DD4hepUnits.h
+++ b/DDCore/include/DD4hep/DD4hepUnits.h
@@ -14,6 +14,7 @@
 #ifndef DD4HEP_TGEOUNITS_H
 #define DD4HEP_TGEOUNITS_H
 
+/// Utility namespace to support TGeo units.
 namespace dd4hep {
 
 //
diff --git a/DDCore/include/DD4hep/DetectorTools.h b/DDCore/include/DD4hep/DetectorTools.h
index 9654ed3da..88a7335df 100644
--- a/DDCore/include/DD4hep/DetectorTools.h
+++ b/DDCore/include/DD4hep/DetectorTools.h
@@ -12,16 +12,13 @@
 // Framework include files
 #include "DD4hep/Detector.h"
 
+// Forward declarations
 class TGeoHMatrix;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Geometry namespace declaration
-   */
+  /// Namespace for the geometry part of the AIDA detector description toolkit
   namespace Geometry {
 
     // Forward declarations
diff --git a/DDCore/include/DD4hep/Dictionary.h b/DDCore/include/DD4hep/Dictionary.h
index 17d7e64ad..f6fb8e344 100644
--- a/DDCore/include/DD4hep/Dictionary.h
+++ b/DDCore/include/DD4hep/Dictionary.h
@@ -9,6 +9,7 @@
 #ifndef DD4HEP_GEOMETRY_DICTIONARY_H
 #define DD4HEP_GEOMETRY_DICTIONARY_H
 
+#include "XML/Evaluator.h"
 #include "DD4hep/LCDDData.h"
 #include "DD4hep/Conditions.h"
 #include "DD4hep/FieldTypes.h"
@@ -29,6 +30,8 @@ namespace DD4hep {
     TRint app(name.c_str(), &a.first, a.second);
     app.Run();
   }
+  XmlTools::Evaluator& evaluator();
+  XmlTools::Evaluator& g4Evaluator();
 }
 
 
@@ -40,6 +43,11 @@ namespace DD4hep {
 #pragma link off all classes;
 #pragma link off all functions;
 
+#pragma link C++ namespace XmlTools;
+#pragma link C++ class XmlTools::Evaluator;
+#pragma link C++ function DD4hep::evaluator;
+#pragma link C++ function DD4hep::g4Evaluator;
+
 #pragma link C++ namespace DD4hep;
 #pragma link C++ namespace DD4hep::Geometry;
 #pragma link C++ namespace DD4hep::DDSegmentation;
@@ -50,6 +58,7 @@ template pair<unsigned int, string>;
 template class DD4hep::Geometry::Handle<NamedObject>;
 template class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >;
 #pragma link C++ class DD4hep::NamedObject+;
+#pragma link C++ class DD4hep::Geometry::Ref_t+;
 #pragma link C++ class DD4hep::Geometry::Handle<DD4hep::NamedObject>+;
 #pragma link C++ class pair<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >+;
 #pragma link C++ class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >+;
diff --git a/DDCore/include/DD4hep/Factories.h b/DDCore/include/DD4hep/Factories.h
index 28d4ba197..fad46f1df 100644
--- a/DDCore/include/DD4hep/Factories.h
+++ b/DDCore/include/DD4hep/Factories.h
@@ -18,21 +18,16 @@
 #include "XML/XMLElements.h"
 #include <cstdarg>
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
-  /*
-   *   XML sub-namespace declaration
-   */
+
+  /// Namespace for the AIDA detector description toolkit supporting XML utilities
   namespace XML {
     class Handle_t;
   }
   class NamedObject;
 
-  /*
-   *   Geometry sub-namespace declaration
-   */
+  /// Namespace for the geometry part of the AIDA detector description toolkit
   namespace Geometry {
 
     // Forward declarations
@@ -40,12 +35,14 @@ namespace DD4hep {
     class SensitiveDetector;
     class DetElement;
 
+    /// Template class with a generic constructor signature
     template <typename T> class ConstructionFactory {
     public:
       static void* create(const char* arg);
     };
 
-    /** @class TranslationFactory Factories.h DDCore/Factories.h
+    /// Template class with a generic signature to apply LCDD plugins
+    /** @class ApplyFactory Factories.h DDCore/Factories.h
      *  Specialized factory to translate objects, which can be retrieved from LCDD
      *  Example: Translate DD4hep geometry to Geant4
      *
@@ -58,8 +55,9 @@ namespace DD4hep {
       static long create(LCDD& lcdd, int argc, char** argv);
     };
 
+    /// Specialized factory to translate objects, which can be retrieved from LCDD
     /** @class TranslationFactory Factories.h DDCore/Factories.h
-     *  Specialized factory to translate objects, which can be retrieved from LCDD
+     *
      *  Example: Translate DD4hep geometry to Geant4
      *
      *  @author  M.Frank
@@ -71,8 +69,8 @@ namespace DD4hep {
       static Ref_t create(LCDD& lcdd);
     };
 
-    /** @class XMLElementFactory Factories.h DDCore/Factories.h
-     *  Create an arbitrary object from it's XML representation.
+    /// Create an arbitrary object from it's XML representation.
+    /**
      *
      *  @author  M.Frank
      *  @version 1.0
@@ -83,8 +81,8 @@ namespace DD4hep {
       static Ref_t create(LCDD& lcdd, XML::Handle_t e);
     };
 
-    /** @class XMLDocumentReaderFactory Factories.h DDCore/Factories.h
-     *  Read an arbitrary XML document and analyze it's content
+    ///  Read an arbitrary XML document and analyze it's content
+    /** 
      *
      *  @author  M.Frank
      *  @version 1.0
@@ -95,8 +93,8 @@ namespace DD4hep {
       static long create(LCDD& lcdd, XML::Handle_t e);
     };
 
-    /** @class XMLConversionFactory Factories.h DDCore/Factories.h
-     *  Read an arbitrary XML document and analyze it's content
+    /// Read an arbitrary XML document and analyze it's content
+    /** 
      *
      *  @author  M.Frank
      *  @version 1.0
@@ -107,9 +105,8 @@ namespace DD4hep {
       static long create(LCDD& lcdd, Ref_t& handle, XML::Handle_t element);
     };
 
-    /** @class DetElementFactory Factories.h DDCore/Factories.h
-     *  Standard factory to create Detector elements from the compact
-     *  XML representation.
+    /// Standard factory to create Detector elements from the compact XML representation.
+    /** 
      *
      *  @author  M.Frank
      *  @version 1.0
diff --git a/DDCore/include/DD4hep/NamedObject.h b/DDCore/include/DD4hep/NamedObject.h
index 85b099724..04b626afb 100644
--- a/DDCore/include/DD4hep/NamedObject.h
+++ b/DDCore/include/DD4hep/NamedObject.h
@@ -12,9 +12,7 @@
 // C/C++ include files
 #include <string>
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
     /// Implementation of a named object
diff --git a/DDCore/include/DD4hep/ObjectExtensions.h b/DDCore/include/DD4hep/ObjectExtensions.h
index db804a30b..d48498386 100644
--- a/DDCore/include/DD4hep/ObjectExtensions.h
+++ b/DDCore/include/DD4hep/ObjectExtensions.h
@@ -13,9 +13,7 @@
 #include <typeinfo>
 #include <map>
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
   /// Implementation of an object supporting arbitrary user extensions
diff --git a/DDCore/include/DD4hep/Objects.h b/DDCore/include/DD4hep/Objects.h
index 0c9489968..24a09d858 100644
--- a/DDCore/include/DD4hep/Objects.h
+++ b/DDCore/include/DD4hep/Objects.h
@@ -46,14 +46,10 @@ class TGeoIdentity;
 #define M_PI 3.14159265358979323846
 #endif
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Geoemtry namespace declaration
-   */
+  /// Namespace for the geometry part of the AIDA detector description toolkit
   namespace Geometry {
 
     // Forward declarations
@@ -241,6 +237,9 @@ namespace DD4hep {
 
     /// Handle class describing an element in the periodic table
     /** 
+     *  For details please see the ROOT TGeo information:
+     *  @see http://root.cern.ch/root/html/TGeoElement.html
+     *
      *  @author  M.Frank
      *  @version 1.0
      */
@@ -267,7 +266,11 @@ namespace DD4hep {
       Atom(const std::string& name, const std::string& formula, int Z, int N, double density);
     };
 
+    /// Handle class describing a material
     /** @class Material Objects.h
+     *
+     *  For details please see the ROOT TGeo information:
+     *  @see http://root.cern.ch/root/html/TGeoMedium.html
      *
      *  @author  M.Frank
      *  @version 1.0
@@ -306,6 +309,7 @@ namespace DD4hep {
       double intLength() const;
     };
 
+    /// Handle class describing visualization attributes
     /** @class VisAttr Objects.h
      *
      *  @author  M.Frank
@@ -383,9 +387,9 @@ namespace DD4hep {
       std::string toString() const;
     };
 
-    /// OBSOLETE: Handle class describing an alignment entry
+    /// Deprecated: Handle class describing an alignment entry
     /**
-     * Class representing an alignment entry
+     * \deprecated{Class representing an alignment entry}
      *
      * @author  M.Frank
      * @version 1.0
diff --git a/DDCore/include/DD4hep/Parsers.h b/DDCore/include/DD4hep/Parsers.h
index c68f03380..9ce843027 100644
--- a/DDCore/include/DD4hep/Parsers.h
+++ b/DDCore/include/DD4hep/Parsers.h
@@ -59,7 +59,10 @@
  *  @date 2006-05-12
  */
 // ============================================================================
+
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
+  /// Namespace for the AIDA detector for utilities using boost::spirit parsers
   namespace Parsers {
     // ========================================================================
     /** parse the <c>bool</c> value
diff --git a/DDCore/include/DD4hep/Plugins.h b/DDCore/include/DD4hep/Plugins.h
index 96963ab7f..b0e88c70a 100644
--- a/DDCore/include/DD4hep/Plugins.h
+++ b/DDCore/include/DD4hep/Plugins.h
@@ -14,16 +14,13 @@
 #include "Reflex/PluginService.h"
 #endif
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
   typedef ROOT::Reflex::PluginService PluginService;
 
   /// Helper to debug plugin manager calls
-  /** @class PluginDebug. PluginDebug.h DD4hep/PluginDebug.h
-   *
+  /** 
    *  Small helper class to adjust the plugin service debug level
    *  for a limited code scope. Automatically back-adjusts the debug
    *  level at object destruction.
diff --git a/DDCore/include/DD4hep/Primitives.h b/DDCore/include/DD4hep/Primitives.h
index c91bf84fa..18559678d 100644
--- a/DDCore/include/DD4hep/Primitives.h
+++ b/DDCore/include/DD4hep/Primitives.h
@@ -14,11 +14,10 @@
 // C/C++ include files
 #include <algorithm>
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
+  /// Namespace describing generic detector segmentations
   namespace DDSegmentation  {
     class BitField64;
     class BitFieldValue;
diff --git a/DDCore/include/DD4hep/Printout.h b/DDCore/include/DD4hep/Printout.h
index 23484ad45..9a1c95a23 100644
--- a/DDCore/include/DD4hep/Printout.h
+++ b/DDCore/include/DD4hep/Printout.h
@@ -24,15 +24,14 @@
 /// Forward declarations
 class TNamed;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
   class NamedObject;
 
-  /// Forward declarations
+  /// Namespace for the geometry part of the AIDA detector description toolkit
   namespace Geometry {
+    // Forward declarations
     class LCDD;
     class VisAttr;
     class DetElement;
diff --git a/DDCore/include/DD4hep/Readout.h b/DDCore/include/DD4hep/Readout.h
index ba5fa1f2a..b520f4ace 100644
--- a/DDCore/include/DD4hep/Readout.h
+++ b/DDCore/include/DD4hep/Readout.h
@@ -19,14 +19,10 @@
 // C/C++ include files
 #include <map>
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Geometry namespace declaration
-   */
+  /// Namespace for the geometry part of the AIDA detector description toolkit
   namespace Geometry {
 
     // Forward declarations
@@ -34,7 +30,7 @@ namespace DD4hep {
     class ReadoutObject;
 
     /// Handle to the implementation of the readout structure of a subdetector
-    /** @class Readout  Readout.h DD4hep/Readout.h
+    /**
      *
      * @author  M.Frank
      * @version 1.0
diff --git a/DDCore/include/DD4hep/Segmentations.h b/DDCore/include/DD4hep/Segmentations.h
index 5aa55d8db..18a6f021e 100644
--- a/DDCore/include/DD4hep/Segmentations.h
+++ b/DDCore/include/DD4hep/Segmentations.h
@@ -20,18 +20,14 @@
 #include <cmath>
 #include <vector>
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   XML namespace declaration
-   */
+  /// Namespace for the geometry part of the AIDA detector description toolkit
   namespace Geometry {
 
     /// Implementation class supporting generic Segmentation of sensitive detectors
-    /** @class Segmentation::Object Segmentations.h DD4hep/Segmentations.h
+    /** 
      *
      * @author  M.Frank
      * @version 1.0
@@ -80,7 +76,7 @@ namespace DD4hep {
 
 
     /// Handle class supporting generic Segmentation of sensitive detectors
-    /** @class Segmentation Segmentations.h DD4hep/Segmentations.h
+    /** 
      *
      * @author  M.Frank
      * @version 1.0
diff --git a/DDCore/include/DD4hep/Shapes.h b/DDCore/include/DD4hep/Shapes.h
index f6bae5546..14ec159ae 100644
--- a/DDCore/include/DD4hep/Shapes.h
+++ b/DDCore/include/DD4hep/Shapes.h
@@ -29,17 +29,13 @@
 #include "TGeoTorus.h"
 #include "TGeoCompositeShape.h"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Geometry namespace declaration
-   */
+  /// Namespace for the geometry part of the AIDA detector description toolkit
   namespace Geometry {
 
-// Forward declarations
+    // Forward declarations
 
     ///  Base class for Solid (shape) objects
     /**
diff --git a/DDCore/include/DD4hep/ToStream.h b/DDCore/include/DD4hep/ToStream.h
index 4e59d803e..a61655ce9 100644
--- a/DDCore/include/DD4hep/ToStream.h
+++ b/DDCore/include/DD4hep/ToStream.h
@@ -32,8 +32,11 @@
  *                     easier especializations
  */
 // ============================================================================
+
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
   // ==========================================================================
+  /// Utility namespace to support boost::spirit
   namespace Utils {
     // ========================================================================
     /** the generic implementation of the printout to the std::ostream
diff --git a/DDCore/include/DD4hep/VolumeManager.h b/DDCore/include/DD4hep/VolumeManager.h
index 72be6f5f7..853fc77d9 100644
--- a/DDCore/include/DD4hep/VolumeManager.h
+++ b/DDCore/include/DD4hep/VolumeManager.h
@@ -17,14 +17,12 @@
 
 // ROOT include files
 #include "TGeoMatrix.h"
-/*
- *   DD4hep namespace declaration
- */
+
+
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Geometry namespace declaration
-   */
+  /// Namespace for the geometry part of the AIDA detector description toolkit
   namespace Geometry {
 
     // Forward declarations
diff --git a/DDCore/include/DD4hep/Volumes.h b/DDCore/include/DD4hep/Volumes.h
index 2daf76d67..bb9c302ec 100644
--- a/DDCore/include/DD4hep/Volumes.h
+++ b/DDCore/include/DD4hep/Volumes.h
@@ -6,15 +6,13 @@
 //  Author     : M.Frank
 //
 //====================================================================
-
-#ifndef DD4hep_GEOMETRY_VOLUMES_H
-#define DD4hep_GEOMETRY_VOLUMES_H
+#ifndef DD4HEP_GEOMETRY_VOLUMES_H
+#define DD4HEP_GEOMETRY_VOLUMES_H
 
 // Framework include files
 #include "DD4hep/Handle.h"
 #include "DD4hep/Shapes.h"
 #include "DD4hep/Objects.h"
-//#include "DD4hep/Detector.h"
 
 // C/C++ include files
 #include <map>
@@ -40,14 +38,10 @@ class TGeoExtension : public TObject  {
 };
 #endif
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Geometry namespace declaration
-   */
+  /// Namespace for the geometry part of the AIDA detector description toolkit
   namespace Geometry {
 
     // Forward declarations
@@ -61,8 +55,10 @@ namespace DD4hep {
     class  PlacedVolume;
     class  SensitiveDetector;
 
-    /// Implementation class extending the ROOT placed volume (TGeoNode)
-    /** @class PlacedVolumeExtension Volume.h  DD4hep/lcdd/Volume.h
+    /// Implementation class extending the ROOT placed volume
+    /** 
+     *  For any further documentation please see the following ROOT documentation:
+     *  @see http://root.cern.ch/root/html/TGeoExtension.html 
      *
      *  @author  M.Frank
      *  @version 1.0
@@ -108,13 +104,12 @@ namespace DD4hep {
     };
 
     /// Handle class holding a placed volume (also called physical volume)
-    /** @class PlacedVolume Volume.h  DD4hep/lcdd/Volume.h
-     *
+    /** 
      *   For any further documentation please see the following ROOT documentation:
      *   @see http://root.cern.ch/root/html/TGeoNode.html 
      *
-     *  @author  M.Frank
-     *  @version 1.0
+     *   @author  M.Frank
+     *   @version 1.0
      */
     class PlacedVolume : public Handle<TGeoNode> {
     public:
@@ -160,9 +155,11 @@ namespace DD4hep {
     };
 
     /// Implementation class extending the ROOT volume (TGeoVolume)
-    /** @class Volume::Object Volume.h  DD4hep/Volume.h
+    /**
+     *  Internal data structure optional to TGeo data.
      *
-     *  Internal data structure optional to TGeo data
+     *  For any further documentation please see the following ROOT documentation:
+     *  @see http://root.cern.ch/root/html/TGeoExtension.html 
      *
      *  @author  M.Frank
      *  @version 1.0
@@ -200,8 +197,7 @@ namespace DD4hep {
     };
 
     /// Handle class holding a placed volume (also called physical volume)
-    /** @class Volume Volume.h  DD4hep/Volume.h
-     *
+    /**
      *   Handle describing a Volume
      *
      *   For any further documentation please see the following ROOT documentation:
@@ -310,12 +306,15 @@ namespace DD4hep {
       }
     };
 
-    /** @class Assembly Volume.h  DD4hep/lcdd/Volume.h
+    /// Implementation class extending the ROOT assembly volumes (TGeoVolumeAsembly)
+    /** 
+     *  Handle describing a volume assembly. 
      *
-     *  Handle describing a volume assembly
+     *   For any further documentation please see the following ROOT documentation:
+     *   @see http://root.cern.ch/root/html/TGeoVolumeAssembly.html
      *
-     *  @author  M.Frank
-     *  @version 1.0
+     *   @author  M.Frank
+     *   @version 1.0
      */
     class Assembly: public Volume {
     public:
@@ -345,5 +344,5 @@ namespace DD4hep {
     };
 
   } /* End namespace Geometry          */
-} /* End namespace DD4hep            */
-#endif    /* DD4hep_GEOMETRY_VOLUMES_H       */
+}   /* End namespace DD4hep            */
+#endif    /* DD4HEP_GEOMETRY_VOLUMES_H       */
diff --git a/DDCore/include/XML/DocumentHandler.h b/DDCore/include/XML/DocumentHandler.h
index ddb770f4a..877544266 100644
--- a/DDCore/include/XML/DocumentHandler.h
+++ b/DDCore/include/XML/DocumentHandler.h
@@ -9,16 +9,16 @@
 #ifndef DD4HEP_XML_DOCUMENTHANDLER_H
 #define DD4HEP_XML_DOCUMENTHANDLER_H
 
+// Framework include files
 #include "XML/XMLElements.h"
+
+// C/C++ include files
 #include <memory>
-/*
- *   DD4hep namespace declaration
- */
+
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   XML namespace declaration
-   */
+  /// Namespace containing utilities to parse XML files using XercesC or TinyXML
   namespace XML {
 
     // Forward declarations
diff --git a/DDCore/src/DetectorTools.cpp b/DDCore/src/DetectorTools.cpp
index cb82b05f7..e45b4c2ed 100644
--- a/DDCore/src/DetectorTools.cpp
+++ b/DDCore/src/DetectorTools.cpp
@@ -20,18 +20,14 @@
 // ROOT include files
 #include "TGeoMatrix.h"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Geometry namespace declaration
-   */
+  /// Namespace for the geometry part of the AIDA detector description toolkit
   namespace Geometry {
 
-    /** @class Detectortools  DetectorTools.h DD4hep/Detectortools.h
-     *
+    /// Helper namespace used to answer detector element specific questons
+    /** 
      * @author  M.Frank
      * @version 1.0
      */
diff --git a/DDCore/src/XML/XMLElements.cpp b/DDCore/src/XML/XMLElements.cpp
index 6e56ba4d9..246c3a236 100644
--- a/DDCore/src/XML/XMLElements.cpp
+++ b/DDCore/src/XML/XMLElements.cpp
@@ -53,6 +53,8 @@ namespace {
 #define appendChild         LinkEndChild
 #define getOwnerDocument    GetDocument
 #define getDocumentElement  RootElement
+
+/// Union to ease castless object access in TinyXML
 union Xml {
   Xml(const void* ptr) : p(ptr) {}
   const void* p;
@@ -89,6 +91,8 @@ void DD4hep::XML::XmlString::release(char** p) {if(p && *p) {::free(*p); *p=0;}}
 #include "xercesc/dom/DOMNodeList.hpp"
 #include "xercesc/dom/DOM.hpp"
 #define ELEMENT_NODE_TYPE xercesc::DOMNode::ELEMENT_NODE
+
+/// Union to ease castless object access when using XercesC
 union Xml {
   Xml(const void* ptr)
       : p(ptr) {
diff --git a/DDG4/include/DDG4/ComponentProperties.h b/DDG4/include/DDG4/ComponentProperties.h
index b36cff0e4..4e2d0b66f 100644
--- a/DDG4/include/DDG4/ComponentProperties.h
+++ b/DDG4/include/DDG4/ComponentProperties.h
@@ -19,16 +19,14 @@
 #include <string>
 #include <map>
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
   class Property;
   class BasicGrammar;
   class PropertyGrammar;
 
-
+  /// Heler class to configure properties
   class PropertyConfigurator {
   protected:
     virtual ~PropertyConfigurator();
@@ -37,6 +35,7 @@ namespace DD4hep {
   };
 
 
+  /// Class describing the grammar representation of a given data type
   /** @class PropertyGrammar
    *
    *   @author  M.Frank
@@ -63,8 +62,8 @@ namespace DD4hep {
     virtual bool fromString(void* ptr, const std::string& value) const;
   };
 
-  /** @class Property
-   *
+  /// The property class to assign options to actions.
+  /**
    *   Standard implementation of a property mechanism.
    *   The data conversion mechanism between various properties
    *   uses internally boost::spirit to allow also conversions
@@ -124,8 +123,8 @@ namespace DD4hep {
     template <typename TYPE> void set(const TYPE& value);
   };
 
-  /** @class PropertyValue
-   *
+  /// Concrete template instantiation of a combined property value pair.
+  /**
    *   @author  M.Frank
    *   @date    13.08.2013
    */
@@ -166,8 +165,8 @@ namespace DD4hep {
     }
   };
 
-  /** @class PropertyManager
-   *
+  /// Manager to ease the handling of groups of properties.
+  /**
    *   @author  M.Frank
    *   @date    13.08.2013
    */
diff --git a/DDG4/include/DDG4/ComponentUtils.h b/DDG4/include/DDG4/ComponentUtils.h
index c569bd50e..fbb23ab26 100644
--- a/DDG4/include/DDG4/ComponentUtils.h
+++ b/DDG4/include/DDG4/ComponentUtils.h
@@ -13,9 +13,7 @@
 #include "DD4hep/Primitives.h"
 #include "DD4hep/Exceptions.h"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
 
diff --git a/DDG4/include/DDG4/Defs.h b/DDG4/include/DDG4/Defs.h
index 0f96f99bc..d03756da2 100644
--- a/DDG4/include/DDG4/Defs.h
+++ b/DDG4/include/DDG4/Defs.h
@@ -12,14 +12,10 @@
 // Framework include files
 #include "DD4hep/LCDD.h"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations;
@@ -30,8 +26,6 @@ namespace DD4hep {
     typedef Geometry::Readout Readout;
     typedef Geometry::DetElement DetElement;
 
-    template <class HIT> struct HitCompare;
-    template <class HIT> struct HitPositionCompare;
     class Geant4StepHandler;
     class Geant4Hit;
     class Geant4TrackerHit;
diff --git a/DDG4/include/DDG4/Geant4Data.h b/DDG4/include/DDG4/Geant4Data.h
index c5cf525cb..9011e5de7 100644
--- a/DDG4/include/DDG4/Geant4Data.h
+++ b/DDG4/include/DDG4/Geant4Data.h
@@ -21,59 +21,25 @@
 class G4Step;
 class G4StepPoint;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward type definitions
     typedef ROOT::Math::XYZVector Position;
     typedef ROOT::Math::XYZVector Direction;
 
-    /** @class HitCompare Geant4Data.h DDG4/Geant4Data.h
-     *
-     *  Base class for hit comparisons.
-     *
-     * @author  M.Frank
-     * @version 1.0
-     */
-    template <class HIT> struct HitCompare {
-      /// Comparison function
-      virtual bool operator()(const HIT* h) const = 0;
-    };
-
-    /** @class HitPositionCompare Geant4Data.h DDG4/Geant4Data.h
-     *
-     * Seek the hits of an arbitrary collection for the same position.
-     *
-     * @author  M.Frank
-     * @version 1.0
-     */
-    template <class HIT> struct HitPositionCompare : public HitCompare<HIT> {
-      const Position& pos;
-      /// Constructor
-      HitPositionCompare(const Position& p)
-          : pos(p) {
-      }
-      /// Comparison function
-      virtual bool operator()(const HIT* h) const {
-        return pos == h->position;
-      }
-    };
-
-    /** @class SimpleRun Geant4Data.h DDG4/Geant4Data.h
-     *
+    /// Simple run description structure. Used in the default I/O mechanism.
+    /**
      * Example class to store the run related information.
      *
      * @author  M.Frank
      * @version 1.0
      */
-    struct SimpleRun {
+    class SimpleRun {
+      public:
       /// Run identifiers
       int runID;
       /// Number of events in this run
@@ -84,14 +50,15 @@ namespace DD4hep {
       virtual ~SimpleRun();
     };
 
-    /** @class SimpleEvent Geant4Data.h DDG4/Geant4Data.h
-     *
+    /// Simple event description structure. Used in the default I/O mechanism.
+    /**
      * Example class to store the event related information.
      *
      * @author  M.Frank
      * @version 1.0
      */
-    struct SimpleEvent {
+    class SimpleEvent {
+      public:
       typedef std::vector<long> Seeds;
       /// Run identifiers
       int runID;
@@ -105,6 +72,7 @@ namespace DD4hep {
       virtual ~SimpleEvent();
     };
 
+    /// Generic user-extendible data extension class.
     class DataExtension  {
     public:
       /// Default constructor
@@ -113,7 +81,7 @@ namespace DD4hep {
       virtual ~DataExtension();      
     };
 
-    /// Base class for geant4 hit structures
+    /// Base class for geant4 hit structures used by the default DDG4 sensitive detector implementations
     /*
      *  Base class for geant4 hit structures created by the
      *  example sensitive detectors. This is a generic class
@@ -123,15 +91,16 @@ namespace DD4hep {
      *  @author  M.Frank
      *  @version 1.0
      */
-    struct Geant4HitData {
+    class Geant4HitData {
+      public:
       /// cellID
       long long int cellID;
       /// User data extension if required
       std::auto_ptr<DataExtension> extension;  
 
-      /** @class MonteCarloContrib
-       */
-      struct MonteCarloContrib {
+      /// Utility class describing the monte carlo contribution of a given particle to a hit.
+      class MonteCarloContrib {
+      public:
         /// Geant 4 Track identifier
         int trackID;
         /// Particle ID from the PDG table
@@ -199,16 +168,19 @@ namespace DD4hep {
       static Contribution extractContribution(G4Step* step);
     };
 
-    struct Geant4Tracker {
-      /** @class Geant4Tracker::Hit Geant4Data.h DDG4/Geant4Data.h
-       *
+    /// Helper class to define structures used by the generic DDG4 tracker sensitive detector
+    class Geant4Tracker {
+    public:
+      /// DDG4 tracker hit class used by the generic DDG4 tracker sensitive detector
+      /**
        * Geant4 tracker hit class. Tracker hits contain the momentum
        * direction as well as the hit position.
        *
        * @author  M.Frank
        * @version 1.0
        */
-      struct Hit : public Geant4HitData {
+      class Hit : public Geant4HitData {
+      public:
         /// Hit position
         Position position;
         /// Hit direction
@@ -234,16 +206,19 @@ namespace DD4hep {
       };
     };
 
-    struct Geant4Calorimeter {
-      /** @class Geant4Calorimeter::Hit Geant4Data.h DDG4/Geant4Data.h
-       *
+    /// Helper class to define structures used by the generic DDG4 calorimeter sensitive detector
+    class Geant4Calorimeter {
+    public:
+
+      /// DDG4 calorimeter hit class used by the generic DDG4 calorimeter sensitive detector
+      /**
        * Geant4 tracker hit class. Calorimeter hits contain the momentum
        * direction as well as the hit position.
        *
        * @author  M.Frank
        * @version 1.0
        */
-      struct Hit : public Geant4HitData {
+      class Hit : public Geant4HitData {
       public:
         /// Hit position
         Position position;
@@ -260,6 +235,8 @@ namespace DD4hep {
         virtual ~Hit();
       };
     };
+
+    /// Backward compatibility definitions
     typedef Geant4HitData SimpleHit;
     typedef Geant4Tracker SimpleTracker;
     typedef Geant4Calorimeter SimpleCalorimeter;
diff --git a/DDG4/include/DDG4/Geant4Field.h b/DDG4/include/DDG4/Geant4Field.h
index 805beb2eb..aad2b6033 100644
--- a/DDG4/include/DDG4/Geant4Field.h
+++ b/DDG4/include/DDG4/Geant4Field.h
@@ -16,14 +16,10 @@
 #include "G4ElectroMagneticField.hh"
 #include "G4MagneticField.hh"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
@@ -34,7 +30,8 @@ namespace DD4hep {
      * @author  M.Frank
      * @version 1.0
      */
-    struct Geant4Field : public G4MagneticField {
+    class Geant4Field : public G4MagneticField {
+    protected:
       /// Reference to the detector description field
       Geometry::OverlayedField m_field;
 
diff --git a/DDG4/include/DDG4/Geant4Handle.h b/DDG4/include/DDG4/Geant4Handle.h
index 5cd67783a..b8f2be8c6 100644
--- a/DDG4/include/DDG4/Geant4Handle.h
+++ b/DDG4/include/DDG4/Geant4Handle.h
@@ -17,28 +17,23 @@
 #include <string>
 #include <memory>
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     /// Forward declarations
     class Geant4Kernel;
     class Geant4Action;
 
+    /// Handle to Geant4 actions with built-in creation mechanism
     /** @class Geant4Handle Geant4Handle.h DDG4/Geant4Handle.h
-     *
-     * Handle to Geant4 actions with built-in creation mechanism
      *
      * @author  M.Frank
      * @version 1.0
      */
-    template <typename TYPE> struct Geant4Handle {
+    template <typename TYPE> class Geant4Handle {
     protected:
       void checked_assign(TYPE* p);
     public:
@@ -66,14 +61,14 @@ namespace DD4hep {
       handled_type* operator->() const;
       Geant4Action* action() const;
     };
+
+    /// Handle to Geant4 actions with built-in creation mechanism
     /** @class Geant4Handle Geant4Handle.h DDG4/Geant4Handle.h
-     *
-     * Handle to Geant4 actions with built-in creation mechanism
      *
      * @author  M.Frank
      * @version 1.0
      */
-    struct KernelHandle {
+    class KernelHandle {
     public:
       typedef Geant4Kernel handled_type;
       mutable handled_type* value;
diff --git a/DDG4/include/DDG4/Geant4HierarchyDump.h b/DDG4/include/DDG4/Geant4HierarchyDump.h
index 0ae0a8d7f..6fa0e6c84 100644
--- a/DDG4/include/DDG4/Geant4HierarchyDump.h
+++ b/DDG4/include/DDG4/Geant4HierarchyDump.h
@@ -26,7 +26,8 @@ namespace DD4hep {
    */
   namespace Simulation {
 
-    struct Geant4HierarchyDump {
+    class Geant4HierarchyDump {
+    public:
       typedef Geometry::LCDD LCDD;
       LCDD& m_lcdd;
 
diff --git a/DDG4/include/DDG4/Geant4HitCollection.h b/DDG4/include/DDG4/Geant4HitCollection.h
index 0a642b69c..0a12e0327 100644
--- a/DDG4/include/DDG4/Geant4HitCollection.h
+++ b/DDG4/include/DDG4/Geant4HitCollection.h
@@ -21,14 +21,10 @@
 #include <typeinfo>
 #include <stdexcept>
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
@@ -36,6 +32,7 @@ namespace DD4hep {
     class Geant4HitCollection;
     class Geant4HitWrapper;
 
+    /// Generic wrapper class for hit structures created in Geant4 sensitive detectors
     /** @class Geant4HitWrapper Geant4HitCollection.h DDG4/Geant4HitCollection.h
      *
      *  Default base class for all geant 4 created hits.
@@ -48,11 +45,14 @@ namespace DD4hep {
     class Geant4HitWrapper: public G4VHit {
     private:
     public:
-      struct InvalidHit {
+      /// Helper class to indicate invalid hit wrappers or containers.
+      class InvalidHit {
+      public:
         virtual ~InvalidHit();
       };
 
-      struct HitManipulator {
+      /// Generic type manipulation class for generic hit structures created in Geant4 sensitive detectors
+      class HitManipulator {
       public:
         typedef std::pair<void*, HitManipulator*> Wrapper;
 #ifdef __CINT__
@@ -157,6 +157,7 @@ namespace DD4hep {
       }
     };
 
+    /// Generic hit container class using Geant4HitWrapper objects
     /** @class Geant4HitCollection Geant4HitCollection.h DDG4/Geant4HitCollection.h
      *
      * Opaque hit collection.
@@ -175,6 +176,7 @@ namespace DD4hep {
       /// Hit manipulator
       typedef Geant4HitWrapper::HitManipulator Manip;
 
+      /// Generic class template to compare/select hits in Geant4HitCollection objects
       /** @class Compare Geant4HitCollection.h DDG4/Geant4HitCollection.h
        *
        *  Base class for hit comparisons.
@@ -182,7 +184,8 @@ namespace DD4hep {
        * @author  M.Frank
        * @version 1.0
        */
-      struct Compare {
+      class Compare {
+      public:
 	/// Default destructor
 	virtual ~Compare();
         /// Comparison function
@@ -289,6 +292,7 @@ namespace DD4hep {
     };
 
 
+    /// Specialized hit selector based on the hit's position.
     /** @class PositionCompare Geant4HitCollection.h DDG4/Geant4HitCollection.h
      *
      *  Class for hit matching using the hit position.
@@ -296,7 +300,8 @@ namespace DD4hep {
      * @author  M.Frank
      * @version 1.0
      */
-    template<typename TYPE, typename POS> struct PositionCompare : public Geant4HitCollection::Compare {
+    template<typename TYPE, typename POS> class PositionCompare : public Geant4HitCollection::Compare {
+    public:
       const POS& pos;
       /// Constructor
       PositionCompare(const POS& p) : pos(p)  {      }
@@ -310,6 +315,7 @@ namespace DD4hep {
       return pos == h->position ? h : 0;
     }
 
+    /// Specialized hit selector based on the hit's cell identifier.
     /** @class PositionCompare Geant4HitCollection.h DDG4/Geant4HitCollection.h
      *
      *  Class for hit matching using the hit's cell identifier.
@@ -317,7 +323,8 @@ namespace DD4hep {
      * @author  M.Frank
      * @version 1.0
      */
-    template<typename TYPE> struct CellIDCompare : public Geant4HitCollection::Compare {
+    template<typename TYPE> class CellIDCompare : public Geant4HitCollection::Compare {
+    public:
       long long int id;
       /// Constructor
       CellIDCompare(long long int i) : id(i) {      }
diff --git a/DDG4/include/DDG4/Geant4Hits.h b/DDG4/include/DDG4/Geant4Hits.h
index 9a389e0ea..451fd6226 100644
--- a/DDG4/include/DDG4/Geant4Hits.h
+++ b/DDG4/include/DDG4/Geant4Hits.h
@@ -18,40 +18,33 @@
 #include "G4Step.hh"
 #include "G4StepPoint.hh"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations;
-    template <class HIT> struct HitCompare;
-    template <class HIT> struct HitPositionCompare;
     class Geant4Hit;
     class Geant4TrackerHit;
     class Geant4CalorimeterHit;
 
+    /// Deprecated:  Base class for hit comparisons.
     /** @class HitCompare Geant4Hits.h DDG4/Geant4Hits.h
-     *
-     *  Base class for hit comparisons.
      *
      * @author  M.Frank
      * @version 1.0
      */
-    template <class HIT> struct HitCompare {
+    template <class HIT> class HitCompare {
+    public:
       /// Default destructor
       virtual ~HitCompare() {}
       /// Comparison function
       virtual bool operator()(const HIT* h) const = 0;
     };
 
+    /// Deprecated: Seek the hits of an arbitrary collection for the same position.
     /** @class HitPositionCompare Geant4Hits.h DDG4/Geant4Hits.h
-     *
-     * Seek the hits of an arbitrary collection for the same position.
      *
      * @author  M.Frank
      * @version 1.0
@@ -70,6 +63,7 @@ namespace DD4hep {
       }
     };
 
+    /// Deprecated: basic geant4 hit class for deprecated sensitive detectors
     /** @class Geant4Hit Geant4Hits.h DDG4/Geant4Hits.h
      *
      * Geant4 hit base class. Here only the basic
@@ -85,6 +79,7 @@ namespace DD4hep {
       // cellID
       unsigned long cellID;
 
+      /// Deprecated!!!
       struct MonteCarloContrib {
         /// Geant 4 Track identifier
         int trackID;
@@ -137,6 +132,7 @@ namespace DD4hep {
       static Contribution extractContribution(G4Step* step);
     };
 
+    /// Deprecated: Geant4 tracker hit class for deprecated sensitive detectors
     /** @class Geant4TrackerHit Geant4Hits.h DDG4/Geant4Hits.h
      *
      * Geant4 tracker hit class. Tracker hits contain the momentum
@@ -179,9 +175,10 @@ namespace DD4hep {
       void operator delete(void *ptr);
     };
 
+    /// Deprecated: Geant4 calorimeter hit class for deprecated sensitive detectors
     /** @class Geant4CalorimeterHit Geant4Hits.h DDG4/Geant4Hits.h
      *
-     * Geant4 tracker hit class. Calorimeter hits contain the momentum
+     * Geant4 calorimeter hit class. Calorimeter hits contain the momentum
      * direction as well as the hit position.
      *
      * @author  M.Frank
diff --git a/DDG4/include/DDG4/Geant4InputAction.h b/DDG4/include/DDG4/Geant4InputAction.h
index ca34c3b35..37a9823b3 100644
--- a/DDG4/include/DDG4/Geant4InputAction.h
+++ b/DDG4/include/DDG4/Geant4InputAction.h
@@ -17,16 +17,13 @@
 // Forward declarations
 class G4Event;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep  {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation  {
 
+    /// Basic geant4 event reader class. This interface/base-class must be implemented by concrete readers.
     /** @class Geant4EventReader Geant4EventReader.h DDG4/Geant4EventReader.h
      * 
      * Base class to read input files containing simulation data.
@@ -58,6 +55,7 @@ namespace DD4hep  {
       virtual int readParticles(int event_number, std::vector<Particle*>& particles) = 0;
     };
 
+    /// Generic input action capable of using the Geant4EventReader class.
     /** @class Geant4InputAction Geant4InputAction.h DDG4/Geant4InputAction.h
      *
      * Concrete implementation of the Geant4 generator action base class
@@ -102,7 +100,7 @@ namespace DD4hep  {
 
 #include "DD4hep/Plugins.h"
 namespace {
-  /// Factory to create Geant4 physics constructions
+  /// Factory template to create Geant4 event reader objects
   template <typename P> class Factory<P, DD4hep::Simulation::Geant4EventReader*(std::string)> {  public:
     static void Func(void *ret, void*, const std::vector<void*>& a, void*) 
     { *(DD4hep::Simulation::Geant4EventReader**)ret = (DD4hep::Simulation::Geant4EventReader*)new P(*(std::string*)a[0]);}
diff --git a/DDG4/include/DDG4/Geant4InputHandling.h b/DDG4/include/DDG4/Geant4InputHandling.h
index e6779249f..570b4688e 100644
--- a/DDG4/include/DDG4/Geant4InputHandling.h
+++ b/DDG4/include/DDG4/Geant4InputHandling.h
@@ -14,14 +14,10 @@
 // Forward declarations
 class G4Event;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
diff --git a/DDG4/include/DDG4/Geant4InteractionMerger.h b/DDG4/include/DDG4/Geant4InteractionMerger.h
index a71fa1a74..5ea520561 100644
--- a/DDG4/include/DDG4/Geant4InteractionMerger.h
+++ b/DDG4/include/DDG4/Geant4InteractionMerger.h
@@ -12,19 +12,16 @@
 // Framework include files
 #include "DDG4/Geant4GeneratorAction.h"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
     class Geant4PrimaryInteraction;
 
+    /// Geant4Action to merge several independent interaction to one
     /** Geant4Action to convert the particle information to Geant4
      *
      *  @author  M.Frank
diff --git a/DDG4/include/DDG4/Geant4InteractionVertexBoost.h b/DDG4/include/DDG4/Geant4InteractionVertexBoost.h
index fd2017763..ef20db2c6 100644
--- a/DDG4/include/DDG4/Geant4InteractionVertexBoost.h
+++ b/DDG4/include/DDG4/Geant4InteractionVertexBoost.h
@@ -15,24 +15,23 @@
 // ROOT include files
 #include "Math/Vector4D.h"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
-    /// Generate particles isotrop in space around origine (0,0,0)
+
+    /// Action class to boost the primary vertex (and all outgoing particles) of a single interaction
     /**
+     * The vertex smearing is steered by the Lorentz transformation angle.
+     * The interaction to be modified is identified by the interaction's unique mask.
      *
      * @author  M.Frank
      * @version 1.0
      */
     class Geant4InteractionVertexBoost: public Geant4GeneratorAction {
     protected:
-      /// The constant Lorentz transformation angle
+      /// Property: The constant Lorentz transformation angle
       double m_angle;
       /// Property: Unique identifier of the interaction to be modified
       int m_mask;
diff --git a/DDG4/include/DDG4/Geant4InteractionVertexSmear.h b/DDG4/include/DDG4/Geant4InteractionVertexSmear.h
index 76cebb4df..69f9c7017 100644
--- a/DDG4/include/DDG4/Geant4InteractionVertexSmear.h
+++ b/DDG4/include/DDG4/Geant4InteractionVertexSmear.h
@@ -15,26 +15,26 @@
 // ROOT include files
 #include "Math/Vector4D.h"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
-    /// Generate particles isotrop in space around origine (0,0,0)
+
+    /// Action class to smear the primary vertex (and all outgoing particles) of a single interaction
     /**
+     * The vertex smearing is steered by a 3D gaussian given by a constant offset and
+     * the corresponding errors. The interaction to be modified is identified by the
+     * interaction's unique mask.
      *
      * @author  M.Frank
      * @version 1.0
      */
     class Geant4InteractionVertexSmear: public Geant4GeneratorAction {
     protected:
-      /// The constant smearing offset
+      /// Property: The constant smearing offset
       ROOT::Math::PxPyPzEVector m_offset;
-      /// The gaussian sigmas to the offset
+      /// Property: The gaussian sigmas to the offset
       ROOT::Math::PxPyPzEVector m_sigma;      
       /// Property: Unique identifier of the interaction created
       int m_mask;
diff --git a/DDG4/include/DDG4/Geant4IsotropeGenerator.h b/DDG4/include/DDG4/Geant4IsotropeGenerator.h
index 0fa7ba5e0..e1b56c736 100644
--- a/DDG4/include/DDG4/Geant4IsotropeGenerator.h
+++ b/DDG4/include/DDG4/Geant4IsotropeGenerator.h
@@ -15,14 +15,10 @@
 // Forward declarations
 class G4ParticleDefinition;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
     /// Generate particles isotrop in space around origine (0,0,0)
     /**
diff --git a/DDG4/include/DDG4/Geant4Kernel.h b/DDG4/include/DDG4/Geant4Kernel.h
index 69001fde0..234f2377b 100644
--- a/DDG4/include/DDG4/Geant4Kernel.h
+++ b/DDG4/include/DDG4/Geant4Kernel.h
@@ -23,14 +23,10 @@
 class G4RunManager;
 class G4UIdirectory;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
@@ -54,9 +50,9 @@ namespace DD4hep {
     class Geant4SensDetActionSequence;
     class Geant4SensDetSequences;
 
+    /// Class, which allows all Geant4Action derivatives to access the DDG4 kernel structures.
     /** @class Invoke Geant4Kernel.h DDG4/Geant4Kernel.h
      *
-     * Default base class for all geant 4 actions and derivates thereof.
      *
      * @author  M.Frank
      * @version 1.0
@@ -120,14 +116,14 @@ namespace DD4hep {
       Geant4Kernel(LCDD& lcdd);
     public:
 
+      /// Embedded helper class to facilitate map access to the phases.
       /** @class PhaseSelector Geant4Kernel.h DDG4/Geant4Kernel.h
-       *
-       * Embedded helper class to facilitate map access to the phases.
        *
        * @author  M.Frank
        * @version 1.0
        */
-      struct PhaseSelector {
+      class PhaseSelector {
+      public:
         /// Reference to embedding object
         Geant4Kernel* m_kernel;
         /// Standard constructor
@@ -312,11 +308,17 @@ namespace DD4hep {
       m_properties.add(nam, val);
       return *this;
     }
- 
-    struct Geant4Exec {
+
+    /// Main executor steering the Geant4 execution
+    class Geant4Exec {
+    public:
+      /// Configure the application
       static int configure(Geant4Kernel& kernel);
+      /// Initialize the application
       static int initialize(Geant4Kernel& kernel);
+      /// Run the application and simulate events
       static int run(Geant4Kernel& kernel);
+      /// Terminate the application
       static int terminate(Geant4Kernel& kernel);
     };
 
diff --git a/DDG4/include/DDG4/Geant4Mapping.h b/DDG4/include/DDG4/Geant4Mapping.h
index 46fdcf4df..1efd0714d 100644
--- a/DDG4/include/DDG4/Geant4Mapping.h
+++ b/DDG4/include/DDG4/Geant4Mapping.h
@@ -6,8 +6,8 @@
 //  Author     : M.Frank
 //
 //====================================================================
-#ifndef DD4HEP_GEANT4MAPPING_H
-#define DD4HEP_GEANT4MAPPING_H
+#ifndef DD4HEP_DDG4_GEANT4MAPPING_H
+#define DD4HEP_DDG4_GEANT4MAPPING_H
 
 // Framework include files
 #include "DD4hep/LCDD.h"
@@ -15,19 +15,14 @@
 #include "DDG4/Geant4GeometryInfo.h"
 #include "DDG4/Geant4VolumeManager.h"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
+    /// Geometry mapping from DD4hep to Geant 4.
     /** @class Geant4Mapping Geant4Mapping.h DDG4/Geant4Mapping.h
-     *
-     * Geometry mapping from DD4hep to Geant 4.
      *
      * @author  M.Frank
      * @version 1.0
@@ -90,4 +85,4 @@ namespace DD4hep {
   }    // End namespace Simulation
 }      // End namespace DD4hep
 
-#endif // DD4HEP_GEANT4MAPPING_H
+#endif // DD4HEP_DDG4_GEANT4MAPPING_H
diff --git a/DDG4/include/DDG4/Geant4MonteCarloTruth.h b/DDG4/include/DDG4/Geant4MonteCarloTruth.h
index 860173ba4..c637fd09f 100644
--- a/DDG4/include/DDG4/Geant4MonteCarloTruth.h
+++ b/DDG4/include/DDG4/Geant4MonteCarloTruth.h
@@ -33,9 +33,8 @@ namespace DD4hep {
     // Forward declarations
     class Geant4Particle;
 
+    /// Default Interface class to handle monte carlo truth records
     /** @class Geant4MonteCarloTruth Geant4MonteCarloTruth.h DDG4/Geant4MonteCarloTruth.h
-     *
-     * Default Interface class to handle monte carlo truth records
      *
      * @author  M.Frank
      * @version 1.0
diff --git a/DDG4/include/DDG4/Geant4OutputAction.h b/DDG4/include/DDG4/Geant4OutputAction.h
index b52f0a510..9f438f06c 100644
--- a/DDG4/include/DDG4/Geant4OutputAction.h
+++ b/DDG4/include/DDG4/Geant4OutputAction.h
@@ -17,18 +17,15 @@ class G4Run;
 class G4Event;
 class G4VHitsCollection;
 
-/*
- *   DD4hep namespace declaration
- */
+
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
-  /*
-   *   Simulation namespace declaration
-   */
+
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
+    /// Base class to output Geant4 event data to persistent media
     /** @class Geant4OutputAction Geant4OutputAction.h DDG4/Geant4OutputAction.h
-     *
-     * Base class to output Geant4 event data to media
      *
      * @author  M.Frank
      * @version 1.0
@@ -36,7 +33,7 @@ namespace DD4hep {
     class Geant4OutputAction: public Geant4EventAction {
     protected:
       /// Helper class for thread savety
-      template <typename T> struct OutputContext {
+      template <typename T> class OutputContext {
       public:
         const T* context;
         void* userData;
diff --git a/DDG4/include/DDG4/Geant4Particle.h b/DDG4/include/DDG4/Geant4Particle.h
index dc7d7de81..fc3fa3399 100644
--- a/DDG4/include/DDG4/Geant4Particle.h
+++ b/DDG4/include/DDG4/Geant4Particle.h
@@ -23,19 +23,16 @@ class G4VProcess;
 #include <map>
 #include <memory>
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
     class Geant4Particle;
 
+    /// Base class to extend the basic particle class used by DDG4 with user information
     class ParticleExtension  {
     public:
       /// Default constructor
@@ -136,7 +133,7 @@ namespace DD4hep {
 
 #ifndef __DDG4_STANDALONE_DICTIONARIES__
 
-    /// Data structure to access MC particle information 
+    /// Data structure to access derived MC particle information 
     /**
      * @author  M.Frank
      * @version 1.0
diff --git a/DDG4/include/DDG4/Geant4ParticleGun.h b/DDG4/include/DDG4/Geant4ParticleGun.h
index 17750f03b..0e4deacf1 100644
--- a/DDG4/include/DDG4/Geant4ParticleGun.h
+++ b/DDG4/include/DDG4/Geant4ParticleGun.h
@@ -15,19 +15,14 @@
 // Forward declarations
 class G4ParticleDefinition;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
+    /// Implementation of a particle gun using Geant4Particles.
     /** @class Geant4ParticleGun Geant4ParticleGun.h DDG4/Geant4ParticleGun.h
-     *
-     * Implementation wrapper of the Geant4 particle gun
      *
      * @author  M.Frank
      * @version 1.0
diff --git a/DDG4/include/DDG4/Geant4ParticleHandler.h b/DDG4/include/DDG4/Geant4ParticleHandler.h
index f28154e9e..3a48615a4 100644
--- a/DDG4/include/DDG4/Geant4ParticleHandler.h
+++ b/DDG4/include/DDG4/Geant4ParticleHandler.h
@@ -20,14 +20,10 @@ class G4Track;
 class G4Event;
 class G4SteppingManager;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
@@ -35,8 +31,8 @@ namespace DD4hep {
     class Geant4PrimaryMap;
     class Geant4UserParticleHandler;
 
-    /** Geant4Action to collect the MC particle information.
-     *
+    /// Geant4Action to collect the MC particle information.
+    /**
      *  Extract the relevant particle information during the simulation step.
      *
      *  @author  M.Frank
@@ -55,9 +51,11 @@ namespace DD4hep {
 
     public:
       typedef std::vector<std::string> Processes;
-      struct FindParticleByID {
+      class FindParticleByID {
+      protected:
 	int pid;
-      FindParticleByID(int p) : pid(p) {}
+      public:
+        FindParticleByID(int p) : pid(p) {}
 	inline bool operator()(const std::pair<int,Geant4Particle*>& p)  const {
 	  return p.second->id == pid;
 	}
diff --git a/DDG4/include/DDG4/Geant4ParticlePrint.h b/DDG4/include/DDG4/Geant4ParticlePrint.h
index 808ef2e5d..0a84b94af 100644
--- a/DDG4/include/DDG4/Geant4ParticlePrint.h
+++ b/DDG4/include/DDG4/Geant4ParticlePrint.h
@@ -17,18 +17,14 @@
 // Forward declarations
 class G4Event;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
-    /** Geant4Action to collect the MC particle information.
-     *
+    /// Geant4Action to print MC particle information.
+    /**
      *
      * @author  M.Frank
      * @version 1.0
diff --git a/DDG4/include/DDG4/Geant4PhysicsList.h b/DDG4/include/DDG4/Geant4PhysicsList.h
index a987c9c8c..784a55c22 100644
--- a/DDG4/include/DDG4/Geant4PhysicsList.h
+++ b/DDG4/include/DDG4/Geant4PhysicsList.h
@@ -19,19 +19,15 @@
 // Forward declarations
 class G4VPhysicsConstructor;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
+    /// Interface class exposing some of the G4VUserPhysicsList class.
     /** @class Geant4UserPhysics Geant4PhysicsList.h DDG4/Geant4PhysicsList.h
      *
-     * Interface class exposing some of the G4VUserPhysicsList class.
      *
      * @author  M.Frank
      * @version 1.0
@@ -49,9 +45,8 @@ namespace DD4hep {
       virtual void RegisterPhysics(G4VPhysicsConstructor* physics) = 0;
     };
 
+    /// Concrete basic implementation of a Geant4 physics list action
     /** @class Geant4PhysicsList Geant4PhysicsList.h DDG4/Geant4PhysicsList.h
-     *
-     * Concrete basic implementation of the Geant4 event action
      *
      * @author  M.Frank
      * @version 1.0
@@ -59,6 +54,7 @@ namespace DD4hep {
     class Geant4PhysicsList: public Geant4Action {
     public:
 
+      /// Structure describing a G4 process
       /** @class PhysicsConstructor Geant4PhysicsList.h DDG4/Geant4PhysicsList.h
        *
        * Image of a physics constructor holding all stub information to attach
@@ -67,7 +63,8 @@ namespace DD4hep {
        * @author  M.Frank
        * @version 1.0
        */
-      struct Process {
+      class Process {
+      public:
         std::string name;
         int ordAtRestDoIt, ordAlongSteptDoIt, ordPostStepDoIt;
         /// Default constructor
@@ -80,25 +77,35 @@ namespace DD4hep {
       typedef std::vector<Process> ParticleProcesses;
       typedef std::map<std::string, ParticleProcesses> PhysicsProcesses;
 
-      struct ParticleConstructor: public std::string {
+      /// Structure describing a G4 particle constructor
+      class ParticleConstructor: public std::string {
+      public:
+        /// Default constructor
         ParticleConstructor()
             : std::string() {
         }
+	/// Initalizing constructor
         ParticleConstructor(const std::string& s)
             : std::string(s) {
         }
+	/// Default destructor
         ~ParticleConstructor() {
         }
       };
       typedef std::vector<ParticleConstructor> ParticleConstructors;
 
-      struct PhysicsConstructor: public std::string {
+      /// Structure describing a G4 physics constructor
+      class PhysicsConstructor: public std::string {
+      public:
+        /// Default constructor
         PhysicsConstructor()
             : std::string() {
         }
+	/// Initalizing constructor
         PhysicsConstructor(const std::string& s)
             : std::string(s) {
         }
+	/// Default destructor
         ~PhysicsConstructor() {
         }
       };
@@ -165,6 +172,7 @@ namespace DD4hep {
       virtual void constructProcesses(Geant4UserPhysics* physics);
     };
 
+    /// The implementation of the single Geant4 physics list action sequence
     /** @class Geant4PhysicsListActionSequence Geant4Action.h DDG4/Geant4Action.h
      *
      * Concrete implementation of the Geant4 physics list sequence.
diff --git a/DDG4/include/DDG4/Geant4Primary.h b/DDG4/include/DDG4/Geant4Primary.h
index 98628ebb4..8c2cd18ed 100644
--- a/DDG4/include/DDG4/Geant4Primary.h
+++ b/DDG4/include/DDG4/Geant4Primary.h
@@ -22,20 +22,17 @@
 // Forward declarations
 class G4PrimaryParticle;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
     class Geant4Particle;
     class Geant4Vertex;
     
+    /// Base structure to extend primary information with user data
     class PrimaryExtension  {
     public:
       /// Default constructor
diff --git a/DDG4/include/DDG4/Geant4PrimaryHandler.h b/DDG4/include/DDG4/Geant4PrimaryHandler.h
index 0b6873257..b8b4a797a 100644
--- a/DDG4/include/DDG4/Geant4PrimaryHandler.h
+++ b/DDG4/include/DDG4/Geant4PrimaryHandler.h
@@ -12,18 +12,14 @@
 // Framework include files
 #include "DDG4/Geant4GeneratorAction.h"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
-    /** Geant4Action to convert the particle information to Geant4
-     *
+    /// Geant4Action to convert the particle information to Geant4
+    /**
      *  @author  M.Frank
      *  @version 1.0
      */
diff --git a/DDG4/include/DDG4/Geant4Primitives.h b/DDG4/include/DDG4/Geant4Primitives.h
index ae8199cbf..ccb0e5681 100644
--- a/DDG4/include/DDG4/Geant4Primitives.h
+++ b/DDG4/include/DDG4/Geant4Primitives.h
@@ -14,14 +14,10 @@
 
 /// Geant 4 forward declarations
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
   }    // End namespace Simulation
diff --git a/DDG4/include/DDG4/Geant4Random.h b/DDG4/include/DDG4/Geant4Random.h
index 29b5d3dc8..714c4eee6 100644
--- a/DDG4/include/DDG4/Geant4Random.h
+++ b/DDG4/include/DDG4/Geant4Random.h
@@ -13,14 +13,10 @@
 
 // C/C++ include files
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
diff --git a/DDG4/include/DDG4/Geant4RunAction.h b/DDG4/include/DDG4/Geant4RunAction.h
index dbf68a355..7e36d7c62 100644
--- a/DDG4/include/DDG4/Geant4RunAction.h
+++ b/DDG4/include/DDG4/Geant4RunAction.h
@@ -15,18 +15,14 @@
 // Forward declaration
 class G4Run;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
-  /*
-   *   Simulation namespace declaration
-   */
+
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
+    /// Concrete basic implementation of the Geant4 run action base class.
     /** @class Geant4RunAction Geant4RunAction.h DDG4/Geant4RunAction.h
-     *
-     * Concrete basic implementation of the Geant4 run action
      *
      * The Run Action is called once per start and end of a run. 
      * i.e. a series of generated events. These two callbacks
@@ -48,6 +44,7 @@ namespace DD4hep {
       virtual void end(const G4Run* run);
     };
 
+    /// Concrete basic implementation of the Geant4 run action sequencer.
     /** @class Geant4RunActionSequence Geant4RunAction.h DDG4/Geant4RunAction.h
      *
      * Concrete implementation of the Geant4 run action sequence.
diff --git a/DDG4/include/DDG4/Geant4SensDetAction.h b/DDG4/include/DDG4/Geant4SensDetAction.h
index 86107bbc0..9cd797dfd 100644
--- a/DDG4/include/DDG4/Geant4SensDetAction.h
+++ b/DDG4/include/DDG4/Geant4SensDetAction.h
@@ -25,9 +25,7 @@ class G4TouchableHistory;
 class G4VHitsCollection;
 class G4VReadOutGeometry;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
   // Forward declarations
@@ -36,9 +34,7 @@ namespace DD4hep {
     class DetElement;
   }
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
@@ -48,12 +44,13 @@ namespace DD4hep {
     class Geant4SensDetActionSequence;
     class Geant4SensDetSequences;
 
-    /** @class Geant4ActionSD Geant4SensDetAction.h DDG4/Geant4SensDetAction.h
+    /// Interface class to access properties of the underlying Geant4 sensitive detector structure
+    /** 
      *
      * @author  M.Frank
      * @version 1.0
      */
-    struct Geant4ActionSD: virtual public Geant4Action {
+    class Geant4ActionSD: virtual public Geant4Action {
     protected:
       /// Standard action constructor
       Geant4ActionSD(const std::string& name);
@@ -74,12 +71,13 @@ namespace DD4hep {
       virtual std::string fullPath() const = 0;
     };
 
+    /// Base class to construct filters for Geant4 sensitive detectors
     /** @class Geant4Filter Geant4SensDetAction.h DDG4/Geant4SensDetAction.h
      *
      * @author  M.Frank
      * @version 1.0
      */
-    struct Geant4Filter: public Geant4Action {
+    class Geant4Filter: public Geant4Action {
     public:
       /// Standard constructor
       Geant4Filter(Geant4Context* context, const std::string& name);
@@ -89,6 +87,7 @@ namespace DD4hep {
       virtual bool operator()(const G4Step* step) const;
     };
 
+    /// The base class for Geant4 sensitive detector actions implemented by users
     /** @class Geant4Sensitive Geant4SensDetAction.h DDG4/Geant4SensDetAction.h
      *
      * @author  M.Frank
@@ -247,6 +246,7 @@ namespace DD4hep {
 
     };
 
+    /// The sequencer to host Geant4 sensitive actions called if particles interact with sensitive elements
     /** @class Geant4SensDetActionSequence Geant4SensDetAction.h DDG4/Geant4SensDetAction.h
      *
      * Concrete implementation of the sensitive detector action sequence
@@ -369,6 +369,7 @@ namespace DD4hep {
       virtual void clear();
     };
 
+    /// Geant4SensDetSequences: class to access groups of sensitive actions
     /** @class Geant4SensDetActionSequences Geant4SensDetAction.h DDG4/Geant4SensDetAction.h
      *
      * Concrete implementation of the sensitive detector action sequence
@@ -411,6 +412,7 @@ namespace DD4hep {
       return sequence().defineCollection<TYPE>(this, coll_name);
     }
 
+    /// Template class to ease the construction of sensitive detectors using particle template specialization
     /** @class Geant4SensitiveAction Geant4SensDetAction.h DDG4/Geant4SensDetAction.h
      *
      * Templated implementation to realize sensitive detectors.
diff --git a/DDG4/include/DDG4/Geant4SensitiveDetector.h b/DDG4/include/DDG4/Geant4SensitiveDetector.h
index 2b84108e1..d3bc80652 100644
--- a/DDG4/include/DDG4/Geant4SensitiveDetector.h
+++ b/DDG4/include/DDG4/Geant4SensitiveDetector.h
@@ -22,23 +22,21 @@
 
 #include <algorithm>
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
     class Geant4StepHandler;
     class Geant4SensitiveDetector;
 
+    /// Deprecated: Example G4VSensitiveDetector implementation.
     /** @class Geant4SensitiveDetector Geant4SensitiveDetector.h DDG4/Geant4SensitiveDetector.h
-     *  Example G4VSensitiveDetector implementation.
      *
+     *  \deprecated{Deprecated class. Not supported by the DDG4 kernel.}
+     * 
      * @author  M.Frank
      * @version 1.0
      */
@@ -163,8 +161,6 @@ namespace DD4hep {
       virtual bool buildHits(G4Step* step,G4TouchableHistory* history);
     };
 
-
-
   }    // End namespace Simulation
 }      // End namespace DD4hep
 
diff --git a/DDG4/include/DDG4/Geant4StackingAction.h b/DDG4/include/DDG4/Geant4StackingAction.h
index 9ee3a1888..b560c1244 100644
--- a/DDG4/include/DDG4/Geant4StackingAction.h
+++ b/DDG4/include/DDG4/Geant4StackingAction.h
@@ -12,19 +12,14 @@
 // Framework include files
 #include "DDG4/Geant4Action.h"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
+    /// Concrete implementation of the Geant4 stacking action base class
     /** @class Geant4StackingAction Geant4Action.h DDG4/Geant4Action.h
-     *
-     * Concrete implementation of the Geant4 stacking action base class
      *
      * @author  M.Frank
      * @version 1.0
@@ -43,9 +38,8 @@ namespace DD4hep {
       }
     };
 
+    /// Concrete implementation of the Geant4 stacking action sequence
     /** @class Geant4StackingActionSequence Geant4Action.h DDG4/Geant4Action.h
-     *
-     * Concrete implementation of the Geant4 stacking action sequence
      *
      * The sequence dispatches the callbacks for each stepping action
      * to all registered Geant4StackingAction members and all 
diff --git a/DDG4/include/DDG4/Geant4StepHandler.h b/DDG4/include/DDG4/Geant4StepHandler.h
index 9539f3018..bfdd55f0a 100644
--- a/DDG4/include/DDG4/Geant4StepHandler.h
+++ b/DDG4/include/DDG4/Geant4StepHandler.h
@@ -18,19 +18,17 @@
 #include "G4VTouchable.hh"
 #include "G4VSensitiveDetector.hh"
 
-/*
- *   DD4hep namespace declaration
- */
+
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations;
     class Geant4StepHandler;
 
+    /// Helper class to ease the extraction of information from a G4Step object.
     /** @class Geant4StepHandler Geant4SensitiveDetector.h DDG4/Geant4SensitiveDetector.h
      *
      * Tiny helper/utility class to easily access Geant4 step information.
diff --git a/DDG4/include/DDG4/Geant4TestActions.h b/DDG4/include/DDG4/Geant4TestActions.h
index 2de9dce08..4e2005548 100644
--- a/DDG4/include/DDG4/Geant4TestActions.h
+++ b/DDG4/include/DDG4/Geant4TestActions.h
@@ -21,14 +21,10 @@
 #include "DDG4/Geant4ActionPhase.h"
 #include "DDG4/Geant4SensDetAction.h"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     namespace Test {
@@ -57,7 +53,8 @@ namespace DD4hep {
        * @author  M.Frank
        * @version 1.0
        */
-      struct Geant4TestGeneratorAction: public Geant4GeneratorAction, public Geant4TestBase {
+      class Geant4TestGeneratorAction: public Geant4GeneratorAction, public Geant4TestBase {
+      public:
         /// Standard constructor with initializing arguments
         Geant4TestGeneratorAction(Geant4Context* c, const std::string& n);
         /// Default destructor
@@ -71,7 +68,8 @@ namespace DD4hep {
        * @author  M.Frank
        * @version 1.0
        */
-      struct Geant4TestRunAction: public Geant4RunAction, public Geant4TestBase {
+      class Geant4TestRunAction: public Geant4RunAction, public Geant4TestBase {
+      public:
         /// Standard constructor with initializing arguments
         Geant4TestRunAction(Geant4Context* c, const std::string& n);
         /// Default destructor
@@ -91,7 +89,8 @@ namespace DD4hep {
        * @author  M.Frank
        * @version 1.0
        */
-      struct Geant4TestEventAction: public Geant4EventAction, public Geant4TestBase {
+      class Geant4TestEventAction: public Geant4EventAction, public Geant4TestBase {
+      public:
         /// Standard constructor with initializing arguments
         Geant4TestEventAction(Geant4Context* c, const std::string& n);
         /// Default destructor
@@ -111,7 +110,8 @@ namespace DD4hep {
        * @author  M.Frank
        * @version 1.0
        */
-      struct Geant4TestTrackAction: public Geant4TrackingAction, public Geant4TestBase {
+      class Geant4TestTrackAction: public Geant4TrackingAction, public Geant4TestBase {
+      public:
         /// Standard constructor with initializing arguments
         Geant4TestTrackAction(Geant4Context* c, const std::string& n);
         /// Default destructor
@@ -127,7 +127,8 @@ namespace DD4hep {
        * @author  M.Frank
        * @version 1.0
        */
-      struct Geant4TestStepAction: public Geant4SteppingAction, public Geant4TestBase {
+      class Geant4TestStepAction: public Geant4SteppingAction, public Geant4TestBase {
+      public:
         /// Standard constructor with initializing arguments
         Geant4TestStepAction(Geant4Context* c, const std::string& n);
         /// Default destructor
@@ -141,8 +142,10 @@ namespace DD4hep {
        * @author  M.Frank
        * @version 1.0
        */
-      struct Geant4TestSensitive: public Geant4Sensitive, public Geant4TestBase {
+      class Geant4TestSensitive: public Geant4Sensitive, public Geant4TestBase {
+      protected:
         size_t m_collectionID;
+      public:
         /// Standard constructor with initializing arguments
         Geant4TestSensitive(Geant4Context* c, const std::string& n, DetElement det, LCDD& lcdd);
         /// Default destructor
diff --git a/DDG4/include/DDG4/Geant4TouchableHandler.h b/DDG4/include/DDG4/Geant4TouchableHandler.h
index faf050b57..04b226d4c 100644
--- a/DDG4/include/DDG4/Geant4TouchableHandler.h
+++ b/DDG4/include/DDG4/Geant4TouchableHandler.h
@@ -18,19 +18,16 @@ class G4VPhysicalVolume;
 class G4VTouchable;
 class G4Step;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations;
     class Geant4TouchableHandler;
 
+    /// Helper class to ease the extraction of information from a G4Touchable object.
     /** @class Geant4TouchableHandler Geant4SensitiveDetector.h DDG4/Geant4SensitiveDetector.h
      *
      * Tiny helper/utility class to easily access Geant4 touchable information.
diff --git a/DDG4/include/DDG4/Geant4TrackHandler.h b/DDG4/include/DDG4/Geant4TrackHandler.h
index 35e93a04b..ce1636565 100644
--- a/DDG4/include/DDG4/Geant4TrackHandler.h
+++ b/DDG4/include/DDG4/Geant4TrackHandler.h
@@ -26,19 +26,17 @@
 class G4VTouchableHandle;
 class G4VUserTrackInformation;
 
-/*
- *   DD4hep namespace declaration
- */
+
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations;
     class Geant4TrackHandler;
 
+    /// Helper class to ease the extraction of information from a G4Track object.
     /** @class Geant4TrackHandler Geant4SensitiveDetector.h DDG4/Geant4SensitiveDetector.h
      *
      * Tiny helper/utility class to easily access Geant4 track information.
diff --git a/DDG4/include/DDG4/Geant4TrackingAction.h b/DDG4/include/DDG4/Geant4TrackingAction.h
index 84a1502b2..9d57b66f6 100644
--- a/DDG4/include/DDG4/Geant4TrackingAction.h
+++ b/DDG4/include/DDG4/Geant4TrackingAction.h
@@ -16,22 +16,17 @@
 class G4TrackingManager;
 class G4Track;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
     class Geant4TrackInformation;
 
+    /// Default base class for all geant 4 tracking actions used in DDG4.
     /** @class Geant4TrackingAction Geant4Action.h DDG4/Geant4Action.h
-     *
-     * Default base class for all geant 4 tracking actions.
      *
      * @author  M.Frank
      * @version 1.0
@@ -60,9 +55,8 @@ namespace DD4hep {
       virtual void end(const G4Track* track);
     };
 
+    /// Concrete implementation of the Geant4 tracking action sequence
     /** @class Geant4EventActionSequence Geant4Action.h DDG4/Geant4Action.h
-     *
-     * Concrete implementation of the Geant4 tracking action sequence
      *
      * The sequence dispatches the callbacks for each tracking action
      * to all registered Geant4SteppingAction members and all 
diff --git a/DDG4/include/DDG4/Geant4UIManager.h b/DDG4/include/DDG4/Geant4UIManager.h
index 7c4985e4f..26bd64c48 100644
--- a/DDG4/include/DDG4/Geant4UIManager.h
+++ b/DDG4/include/DDG4/Geant4UIManager.h
@@ -18,19 +18,15 @@ class G4VisManager;
 class G4UImanager;
 class G4UIExecutive;
 
-/*
- *   DD4hep namespace declaration
- */
+
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
+    /// Standard UI interface implementation with configuration using property options
     /** @class Geant4UIManager Geant4UIManager.h DDG4/Geant4UIManager.h
-     *
-     *  Standard UI interface implementation
      *
      * @author  M.Frank
      * @version 1.0
diff --git a/DDG4/include/DDG4/Geant4UIMessenger.h b/DDG4/include/DDG4/Geant4UIMessenger.h
index e58b63656..8f9b234f9 100644
--- a/DDG4/include/DDG4/Geant4UIMessenger.h
+++ b/DDG4/include/DDG4/Geant4UIMessenger.h
@@ -15,16 +15,13 @@
 #include "G4UImessenger.hh"
 #include "G4UIdirectory.hh"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
+    /// Generic implementation to export properties and actions to the Geant4 command prompt.
     /** @class Geant4UIMessenger Geant4UIMessenger.h DDG4/Geant4UIMessenger.h
      *
      * @author  M.Frank
diff --git a/DDG4/include/DDG4/Geant4UserParticleHandler.h b/DDG4/include/DDG4/Geant4UserParticleHandler.h
index 3ae3f01eb..05f0e8399 100644
--- a/DDG4/include/DDG4/Geant4UserParticleHandler.h
+++ b/DDG4/include/DDG4/Geant4UserParticleHandler.h
@@ -19,22 +19,19 @@ class G4Track;
 class G4Event;
 class G4SteppingManager;
 
-/*
- *   DD4hep namespace declaration
- */
+
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
     class Geant4Particle;
     class Geant4ParticleHandler;
 
-    /** Geant4ParticleHandler user extension action called by the particle handler.
-     *
+    /// Geant4ParticleHandler user extension action called by the particle handler.
+    /**
      *  Collect optional MC particle information and attacjh it to the particle object
      *  Clients may inherit from this class and override the approriate methods
      *  to add additional information in form of a DataExtension object to the Particle.
diff --git a/DDG4/include/DDG4/Geant4UserPhysicsList.h b/DDG4/include/DDG4/Geant4UserPhysicsList.h
index 28ea21513..d4f14c7fe 100644
--- a/DDG4/include/DDG4/Geant4UserPhysicsList.h
+++ b/DDG4/include/DDG4/Geant4UserPhysicsList.h
@@ -16,19 +16,14 @@
 #include "DDG4/Geant4PhysicsList.h"
 #include "G4VModularPhysicsList.hh"
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
+    /// Concrete templated implementation of the Geant4 user physics list
     /** @class Geant4UserPhysicsList
-     *
-     * Concrete implementation of the Geant4 user physics list
      *
      * @author  M.Frank
      * @version 1.0
diff --git a/DDG4/include/DDG4/Geant4VolumeManager.h b/DDG4/include/DDG4/Geant4VolumeManager.h
index 61edda462..5361332d3 100644
--- a/DDG4/include/DDG4/Geant4VolumeManager.h
+++ b/DDG4/include/DDG4/Geant4VolumeManager.h
@@ -18,26 +18,23 @@
 // Geant4 forward declarations
 class G4VTouchable;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     // Forward declarations
     class Geant4VolumeManager;
     class Geant4GeometryInfo;
 
+    /// The Geant4VolumeManager to facilitate optimized lookups of cell IDs from touchables.
     /** @class Geant4VolumeManager Geant4VolumeManager.h DDG4/Geant4VolumeManager.h
      *
      * @author  M.Frank
      * @version 1.0
      */
-    struct Geant4VolumeManager: public Geometry::Handle<Geant4GeometryInfo> {
+    class Geant4VolumeManager: public Geometry::Handle<Geant4GeometryInfo> {
     public:
       // Forward declarations
       typedef Geometry::Handle<Geant4GeometryInfo> Base;
diff --git a/DDG4/lcio/LCIOConversions.cpp b/DDG4/lcio/LCIOConversions.cpp
index 0f703c26f..03d2611af 100644
--- a/DDG4/lcio/LCIOConversions.cpp
+++ b/DDG4/lcio/LCIOConversions.cpp
@@ -184,7 +184,7 @@ namespace DD4hep {
 	  float pos[] = {c.x, c.y, c.z};
 	  EVENT::MCParticle* lc_mcp = (EVENT::MCParticle*)lc_parts->getElementAt(trackID);
 	  if ( hit_creation_mode == Geant4Sensitive::DETAILED_MODE )
-	    lc_hit->addMCParticleContribution(lc_mcp, c.deposit, c.time, c.pdgID, pos);
+	    lc_hit->addMCParticleContribution(lc_mcp, c.deposit, c.time, lc_mcp->getPDG(), pos);
 	  else
 	    lc_hit->addMCParticleContribution(lc_mcp, c.deposit, c.time);
 	}
diff --git a/DDG4/plugins/Geant4SensDetFilters.cpp b/DDG4/plugins/Geant4SensDetFilters.cpp
index 9e85dd469..76e8d1b2e 100644
--- a/DDG4/plugins/Geant4SensDetFilters.cpp
+++ b/DDG4/plugins/Geant4SensDetFilters.cpp
@@ -12,19 +12,14 @@
 // Forward declarations
 class G4ParticleDefinition;
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
-  namespace Simulation   {
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
+  namespace Simulation {
 
-    /** @class ParticleFilter
-     * 
-     * Geant4 sensitive detector filter base class for particle filters
+    /// Geant4 sensitive detector filter base class for particle filters
+    /**
      *
      * @author  M.Frank
      * @version 1.0
@@ -48,9 +43,8 @@ namespace DD4hep {
       bool isGeantino(const G4Track* track) const;
     };
 
-    /** @class ParticleRejectFilter
-     * 
-     * Geant4 sensitive detector filter implementing a particle rejector
+    /// Geant4 sensitive detector filter implementing a particle rejector
+    /**
      *
      * @author  M.Frank
      * @version 1.0
@@ -64,9 +58,8 @@ namespace DD4hep {
       virtual bool operator()(const G4Step* step) const;
     };
 
-    /** @class ParticleSelectFilter
-     * 
-     * Geant4 sensitive detector filter implementing a particle selector
+    /// Geant4 sensitive detector filter implementing a particle selector
+    /** 
      *
      * @author  M.Frank
      * @version 1.0
@@ -80,9 +73,8 @@ namespace DD4hep {
       virtual bool operator()(const G4Step* step) const;
     };
 
-    /** @class GeantinoRejectFilter
-     * 
-     * Geant4 sensitive detector filter implementing a Geantino rejector
+    /// Geant4 sensitive detector filter implementing a Geantino rejector
+    /** 
      *
      * @author  M.Frank
      * @version 1.0
@@ -96,9 +88,8 @@ namespace DD4hep {
       virtual bool operator()(const G4Step* step) const;
     };
 
-    /** @class EnergyDepositMinimumCut
-     * 
-     * Geant4 sensitive detector filter implementing an energy cut.
+    /// Geant4 sensitive detector filter implementing an energy cut.
+    /** 
      *
      * @author  M.Frank
      * @version 1.0
diff --git a/DDG4/python/DDG4.py b/DDG4/python/DDG4.py
index b32bd0182..9002881b3 100644
--- a/DDG4/python/DDG4.py
+++ b/DDG4/python/DDG4.py
@@ -58,8 +58,8 @@ def importConstants(lcdd,namespace=None):
   for c in lcdd.constants():
     values[c.first] = c.second.GetTitle()
   evaluator = DD4hep.evaluator()
-  for key,value in values:
-    setattr(ns,key,value)
+  for k in values.keys():
+    setattr(ns,k,values[k])
     #print 'Imported global value:',c.first,'=',c.second.GetTitle(),'into namespace',ns.__name__
 #---------------------------------------------------------------------------
   
diff --git a/DDG4/src/Geant4Exec.cpp b/DDG4/src/Geant4Exec.cpp
index 69dc8e32c..78a9198a3 100644
--- a/DDG4/src/Geant4Exec.cpp
+++ b/DDG4/src/Geant4Exec.cpp
@@ -35,14 +35,10 @@
 #include <memory>
 #include <stdexcept>
 
-/*
- *   DD4hep namespace declaration
- */
+/// Namespace for the AIDA detector description toolkit
 namespace DD4hep {
 
-  /*
-   *   Simulation namespace declaration
-   */
+  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
 
     namespace {
@@ -54,11 +50,12 @@ namespace DD4hep {
       return s_globalContext;
     }
 
-
+    /// Sequence handler implementing common actions to all sequences.
     template <typename T> struct SequenceHdl {
       typedef SequenceHdl<T> Base;
       T* m_sequence;
       Geant4Context* m_activeContext;
+      /// Default constructor
       SequenceHdl()
 	: m_sequence(0), m_activeContext(0) {
       }
@@ -114,9 +111,8 @@ namespace DD4hep {
     class Geant4UserRunAction;
     class Geant4UserEventAction;
 
+    /// Concrete implementation of the Geant4 run action
     /** @class Geant4UserRunAction
-     *
-     * Concrete implementation of the Geant4 run action
      *
      * @author  M.Frank
      * @version 1.0
@@ -136,9 +132,8 @@ namespace DD4hep {
       virtual void EndOfRunAction(const G4Run* run);
     };
 
+    /// Concrete implementation of the Geant4 event action
     /** @class Geant4UserEventAction
-     *
-     * Concrete implementation of the Geant4 event action
      *
      * @author  M.Frank
      * @version 1.0
@@ -158,9 +153,8 @@ namespace DD4hep {
       virtual void EndOfEventAction(const G4Event* evt);
     };
 
+    /// Concrete implementation of the Geant4 tracking action
     /** @class Geant4UserTrackingAction
-     *
-     * Concrete implementation of the Geant4 tracking action
      *
      * @author  M.Frank
      * @version 1.0
@@ -187,9 +181,8 @@ namespace DD4hep {
       }
     };
 
+    /// Concrete implementation of the Geant4 stacking action sequence
     /** @class Geant4UserStackingAction
-     *
-     * Concrete implementation of the Geant4 stacking action sequence
      *
      * @author  M.Frank
      * @version 1.0
@@ -216,9 +209,8 @@ namespace DD4hep {
       }
     };
 
+    /// Concrete implementation of the Geant4 generator action
     /** @class Geant4UserGeneratorAction
-     *
-     * Concrete implementation of the Geant4 generator action
      *
      * @author  M.Frank
      * @version 1.0
@@ -239,9 +231,8 @@ namespace DD4hep {
       }
     };
 
+    /// Concrete implementation of the Geant4 stepping action
     /** @class Geant4UserSteppingAction
-     *
-     * Concrete implementation of the Geant4 stepping action
      *
      * @author  M.Frank
      * @version 1.0
diff --git a/DDG4/src/Geant4VolumeManager.cpp b/DDG4/src/Geant4VolumeManager.cpp
index 942f01914..4eeba01dd 100644
--- a/DDG4/src/Geant4VolumeManager.cpp
+++ b/DDG4/src/Geant4VolumeManager.cpp
@@ -34,6 +34,7 @@ using namespace std;
 
 namespace {
 
+  /// Helper class to populate the Geant4 volume manager
   struct Populator {
     typedef vector<const TGeoNode*> Chain;
     typedef DD4hep::Geometry::LCDD LCDD;
diff --git a/doc/LaTex/CERN-logo.png b/doc/LaTex/CERN-logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..5d801ddc6a9cd75ba2171dbb59683e24aba65b9d
GIT binary patch
literal 2935
zcmV--3yAcIP)<h;3K|Lk000e1NJLTq002+`002-30ssI20dr;g000X<Nkl<Zc%1E=
zO=un0702%)F+`52z;cLU>~<sDIE&f>Lu&=w8+VZ`41tnlW2n`YKfo(#BZI-&$SXnO
ztST?MvC~3ZEuuxWaYU6a1d_W*aimQmW2?jpC`eYo+2l9(uXjDZGjr$8%zF}~K0L&G
z^X{BE|9j3oU-v$}^qW8Y#r!|fOFJ#VcGC;MKX-Zo_~%Y90C$G^dUyBrcJXF?^T(y-
zwe5LmF0~mjzy=QO?LW}Nt8Y&iAKS~nAu-qO0sLy$%kK>SiWfL_Wo7lr%6FSH3y(H7
ze{{q85B%cQu3gNCyE3!z@Uwq?v+=`IeH=LST3h4^P*cD_egDkC_s;b5hL4}ke!X!2
z@%&eh0UWrCc>y*Pbn@6fUfeY``}I6G-hbRso>FQA7@U7R`zBC<H-7ux=L-+h`V0`J
z#p~1QC2Stp@Zm4o9>4vc@JuzQnt%~>?9vGo1;P&}=1@^RKEV6a<d=7*7iA`YyYcqK
z<bSzRk6R4Y0gMq|9XgI;Q4zvLYBfM`fDf}aI&^&K?2(hl-nek%ZgaM|R2eX~hge86
z^3fL<VH-t3+ZV^~%Dn%6;~g+J31C+~I7%QyNbh<zz(R{;BOia!L>e2kb{{;@gPAzT
zzOngqY59BJjNiGpxV+Xdq&c=8RRAos;H+(La5#2&@2O+^<kGXmV&U(QIby8BiE7w+
zy_qEoATDOF#{y=;WXUzqqAMAya1yj^==yeLbu;Ue2M+H=`8<x5%w4<~gD0!%7kMZT
z%3hBGjG*}B8fdwZxP{QhYAhyn*--r0%o+x}nUXWB3j2Snbv0}qz;41%CF^p|oSB}O
z{IW(;!5s0#bJNpgDF6mG_^;n87XvdX`l=i-H!CZMpItyQN8HsgN<%B(Js~&~|IS^T
zCRPLcli|}SKZYl(CVR0Q@Rj$EA~!iuq==wJCKe%z9r<XsVK~JuK#OA0DzTas!Qw*I
zI6tPcP=;4_6@66#SoHvlCo<!6Xps^<#N1L!;6w~`E02w;St(rMt0K$?ZA@CJv4-D%
zD=|w_zZl6J+J<KA5dtuM00ty%mGg|2VK&wUWG{vQtESO2VkE<{fw{eCMKA;~hV3{D
zXAx%V&>~hLz+%VjMv8^Ky*oS=Ik*zpB;+A(A00Rs4bFr6dk~VS?oBaOcWw|iVZelb
z1%@_>-H2x99|0J6<IB%n19<^iHxa?Bz`I|0dHsict1JX;yHLAx)yp)WvN@nhdQ?w&
zm?k9~{gg{FzB`pmrrTOPqJMu+wg^!VEFHS>&!grzI!OCM*4p)nxv|S9u6*$8be+Hx
zi<VU(VB|1cdCzll;4QSUF(f{o9N5PMtBAchd>RQBA8dhPnn{Ma&H&v)>O(l;y-UbJ
zg}B*eFSq>L^M6faV`kMbOB)@NC2ME8)6(XqSs}pk>`M=xvBn|Y96r_EwTr;;?2(g+
za1JDIDDga23`Wqc*fwcMHUTqm=ryNUCec{WR3uEAkLD|Vog4wcLucQdzn?rhTxJz(
z*gCrO!YE2GO9hpacdQoe?dsaP0Wp}x0h{s`8rQi|DZ^4yS0<cu(<~DJjHC1780!|v
z8ipLq<h|eZ!v|}37cp-FIGERy>klQaio`U@+|o@?M@)fwV}Y<N3VCU-o>UnSW=EX3
zIda;h7O?wD*BQV(f-pUss0CL9U{a_HH_GFJw_HuDD~L)yG;`|p=B8Pu?TvU_yCxv1
zY03N3Uw!(|CGg}fa?>(qFr#XwBm5K~Wos`uu;@;<!bedqTmdjFFemgJNW6%CEm3@d
zu+{4m2A>S7T*FIa4mU1y6DbTT0X*=AX?cxY3IXoh)0O@>HTw<Tl^U&f8x_p>YM5km
zBay?5=tWEbqmb!Qve&WtgeAkIFFq(-6hXkx`*%tR;y&V%Y^41pVaC{+Cd)zQpw155
z)P;u0sI~3fwF+iN@{}BT_9XIfBZek!-T+(-t}E<l3IU@8kFQ!hSMBuU55-qLbL8W#
zEQgQ(zV-XG1guy!5Q!FIb^X@dpRb+KT2<ldNzbIb-rJ>2{yD%_0r-L>{jko@8<5Q4
zVB!}8`F|l`vGe$<G}9I#e^Iseg!JvjjI&v{YY7ibYPs0br)t`6tNf+SHSU6scVlil
zi7aiS6}QNXvI(i;R#8i|46yaF1b{5xB+%#iz@n~IR`m3hB6phA5~|bU<aWT5w0X4N
z@>Pq)fvpg*r1z5b9VDh6)h$@5SSjj+dgSKO?Z0Lz<g{{=^_?OG*w3xGNuGdUbu?^R
ze#<LC9g#U<V`nb?qmtaU2{Bx8zSzn!a{;r?YsO(Ev^=S3i!kgS+DO{9aFGw3Ni@#v
z9!Z`+5H=-%?Sj!Be>Ti+Sl1d(yxK*CWv^~gH1>vVm9)VHSdv<58RH?yIy_)Y%ipuE
zct)qsDe!bcASqf}fMmIyJ>pHbGLuGtXXYO&e<t7X_F7$_?kHfOlF4OT#aeFZE`n)o
zk=8e9%QpeT^K|+o&3!A=I=nZ&tyzOc?d}wF?b(<7u$O+In~kz_U?qULIq{7T*3hI^
ztSVXW=s_cN3kG$qysrc-oqlL<y|h13ULK-J3TyIS65z2*C&&ujWGh+sG~X^#A5VSB
z+yR(wI^R|!b!Pri?qEmdfMEgOZo8%63UpzfvYjMK(6$5Cp0G*ElEUpc{FduunbxjQ
zsU$HPPP$>JQ8}hCQyyW@xGVl9naS;YZ46EhEmIuui0Smh?FyALF9)oKu##$5pkv<5
zJ<<>@_}HW?;E`%iV+-Rj0GD7I8@l+5Fs1yXT08_N^=Q=)r6|FH-5frRf7UBEP*){H
zzk2?-0AQJ={YR6^_O-DXv!@#cSP=*%D*_?Sxoc}UFmQ5_dA%@um+7coW2BFQ7^}J>
zN9B>y58;eauZaY#;FJ!ze8gSrtffwFX=9<`0Utdp{^*RNF`@C|^L^g{#da+ffxJ`>
z{1}psNhY1Q&7+iWcy;_-SYmgYRtBu?IGt;#bWlhRmGmRtgTw+>aPm?)(>f-}0wxSf
zSBi}~FRil14Sv11OYI?duMQ656h5&Vao2Cn#iM2RyY2Q!Zug^z;x%l8Q$fg;=&r4&
z6Y*5b*@A{CfCGgG3>9)130h+}T;jcej#tbqJd)`}-euweD>!K{BP;|{9)F^x30ftR
z>&s8gV5s}yQH7lcRZaocT7iTX9V;r$M(Ux}U0}vdGPCjmMct1qRRL`GGKxArB4Hl8
zJjgIidi>74qEsm<InQrZLh)#E6WWw;d+6!(BZjK&EoplxJPfT~9J{MsZ;}(l%Bnhj
zz$r2hXRuBZWDhSZ{fI<SZTFBTb;tFwbZSl(!OB+vQ>d(ZoQsk2|HcNwY=ccF10tJE
z)c{w@r5KE=Rpsd=ZAYS200XLv)kP;%xyZ0=$jqgV|1wQAKyu>ftzV)al5m}6B=#nq
zSG&Klvbt%5YGOP6`+MB4y&Q-1hEA5W!;-uClBI3>DW19(cyIkmiIi~c@`=EB1$I*9
zn4bp8xkRQP+xKHjosI;C%Aj|Lr}}!k&?niF8)NgcC%Gr(!-SIE-hY_339yIOwA9kB
zjwgJ)gNa479e@c@I$|DE;?|?3;O0x3Iu2M~I=;lMN3xWdo^fXZH~-~NJQ25Y&whB+
zLBQLI*0j=(+_N8P>J(tCYdg`JR{D{9_9IOl0gSgCyEIs}pl?W9ek<>cMw;3WxL(oM
zoYYY(Et}d5c&E^c=D+&3H2r8NU>wE{qBX58>+I3fG_?(|exF#ipl>f}(>T0k-M0Vo
hP_>}%1jVEuKLLAqd^Mtxgp2?H002ovPDHLkV1l&8oq7NO

literal 0
HcmV?d00001

diff --git a/doc/doxygen/DD4hep.css b/doc/doxygen/DD4hep.css
new file mode 100644
index 000000000..cee0d06b5
--- /dev/null
+++ b/doc/doxygen/DD4hep.css
@@ -0,0 +1,949 @@
+/* The standard CSS for doxygen */
+
+body, table, div, p, dl {
+	font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+	font-size: 13px;
+	line-height: 1.3;
+}
+
+/* @group Heading Levels */
+
+h1 {
+	font-size: 150%;
+}
+
+.title {
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
+h2 {
+	font-size: 120%;
+}
+
+h3 {
+	font-size: 100%;
+}
+
+dt {
+	font-weight: bold;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+	margin-top: 2px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #3D578C;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #4665A2;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #ffffff;
+	border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #ffffff;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited {
+	color: #4665A2; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+.fragment {
+	font-family: monospace, fixed;
+	font-size: 105%;
+}
+
+pre.fragment {
+	border: 1px solid #C4CFE5;
+	background-color: #FBFCFD;
+	padding: 4px 6px;
+	margin: 4px 8px 4px 2px;
+	overflow: auto;
+	word-wrap: break-word;
+	font-size:  9pt;
+	line-height: 125%;
+}
+
+div.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #ffffff;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 8px;
+	margin-right: 8px;
+}
+
+td.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+	border-top: 1px solid #C4CFE5;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight {
+	width: 100%;
+}
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+}
+
+.memname {
+        white-space: nowrap;
+        font-weight: bold;
+        margin-left: 6px;
+}
+
+.memproto, dl.reflist dt {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 8px;
+        border-top-left-radius: 8px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 8px;
+        -moz-border-radius-topleft: 8px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 8px;
+        -webkit-border-top-left-radius: 8px;
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 2px 5px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        /* opera specific markup */
+        border-bottom-left-radius: 8px;
+        border-bottom-right-radius: 8px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 8px;
+        -moz-border-radius-bottomright: 8px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 8px;
+        -webkit-border-bottom-right-radius: 8px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+
+.params, .retval, .exception, .tparams {
+        border-spacing: 6px 2px;
+}       
+
+.params .paramname, .retval .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+
+
+
+/* @end */
+
+/* @group Directory (tree) */
+
+/* for the tree view */
+
+.ftvtree {
+	font-family: sans-serif;
+	margin: 0px;
+}
+
+/* these are for tree view when used as main index */
+
+.directory {
+	font-size: 9pt;
+	font-weight: bold;
+	margin: 5px;
+}
+
+.directory h3 {
+	margin: 0px;
+	margin-top: 1em;
+	font-size: 11pt;
+}
+
+/*
+The following two styles can be used to replace the root node title
+with an image of your choice.  Simply uncomment the next two styles,
+specify the name of your image and be sure to set 'height' to the
+proper pixel height of your image.
+*/
+
+/*
+.directory h3.swap {
+	height: 61px;
+	background-repeat: no-repeat;
+	background-image: url("yourimage.gif");
+}
+.directory h3.swap span {
+	display: none;
+}
+*/
+
+.directory > h3 {
+	margin-top: 0;
+}
+
+.directory p {
+	margin: 0px;
+	white-space: nowrap;
+}
+
+.directory div {
+	display: none;
+	margin: 0px;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+/* these are for tree view when not used as main index */
+
+.directory-alt {
+	font-size: 100%;
+	font-weight: bold;
+}
+
+.directory-alt h3 {
+	margin: 0px;
+	margin-top: 1em;
+	font-size: 11pt;
+}
+
+.directory-alt > h3 {
+	margin-top: 0;
+}
+
+.directory-alt p {
+	margin: 0px;
+	white-space: nowrap;
+}
+
+.directory-alt div {
+	display: none;
+	margin: 0px;
+}
+
+.directory-alt img {
+	vertical-align: -30%;
+}
+
+/* @end */
+
+div.dynheader {
+        margin-top: 8px;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+	text-align:left;
+}
+
+table.fieldtable {
+        width: 100%;
+        margin-bottom: 10px;
+        border: 1px solid #A8B8D9;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        vertical-align: top;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #A8B8D9;
+        width: 100%;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	border:solid 1px #C2CDE4;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+div.ingroups
+{
+	margin-left: 5px;
+	font-size: 8pt;
+	padding-left: 5px;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #F9FAFC;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 7px;
+}
+
+dl
+{
+        padding: 0 0 0 10px;
+}
+
+dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug
+{
+        border-left:4px solid;
+        padding: 0 0 0 6px;
+}
+
+dl.note
+{
+        border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+        border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+        border-color: #00D000;
+}
+
+dl.deprecated
+{
+        border-color: #505050;
+}
+
+dl.todo
+{
+        border-color: #00C0E0;
+}
+
+dl.test
+{
+        border-color: #3030E0;
+}
+
+dl.bug
+{
+        border-color: #C08050;
+}
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectname
+{
+	font: 300% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+}
+
+dl.citelist dd {
+        margin:2px 0;
+        padding:5px 0;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+  pre.fragment
+  {
+    overflow: visible;
+    text-wrap: unrestricted;
+    white-space: -moz-pre-wrap; /* Moz */
+    white-space: -pre-wrap; /* Opera 4-6 */
+    white-space: -o-pre-wrap; /* Opera 7 */
+    white-space: pre-wrap; /* CSS3  */
+    word-wrap: break-word; /* IE 5.5+ */
+  }
+}
+
diff --git a/doc/doxygen/DD4hepFigures.dox b/doc/doxygen/DD4hepFigures.dox
new file mode 100644
index 000000000..7bcd78e37
--- /dev/null
+++ b/doc/doxygen/DD4hepFigures.dox
@@ -0,0 +1,31 @@
+
+// Nothing serious
+namespace DoxygenFigures {
+
+/// Dummy header to just include figures used in Doxygen to ensure the files are copied to the output
+/**
+\image html CERN-logo.png
+
+\image html DD4hep_big_picture.png
+
+\image html DD4hep_compact_xml.png
+
+\image html DD4hep_classes.png
+
+\image html DD4hep_compact_xml.png
+
+
+*/
+class DD4hepFigures  {
+};
+
+}
+
+/// Geometry extension object in ROOT.
+class TGeoExtension;
+
+/// Structure defining an XML attribute in TinyXML
+class TIXmlAttribute;
+/// Structure defining an XML attribute set in TinyXML
+class TIXmlAttributeSet;
+
diff --git a/doc/doxygen/DD4hepFooter.html b/doc/doxygen/DD4hepFooter.html
new file mode 100644
index 000000000..c93cb5618
--- /dev/null
+++ b/doc/doxygen/DD4hepFooter.html
@@ -0,0 +1,16 @@
+<!--BEGIN GENERATE_TREEVIEW-->
+    <li class="footer">$generatedby
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> $doxygenversion </li>
+   </ul>
+ </div>
+<!--END GENERATE_TREEVIEW-->
+<!--BEGIN !GENERATE_TREEVIEW-->
+<hr class="footer"/><address class="footer"><small>
+$generatedby &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="$relpath$doxygen.png" alt="doxygen"/>
+</a> $doxygenversion
+</small></address>
+<!--END !GENERATE_TREEVIEW-->
+</body>
+</html>
diff --git a/doc/doxygen/DD4hepHeader.html b/doc/doxygen/DD4hepHeader.html
new file mode 100644
index 000000000..18d14292f
--- /dev/null
+++ b/doc/doxygen/DD4hepHeader.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
+<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
+<link href="$relpath$tabs.css" rel="stylesheet" type="text/css"/>
+<link href="$relpath$DD4hep.css" rel="stylesheet" type="text/css" />
+$treeview
+$search
+$mathjax
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+<!--BEGIN TITLEAREA-->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 100px;">
+  <!--BEGIN PROJECT_LOGO-->
+  <td id="projectlogo"><img alt="Logo" src="../doc/LaTex/CERN-logo.png" height="72"/></td>
+  <td id="projectlogo"><img alt="Logo" src="$relpath$$projectlogo" height="72"/></td>
+  <!--END PROJECT_LOGO-->
+  <!--BEGIN PROJECT_NAME-->
+  <td style="padding-left: 0.5em;">
+   <!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
+   <div id="projectname">$projectname
+   <!--BEGIN PROJECT_NUMBER-->&#160;<span id="projectnumber">$projectnumber</span><!--END PROJECT_NUMBER-->
+   </div>
+  </td>
+  <!--END PROJECT_NAME-->
+  <!--BEGIN !PROJECT_NAME-->
+   <!--BEGIN PROJECT_BRIEF-->
+    <td style="padding-left: 0.5em;">
+    <div id="projectbrief">$projectbrief</div>
+    </td>
+   <!--END PROJECT_BRIEF-->
+  <!--END !PROJECT_NAME-->
+  <!--BEGIN DISABLE_INDEX-->
+   <!--BEGIN SEARCHENGINE-->
+   <td>$searchbox</td>
+   <!--END SEARCHENGINE-->
+  <!--END DISABLE_INDEX-->
+ </tr>
+ </tbody>
+</table>
+</div>
+<!--END TITLEAREA-->
diff --git a/doc/doxygen/DD4hepMainpage.dox b/doc/doxygen/DD4hepMainpage.dox
new file mode 100644
index 000000000..8bf8500dc
--- /dev/null
+++ b/doc/doxygen/DD4hepMainpage.dox
@@ -0,0 +1,244 @@
+/**
+
+\mainpage DD4hep - Main page
+
+<A href="#UsefulLinks">Useful links</A>
+
+\section MAIN DD4hep - A Detector Description Toolkit for High Energy Physics Experiments
+
+\section INTRO Introduction
+The development of a coherent set of software tools for the description of 
+High Energy Physics detectors from a single source of information has been
+on the agenda of many experiments for decades.
+Providing appropriate and consistent detector views to simulation, 
+reconstruction and analysis applications from a single information source
+is crucial for the success of the experiments.
+Detector description in general includes not only the geometry and the 
+materials used in the apparatus, but all parameters describing e.g. the 
+detection techniques, constants required by alignment and calibration, 
+description of the readout structures, conditions data, etc. 
+
+The design of the DD4hep toolkit
+is shaped on the experience of detector description 
+systems, which were implemented for the LHC experiments, in particular 
+the LHCb experiment,
+as well as the lessons learnt from other
+implementations of geometry description tools developed for 
+the Linear Collider.
+Designing a coherent set of tools, with most of the basic components 
+already existing in one form or another, is an opportunity for getting 
+the best of all existing solutions. 
+DD4hep aims to widely reuse used existing software components, in particular
+the ROOT geometry, part of the ROOT project, a tool for 
+building, browsing, navigating and visualizing detector geometries. The
+code is designed to optimize particle transport through complex 
+structures and works standalone with respect to any Monte-Carlo 
+simulation engine. The ROOT geometry package provides
+sophisticated 3D visualization functionality, which is ideal for building 
+detector and event displays. The second component is 
+the Geant4 simulation toolkit, which is used to 
+simulate the detector response from particle collisions in complex designs.
+In DD4hep the geometrical
+representation provided by ROOT is the main source of information.
+In addition DD4hep provides the automatic conversions to other geometrical 
+representations, such as Geant4, and the convenient usage of these 
+components without the reinvention of the existing functionality.
+
+\section SCOPE Project Scope and Requirements
+
+The detector description should fully describe and qualify 
+the detection apparatus and must expose access to all information
+required to interpret event data recorded from particle collisions.
+Experience from the LHC experiments has shown that a generalized
+view, not limited only to geometry, is very beneficial in order to obtain 
+a coherent set of tools for the interpretation of collision data.
+This is particularly important in later stages of the experiment's life cycle,
+when a valid set of detector data must be used to analyze real or simulated 
+detector response from particle collisions. An example would be an alignment 
+application, where time dependent precise detector positions are matched 
+with the detector geometry.
+
+
+The following main requirements influenced the design of the toolkit:
+
+-   <b>Full Detector Description.</b> The toolkit should be able to 
+    manage the data describing the detector geometry, the materials used 
+    when building the structures, 
+    visualization attributes, detector readout information, alignment,
+    calibration and environmental parameters - all that is
+    necessary to interpret event data recorded from particle collisions.
+-   <b>The Full Experiment Life Cycle</b> should be supported.
+    The toolkit should support the development of the detector concepts, 
+    detector optimizations, 
+    construction and later operation of the detector.
+    The transition from one phase to the next should be simple and not require 
+    new developments. The initial phases are characterized by very $ideal$
+    detector descriptions, i.e. only very few parameters are sufficient 
+    to describe new 
+    detector designs. Once operational, the detector will be different 
+    from the ideal detector, and each part of the detector will have 
+    to have its own specific parameters and conditions, 
+    which are exposed by the toolkit.
+-   <b>One single source of detector information</b> must be sufficient
+    to perform all data processing applications such as simulation, 
+    reconstruction, online trigger and data analysis. 
+    This ensures that all applications see a coherent description.
+    In the past attempts by experiments to re-synchronize parallel
+    detector descriptions were always problematic.
+    Consequently, the detector description is the union of the information 
+    needed by all applications, though the level of detail may be selectable.
+-   <b>Ease of Use</b> influenced both
+    the design and the im\-ple\-men\-tation. The definition of sub\-detectors,
+    their geometrical description and the access to con\-ditions and alignment 
+    data should follow a minimalistic, simple and intuitive interface.
+    Hence, the of the developer using the toolkit is focused on specifics of 
+    the detector design and not on technicalities handled transparently by 
+    the toolkit.
+.
+
+<img src="../doc/LaTex/DD4hep_big_picture.png" height="400"/>
+<b>The components of the DD4hep detector geometry toolkit.</b>
+
+\section DESIGN Toolkit Design
+
+The Figure above shows the architecture 
+of the main components of the toolkit and their interfaces 
+to the end-user applications, namely the simulation, reconstruction, 
+alignment and visualization. 
+The central element of the toolkit is the so-called generic detector 
+description model. This is an in-memory model, i.e., a set of C++ objects 
+holding the data describing the geometry and other information of 
+the detector. The rest of the toolkit consists of tools and interfaces 
+to input or output information from this generic detector model. 
+The model and its components will be described in subsequence sections.
+
+\section COMPACT The Compact Detector Description
+
+Inspired from the work of the linear collider detector 
+simulation, the compact detector description is used
+to define an ideal detector as typically used during 
+the conceptual design phase of an experiment. 
+The compact description in its minimalistic form is probably not going to 
+be adequate later in the detector life cycle and
+is likely to be replaced or refined when a more realistic detector 
+with deviations from the ideal would be needed by the experiment.
+
+
+In the compact description the detector is parametrized in minimalistic terms
+with user provided parameters in XML.
+XML is an open format, the DD4hep parsers do not validate against a fix schema
+and hence allow to easily introduce new elements and attributes to describe 
+detectors. This feature minimizes the burden on the end-user while still 
+supporting flexibility.
+Such a compact detector descriptions cannot be interpreted in a 
+general manner, therefore so called $Detector$ $Constructors$ are needed.
+
+
+<img src="../doc/LaTex/DD4hep_classes.png" height="400"/>
+<b>Class diagram with the main classes and their relations 
+             for the Generic Detector Description Model. The implementing
+             ROOT classes are shown in brackets.
+</b>
+
+
+\section DETECTORS Detector Constructors
+
+Detector Constructors are relatively small code fragments that get
+as input an XML element from the compact description that represents 
+a single detector instance. The code interprets the data and expands 
+its geometry model in memory using the elements from the generic detector 
+description model described in section~\ref{subsec:generic-model}.
+The toolkit invokes these code fragments in a data driven way
+using naming conventions during the initialization phase of the 
+application. Users focus on one 
+single detector type at the time, but the toolkit supports them to still
+construct complex and large detector setups. 
+Two implementations are currently supported: One is based on 
+C++, which performs better and is able to detect errors at 
+compiler time, but the code is slightly more technical.
+The other is based on Python fragments, the code is more readable and
+compact but errors are only detected at execution time.
+
+\noindent
+The compact description together with the detector constructors are sufficient
+to build the detector model and to visualize it. If during the lifetime of the
+experiment the detector model changes, the corresponding constructors will 
+need to be adapted accordingly. 
+DD4hep provides already a palette of basic pre-implemented geometrical detector 
+concepts to design experiments. In view of usage of DD4hep as a detector 
+description toolkit, this library may in the future also adopt
+generic designs of detector components created by end users e.g. during the design 
+phase of future experiments.
+
+<img src="../doc/LaTex/DD4hep_compact_xml.png" height="250"/>
+
+<b>An example sniplett of the compact detector description. The 
+             example shows the description of a 2 layered silicon vertex 
+             detector.
+</b>
+
+\section DETDESCMODEL Generic Detector Description Model
+
+This is the heart of the DD4hep detector description toolkit. Its purpose is 
+to build in memory a model of the detector including its geometrical aspects
+as well as structural and functional aspects. The design reuses the elements 
+from the ROOT geometry package and extends them in case required functionality 
+is not available. The Figure above describing the detector model illustrates the main
+players and their relationships.
+Any detector is modeled as a tree of $Detector$ $Elements$, the entity 
+central to this design, which is represented in the implementation by 
+the $DetElement$ class. It offers all
+applications a natural entry point to any detector part of the experiment
+and represents a complete sub-detector (e.g. TPC), a part of a 
+sub-detector (e.g. TPC-Endcap), a detector module or any other convenient 
+detector device. 
+The main purpose is to give access to the data associated 
+to the detector device. For example, if the user writes some TPC reconstruction 
+code, accessing the TPC detector element from this code will provide access 
+the all TPC geometrical dimensions, the alignment and calibration constants 
+and other slow varying conditions such as the gas pressure, end-plate 
+temperatures etc. The $Detector$ $Element$ acts as a data concentrator. 
+Applications may access the full experiment geometry and all connected data
+through a singleton object called $LCDD$, which provides 
+management, bookkeeping and ownership to the model instances.
+
+\noindent
+The geometry is implemented using the ROOT geometry classes, which are used
+directly without unnecessary interfaces to isolate the end-user from the 
+actual ROOT based implementation. There is one exception: 
+The constructors are wrapped to facilitate a very compact and readable 
+notation to end-users building custom $Detector$ $Constructors$.
+
+
+\section MORE_INFO Still interested in more ?
+
+<A name="UsefulLinks">Some useful Links</A>:
+
+Here you can find the manuals:
+
+- The basic <A href="../doc/DD4hepManual.pdf">DD4hep manual</A>.
+- The <A href="../doc/DDG4Manual.pdf">DDG4 manual</A> to invoke the simulation toolkit Geant4 taking advantage of
+  detector descriptions implemented in DD4hep.
+- The DDAlign manual. A Geometry alignment toolkit to handle geometrical imperfections.
+- The DDCond manual to handle detector conditions for DD4hep based deytector descriptions.
+  (Under construction though).
+- The <A href="../doc/DDEveManual.pdf">DDEve manual</A> to visualize DD4hep geometries.
+  (Under construction though).
+- <A href="../doc/DD4hep_Diagrams.pdf">UML diagrams</A> from the design phase
+- <A href="../doc/DD4hep_Tutorial.pdf">Tutorial</A>. Relatively old...
+- <A href="http://cds.cern.ch/record/1473120/files/AIDA-D2_3.pdf">Design document</A>
+- <A href="https://sft.its.cern.ch/jira/browse/DDFORHEP">DD4hep bug tracker</A>
+.
+
+CERN intra-web:
+- DD4hep mails <A href="https://groups.cern.ch/group/dd4hep-developers/Lists/Archive/100.aspx">archive</A>.
+- <A href="http://aidasoft.web.cern.ch/DD4hep">DD4hep AIDA software page</A>
+.
+
+Desy:
+- <A href="https://svnsrv.desy.de/websvn/wsvn/General.aidasoft/DD4hep">Web svn</A>
+.
+
+Markus Frank CERN/LHCb
+
+*/
-- 
GitLab