diff --git a/Event/xAOD/xAODPrimitives/CMakeLists.txt b/Event/xAOD/xAODPrimitives/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7f3c474e61159dc8ae278dabe4cdb80bc278f78d
--- /dev/null
+++ b/Event/xAOD/xAODPrimitives/CMakeLists.txt
@@ -0,0 +1,36 @@
+################################################################################
+# Package: xAODPrimitives
+################################################################################
+
+# Declare the package name:
+atlas_subdir( xAODPrimitives )
+
+# Declare the package's dependencies:
+atlas_depends_on_subdirs( PUBLIC
+                          Control/AthContainers
+                          PRIVATE
+                          AtlasTest/TestTools )
+
+# External dependencies:
+find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
+
+# Component(s) in the package:
+atlas_add_library( xAODPrimitives
+                   Root/*.cxx
+                   PUBLIC_HEADERS xAODPrimitives
+                   PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
+                   LINK_LIBRARIES AthContainers
+                   PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} TestTools )
+
+atlas_add_dictionary( xAODPrimitivesDict
+                      xAODPrimitives/xAODPrimitivesDict.h
+                      xAODPrimitives/selection.xml
+                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
+                      LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers TestTools xAODPrimitives )
+
+atlas_add_test( ut_xAOD_primitives_enums_test
+                SOURCES
+                test/ut_xAOD_primitives_enums_test.cxx
+                INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
+                LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers TestTools xAODPrimitives )
+
diff --git a/Event/xAOD/xAODPrimitives/cmt/requirements b/Event/xAOD/xAODPrimitives/cmt/requirements
index 8388387189996ca75e7e17b87cc1133b98cad643..a2c7eb2d55b1f708709f9ca61bdb7614cb2b5e1d 100644
--- a/Event/xAOD/xAODPrimitives/cmt/requirements
+++ b/Event/xAOD/xAODPrimitives/cmt/requirements
@@ -1,5 +1,5 @@
 package xAODPrimitives
-# $Id: requirements 625835 2014-11-03 17:30:11Z neldik $
+# $Id: requirements 725506 2016-02-22 14:21:10Z krasznaa $
 
 author Edward Moyse <Edward.Moyse@cern.ch>
 author Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch>
@@ -21,10 +21,7 @@ private
 use TestTools      TestTools-*         AtlasTest 
 use AtlasReflex   AtlasReflex-*   External
 
-apply_pattern UnitTest_run unit_test=ut_xAOD_primitives_enums_test
-
-macro_append ut_xAOD_primitives_enums_test_dependencies  " xAODPrimitives "
-application  ut_xAOD_primitives_enums_test ../test/ut_xAOD_primitives_enums_test.cxx
+apply_pattern UnitTest_run unit_test=ut_xAOD_primitives_enums
 
 apply_pattern lcgdict dict=xAODPrimitives selectionfile=selection.xml \
                       headerfiles="../xAODPrimitives/xAODPrimitivesDict.h" \
diff --git a/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationConeSize.h b/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationConeSize.h
index e76fd06deaff5505433e7385006ccc17c447152d..aa2acaeda3cef9ab4b1044b21b2756343ad123a7 100644
--- a/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationConeSize.h
+++ b/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationConeSize.h
@@ -23,7 +23,8 @@ namespace xAOD {
        cone35 = 5,
        cone40 = 6,
        cone45 = 7,
-       numIsolationConeSizes=8
+       cone50 = 8,
+       numIsolationConeSizes=9
      };
      
      static inline const char* toString(IsolationConeSize conesize)
@@ -38,6 +39,7 @@ namespace xAOD {
          case cone35:    return "cone35";
          case cone40:    return "cone40";
          case cone45:    return "cone45";
+         case cone50:    return "cone50";
          case numIsolationConeSizes:
          default:
            return "Unknown size";
diff --git a/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationHelpers.h b/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationHelpers.h
index 1cadbdfbd4a3e829345d3634d4a23ef89c5f093d..32c2cfdac4cb05b0e932a5286855373196633b52 100644
--- a/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationHelpers.h
+++ b/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationHelpers.h
@@ -31,9 +31,10 @@ namespace xAOD {
      /// convert float (e.g. 0.3) into IsolationConeSize. An assert is thrown  
      inline IsolationConeSize coneSize( float size ){
        int index = static_cast<int>(size*20)-2; // *20 equiv. to /0.05;
-       assert ( (size - float(index))<0.0001 );
        assert ( (index>-1) && (index < static_cast<int>(numIsolationConeSizes) )  );
-       return static_cast<IsolationConeSize>(index);
+       IsolationConeSize rel = static_cast<IsolationConeSize>(index);
+       assert ( fabs(size-coneSize(rel) )<0.0001 ); // this will fail if the input size is 0.3001...
+       return rel;
      }
 
      /// convert Isolation Type into cone size
diff --git a/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationType.h b/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationType.h
index a5ab16ed3321b2ea9e485a94477bda6193958093..d84f0319a4c926b1459806b2c894ef8dd7adddc2 100644
--- a/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationType.h
+++ b/Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationType.h
@@ -4,7 +4,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: IsolationType.h 636772 2014-12-18 15:33:07Z mnowak $
+// $Id: IsolationType.h 718726 2016-01-20 12:10:22Z dzhang $
 #ifndef XAODPRIMITIVES_ISOLATIONTYPE_H
 #define XAODPRIMITIVES_ISOLATIONTYPE_H
 
@@ -41,7 +41,7 @@ namespace xAOD {
          ptcone20 = 12,
          ptcone30 = 14,
          ptcone40 = 16,
-
+	 ptcone50 = 18,
          /// Topo-cluster E<sub>T</sub>-sum 
          ///
          /// E<sub>T</sub>-sum of the topo-clusters in a cone
@@ -83,6 +83,7 @@ namespace xAOD {
               case ptcone20:    return "ptcone20";
               case ptcone30:    return "ptcone30";
               case ptcone40:    return "ptcone40";
+	      case ptcone50:    return "ptcone50";
 
               case ptvarcone20:    return "ptvarcone20";
               case ptvarcone30:    return "ptvarcone30";