From 0268adc89bc08591b6afb5dbe862f68b521c81eb Mon Sep 17 00:00:00 2001
From: Markus Frank <markus.frank@cern.ch>
Date: Mon, 3 Jun 2013 11:14:22 +0000
Subject: [PATCH] Fix problems with invalid volume ids

---
 DDCore/include/DD4hep/Handle.h | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/DDCore/include/DD4hep/Handle.h b/DDCore/include/DD4hep/Handle.h
index 954ed8901..4359b839e 100644
--- a/DDCore/include/DD4hep/Handle.h
+++ b/DDCore/include/DD4hep/Handle.h
@@ -149,7 +149,7 @@ namespace DD4hep {
       InstanceCount::decrement(this); 
 #endif
     }
-    
+
     /** @class Handle Handle.h
      *  
      *  @author  M.Frank
@@ -173,9 +173,10 @@ namespace DD4hep {
       T* operator->() const                   {  return  m_element;                  }
       operator T& ()  const                   {  return *m_element;                  }
       T& operator*()  const                   {  return *m_element;                  }
-      T* ptr() const                          {  return m_element;                   }
-      template <typename Q> Q* _ptr() const   {  return (Q*)m_element;               }
-      template <typename Q> Q* data() const   {  return (Value<T,Q>*)m_element;      }
+      T* ptr() const                          {  return  m_element;                  }
+      template <typename Q> Q* _ptr() const   {  return  (Q*)m_element;              }
+      template <typename Q> Q*  data() const  {  return  (Q*)m_element;              }
+      template <typename Q> Q&  object() const{  return *(Q*)m_element;              }
       void verifyObject() const {
         increment_object_validations();
         if ( m_element && dynamic_cast<T*>(m_element) == 0 )  {
-- 
GitLab