diff --git a/Build/AtlasBuildScripts/checkout_atlasexternals.sh b/Build/AtlasBuildScripts/checkout_atlasexternals.sh
index 144719018741dfc5357f2c46694ba84d4e47cdff..ed81eb02514d8766140f0bcbc53f4f72cde5e9ff 100755
--- a/Build/AtlasBuildScripts/checkout_atlasexternals.sh
+++ b/Build/AtlasBuildScripts/checkout_atlasexternals.sh
@@ -23,8 +23,8 @@ usage() {
     echo "  AtlasExternals_URL and AtlasExternals_REF to override"
     echo "  other values (even those on the command line)."
     echo "  If AtlasExternals_URL is set to 'current' then"
-	echo "  no clone or checkout is done and the working copy"
-	echo "  in the source directory is left untouched."
+    echo "  no clone or checkout is done and the working copy"
+    echo "  in the source directory is left untouched."
 }
 
 _max_retry_=5
@@ -46,7 +46,7 @@ _retry_ () {
 # Parse the command line arguments:
 TAGBRANCH=""
 SOURCEDIR=""
-EXTERNALSURL="https://:@gitlab.cern.ch:8443/atlas/atlasexternals.git"
+EXTERNALSURL="https://gitlab.cern.ch/atlas/atlasexternals.git"
 while getopts ":t:o:s:e:h" opt; do
     case $opt in
         t)
diff --git a/Control/AthLinksSA/AthLinks/ElementLink.h b/Control/AthLinksSA/AthLinks/ElementLink.h
index 6793225b3379ab784b1597403f82f99ef8c25b31..e5b9d36f5f9325e7f41ed2fac2cd9a9fe4f2e57b 100644
--- a/Control/AthLinksSA/AthLinks/ElementLink.h
+++ b/Control/AthLinksSA/AthLinks/ElementLink.h
@@ -154,6 +154,11 @@ public:
    /// Get the key that we reference, as a hash
    sgkey_t key() const { return persKey(); }
 
+   /// Comparison operator
+   bool operator==( const ElementLink& rhs ) const;
+   /// Comparison operator
+   bool operator!=( const ElementLink& rhs ) const;
+
    /// Get a reference to the object in question
    ElementConstReference operator*() const;
 
diff --git a/Control/AthLinksSA/AthLinks/ElementLink.icc b/Control/AthLinksSA/AthLinks/ElementLink.icc
index da4ef6b421cc4f037a65ed9705527674eeb406c2..56357d164e7aafd8ef3a0218b10a98bbd3b744a8 100644
--- a/Control/AthLinksSA/AthLinks/ElementLink.icc
+++ b/Control/AthLinksSA/AthLinks/ElementLink.icc
@@ -381,6 +381,18 @@ ElementLink< STORABLE >::dataID() const {
    return m_event->getName( persKey() );
 }
 
+template< typename STORABLE >
+bool ElementLink< STORABLE >::operator==( const ElementLink& rhs ) const {
+
+   return ( ( key() == rhs.key() ) && ( index() == rhs.index() ) );
+}
+
+template< typename STORABLE >
+bool ElementLink< STORABLE >::operator!=( const ElementLink& rhs ) const {
+
+   return ( ! ( *this == rhs ) );
+}
+
 template< typename STORABLE >
 typename ElementLink< STORABLE >::ElementConstReference
 ElementLink< STORABLE >::operator*() const {
diff --git a/Control/AthLinksSA/AthLinks/ElementLinkVector.h b/Control/AthLinksSA/AthLinks/ElementLinkVector.h
index f3a32b0cd0c379c46fb62cdefc69bb91abd443c1..051f57a9cd2aacd3fadde4499b0b319339b7a0cc 100644
--- a/Control/AthLinksSA/AthLinks/ElementLinkVector.h
+++ b/Control/AthLinksSA/AthLinks/ElementLinkVector.h
@@ -79,6 +79,11 @@ public:
    /// Assignment operator
    ElemLinkVec& operator=( const ElemLinkVec& rhs );
 
+   /// Comparison operator
+   bool operator==( const ElementLinkVector& rhs ) const;
+   /// Comparison operator
+   bool operator!=( const ElementLinkVector& rhs ) const;   
+
    /// @name Vector iterator functions
    /// @{
 
diff --git a/Control/AthLinksSA/AthLinks/ElementLinkVector.icc b/Control/AthLinksSA/AthLinks/ElementLinkVector.icc
index 2fc137a491641b295be211a3536973f722a9b98a..9767c09ee2244f55f35447795b6d52a458bf4505 100644
--- a/Control/AthLinksSA/AthLinks/ElementLinkVector.icc
+++ b/Control/AthLinksSA/AthLinks/ElementLinkVector.icc
@@ -51,6 +51,28 @@ ElementLinkVector< CONTAINER >::operator=( const ElemLinkVec& rhs ) {
    return *this;
 }
 
+template< class CONTAINER >
+bool ElementLinkVector< CONTAINER >::
+operator==( const ElementLinkVector& rhs ) const {
+
+   if( m_elVec.size() != rhs.m_elVec.size() ) {
+      return false;
+   }
+   for( std::size_t i = 0; i < m_elVec.size(); ++i ) {
+      if( m_elVec[ i ] != rhs.m_elVec[ i ] ) {
+         return false;
+      }
+   }
+   return true;
+}
+
+template< class CONTAINER >
+bool ElementLinkVector< CONTAINER >::
+operator!=( const ElementLinkVector& rhs ) const {
+
+   return ( ! ( *this == rhs ) );
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 //
 //              Implementation of the vector capacity functions
diff --git a/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.h b/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.h
index 19f5b17a73d452e7f3f7378fe7b5039a51cf64b5..01f1ee11b47375653fb6abe80435853160515c84 100644
--- a/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.h
+++ b/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.h
@@ -1,3 +1,7 @@
+// Dear emacs, this is -*- c++ -*-
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 #ifndef ASG_TOOLS__ANA_TOOL_HANDLE_H
 #define ASG_TOOLS__ANA_TOOL_HANDLE_H
 
@@ -24,7 +28,7 @@
 
 namespace asg
 {
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
    typedef INamedInterface parentType_t;
    typedef IAsgTool interfaceType_t;
 #else
@@ -99,7 +103,7 @@ namespace asg
     public:
       virtual ~AnaToolProperty () noexcept = default;
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
       /// \brief apply the property to the given tool in RootCore
       /// \par Guarantee
       ///   basic
@@ -114,7 +118,7 @@ namespace asg
 	const = 0;
 #endif
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
       /// \brief store the property in the configuration service in
       /// Athena
       /// \par Guarantee
@@ -171,7 +175,7 @@ namespace asg
     public:
       void setType (std::string type) noexcept;
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
       /// \brief register the new of the given type as factory
       ///
       /// If this is set, it is used instead of \ref type to allocate
@@ -206,7 +210,7 @@ namespace asg
       setProperty (const std::string& val_name,
 		   const AnaToolHandle<Type>& val_value);
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
       /// \copydoc setProperty
     public:
       template<typename Type> StatusCode
@@ -264,7 +268,7 @@ namespace asg
                     AnaToolCleanup& cleanup) const;
 
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
       /// \brief store the properties in the configuration service in
       /// Athena
       /// \par Guarantee
@@ -296,7 +300,7 @@ namespace asg
       std::map<std::string,std::shared_ptr<AnaToolProperty> > m_properties;
 
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
       /// \brief create, configure and initialize the tool (in
       /// RootCore)
       /// \par Guarantee
@@ -310,7 +314,7 @@ namespace asg
 #endif
 
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
       /// \brief allocate the tool
       /// \par Guarantee
       ///   basic
@@ -610,7 +614,7 @@ namespace asg
   public:
     void setType (std::string val_type) noexcept;
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
     /// \brief set the value of \ref type and a factory based on the
     /// standard tool constructor
     ///
@@ -855,7 +859,7 @@ namespace asg
   //   ToolHandle<T>& handle () {
   //     return *m_handleUser;};
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
   public:
     template<class T2>
     ASG_DEPRECATED ("please use setTypeRegisterNew() instead")
@@ -990,7 +994,7 @@ namespace asg
   (ASG_SET_ANA_TOOL_TYPE(handle,type), StatusCode (StatusCode::SUCCESS))
 
 /// \brief set the tool type on the tool handle, using new in rootcore
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 #define ASG_SET_ANA_TOOL_TYPE(handle,type)	\
   (handle).template setTypeRegisterNew<type> (#type)
 #else
diff --git a/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.icc b/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.icc
index 5a0606fb034d56323a81af9439e9982fe7150e41..6478617a39ec8277f9de6bd857d73a1f2742bb0f 100644
--- a/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.icc
+++ b/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.icc
@@ -1,8 +1,15 @@
+// Dear emacs, this is -*- c++ -*-
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
+#ifndef ASGTOOLS_ANATOOLHANDLE_ICC
+#define ASGTOOLS_ANATOOLHANDLE_ICC
+
 #include <AsgTools/MessageCheck.h>
 #include <assert.h>
 #include <cstdlib>
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
 #include "GaudiKernel/IJobOptionsSvc.h"
 #endif
 
@@ -11,7 +18,7 @@ namespace asg
 {
   namespace detail
   {
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
     StatusCode makeToolRootCore (const std::string& type,
 				 const std::string& name,
 				 AsgTool*& tool);
@@ -37,7 +44,7 @@ namespace asg
     {
       using namespace msgUserCode;
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
       to = ToolHandle<T1> (dynamic_cast<T1*>(&*from));
       if (!from.empty() && &*to == nullptr)
       {
@@ -166,7 +173,7 @@ namespace asg
 
 
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     /// \brief manage a single property in the job options service
 
     struct PropertyValueManager
@@ -218,7 +225,7 @@ namespace asg
 
 
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
     /// \brief a \ref AnaToolProperty containing a regular value in
     /// RootCore
 
@@ -261,7 +268,7 @@ namespace asg
 	: m_config (val_config)
       {}
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
     public:
       virtual StatusCode
       applyPropertyRootCore (AsgTool& tool, const std::string& name,
@@ -278,7 +285,7 @@ namespace asg
       }
 #endif
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     private:
       virtual StatusCode
       applyPropertyAthena (const std::string& toolName,
@@ -310,7 +317,7 @@ namespace asg
 
 
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     /// \brief a \ref AnaToolProperty copying a tool configuration
     /// from the job options service to a new place
 
@@ -353,7 +360,7 @@ namespace asg
 	: m_name (val_name), m_config (val_config)
       {}
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
     public:
       virtual StatusCode
       applyPropertyRootCore (AsgTool& tool, const std::string& name,
@@ -372,7 +379,7 @@ namespace asg
       }
 #endif
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     private:
       virtual StatusCode
       applyPropertyAthena (const std::string& toolName,
@@ -412,7 +419,7 @@ namespace asg
 
 
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
     template<typename Type> void AnaToolConfig ::
     registerNew ()
     {
@@ -423,7 +430,7 @@ namespace asg
 
 
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
     template<typename Type> StatusCode AnaToolConfig ::
     setProperty (const std::string& val_name, const Type& val_value)
     {
@@ -484,7 +491,7 @@ namespace asg
 
 
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     template<typename Type> StatusCode AnaToolConfig ::
     setProperty (const std::string& val_name,
 		 const ToolHandle<Type>& val_value)
@@ -551,7 +558,7 @@ namespace asg
       ANA_CHECK (makeBaseTool (name, parent, baseTH, baseCleanup));
       ANA_CHECK (toolHandleCast (th, baseTH));
       cleanup.swap (baseCleanup);
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
       baseTH->release ();
 #endif
       return StatusCode::SUCCESS;
@@ -577,10 +584,6 @@ namespace asg
     // General requirements
     CHECK_INVARIANT (&*this != nullptr);
     CHECK_INVARIANT (m_handleUser != nullptr);
-    // CHECK_INVARIANT (m_parentPtr == nullptr || m_parentPtr->name() == m_parentName);
-    // #ifndef ROOTCORE
-    // CHECK_INVARIANT (m_parentPtr == m_handleUser->parent());
-    // #endif
 
 #undef CHECK_INVARIANT
   }
@@ -630,7 +633,7 @@ namespace asg
       m_cleanup = that.m_cleanup;
     }
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     if (!m_handleUser->empty())
       (*m_handleUser)->release();
 #endif
@@ -668,7 +671,7 @@ namespace asg
     std::swap (m_parentPtr, that.m_parentPtr);
     {
       ToolHandle<T> tmp = *m_handleUser;
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
       if (!tmp.empty())
         tmp->release();
 #endif
@@ -827,7 +830,7 @@ namespace asg
     case detail::AnaToolHandleMode::RETRIEVE_SHARED:
       assert (sharedTool != nullptr);
       ANA_CHECK (detail::toolHandleCast (th, sharedTool->th()));
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
       if (!th.empty())
         th->release ();
 #endif
@@ -847,7 +850,7 @@ namespace asg
     ANA_CHECK (makeToolRetrieve (toolPtr, th));
 
     *m_handleUser = th;
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     if (!th.empty())
       th->release ();
 #endif
@@ -1024,7 +1027,7 @@ namespace asg
 
 
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
   template <class T> template <class T2> void AnaToolHandle<T> ::
   setTypeRegisterNew (std::string val_type)
   {
@@ -1068,7 +1071,7 @@ namespace asg
 #ifndef NDEBUG
     this->testInvariant ();
 #endif
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     return m_handleUser->parentName() + "." + name();
 #else
     std::string toolName;
@@ -1099,7 +1102,7 @@ namespace asg
         m_handleUser->typeAndName() != m_originalTypeAndName)
       return detail::AnaToolHandleMode::USER;
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
     if (!m_parentName.empty())
     {
       if (m_handleUser->parentName() != m_parentName)
@@ -1116,14 +1119,14 @@ namespace asg
       if ((sharedTool = detail::AnaToolShareList::singleton()
 	     .getShare (fullName())))
 	return detail::AnaToolHandleMode::RETRIEVE_SHARED;
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
       /// \todo check whether this is actually what we want to do
       if (ToolStore::contains<T> (m_handleUser->name()))
 	return detail::AnaToolHandleMode::USER;
 #endif
     }
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     //for athena, all we do here is check if the tool already exists
     interfaceType_t *tool = nullptr;
     if( detail::toolExists( fullName(), tool ) )
@@ -1349,3 +1352,5 @@ namespace asg
     m_allowEmpty = val_allowEmpty;
   }
 }
+
+#endif // ASGTOOLS_ANATOOLHANDLE_ICC
diff --git a/Control/AthToolSupport/AsgTools/AsgTools/IMessagePrinter.h b/Control/AthToolSupport/AsgTools/AsgTools/IMessagePrinter.h
index 568b18c19c361ff3de3ecefae2ce506675f19918..d98e80b9e6c0213e37af7ff1ef82686633b1f846 100644
--- a/Control/AthToolSupport/AsgTools/AsgTools/IMessagePrinter.h
+++ b/Control/AthToolSupport/AsgTools/AsgTools/IMessagePrinter.h
@@ -1,3 +1,7 @@
+// Dear emacs, this is -*- c++ -*-
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 #ifndef ASG_TOOLS__I_MESSAGE_PRINTER_H
 #define ASG_TOOLS__I_MESSAGE_PRINTER_H
 
@@ -14,7 +18,7 @@
 #include <AsgTools/MsgLevel.h>
 #include <sstream>
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 
 namespace asg
 {
diff --git a/Control/AthToolSupport/AsgTools/AsgTools/MessageCheck.h b/Control/AthToolSupport/AsgTools/AsgTools/MessageCheck.h
index 26f279c47dc6df6064098f15e6457ba6a72fd0a4..1bbc172acb5894e162e442268007f6e6f68ee140 100644
--- a/Control/AthToolSupport/AsgTools/AsgTools/MessageCheck.h
+++ b/Control/AthToolSupport/AsgTools/AsgTools/MessageCheck.h
@@ -1,3 +1,7 @@
+// Dear emacs, this is -*- c++ -*-
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 #ifndef ASG_TOOLS__MESSAGE_CHECK_H
 #define ASG_TOOLS__MESSAGE_CHECK_H
 
@@ -79,7 +83,7 @@
 #include <type_traits>
 
 #include <xAODRootAccess/tools/TReturnCode.h>
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 #include <AsgTools/MsgStream.h>
 #else
 #include "AthenaBaseComps/AthMessaging.h"
@@ -118,7 +122,7 @@
   void setMsgLevel (MSG::Level level); }
 
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 #define ASG_TOOLS_MSG_STREAM(NAME,TITLE)	\
   static MsgStream NAME (TITLE);
 #else
@@ -254,7 +258,7 @@ namespace asg
 
   namespace detail
   {
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     /// Get the Athena message service
     /// TODO: Look into using AthenaKernel/MsgStreamMember.h
     IMessageSvc* getMessageSvcAthena();
diff --git a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinter.h b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinter.h
index d6f11b298cc08c1458b8798ed23fbd5b8f5625d5..c493b4a018f0eaf017a2bf597e89912b5e3fd8a5 100644
--- a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinter.h
+++ b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinter.h
@@ -1,3 +1,7 @@
+// Dear emacs, this is -*- c++ -*-
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 #ifndef ASG_TOOLS__MESSAGE_PRINTER_H
 #define ASG_TOOLS__MESSAGE_PRINTER_H
 
@@ -11,7 +15,7 @@
 // reports, feature suggestions, praise and complaints.
 
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 
 #include <AsgTools/IMessagePrinter.h>
 
diff --git a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterErrorCollect.h b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterErrorCollect.h
index cbe207f01ea459d88ed48c4f5c2f551bcb909a54..94ab56ff211cb9b4e08644f094fec68e0be43384 100644
--- a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterErrorCollect.h
+++ b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterErrorCollect.h
@@ -1,3 +1,7 @@
+// Dear emacs, this is -*- c++ -*-
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 #ifndef ASG_TOOLS__MESSAGE_PRINTER_ERROR_COLLECT_H
 #define ASG_TOOLS__MESSAGE_PRINTER_ERROR_COLLECT_H
 
@@ -11,7 +15,7 @@
 // reports, feature suggestions, praise and complaints.
 
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 
 #include <AsgTools/IMessagePrinter.h>
 #include <vector>
diff --git a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterMock.h b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterMock.h
index 32a55787cb7dea04d4391528a0d97fc806271c38..ccde2361c525dce1d4db0a27ddeb7547726b9539 100644
--- a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterMock.h
+++ b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterMock.h
@@ -1,3 +1,7 @@
+// Dear emacs, this is -*- c++ -*-
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 #ifndef ASG_TOOLS__MESSAGE_PRINTER_MOCK_H
 #define ASG_TOOLS__MESSAGE_PRINTER_MOCK_H
 
@@ -14,7 +18,7 @@
 #include <AsgTools/IMessagePrinter.h>
 #include <gmock/gmock.h>
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 
 namespace asg
 {
diff --git a/Control/AthToolSupport/AsgTools/AsgTools/SgTEvent.icc b/Control/AthToolSupport/AsgTools/AsgTools/SgTEvent.icc
index ab8493df8f4c48374d23521af0842bc97c2c795d..a58e14b52dd669a834315090fe2378afd8f8c0f6 100644
--- a/Control/AthToolSupport/AsgTools/AsgTools/SgTEvent.icc
+++ b/Control/AthToolSupport/AsgTools/AsgTools/SgTEvent.icc
@@ -1,5 +1,7 @@
 // Dear emacs, this is -*- c++ -*-
-// $Id: SgTEvent.icc 687011 2015-08-03 09:25:07Z krasznaa $
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 #ifndef ASGTOOLS_SGTEVENT_ICC
 #define ASGTOOLS_SGTEVENT_ICC
 
@@ -7,10 +9,10 @@
 #include <iostream>
 
 // xAOD include(s):
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 #   include "xAODRootAccess/TEvent.h"
 #   include "xAODRootAccess/TStore.h"
-#endif // ROOTCORE
+#endif // XAOD_STANDALONE
 
 namespace asg {
 
diff --git a/Control/AthToolSupport/AsgTools/AsgTools/SgTEventMeta.icc b/Control/AthToolSupport/AsgTools/AsgTools/SgTEventMeta.icc
index 7083f1bbc21e298d607cf6774fe412188718df78..4e22675492100f4b72d113cb19e4bbcd171d0663 100644
--- a/Control/AthToolSupport/AsgTools/AsgTools/SgTEventMeta.icc
+++ b/Control/AthToolSupport/AsgTools/AsgTools/SgTEventMeta.icc
@@ -1,5 +1,7 @@
 // Dear emacs, this is -*- c++ -*-
-// $Id: SgTEventMeta.icc 687011 2015-08-03 09:25:07Z krasznaa $
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 #ifndef ASGTOOLS_SGTEVENTMETA_ICC
 #define ASGTOOLS_SGTEVENTMETA_ICC
 
@@ -7,9 +9,9 @@
 #include <iostream>
 
 // xAOD include(s):
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 #   include "xAODRootAccess/TEvent.h"
-#endif // ROOTCORE
+#endif // XAOD_STANDALONE
 
 namespace asg {
 
diff --git a/Control/AthToolSupport/AsgTools/AsgTools/ToolStore.h b/Control/AthToolSupport/AsgTools/AsgTools/ToolStore.h
index 780e2d1a1d37c110d8a0dfb91807efbc3668be8c..e8cabc345a876f67bbba3a7bc97a19cd95ab6dd8 100644
--- a/Control/AthToolSupport/AsgTools/AsgTools/ToolStore.h
+++ b/Control/AthToolSupport/AsgTools/AsgTools/ToolStore.h
@@ -1,5 +1,7 @@
 // Dear emacs, this is -*- c++ -*-
-// $Id: ToolStore.h 802972 2017-04-15 18:13:17Z krumnack $
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 #ifndef ASGTOOLS_TOOLSTORE_H
 #define ASGTOOLS_TOOLSTORE_H
 
@@ -60,7 +62,7 @@ namespace asg {
       /// Remove a tool with a given name from the store
       static StatusCode remove( const std::string& name );
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
      /// dump the tool configuration for all tools to std::cout
      static void dumpToolConfig ();
 #endif
diff --git a/Control/AthToolSupport/AsgTools/AsgTools/UnitTest.h b/Control/AthToolSupport/AsgTools/AsgTools/UnitTest.h
index b64098a72e58f72083b765b7a3677732f8ff3537..c635bf01a8aa121bef667153d1be9f0a9a541cc7 100644
--- a/Control/AthToolSupport/AsgTools/AsgTools/UnitTest.h
+++ b/Control/AthToolSupport/AsgTools/AsgTools/UnitTest.h
@@ -1,3 +1,7 @@
+// Dear emacs, this is -*- c++ -*-
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 #ifndef ASG_TOOLS__UNIT_TEST_H
 #define ASG_TOOLS__UNIT_TEST_H
 
@@ -46,7 +50,7 @@ namespace asg
   EXPECT_EQ (asg::CheckHelper<decltype(x)>::failureCode(), x)
 
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
 #define ASSERT_FAILURE_REGEX(x,regex)                           \
   ASSERT_FAILURE(x)
 #define EXPECT_FAILURE_REGEX(x,regex)                           \
diff --git a/Control/AthToolSupport/AsgTools/Root/AnaToolHandle.cxx b/Control/AthToolSupport/AsgTools/Root/AnaToolHandle.cxx
index 6677692c1249a86c678740b8ca5c02a1daa17643..de859d56b380fd58283fd391119c7a05296a20e6 100644
--- a/Control/AthToolSupport/AsgTools/Root/AnaToolHandle.cxx
+++ b/Control/AthToolSupport/AsgTools/Root/AnaToolHandle.cxx
@@ -1,3 +1,6 @@
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 //        
 //                  Author: Nils Krumnack
 // Distributed under the Boost Software License, Version 1.0.
@@ -16,7 +19,7 @@
 
 #include "AsgTools/ToolStore.h"
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 #include <TInterpreter.h>
 #include <TROOT.h>
 #else
@@ -105,7 +108,7 @@ namespace asg
       AnaToolCleanup cleanup;
       ANA_CHECK (config.makeTool (name, nullptr, th, cleanup));
       res_result.reset (new AnaToolShare (th, cleanup));
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
       if (!th.empty())
       {
 	th->release ();
@@ -123,7 +126,7 @@ namespace asg
 // legacy code
 //
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 
 namespace asg
 {
@@ -307,7 +310,7 @@ namespace asg
 	return false;
       if (!m_type.empty())
 	return false;
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
       if (m_factory)
 	return false;
 #endif
@@ -341,7 +344,7 @@ namespace asg
 
 
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
   StatusCode AnaToolConfig ::
   allocateTool (AsgTool*& toolPtr, const std::string& toolName) const
   {
@@ -373,7 +376,7 @@ namespace asg
 
 
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     StatusCode AnaToolConfig ::
     applyPropertiesAthena (const std::string& toolName,
 			   AnaToolCleanup& cleanup) const
@@ -411,7 +414,7 @@ namespace asg
 
 
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
     StatusCode AnaToolConfig ::
     makeToolRootCore (const std::string& toolName, IAsgTool*& toolPtr,
 		      AnaToolCleanup& cleanup) const
@@ -438,7 +441,7 @@ namespace asg
 #endif
 
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     /// \brief manage the reference count on a tool
 
     struct ToolRefManager
@@ -509,7 +512,7 @@ namespace asg
       else
         toolName = "ToolSvc." + name;
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
       interfaceType_t *baseToolPtr = nullptr;
       AnaToolCleanup baseCleanup;
       ANA_CHECK (makeToolRootCore (toolName, baseToolPtr, baseCleanup));
@@ -582,7 +585,7 @@ namespace asg
 
 
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     AnaToolPropertyCopyTool ::
     AnaToolPropertyCopyTool (const std::string& val_type,
                              const std::string& val_name)
diff --git a/Control/AthToolSupport/AsgTools/Root/MessageCheck.cxx b/Control/AthToolSupport/AsgTools/Root/MessageCheck.cxx
index 1b94b1d0635ba0bb68505fad760db5d235cf52d4..e68c52ad671653d1db8abe55bbce5e4c1c3dbf51 100644
--- a/Control/AthToolSupport/AsgTools/Root/MessageCheck.cxx
+++ b/Control/AthToolSupport/AsgTools/Root/MessageCheck.cxx
@@ -1,3 +1,6 @@
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 //        
 //                  Author: Nils Krumnack
 // Distributed under the Boost Software License, Version 1.0.
@@ -16,7 +19,7 @@
 
 #include <stdexcept>
 
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
 #include <GaudiKernel/Bootstrap.h>
 #include <GaudiKernel/ISvcLocator.h>
 #endif
@@ -33,7 +36,7 @@ namespace asg
 
   namespace detail
   {
-#ifndef ROOTCORE
+#ifndef XAOD_STANDALONE
     // Get the Athena message service
     IMessageSvc* getMessageSvcAthena()
     {
diff --git a/Control/AthToolSupport/AsgTools/Root/MessagePrinterErrorCollect.cxx b/Control/AthToolSupport/AsgTools/Root/MessagePrinterErrorCollect.cxx
index fe304e405f8ef6bee25840680c29190f15f2498f..936c36843365a627a259df631409479bc6658e5f 100644
--- a/Control/AthToolSupport/AsgTools/Root/MessagePrinterErrorCollect.cxx
+++ b/Control/AthToolSupport/AsgTools/Root/MessagePrinterErrorCollect.cxx
@@ -1,3 +1,6 @@
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 //        
 //                  Author: Nils Krumnack
 // Distributed under the Boost Software License, Version 1.0.
@@ -20,7 +23,7 @@
 // method implementations
 //
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 
 namespace asg
 {
diff --git a/Control/AthToolSupport/AsgTools/Root/SgTEvent.cxx b/Control/AthToolSupport/AsgTools/Root/SgTEvent.cxx
index db96cc4aa3889e832c6180ad9de5ca043e2b44a3..59313943f31b5d51d1459df1bd16796a52115d69 100644
--- a/Control/AthToolSupport/AsgTools/Root/SgTEvent.cxx
+++ b/Control/AthToolSupport/AsgTools/Root/SgTEvent.cxx
@@ -1,4 +1,6 @@
-// $Id: SgTEvent.cxx 687011 2015-08-03 09:25:07Z krasznaa $
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 
 // System include(s):
 #include <iostream>
@@ -7,10 +9,10 @@
 #include "AsgTools/SgTEvent.h"
 
 // RootCore include(s):
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 #   include "xAODRootAccessInterfaces/TActiveEvent.h"
 #   include "xAODRootAccess/TActiveStore.h"
-#endif
+#endif // XAOD_STANDALONE
 
 namespace asg {
 
diff --git a/Control/AthToolSupport/AsgTools/Root/SgTEventMeta.cxx b/Control/AthToolSupport/AsgTools/Root/SgTEventMeta.cxx
index 98be017fe90d49e8b67299562835d4c2079c239d..78ca53bccbb03fb0eedbc01bf0deba7e6f20b019 100644
--- a/Control/AthToolSupport/AsgTools/Root/SgTEventMeta.cxx
+++ b/Control/AthToolSupport/AsgTools/Root/SgTEventMeta.cxx
@@ -1,10 +1,12 @@
-// $Id: SgTEventMeta.cxx 687011 2015-08-03 09:25:07Z krasznaa $
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 
 // xAOD include(s):
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 #   include "xAODRootAccessInterfaces/TActiveEvent.h"
 #   include "xAODRootAccess/TEvent.h"
-#endif // ROOTCORE
+#endif // XAOD_STANDALONE
 
 // Local include(s):
 #include "AsgTools/SgTEventMeta.h"
diff --git a/Control/AthToolSupport/AsgTools/Root/ToolStore.cxx b/Control/AthToolSupport/AsgTools/Root/ToolStore.cxx
index 705192955623e44422832b41513a89bc880c1cb4..a351eee15ee93c25ce6f62cf041ff3494941db99 100644
--- a/Control/AthToolSupport/AsgTools/Root/ToolStore.cxx
+++ b/Control/AthToolSupport/AsgTools/Root/ToolStore.cxx
@@ -1,4 +1,6 @@
-// $Id: ToolStore.cxx 802972 2017-04-15 18:13:17Z krumnack $
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 
 // System include(s):
 #include <map>
@@ -116,7 +118,7 @@ namespace asg {
    }
 
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
   void ToolStore::dumpToolConfig () {
     using namespace asg::msgProperty;
 
diff --git a/Control/AthToolSupport/AsgTools/test/gt_AsgTool.cxx b/Control/AthToolSupport/AsgTools/test/gt_AsgTool.cxx
index 0b8b04cd473fe79841d669109c008272600e98df..563631f0c5b86f8cfd4fd26dab2d7eab01fede22 100644
--- a/Control/AthToolSupport/AsgTools/test/gt_AsgTool.cxx
+++ b/Control/AthToolSupport/AsgTools/test/gt_AsgTool.cxx
@@ -1,3 +1,6 @@
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 //        
 //                  Author: Nils Krumnack
 // Distributed under the Boost Software License, Version 1.0.
@@ -23,7 +26,7 @@
 #include <gtest/gtest-spi.h>
 #include <gmock/gmock.h>
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 #include <xAODRootAccess/Init.h>
 #endif
 
diff --git a/Control/AthToolSupport/AsgTools/test/gt_MessageCheck.cxx b/Control/AthToolSupport/AsgTools/test/gt_MessageCheck.cxx
index af989c815a6730ccf3c42b31b1e9fbf0a19daa37..cf7e9466ee029c95576dfe7075baa32050a522ad 100644
--- a/Control/AthToolSupport/AsgTools/test/gt_MessageCheck.cxx
+++ b/Control/AthToolSupport/AsgTools/test/gt_MessageCheck.cxx
@@ -1,3 +1,6 @@
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 //        
 //                  Author: Nils Krumnack
 // Distributed under the Boost Software License, Version 1.0.
@@ -23,7 +26,7 @@
 #include <gtest/gtest-spi.h>
 #include <gmock/gmock.h>
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 #include <xAODRootAccess/Init.h>
 #endif
 
diff --git a/Control/AthToolSupport/AsgTools/test/gt_TProperty.cxx b/Control/AthToolSupport/AsgTools/test/gt_TProperty.cxx
index d5352d06125eadc8585b76b99b9eb000f5875b43..6bfedb7712597f71f0b658415c0e5c78cfde33ab 100644
--- a/Control/AthToolSupport/AsgTools/test/gt_TProperty.cxx
+++ b/Control/AthToolSupport/AsgTools/test/gt_TProperty.cxx
@@ -1,3 +1,6 @@
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 //        
 //                  Author: Nils Krumnack
 // Distributed under the Boost Software License, Version 1.0.
@@ -19,7 +22,7 @@
 #include <gtest/gtest.h>
 #include <gtest/gtest-spi.h>
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 #include <xAODRootAccess/Init.h>
 #endif
 
diff --git a/Control/AthToolSupport/AsgTools/test/gt_UnitTest_test.cxx b/Control/AthToolSupport/AsgTools/test/gt_UnitTest_test.cxx
index d6742d00dcfb467414c052f0ec43447d45aee00f..fde3a3215128f3b910ab9729201a1b4445b50218 100644
--- a/Control/AthToolSupport/AsgTools/test/gt_UnitTest_test.cxx
+++ b/Control/AthToolSupport/AsgTools/test/gt_UnitTest_test.cxx
@@ -1,3 +1,6 @@
+//
+// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+//
 //        
 //                  Author: Nils Krumnack
 // Distributed under the Boost Software License, Version 1.0.
@@ -19,7 +22,7 @@
 #include <gtest/gtest.h>
 #include <gtest/gtest-spi.h>
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
 #include <xAODRootAccess/Init.h>
 #endif
 
@@ -98,7 +101,7 @@ namespace asg
     EXPECT_FAILURE_REGEX (functionFailure("match"),".*match.*");
   }
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
   TEST (AssertTest, failure_regex_failure_missmatch)
 #else
   TEST (AssertTest, DISABLED_failure_regex_failure_missmatch)
@@ -107,7 +110,7 @@ namespace asg
     EXPECT_FATAL_FAILURE (ASSERT_FAILURE_REGEX (functionFailure("text 1"),".*different text.*"), "functionFailure");
   }
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
   TEST (AssertTest, failure_regex_failure_missing)
 #else
   TEST (AssertTest, DISABLED_failure_regex_failure_missing)
@@ -203,7 +206,7 @@ namespace asg
     EXPECT_FAILURE_REGEX (functionFailure("match"),".*match.*");
   }
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
   TEST (ExpectTest, failure_regex_failure_missmatch)
 #else
   TEST (ExpectTest, DISABLED_failure_regex_failure_missmatch)
@@ -212,7 +215,7 @@ namespace asg
     EXPECT_NONFATAL_FAILURE (EXPECT_FAILURE_REGEX (functionFailure("text 1"),".*different text.*"), "functionFailure");
   }
 
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
   TEST (ExpectTest, failure_regex_failure_missing)
 #else
   TEST (ExpectTest, DISABLED_failure_regex_failure_missing)
@@ -266,7 +269,7 @@ namespace asg
 
 int main (int argc, char **argv)
 {
-#ifdef ROOTCORE
+#ifdef XAOD_STANDALONE
   StatusCode::enableFailure();
   ANA_CHECK (xAOD::Init ());
 #endif
diff --git a/Control/AthenaCommon/python/AlgSequence.py b/Control/AthenaCommon/python/AlgSequence.py
index d99ea4587dbe14c6bffe49abe6931f02dd00769e..107e372c1019d492803305bd096b025c345ce9cf 100755
--- a/Control/AthenaCommon/python/AlgSequence.py
+++ b/Control/AthenaCommon/python/AlgSequence.py
@@ -103,72 +103,6 @@ if hasattr(GaudiSequencerConf, 'AthRetrySequencer'):
     pass # monkey-patching AthRetrySequencer
 
 
-
-### AthAnalysisSequencer ----------------------------------------------------------
-if hasattr(GaudiSequencerConf, 'AthAnalysisSequencer'):
-    # create a new base class type to replace the old configurable
-    class AthAnalysisSequencer( GaudiSequencerConf.AthAnalysisSequencer ):
-        """Sequence of Gaudi algorithms"""
-
-        def __init__( self, name = "AthAnalysisSequencer", **kwargs ):
-            # call base class __init__ to pass new name
-            super( AthAnalysisSequencer, self ).__init__( name, **kwargs )
-
-        def getProperties( self ):
-            ## call base class
-            props = super( AthAnalysisSequencer, self ).getProperties()
-
-            ## correctly display the value of 'Members' by gathering children
-            if 'Members' in props:
-                props['Members'] = [ c.getFullName() for c in self.getChildren() ]
-            return props
-
-        def insert( self, index, item ):
-            self.__iadd__( item, index = index )
-
-        def filterHistogramTools( self, cutname):
-            tools = []
-            for tool in self.HistToolList:
-                if not tool.OnlyAtCutStages or cutname in tool.OnlyAtCutStages:
-                    tools.append(tool)
-            return tools
-
-        def setup( self ):
-            ## it is the defining property of the AthAnalysisSequener
-            ## that it adds a HistAlg to each and every algorithm to
-            ## produce some histograms this is achieved by the
-            ## following lines
-            try:
-                from HistogramUtils.HistogramUtilsConf import HistAlg
-                for i in xrange(len(self.getChildren())-1,-1,-1):
-                    oldName = self.getChildren()[i].name()
-                    newName = oldName+"_histogram"
-                    self.insert(i+1,HistAlg(newName, HistToolList = self.filterHistogramTools(oldName)))
-            except ImportError:
-                print("WARNING: unable to import package HistogramUtils for usage in AthAnalysisSequencer - auto-booking of histograms will not work!")
-
-            ## synchronize the list of Members with our Configurable children
-            self.Members = [ c.getFullName() for c in self.getChildren() ]
-
-            import Logging
-            msg = Logging.logging.getLogger( "AthAnalysisSequencer" )
-            msg.debug( 'setup of sequence: %s', self.getName() )
-            if msg.isEnabledFor( Logging.logging.VERBOSE ):
-                # call of __repr__ is relatively expensive
-                msg.verbose( 'layout of sequence: %s\n%s', self.getName(), str(self) )
-
-            ## delegate to base class...
-            super( AthAnalysisSequencer, self ).setup()
-        pass # AthAnalysisSequencer
-    # store the new AthAnalysisSequencer into CfgMgr to make it available
-    import CfgMgr
-    setattr( CfgMgr, 'AthAnalysisSequencer', AthAnalysisSequencer )
-    del CfgMgr
-    pass # monkey-patching AthAnalysisSequencer
-
-
-
-
 ### sequence of Gaudi configurables
 class AlgSequence( AthSequencer ):
     __slots__ = ()
diff --git a/Control/RngComps/python/RngCompsConfig.py b/Control/RngComps/python/RngCompsConfig.py
new file mode 100644
index 0000000000000000000000000000000000000000..55a6c35c1307a9f88c0bf9c80f983380c21adaf9
--- /dev/null
+++ b/Control/RngComps/python/RngCompsConfig.py
@@ -0,0 +1,10 @@
+# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+
+from AthenaCommon import CfgMgr
+
+def getAthRNGSvc(name='AthRNGSvc', **kwargs):
+    return CfgMgr.AthRNGSvc(name, **kwargs)
+
+def getAthMixMaxRNGSvc(name='AthMixMaxRNGSvc', **kwargs):
+    kwargs.setdefault('EngineType', 'MixMax')
+    return CfgMgr.AthRNGSvc(name, **kwargs)
diff --git a/Control/RngComps/python/RngCompsConfigDb.py b/Control/RngComps/python/RngCompsConfigDb.py
new file mode 100644
index 0000000000000000000000000000000000000000..4cc9c080c57ac477f0107e4f8e740ec1dff481f0
--- /dev/null
+++ b/Control/RngComps/python/RngCompsConfigDb.py
@@ -0,0 +1,5 @@
+# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+
+from AthenaCommon.CfgGetter import addService
+addService("RngComps.RngCompsConfig.getAthRNGSvc", "AthRNGSvc")
+addService("RngComps.RngCompsConfig.getAthMixMaxRNGSvc", "AthMixMaxRNGSvc")
diff --git a/Control/RngComps/src/AthRNGSvc.cxx b/Control/RngComps/src/AthRNGSvc.cxx
index 1b26f5e4497c01ca581e6a185464a1b6d3fb1d20..d49fe7979cc0a177a71cb625faca580b8adb7e41 100644
--- a/Control/RngComps/src/AthRNGSvc.cxx
+++ b/Control/RngComps/src/AthRNGSvc.cxx
@@ -42,6 +42,8 @@ StatusCode AthRNGSvc::initialize()
     ATH_MSG_FATAL("Generator type \"" << m_rngType << "\" is not known. Check Joboptions");
     return StatusCode::FAILURE;
   }
+  
+  ATH_MSG_INFO("Selected random engine: \"" << m_rngType << "\"");
 
   return StatusCode::SUCCESS;
 }
diff --git a/Event/xAOD/xAODCaloRings/xAODCaloRings/CaloRingsContainer.h b/Event/xAOD/xAODCaloRings/xAODCaloRings/CaloRingsContainer.h
index d5726ae6690f493ad0c0b95b7de3a121d8cb45ee..af428f334e07a478dd3e272ab0becea05ae8fe52 100644
--- a/Event/xAOD/xAODCaloRings/xAODCaloRings/CaloRingsContainer.h
+++ b/Event/xAOD/xAODCaloRings/xAODCaloRings/CaloRingsContainer.h
@@ -1,8 +1,7 @@
+// Dear emacs, this is -*- c++ -*-
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
-
-// $Id: CaloRingsContainer.h 707323 2015-11-12 02:45:01Z wsfreund $
 #ifndef XAODCALORINGS_CALORINGSCONTAINER_H
 #define XAODCALORINGS_CALORINGSCONTAINER_H
 
@@ -11,8 +10,10 @@
 
 // Core include(s):
 #include "AthLinks/ElementLink.h"
-#include "StoreGate/ReadDecorHandle.h"
-#include "StoreGate/WriteDecorHandle.h"
+#ifndef XAOD_STANDALONE
+#   include "StoreGate/ReadDecorHandle.h"
+#   include "StoreGate/WriteDecorHandle.h"
+#endif // XAOD_STANDALONE
 
 // Local include(s):
 #include "xAODCaloRings/CaloRings.h"
@@ -27,10 +28,12 @@ typedef std::vector< ElementLink< CaloRingsContainer > > CaloRingsLinks;
 typedef SG::AuxElement::Decorator< xAOD::CaloRingsLinks > caloRingsDeco_t;
 /// The CaloRings element links reader type:
 typedef SG::AuxElement::ConstAccessor< xAOD::CaloRingsLinks > caloRingsReader_t;
+#ifndef XAOD_STANDALONE
 /// The CaloRings element links write decorator type:
 template<typename T> using caloRingsDecoH_t = SG::WriteDecorHandle<T, CaloRingsLinks>;
 /// The CaloRings element links write decorator type:
 template<typename T> using caloRingsReaderH_t = SG::ReadDecorHandle<T, CaloRingsLinks>;
+#endif // XAOD_STANDALONE
 } // namespace xAOD
 
 // Set up a CLID for the container:
diff --git a/Event/xAOD/xAODMuon/Root/MuonAccessors_v1.h b/Event/xAOD/xAODMuon/Root/MuonAccessors_v1.h
index 50113dea52a385f3b2ea7be2b8894bf2e4ea2770..377a51af2db7fa6a903d791bcf16c570530294e5 100644
--- a/Event/xAOD/xAODMuon/Root/MuonAccessors_v1.h
+++ b/Event/xAOD/xAODMuon/Root/MuonAccessors_v1.h
@@ -1,10 +1,9 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: MuonAccessors_v1.h 647346 2015-02-17 10:24:03Z emoyse $
 #ifndef XAODMUON_MUONACCESSORS_V1_H
 #define XAODMUON_MUONACCESSORS_V1_H
 
@@ -22,7 +21,7 @@ namespace xAOD {
    /// Muon_v1 object at runtime to get/set parameter values on themselves.
    ///
    template <class T>
-   SG::AuxElement::Accessor< T >*
+   const SG::AuxElement::Accessor< T >*
    parameterAccessorV1( Muon_v1::ParamDef type );
    
 } // namespace xAOD
diff --git a/Event/xAOD/xAODMuon/Root/MuonAccessors_v1.icc b/Event/xAOD/xAODMuon/Root/MuonAccessors_v1.icc
index 3e68c495ab7ddba86e2307b34dcb503f0c0f1ffd..abfac21bec19bf3b90544300d19103cbbf89c780 100644
--- a/Event/xAOD/xAODMuon/Root/MuonAccessors_v1.icc
+++ b/Event/xAOD/xAODMuon/Root/MuonAccessors_v1.icc
@@ -1,10 +1,9 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: MuonAccessors_v1.icc 745098 2016-05-05 15:47:04Z wleight $
 
 // System include(s):
 #include <iostream>
@@ -13,7 +12,7 @@
 #define DEFINE_ACCESSOR(TYPE, NAME )                               \
    case xAOD::Muon_v1::NAME:                                                \
    {                                                               \
-      static SG::AuxElement::Accessor< TYPE > a( #NAME );          \
+      static const SG::AuxElement::Accessor< TYPE > a( #NAME );          \
       return &a;                                                   \
    }                                                               \
    break;
@@ -22,12 +21,12 @@ namespace xAOD {
 
   // Generic case. Maybe return warning?
   template<class T>
-   SG::AuxElement::Accessor< T >*
+   const SG::AuxElement::Accessor< T >*
    parameterAccessorV1( Muon_v1::ParamDef /*type*/ )
    {}
    
   template<>
-   SG::AuxElement::Accessor< float >*
+   const SG::AuxElement::Accessor< float >*
    parameterAccessorV1<float>( Muon_v1::ParamDef type ) {
       switch( type ) {
         DEFINE_ACCESSOR( float, spectrometerFieldIntegral        );
@@ -45,11 +44,8 @@ namespace xAOD {
         DEFINE_ACCESSOR( float, midAngle                         );
         DEFINE_ACCESSOR( float, msInnerMatchChi2                 );
         DEFINE_ACCESSOR( float, msOuterMatchChi2                 );
-        // DEFINE_ACCESSOR( float, msInnerMatchDOF                  ); These ParamDefs are INT and defined below.
-        // DEFINE_ACCESSOR( float, msOuterMatchDOF                  );
         DEFINE_ACCESSOR( float, meanDeltaADCCountsMDT            );		
         DEFINE_ACCESSOR( float, CaloLRLikelihood                 );		
-        // DEFINE_ACCESSOR( float, CaloMuonIDTag                    ); INT
         DEFINE_ACCESSOR( float, FSR_CandidateEnergy              );		
         DEFINE_ACCESSOR( float, EnergyLoss                       );		
         DEFINE_ACCESSOR( float, ParamEnergyLoss                  );		
@@ -58,13 +54,7 @@ namespace xAOD {
         DEFINE_ACCESSOR( float, ParamEnergyLossSigmaPlus         );		
         DEFINE_ACCESSOR( float, ParamEnergyLossSigmaMinus        );		
         DEFINE_ACCESSOR( float, MeasEnergyLossSigma              );		
-	//DEFINE_ACCESSOR( float, d0_sa                            );
-	//DEFINE_ACCESSOR( float, z0_sa                            );
-	//DEFINE_ACCESSOR( float, phi0_sa                          );
-	//DEFINE_ACCESSOR( float, theta_sa                         );
-	//DEFINE_ACCESSOR( float, qOverP_sa                        );
-	//DEFINE_ACCESSOR( float, Eloss_sa                         );
-      default:                  
+    default:                  
          std::cerr << "xAOD::Muon::parameterAccessorV1 ERROR Unknown float ParamDef ("
                    << type << ") requested.";
          if (type == Muon_v1::msInnerMatchDOF || type == Muon_v1::msOuterMatchDOF || type == Muon_v1::CaloMuonIDTag) 
@@ -75,7 +65,7 @@ namespace xAOD {
    }
    
    template<>
-    SG::AuxElement::Accessor< int >*
+    const SG::AuxElement::Accessor< int >*
     parameterAccessorV1<int>( Muon_v1::ParamDef type ) {
        switch( type ) {
          DEFINE_ACCESSOR( int,   msInnerMatchDOF                  );
diff --git a/Event/xAOD/xAODMuon/Root/MuonSegment_v1.cxx b/Event/xAOD/xAODMuon/Root/MuonSegment_v1.cxx
index 8654645844c17301c8af84daf553a429ad39f663..b87274d5b88fd4303504da80fbb71c6112190372 100644
--- a/Event/xAOD/xAODMuon/Root/MuonSegment_v1.cxx
+++ b/Event/xAOD/xAODMuon/Root/MuonSegment_v1.cxx
@@ -1,8 +1,7 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: MuonSegment_v1.cxx 612402 2014-08-19 07:28:08Z htorres $
 
 // EDM include(s):
 #include "xAODCore/AuxStoreAccessorMacros.h"
@@ -21,11 +20,11 @@ namespace xAOD {
   AUXSTORE_PRIMITIVE_GETTER( MuonSegment_v1, float, z )
 
   void MuonSegment_v1::setPosition(float x, float y, float z) {
-    static Accessor< float > acc1( "x" );
+    static const Accessor< float > acc1( "x" );
     acc1( *this ) = x;
-    static Accessor< float > acc2( "y" );
+    static const Accessor< float > acc2( "y" );
     acc2( *this ) = y;
-    static Accessor< float > acc3( "z" );
+    static const Accessor< float > acc3( "z" );
     acc3( *this ) = z;
   }
   
@@ -34,11 +33,11 @@ namespace xAOD {
   AUXSTORE_PRIMITIVE_GETTER( MuonSegment_v1, float, pz )
 
   void MuonSegment_v1::setDirection(float px, float py, float pz) {
-    static Accessor< float > acc1( "px" );
+    static const Accessor< float > acc1( "px" );
     acc1( *this ) = px;
-    static Accessor< float > acc2( "py" );
+    static const Accessor< float > acc2( "py" );
     acc2( *this ) = py;
-    static Accessor< float > acc3( "pz" );
+    static const Accessor< float > acc3( "pz" );
     acc3( *this ) = pz;
   }
 
@@ -46,9 +45,9 @@ namespace xAOD {
   AUXSTORE_PRIMITIVE_GETTER( MuonSegment_v1, float, t0error )
 
   void MuonSegment_v1::setT0Error(float t0, float t0error) {
-    static Accessor< float > acc1( "t0" );
+    static const Accessor< float > acc1( "t0" );
     acc1( *this ) = t0;  
-    static Accessor< float > acc2( "t0error" );
+    static const Accessor< float > acc2( "t0error" );
     acc2( *this ) = t0error;   
   }
 
@@ -56,9 +55,9 @@ namespace xAOD {
   AUXSTORE_PRIMITIVE_GETTER( MuonSegment_v1, float, numberDoF  )
 
   void MuonSegment_v1::setFitQuality(float chiSquared, float numberDoF) {
-    static Accessor< float > acc1( "chiSquared" );
+    static const Accessor< float > acc1( "chiSquared" );
     acc1( *this ) = chiSquared;  
-    static Accessor< float > acc2( "numberDoF" );
+    static const Accessor< float > acc2( "numberDoF" );
     acc2( *this ) = numberDoF;   
   }
 
@@ -68,13 +67,13 @@ namespace xAOD {
   AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( MuonSegment_v1, int, Muon::MuonStationIndex::TechnologyIndex, technology )
 
   void MuonSegment_v1::setIdentifier(int sector, Muon::MuonStationIndex::ChIndex chamberIndex, int etaIndex, Muon::MuonStationIndex::TechnologyIndex technology) {
-    static Accessor< int   > acc1( "sector" );
+    static const Accessor< int   > acc1( "sector" );
     acc1( *this ) = sector;
-    static Accessor< int   > acc2( "chamberIndex" );
+    static const Accessor< int   > acc2( "chamberIndex" );
     acc2( *this ) = static_cast<int>(chamberIndex);
-    static Accessor< int   > acc3( "etaIndex" );
+    static const Accessor< int   > acc3( "etaIndex" );
     acc3( *this ) = etaIndex;
-    static Accessor< int   > acc4( "technology" );
+    static const Accessor< int   > acc4( "technology" );
     acc4( *this ) = static_cast<int>(technology);
   }
 
@@ -83,11 +82,11 @@ namespace xAOD {
   AUXSTORE_PRIMITIVE_GETTER( MuonSegment_v1, int  , nTrigEtaLayers )
 
   void MuonSegment_v1::setNHits(int nPrecisionHits, int nPhiLayers, int nTrigEtaLayers) {
-    static Accessor< int   > acc1( "nPrecisionHits" );
+    static const Accessor< int   > acc1( "nPrecisionHits" );
     acc1( *this ) = nPrecisionHits;
-    static Accessor< int   > acc2( "nPhiLayers" );
+    static const Accessor< int   > acc2( "nPhiLayers" );
     acc2( *this ) = nPhiLayers;
-    static Accessor< int   > acc3( "nTrigEtaLayers" );
+    static const Accessor< int   > acc3( "nTrigEtaLayers" );
     acc3( *this ) = nTrigEtaLayers;
   }
 
diff --git a/Event/xAOD/xAODMuon/Root/MuonTrackSummaryAccessors_v1.cxx b/Event/xAOD/xAODMuon/Root/MuonTrackSummaryAccessors_v1.cxx
index 5b356d7a414d76371cb5b11cf4ed37a887df1104..0da68c9354b5ab6c2e6fddd69accb075a806b42c 100644
--- a/Event/xAOD/xAODMuon/Root/MuonTrackSummaryAccessors_v1.cxx
+++ b/Event/xAOD/xAODMuon/Root/MuonTrackSummaryAccessors_v1.cxx
@@ -14,14 +14,14 @@
 #define DEFINE_ACCESSOR(TYPE, NAME )                               \
    case xAOD::NAME:                                                \
    {                                                               \
-      static SG::AuxElement::Accessor< TYPE > a( #NAME );          \
+      static const SG::AuxElement::Accessor< TYPE > a( #NAME );          \
       return &a;                                                   \
    }                                                               \
    break;
 
 namespace xAOD {
 
-   SG::AuxElement::Accessor< uint8_t >*
+   const SG::AuxElement::Accessor< uint8_t >*
    muonTrackSummaryAccessorV1( xAOD::MuonSummaryType type ) {
 
       switch( type ) {
@@ -105,23 +105,23 @@ namespace xAOD {
         DEFINE_ACCESSOR( uint8_t, etaLayer3TGCHoles );
         DEFINE_ACCESSOR( uint8_t, etaLayer4TGCHoles );
 
-	DEFINE_ACCESSOR( uint8_t, innerClosePrecisionHits );
-	DEFINE_ACCESSOR( uint8_t, middleClosePrecisionHits );
-	DEFINE_ACCESSOR( uint8_t, outerClosePrecisionHits );
-	DEFINE_ACCESSOR( uint8_t, extendedClosePrecisionHits );
+        DEFINE_ACCESSOR( uint8_t, innerClosePrecisionHits );
+        DEFINE_ACCESSOR( uint8_t, middleClosePrecisionHits );
+        DEFINE_ACCESSOR( uint8_t, outerClosePrecisionHits );
+        DEFINE_ACCESSOR( uint8_t, extendedClosePrecisionHits );
 
-	DEFINE_ACCESSOR( uint8_t, innerOutBoundsPrecisionHits );
+        DEFINE_ACCESSOR( uint8_t, innerOutBoundsPrecisionHits );
         DEFINE_ACCESSOR( uint8_t, middleOutBoundsPrecisionHits );
-	DEFINE_ACCESSOR( uint8_t, outerOutBoundsPrecisionHits );
+        DEFINE_ACCESSOR( uint8_t, outerOutBoundsPrecisionHits );
         DEFINE_ACCESSOR( uint8_t, extendedOutBoundsPrecisionHits );
 
-	DEFINE_ACCESSOR( uint8_t, combinedTrackOutBoundsPrecisionHits );
+        DEFINE_ACCESSOR( uint8_t, combinedTrackOutBoundsPrecisionHits );
 
-	DEFINE_ACCESSOR( uint8_t, isEndcapGoodLayers );
-	DEFINE_ACCESSOR( uint8_t, isSmallGoodSectors );
+        DEFINE_ACCESSOR( uint8_t, isEndcapGoodLayers );
+        DEFINE_ACCESSOR( uint8_t, isSmallGoodSectors );
 
-	DEFINE_ACCESSOR( uint8_t, cscEtaHits );
-	DEFINE_ACCESSOR( uint8_t, cscUnspoiledEtaHits );
+        DEFINE_ACCESSOR( uint8_t, cscEtaHits );
+        DEFINE_ACCESSOR( uint8_t, cscUnspoiledEtaHits );
 
       default:                  
          std::cerr << "xAOD::MuonTrackParticle_v1 ERROR Unknown MuonSummaryType ("
diff --git a/Event/xAOD/xAODMuon/Root/MuonTrackSummaryAccessors_v1.h b/Event/xAOD/xAODMuon/Root/MuonTrackSummaryAccessors_v1.h
index a5a6c6c4c762add6e08e8e4de1857b7729c030de..520d0d371855cf026063732a31facae753d1413a 100644
--- a/Event/xAOD/xAODMuon/Root/MuonTrackSummaryAccessors_v1.h
+++ b/Event/xAOD/xAODMuon/Root/MuonTrackSummaryAccessors_v1.h
@@ -21,7 +21,7 @@ namespace xAOD {
    /// This function holds on to Accessor objects that can be used by each
    /// TrackParticle_v1 object at runtime to get/set summary values on themselves.
    ///
-   SG::AuxElement::Accessor< uint8_t >*
+   const SG::AuxElement::Accessor< uint8_t >*
    muonTrackSummaryAccessorV1( xAOD::MuonSummaryType type );
 
 } // namespace xAOD
diff --git a/Event/xAOD/xAODMuon/Root/Muon_v1.cxx b/Event/xAOD/xAODMuon/Root/Muon_v1.cxx
index fe3a6c0e8b00efb5e603ff168f0e30bd29acf635..b0f77f4218bbbfd90e4b57fae10ac33e00180605 100644
--- a/Event/xAOD/xAODMuon/Root/Muon_v1.cxx
+++ b/Event/xAOD/xAODMuon/Root/Muon_v1.cxx
@@ -1,8 +1,7 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: Muon_v1.cxx 792230 2017-01-15 06:03:39Z ssnyder $
 // Misc includes
 #include <vector>
 
@@ -67,9 +66,9 @@ namespace xAOD {
   }
 
   void Muon_v1::setP4(double pt, double eta, double phi)  {
-    static Accessor< float > acc1( "pt" );
-    static Accessor< float > acc2( "eta" );
-    static Accessor< float > acc3( "phi" );
+    static const Accessor< float > acc1( "pt" );
+    static const Accessor< float > acc2( "eta" );
+    static const Accessor< float > acc3( "phi" );
     acc1( *this )=pt;
     acc2( *this )=eta;
     acc3( *this )=phi;
@@ -107,12 +106,12 @@ namespace xAOD {
 
 
   void Muon_v1::addAllAuthor ( const Author author ){
-    static Accessor< uint16_t > acc( "allAuthors" );
+    static const Accessor< uint16_t > acc( "allAuthors" );
     acc(*this) |= 1<<static_cast<unsigned int>(author);
   }
 
   bool Muon_v1::isAuthor ( const Author author ) const{
-    static Accessor< uint16_t > acc( "allAuthors" );
+    static const Accessor< uint16_t > acc( "allAuthors" );
     return (acc(*this)& (1<<static_cast<unsigned int>(author)));
   }
 
@@ -160,7 +159,7 @@ namespace xAOD {
   }
   
   bool Muon_v1::summaryValue(uint8_t& value, const MuonSummaryType information)  const {
-    Muon_v1::Accessor< uint8_t >* acc = muonTrackSummaryAccessorV1( information );
+    const Muon_v1::Accessor< uint8_t >* acc = muonTrackSummaryAccessorV1( information );
     if( ! acc ) return false;
     if( ! acc->isAvailable( *this ) ) return false;
     
@@ -170,19 +169,19 @@ namespace xAOD {
   }
   
   float Muon_v1::uint8MuonSummaryValue(const MuonSummaryType information) const{
-	  Muon_v1::Accessor< uint8_t >* acc = muonTrackSummaryAccessorV1( information );
+	  const Muon_v1::Accessor< uint8_t >* acc = muonTrackSummaryAccessorV1( information );
 	  return ( *acc )( *this );
   }
   
 
   void Muon_v1::setSummaryValue(uint8_t value, const MuonSummaryType information) {
-    Muon_v1::Accessor< uint8_t >* acc = muonTrackSummaryAccessorV1( information );
+    const Muon_v1::Accessor< uint8_t >* acc = muonTrackSummaryAccessorV1( information );
     // Set the value:
     ( *acc )( *this ) =  value;
   }
   
   bool Muon_v1::parameter(float& value, const Muon_v1::ParamDef information)  const {
-    xAOD::Muon_v1::Accessor< float >* acc = parameterAccessorV1<float>( information );
+    const xAOD::Muon_v1::Accessor< float >* acc = parameterAccessorV1<float>( information );
     if( ! acc ) return false;
     if( ! acc->isAvailable( *this ) ) return false;
     
@@ -192,12 +191,12 @@ namespace xAOD {
   }
 	
   float xAOD::Muon_v1::floatParameter(xAOD::Muon_v1::ParamDef information) const{
-    xAOD::Muon_v1::Accessor< float >* acc = parameterAccessorV1<float>( information );
+    const xAOD::Muon_v1::Accessor< float >* acc = parameterAccessorV1<float>( information );
     return ( *acc )( *this );
   }
 
   void Muon_v1::setParameter(float value, const Muon_v1::ParamDef information){
-    xAOD::Muon_v1::Accessor< float >* acc = parameterAccessorV1<float>( information );
+    const xAOD::Muon_v1::Accessor< float >* acc = parameterAccessorV1<float>( information );
     if( ! acc ) throw std::runtime_error("Muon_v1::setParameter - no float accessor for paramdef number: "+std::to_string(information));
     
     // Set the value:
@@ -205,7 +204,7 @@ namespace xAOD {
   }
   
   bool Muon_v1::parameter(int& value, const Muon_v1::ParamDef information)  const {
-    xAOD::Muon_v1::Accessor< int >* acc = parameterAccessorV1<int>( information );
+    const xAOD::Muon_v1::Accessor< int >* acc = parameterAccessorV1<int>( information );
     if( ! acc ) return false;
     if( ! acc->isAvailable( *this ) ) return false;
     
@@ -215,12 +214,12 @@ namespace xAOD {
   }
 	
   int xAOD::Muon_v1::intParameter(xAOD::Muon_v1::ParamDef information) const{
-    xAOD::Muon_v1::Accessor< int >* acc = parameterAccessorV1<int>( information );
+    const xAOD::Muon_v1::Accessor< int >* acc = parameterAccessorV1<int>( information );
     return ( *acc )( *this );
   }
 
   void Muon_v1::setParameter(int value, const Muon_v1::ParamDef information){
-    xAOD::Muon_v1::Accessor< int >* acc = parameterAccessorV1<int>( information );
+    const xAOD::Muon_v1::Accessor< int >* acc = parameterAccessorV1<int>( information );
     if( ! acc ) throw std::runtime_error("Muon_v1::setParameter - no int accessor for paramdef number: "+std::to_string(information));
     
     // Set the value:
@@ -228,13 +227,13 @@ namespace xAOD {
   }
 
   xAOD::Muon_v1::Quality Muon_v1::quality() const {
-    static Accessor< uint8_t > acc( "quality" );
+    static const Accessor< uint8_t > acc( "quality" );
     uint8_t temp =  acc( *this );
     return static_cast<Quality>(temp&3);     
   }
   
   void Muon_v1::setQuality(xAOD::Muon_v1::Quality value) {
-    static Accessor< uint8_t > acc( "quality" );
+    static const Accessor< uint8_t > acc( "quality" );
     uint8_t temp = static_cast< uint8_t >(value);
     acc( *this ) = acc( *this ) & ~(0x7); // Reset the first 3 bits.
     acc( *this ) |= temp;
@@ -242,14 +241,14 @@ namespace xAOD {
   }
   
   bool Muon_v1::passesIDCuts() const {
-    static Accessor< uint8_t > acc( "quality" );
+    static const Accessor< uint8_t > acc( "quality" );
     uint8_t temp =  acc( *this );
     // We use 4th bit for 'passesIDCuts'
     return temp&8;     
   }
   
   void Muon_v1::setPassesIDCuts(bool value) {
-    static Accessor< uint8_t > acc( "quality" );
+    static const Accessor< uint8_t > acc( "quality" );
     // We use 4th bit for 'passesIDCuts'
     if (value) acc( *this ) |= 8;
     else       acc( *this ) &= 247;
@@ -257,14 +256,14 @@ namespace xAOD {
   }
   
   bool Muon_v1::passesHighPtCuts() const {
-    static Accessor< uint8_t > acc( "quality" );
+    static const Accessor< uint8_t > acc( "quality" );
     uint8_t temp =  acc( *this );
     // We use 5th bit for 'passesHighPtCuts'
     return temp&16;    
   }
   
   void Muon_v1::setPassesHighPtCuts(bool value) {
-    static Accessor< uint8_t > acc( "quality" );
+    static const Accessor< uint8_t > acc( "quality" );
     // We use 5th bit for 'passesHighPtCuts'
     if (value) acc( *this ) |= 16;
     else       acc( *this ) &= 239;
@@ -394,17 +393,17 @@ bool Muon_v1::isolationCaloCorrection(  float& value, const Iso::IsolationFlavou
           // Not checking if links are valid here - this is the job of the client (as per the cases above).
           // But we DO check that the link is available, so we can check for both types of links.
           
-          static Accessor< ElementLink< TrackParticleContainer > > acc1( "extrapolatedMuonSpectrometerTrackParticleLink" );
+          static const Accessor< ElementLink< TrackParticleContainer > > acc1( "extrapolatedMuonSpectrometerTrackParticleLink" );
           if ( acc1.isAvailable( *this ) && acc1( *this ).isValid() ) {
             return acc1( *this );
           }
 
-          static Accessor< ElementLink< TrackParticleContainer > > acc2( "msOnlyExtrapolatedMuonSpectrometerTrackParticleLink" );
+          static const Accessor< ElementLink< TrackParticleContainer > > acc2( "msOnlyExtrapolatedMuonSpectrometerTrackParticleLink" );
           if ( acc2.isAvailable( *this ) && acc2( *this ).isValid() ) {
             return acc2( *this );
           }
           
-          static Accessor< ElementLink< TrackParticleContainer > > acc3( "muonSpectrometerTrackParticleLink" );
+          static const Accessor< ElementLink< TrackParticleContainer > > acc3( "muonSpectrometerTrackParticleLink" );
           if ( acc3.isAvailable( *this ) && acc3( *this ).isValid()) {            
             return acc3( *this );
           }
@@ -425,7 +424,7 @@ bool Muon_v1::isolationCaloCorrection(  float& value, const Iso::IsolationFlavou
       case Combined:
       case SiliconAssociatedForwardMuon :
          {
-            static Accessor< ElementLink< TrackParticleContainer > > acc( "combinedTrackParticleLink" );
+            static const Accessor< ElementLink< TrackParticleContainer > > acc( "combinedTrackParticleLink" );
             if( ! acc.isAvailable( *this ) ) return 0;
           
             const ElementLink< TrackParticleContainer >& link = acc( *this );
@@ -436,7 +435,7 @@ bool Muon_v1::isolationCaloCorrection(  float& value, const Iso::IsolationFlavou
       case SegmentTagged:
       case CaloTagged :
         {
-           static Accessor< ElementLink< TrackParticleContainer > > acc( "inDetTrackParticleLink" );
+           static const Accessor< ElementLink< TrackParticleContainer > > acc( "inDetTrackParticleLink" );
            if( ! acc.isAvailable( *this ) ) return 0;
            
            const ElementLink< TrackParticleContainer >& link = acc( *this );
@@ -447,21 +446,21 @@ bool Muon_v1::isolationCaloCorrection(  float& value, const Iso::IsolationFlavou
       case MuonStandAlone :
         {
           // Want to return link to extrapolated MS track particle if possible.
-          static Accessor< ElementLink< TrackParticleContainer > > acc1( "extrapolatedMuonSpectrometerTrackParticleLink" );
+          static const Accessor< ElementLink< TrackParticleContainer > > acc1( "extrapolatedMuonSpectrometerTrackParticleLink" );
           if ( acc1.isAvailable( *this ) ) {            
             const ElementLink< TrackParticleContainer >& link = acc1( *this );
             if ( link.isValid() ) return *link;
           }
 
 	  //if no, maybe the MS-only extrapolated track particle?
-          static Accessor< ElementLink< TrackParticleContainer > > acc2( "msOnlyExtrapolatedMuonSpectrometerTrackParticleLink" );
+          static const Accessor< ElementLink< TrackParticleContainer > > acc2( "msOnlyExtrapolatedMuonSpectrometerTrackParticleLink" );
           if ( acc2.isAvailable( *this ) ) {
             const ElementLink< TrackParticleContainer >& link = acc2( *this );
             if ( link.isValid() ) return *link;
           }
           
           // Try fallback (non-extrapolated MS track particle)...
-          static Accessor< ElementLink< TrackParticleContainer > > acc3( "muonSpectrometerTrackParticleLink" );
+          static const Accessor< ElementLink< TrackParticleContainer > > acc3( "muonSpectrometerTrackParticleLink" );
           if ( acc3.isAvailable( *this ) ) {            
             const ElementLink< TrackParticleContainer >& link = acc3( *this );
             if ( link.isValid() ) return *link;
@@ -526,23 +525,23 @@ bool Muon_v1::isolationCaloCorrection(  float& value, const Iso::IsolationFlavou
   void Muon_v1::setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer >& link){
     switch ( type ) {
       case InnerDetectorTrackParticle :
-        static Accessor< ElementLink< TrackParticleContainer > > acc1( "inDetTrackParticleLink" );
+        static const Accessor< ElementLink< TrackParticleContainer > > acc1( "inDetTrackParticleLink" );
         acc1(*this)=link;
         break;
       case MuonSpectrometerTrackParticle :
-        static Accessor< ElementLink< TrackParticleContainer > > acc2( "muonSpectrometerTrackParticleLink" );
+        static const Accessor< ElementLink< TrackParticleContainer > > acc2( "muonSpectrometerTrackParticleLink" );
         acc2(*this)=link;
         break;
       case CombinedTrackParticle :
-        static Accessor< ElementLink< TrackParticleContainer > > acc3( "combinedTrackParticleLink" );
+        static const Accessor< ElementLink< TrackParticleContainer > > acc3( "combinedTrackParticleLink" );
         acc3(*this)=link;          
         break;
       case ExtrapolatedMuonSpectrometerTrackParticle :
-        static Accessor< ElementLink< TrackParticleContainer > > acc4( "extrapolatedMuonSpectrometerTrackParticleLink" );
+        static const Accessor< ElementLink< TrackParticleContainer > > acc4( "extrapolatedMuonSpectrometerTrackParticleLink" );
         acc4(*this)=link;
         break;
       case MSOnlyExtrapolatedMuonSpectrometerTrackParticle :
-	static Accessor< ElementLink< TrackParticleContainer > > acc5( "msOnlyExtrapolatedMuonSpectrometerTrackParticleLink" );
+        static const Accessor< ElementLink< TrackParticleContainer > > acc5( "msOnlyExtrapolatedMuonSpectrometerTrackParticleLink" );
 	acc5(*this)=link;
 	break;
       case Primary :
@@ -554,7 +553,7 @@ bool Muon_v1::isolationCaloCorrection(  float& value, const Iso::IsolationFlavou
   AUXSTORE_OBJECT_SETTER_AND_GETTER( Muon_v1, ElementLink<CaloClusterContainer>, clusterLink, setClusterLink)
   const CaloCluster* Muon_v1::cluster() const { 
     
-    static Accessor< ElementLink< TrackParticleContainer > > acc( "inDetTrackParticleLink" );
+    static const Accessor< ElementLink< TrackParticleContainer > > acc( "inDetTrackParticleLink" );
     if( ! acc.isAvailable( *this ) ) {
        return 0;
     }
@@ -580,7 +579,7 @@ bool Muon_v1::isolationCaloCorrection(  float& value, const Iso::IsolationFlavou
 
   AUXSTORE_OBJECT_SETTER_AND_GETTER( Muon_v1, std::vector< ElementLink< xAOD::MuonSegmentContainer > >, muonSegmentLinks, setMuonSegmentLinks)
 
-  static SG::AuxElement::Accessor< std::vector< ElementLink< MuonSegmentContainer > > > muonSegmentsAcc( "muonSegmentLinks" ); 
+  static const SG::AuxElement::Accessor< std::vector< ElementLink< MuonSegmentContainer > > > muonSegmentsAcc( "muonSegmentLinks" ); 
   size_t Muon_v1::nMuonSegments() const {
         // If a link was not set (yet), return zero.
     if( ! muonSegmentsAcc.isAvailable( *this ) ) {
diff --git a/Event/xAOD/xAODMuon/Root/SlowMuon_v1.cxx b/Event/xAOD/xAODMuon/Root/SlowMuon_v1.cxx
index 659b4540c21a64f4343ca33b2613000ff76353a9..89a6db2d18e62ad0f37ac3d5c0319ce7827cdb70 100644
--- a/Event/xAOD/xAODMuon/Root/SlowMuon_v1.cxx
+++ b/Event/xAOD/xAODMuon/Root/SlowMuon_v1.cxx
@@ -29,13 +29,13 @@ namespace xAOD {
   AUXSTORE_PRIMITIVE_GETTER( SlowMuon_v1, int, rpcBetaDof )
   
   void SlowMuon_v1::setRpcInfo(float rpcBetaAvg, float rpcBetaRms, float rpcBetaChi2, int rpcBetaDof) {
-    static Accessor< float > acc1( "rpcBetaAvg" );
+    static const Accessor< float > acc1( "rpcBetaAvg" );
     acc1( *this ) = rpcBetaAvg;
-    static Accessor< float > acc2( "rpcBetaRms" );
+    static const Accessor< float > acc2( "rpcBetaRms" );
     acc2( *this ) = rpcBetaRms;
-    static Accessor< float > acc3( "rpcBetaChi2" );
+    static const Accessor< float > acc3( "rpcBetaChi2" );
     acc3( *this ) = rpcBetaChi2;
-    static Accessor< int > acc4( "rpcBetaDof" );
+    static const Accessor< int > acc4( "rpcBetaDof" );
     acc4( *this ) = rpcBetaDof;
   }
 
@@ -45,13 +45,13 @@ namespace xAOD {
   AUXSTORE_PRIMITIVE_GETTER( SlowMuon_v1, int, mdtBetaDof )
   
   void SlowMuon_v1::setMdtInfo(float mdtBetaAvg, float mdtBetaRms, float mdtBetaChi2, int mdtBetaDof) {
-    static Accessor< float > acc1( "mdtBetaAvg" );
+    static const Accessor< float > acc1( "mdtBetaAvg" );
     acc1( *this ) = mdtBetaAvg;
-    static Accessor< float > acc2( "mdtBetaRms" );
+    static const Accessor< float > acc2( "mdtBetaRms" );
     acc2( *this ) = mdtBetaRms;
-    static Accessor< float > acc3( "mdtBetaChi2" );
+    static const Accessor< float > acc3( "mdtBetaChi2" );
     acc3( *this ) = mdtBetaChi2;
-    static Accessor< int > acc4( "mdtBetaDof" );
+    static const Accessor< int > acc4( "mdtBetaDof" );
     acc4( *this ) = mdtBetaDof;
   }
 
@@ -61,13 +61,13 @@ namespace xAOD {
   AUXSTORE_PRIMITIVE_GETTER( SlowMuon_v1, int, caloBetaDof )
   
   void SlowMuon_v1::setCaloInfo(float caloBetaAvg, float caloBetaRms, float caloBetaChi2, int caloBetaDof) {
-    static Accessor< float > acc1( "caloBetaAvg" );
+    static const Accessor< float > acc1( "caloBetaAvg" );
     acc1( *this ) = caloBetaAvg;
-    static Accessor< float > acc2( "caloBetaRms" );
+    static const Accessor< float > acc2( "caloBetaRms" );
     acc2( *this ) = caloBetaRms;
-    static Accessor< float > acc3( "caloBetaChi2" );
+    static const Accessor< float > acc3( "caloBetaChi2" );
     acc3( *this ) = caloBetaChi2;
-    static Accessor< int > acc4( "caloBetaDof" );
+    static const Accessor< int > acc4( "caloBetaDof" );
     acc4( *this ) = caloBetaDof;
   }
 
diff --git a/Event/xAOD/xAODPrimitives/Root/getIsolationAccessor.cxx b/Event/xAOD/xAODPrimitives/Root/getIsolationAccessor.cxx
index 80ffccbf541594ad5f55a8f7431317977b201e0e..be60b1b14af8f40e4339995f49916cbd956c4273 100644
--- a/Event/xAOD/xAODPrimitives/Root/getIsolationAccessor.cxx
+++ b/Event/xAOD/xAODPrimitives/Root/getIsolationAccessor.cxx
@@ -5,6 +5,9 @@
 // Local include(s):
 #include "xAODPrimitives/tools/getIsolationAccessor.h"
 
+// System include(s):
+#include <iostream>
+
 /// Helper macro for Accessor objects
 #define DEFINE_ACCESSOR(TYPE)                                 \
   case xAOD::Iso::TYPE:                                       \
diff --git a/Event/xAOD/xAODPrimitives/Root/getIsolationDecorator.cxx b/Event/xAOD/xAODPrimitives/Root/getIsolationDecorator.cxx
index 1db8e53a9f58f2e0dede9a41aa8775138036abb3..44a015b6202a43ad77b806afd981f13f9519f9cb 100644
--- a/Event/xAOD/xAODPrimitives/Root/getIsolationDecorator.cxx
+++ b/Event/xAOD/xAODPrimitives/Root/getIsolationDecorator.cxx
@@ -1,10 +1,13 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 // Local include(s):
 #include "xAODPrimitives/tools/getIsolationDecorator.h"
 
+// System include(s):
+#include <iostream>
+
 /// Helper macro for Accessor objects
 #define DEFINE_DECORATOR(TYPE)                                 \
   case xAOD::Iso::TYPE:                                       \
diff --git a/Event/xAOD/xAODTrigMuon/Root/TrigMuonDefs.cxx b/Event/xAOD/xAODTrigMuon/Root/TrigMuonDefs.cxx
index c9f34230858e0049085ba76ac21eb53afd92705e..d98bf89e63df9c4fe305f6c7ba65aae4a3b331a7 100644
--- a/Event/xAOD/xAODTrigMuon/Root/TrigMuonDefs.cxx
+++ b/Event/xAOD/xAODTrigMuon/Root/TrigMuonDefs.cxx
@@ -1,9 +1,12 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
+
+// Local include(s).
 #include "xAODTrigMuon/TrigMuonDefs.h"
-#include <math.h>
-#include <iostream>
+
+// System include(s).
+#include <cmath>
 
 namespace xAOD{
 
@@ -13,19 +16,19 @@ namespace L2MuonParameters{
   ECRegions whichECRegion( const float eta, const float phi ){
       float absEta = fabs(eta);
       if( ( 1.3 <= absEta && absEta < 1.45) &&
-	  ( (0                 <= fabs(phi) && fabs(phi) < CLHEP::pi/48. )     ||
-	    (CLHEP::pi*11./48. <= fabs(phi) && fabs(phi) < CLHEP::pi*13./48. ) ||
-	    (CLHEP::pi*23./48. <= fabs(phi) && fabs(phi) < CLHEP::pi*25./48. ) ||
-	    (CLHEP::pi*35./48. <= fabs(phi) && fabs(phi) < CLHEP::pi*37./48. ) ||
-	    (CLHEP::pi*47./48. <= fabs(phi) && fabs(phi) < CLHEP::pi )
+	  ( (0                 <= fabs(phi) && fabs(phi) < M_PI/48. )     ||
+	    (M_PI*11./48. <= fabs(phi) && fabs(phi) < M_PI*13./48. ) ||
+	    (M_PI*23./48. <= fabs(phi) && fabs(phi) < M_PI*25./48. ) ||
+	    (M_PI*35./48. <= fabs(phi) && fabs(phi) < M_PI*37./48. ) ||
+	    (M_PI*47./48. <= fabs(phi) && fabs(phi) < M_PI )
 	    )
 	  ) return WeakBFieldA;
       
       else if( ( 1.5 <= absEta && absEta < 1.65 ) &&
-	       ( (CLHEP::pi*3./32.  <= fabs(phi) && fabs(phi) < CLHEP::pi*5./32. ) ||
-		 (CLHEP::pi*11./32. <= fabs(phi) && fabs(phi) < CLHEP::pi*13./32.) ||
-		 (CLHEP::pi*19./32. <= fabs(phi) && fabs(phi) < CLHEP::pi*21./32.) ||
-		 (CLHEP::pi*27./32. <= fabs(phi) && fabs(phi) < CLHEP::pi*29./32.)
+	       ( (M_PI*3./32.  <= fabs(phi) && fabs(phi) < M_PI*5./32. ) ||
+		 (M_PI*11./32. <= fabs(phi) && fabs(phi) < M_PI*13./32.) ||
+		 (M_PI*19./32. <= fabs(phi) && fabs(phi) < M_PI*21./32.) ||
+		 (M_PI*27./32. <= fabs(phi) && fabs(phi) < M_PI*29./32.)
 		 )
 	       ) return WeakBFieldB;
       
diff --git a/Event/xAOD/xAODTrigMuon/xAODTrigMuon/TrigMuonDefs.h b/Event/xAOD/xAODTrigMuon/xAODTrigMuon/TrigMuonDefs.h
index 434ab78233cdcdb014651a9147f408016b7515b8..564de979ed9787bc88329566b3dfc8e24ef9c26a 100644
--- a/Event/xAOD/xAODTrigMuon/xAODTrigMuon/TrigMuonDefs.h
+++ b/Event/xAOD/xAODTrigMuon/xAODTrigMuon/TrigMuonDefs.h
@@ -1,22 +1,17 @@
 // Dear emacs, this is -*- c++ -*-
-
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
-
-// $Id: TrigMuonDefs.h $
 #ifndef XAODTRIGMUON_TRIGMUONDEFS_H
 #define XAODTRIGMUON_TRIGMUONDEFS_H
 
-#include "CLHEP/Units/PhysicalConstants.h"
-
 /// Namespace holding all the xAOD EDM classes
 namespace xAOD {
 
 namespace L2MuonParameters
 {
 
-    /// Define chamber types and locations                                                                                            
+    /// Define chamber types and locations
     enum Chamber {
       BarrelInner  = 0, ///< Inner station in the barrel spectrometer
       BarrelMiddle = 1, ///< Middle station in the barrel spectrometer
@@ -32,17 +27,16 @@ namespace L2MuonParameters
       MaxChamber   = 11  ///< Number of measurement point definitions
     };
 
-    ///  Define algoriths ID                                                                                                          
+    ///  Define algoriths ID
 	 enum L2MuonAlgoId{GEV900ID=0,   MUONID=1,     HALOID=2,    COSMICID=3,
                       LOOSE_HM=10,  MEDIUM_HM=11, TIGHT_HM=12, LOOSE_LM=13,
                       MEDIUM_LM=14, TIGHT_LM=15,
                       NULLID=99999};
 
     enum ECRegions{ Bulk, WeakBFieldA, WeakBFieldB};
-  
+
     ECRegions whichECRegion( const float eta, const float phi );
 }
-  
 
 }
 
diff --git a/External/AtlasPyFwdBwdPorts/CMakeLists.txt b/External/AtlasPyFwdBwdPorts/CMakeLists.txt
index 6f7eea61f45981e469e9538153e64833aa0df43a..0419f2337f4bc3589e1fadac064ce72862ec5c68 100644
--- a/External/AtlasPyFwdBwdPorts/CMakeLists.txt
+++ b/External/AtlasPyFwdBwdPorts/CMakeLists.txt
@@ -79,30 +79,6 @@ function( _setup_python_package name file md5 )
 
 endfunction( _setup_python_package )
 
-# Install Beaker:
-_setup_python_package( Beaker
-   ${CMAKE_CURRENT_SOURCE_DIR}/src/Beaker-1.5.4.tar.gz
-   de84e7511119dc0b8eb4ac177d3e2512
-   )
-
-# Install affinity:
-_setup_python_package( affinity
-   ${CMAKE_CURRENT_SOURCE_DIR}/src/affinity-0.1.0.tar.gz
-   cc610cdb05ca675b4089ce2f05796f57
-   )
-
-# Install bunch:
-_setup_python_package( bunch
-   ${CMAKE_CURRENT_SOURCE_DIR}/src/bunch-1.0.0.tar.gz
-   944d2e8f222ed032961daa34c5b5151c
-   )
-
-# Install datadiff:
-_setup_python_package( datadiff
-   ${CMAKE_CURRENT_SOURCE_DIR}/src/datadiff-1.1.1.tar.gz
-   48a2e9b85332b8252c8401205ff02756
-   )
-
 # Install extensions:
 _setup_python_package( extensions
    ${CMAKE_CURRENT_SOURCE_DIR}/src/extensions-0.4.tar.gz
@@ -125,13 +101,7 @@ _setup_python_package( pyflakes
 _setup_python_package( flake8
    ${CMAKE_CURRENT_SOURCE_DIR}/src/flake8-3.6.0.tar.gz
    178485aed0799655d0cbf2e3bdcfaddc
-   DEPENDS pyflakes
-   SINGLE_VERSION )
-
-# Install configparser:
-_setup_python_package( configparser
-   ${CMAKE_CURRENT_SOURCE_DIR}/src/configparser-3.5.0.tar.gz
-   cfdd915a5b7a6c09917a64a573140538
+   DEPENDS pyflakes pycodestyle mccabe enum34
    SINGLE_VERSION )
 
 # Install enum34:
@@ -146,18 +116,12 @@ _setup_python_package( mccabe
    723df2f7b1737b8887475bac4c763e1e
    SINGLE_VERSION )
 
-# Install :
+# Install pycodestyle:
 _setup_python_package( pycodestyle 
    ${CMAKE_CURRENT_SOURCE_DIR}/src/pycodestyle-2.4.0.tar.gz
    85bbebd2c90d2f833c1db467d4d0e9a3
    SINGLE_VERSION )
 
-# Install pyinotify:
-_setup_python_package( pyinotify
-   ${CMAKE_CURRENT_SOURCE_DIR}/src/pyinotify-0.9.1.tar.gz
-   bd06a9feac312414e57d92c781bda539
-   SINGLE_VERSION )
-
 # Install pyyaml:
 _setup_python_package( pyyaml
    ${CMAKE_CURRENT_SOURCE_DIR}/src/pyyaml-3.10.tar.gz
@@ -165,12 +129,6 @@ _setup_python_package( pyyaml
    EXTRA_ARGS --without-libyaml
    SINGLE_VERSION )
 
-# Install gcovr:
-_setup_python_package( gcovr
-   ${CMAKE_CURRENT_SOURCE_DIR}/src/gcovr-3.4.tar.gz
-   0e8aece2bd438530853e7e10968efd56
-   SINGLE_VERSION )
-
 # Install scandir:
 _setup_python_package( scandir
    ${CMAKE_CURRENT_SOURCE_DIR}/src/scandir-1.6.tar.gz
diff --git a/External/AtlasPyFwdBwdPorts/src/Beaker-1.5.4.tar.gz b/External/AtlasPyFwdBwdPorts/src/Beaker-1.5.4.tar.gz
deleted file mode 100644
index 958406f2cbe5d01f75a345515bee0159b9a60060..0000000000000000000000000000000000000000
Binary files a/External/AtlasPyFwdBwdPorts/src/Beaker-1.5.4.tar.gz and /dev/null differ
diff --git a/External/AtlasPyFwdBwdPorts/src/affinity-0.1.0.tar.gz b/External/AtlasPyFwdBwdPorts/src/affinity-0.1.0.tar.gz
deleted file mode 100644
index 5865a5fd41866f9a9a522763a6a00fe12ca8604c..0000000000000000000000000000000000000000
Binary files a/External/AtlasPyFwdBwdPorts/src/affinity-0.1.0.tar.gz and /dev/null differ
diff --git a/External/AtlasPyFwdBwdPorts/src/bunch-1.0.0.tar.gz b/External/AtlasPyFwdBwdPorts/src/bunch-1.0.0.tar.gz
deleted file mode 100644
index 02caf5284549c08a0d670ca73f56365188bceef8..0000000000000000000000000000000000000000
Binary files a/External/AtlasPyFwdBwdPorts/src/bunch-1.0.0.tar.gz and /dev/null differ
diff --git a/External/AtlasPyFwdBwdPorts/src/configparser-3.5.0.tar.gz b/External/AtlasPyFwdBwdPorts/src/configparser-3.5.0.tar.gz
deleted file mode 100644
index 7c9dc40781ce25c21596b8f9f2bcc96d94c37288..0000000000000000000000000000000000000000
Binary files a/External/AtlasPyFwdBwdPorts/src/configparser-3.5.0.tar.gz and /dev/null differ
diff --git a/External/AtlasPyFwdBwdPorts/src/datadiff-1.1.1.tar.gz b/External/AtlasPyFwdBwdPorts/src/datadiff-1.1.1.tar.gz
deleted file mode 100644
index 00c753f7f3e4b71fde07d6b1e46b5f50bd259e4b..0000000000000000000000000000000000000000
Binary files a/External/AtlasPyFwdBwdPorts/src/datadiff-1.1.1.tar.gz and /dev/null differ
diff --git a/External/AtlasPyFwdBwdPorts/src/gcovr-3.4.tar.gz b/External/AtlasPyFwdBwdPorts/src/gcovr-3.4.tar.gz
deleted file mode 100644
index fa9fafaa9881cc3c8d2d957fe59eb2c81b4c0f2a..0000000000000000000000000000000000000000
Binary files a/External/AtlasPyFwdBwdPorts/src/gcovr-3.4.tar.gz and /dev/null differ
diff --git a/External/AtlasPyFwdBwdPorts/src/pyinotify-0.9.1.tar.gz b/External/AtlasPyFwdBwdPorts/src/pyinotify-0.9.1.tar.gz
deleted file mode 100644
index 02ae73637de752d6202a7dd0e5080f72ef1c350c..0000000000000000000000000000000000000000
Binary files a/External/AtlasPyFwdBwdPorts/src/pyinotify-0.9.1.tar.gz and /dev/null differ
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.cxx
index bb802e01c4d98eb8b4b8ac41923f9673407a273e..a45ecf9beba4bf67f15e3b1a0f0a1525096e4a37 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.cxx
@@ -28,7 +28,7 @@ StatusCode SCT_DCSConditionsTestAlg::initialize() {
 } // SCT_DCSConditionsTestAlg::execute()
 
 //----------------------------------------------------------------------
-StatusCode SCT_DCSConditionsTestAlg::execute(const EventContext& /*ctx*/) const {
+StatusCode SCT_DCSConditionsTestAlg::execute(const EventContext& ctx) const {
   //This method is only used to test the summary service, and only used within this package,
   // so the INFO level messages have no impact on performance of these services when used by clients
   ATH_MSG_DEBUG("in execute()");
@@ -42,7 +42,7 @@ StatusCode SCT_DCSConditionsTestAlg::execute(const EventContext& /*ctx*/) const
   
   try {
     gettempworks = (m_DCSConditionsTool->sensorTemperature(Identifier{141015041}, InDetConditions::SCT_STRIP));
-    isgoodworks =(m_DCSConditionsTool->isGood(Identifier{208584704}, InDetConditions::SCT_SIDE));
+    isgoodworks =(m_DCSConditionsTool->isGood(Identifier{208584704}, ctx, InDetConditions::SCT_SIDE));
     module = (m_DCSConditionsTool->canReportAbout(InDetConditions::SCT_MODULE));
     strip = (m_DCSConditionsTool->canReportAbout(InDetConditions::SCT_STRIP));
   } catch(...) {
@@ -65,8 +65,8 @@ StatusCode SCT_DCSConditionsTestAlg::execute(const EventContext& /*ctx*/) const
   ATH_MSG_INFO("gethv(141015041,Strip) " << (m_DCSConditionsTool->modHV(Identifier{141015041}, InDetConditions::SCT_STRIP)));
 
   try {
-    isgoodworks = (m_DCSConditionsTool->isGood(Identifier{208584704}, InDetConditions::SCT_SIDE));
-    isgoodworks = (m_DCSConditionsTool->isGood(Identifier{141015041}, InDetConditions::SCT_STRIP));
+    isgoodworks = (m_DCSConditionsTool->isGood(Identifier{208584704}, ctx, InDetConditions::SCT_SIDE));
+    isgoodworks = (m_DCSConditionsTool->isGood(Identifier{141015041}, ctx, InDetConditions::SCT_STRIP));
   } catch(...) {
     ATH_MSG_FATAL("Exception caught while trying to the isGood method");
     return StatusCode::FAILURE;
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_LinkMaskingTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_LinkMaskingTestAlg.cxx
index d9e286809456b8c886a16eec7e7f26025c3ecf7e..a070214774f46190708a9f43aa300c8ffc11065e 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_LinkMaskingTestAlg.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_LinkMaskingTestAlg.cxx
@@ -34,12 +34,12 @@ StatusCode SCT_LinkMaskingTestAlg::initialize() {
 }
 
 //Execute
-StatusCode SCT_LinkMaskingTestAlg::execute(const EventContext& /*ctx*/) const {
+StatusCode SCT_LinkMaskingTestAlg::execute(const EventContext& ctx) const {
 
-  ATH_MSG_INFO("Wafer 167772160 is " << (m_linkMaskingTool->isGood(Identifier{167772160}) ? "not masked" : "masked"));
-  ATH_MSG_INFO("Wafer 167773184 is " << (m_linkMaskingTool->isGood(Identifier{167773184}) ? "not masked" : "masked"));
-  ATH_MSG_INFO("Wafer 167786496 is " << (m_linkMaskingTool->isGood(Identifier{167786496}) ? "not masked" : "masked"));
-  ATH_MSG_INFO("Wafer 167787520 is " << (m_linkMaskingTool->isGood(Identifier{167787520}) ? "not masked" : "masked"));
+  ATH_MSG_INFO("Wafer 167772160 is " << (m_linkMaskingTool->isGood(Identifier{167772160}, ctx) ? "not masked" : "masked"));
+  ATH_MSG_INFO("Wafer 167773184 is " << (m_linkMaskingTool->isGood(Identifier{167773184}, ctx) ? "not masked" : "masked"));
+  ATH_MSG_INFO("Wafer 167786496 is " << (m_linkMaskingTool->isGood(Identifier{167786496}, ctx) ? "not masked" : "masked"));
+  ATH_MSG_INFO("Wafer 167787520 is " << (m_linkMaskingTool->isGood(Identifier{167787520}, ctx) ? "not masked" : "masked"));
 
   return StatusCode::SUCCESS;
 }
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ModuleVetoTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ModuleVetoTestAlg.cxx
index db144080dc4dd0deb1e3d23e0d4405e107b52d82..f33d969402b7dd735691a73fca4500dbe7bb9599 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ModuleVetoTestAlg.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ModuleVetoTestAlg.cxx
@@ -32,34 +32,34 @@ SCT_ModuleVetoTestAlg::initialize() {
 
 //Execute
 StatusCode 
-SCT_ModuleVetoTestAlg::execute(const EventContext& /*ctx*/) const {
+SCT_ModuleVetoTestAlg::execute(const EventContext& ctx) const {
   //This method is only used to test the summary service, and only used within this package,
   // so the INFO level messages have no impact on performance of these services when used by clients
 
   ATH_MSG_INFO("Calling execute");
 
   ATH_MSG_INFO("Dummy call to module id 0: module is ");
-  bool result{m_pModuleVetoTool->isGood(Identifier{0})};
+  bool result{m_pModuleVetoTool->isGood(Identifier{0}, ctx)};
   ATH_MSG_INFO((result ? "good" : "bad"));
 
   ATH_MSG_INFO("Dummy call to module id 1:  module is ");
-  result=m_pModuleVetoTool->isGood(Identifier{1});
+  result=m_pModuleVetoTool->isGood(Identifier{1}, ctx);
   ATH_MSG_INFO((result ? "good" : "bad"));
 
   ATH_MSG_INFO("Dummy call to module id 2:  module is ");
-  result=m_pModuleVetoTool->isGood(Identifier{2});
+  result=m_pModuleVetoTool->isGood(Identifier{2}, ctx);
   ATH_MSG_INFO((result ? "good" : "bad"));
 
   ATH_MSG_INFO("Dummy call to module id 3:  module is ");
-  result=m_pModuleVetoTool->isGood(Identifier{3});
+  result=m_pModuleVetoTool->isGood(Identifier{3}, ctx);
   ATH_MSG_INFO((result ? "good" : "bad"));
 
   ATH_MSG_INFO("Dummy call to module id 151040000:  module is ");
-  result=m_pModuleVetoTool->isGood(Identifier{151040000});
+  result=m_pModuleVetoTool->isGood(Identifier{151040000}, ctx);
   ATH_MSG_INFO((result ? "good" : "bad"));
 
   ATH_MSG_INFO("Using Identifier Hash method:  with number 2137 ");
-  result=m_pModuleVetoTool->isGood(IdentifierHash{2137});
+  result=m_pModuleVetoTool->isGood(IdentifierHash{2137}, ctx);
   ATH_MSG_INFO((result ? "good" : "bad"));
 
   return StatusCode::SUCCESS;
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorConditionsTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorConditionsTestAlg.cxx
index 893a4cd3e409c3fd524c5739c036ef6bd4daa5a1..4b9b4a2c615eede4dc5780e5d4343d818a060935 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorConditionsTestAlg.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorConditionsTestAlg.cxx
@@ -83,7 +83,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
     Identifier waferId{*waferItr};
     for (int i{0}; i<768; i++){
       Identifier stripId{m_sctId->strip_id(waferId, i)};
-      if (not (m_pMonitorConditionsTool->isGood(stripId, InDetConditions::SCT_STRIP)))
+      if (not (m_pMonitorConditionsTool->isGood(stripId, ctx, InDetConditions::SCT_STRIP)))
 	n_bad++;
     }
   }
@@ -97,7 +97,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
   ATH_MSG_DEBUG("(MonitorTest): moduleid = " << moduleid1);
   //    SCT_ComponentIdentifier compid = SCT_ComponentIdentifier(stripid1,"STRIP");
   //    SCT_Conditions::SCT_ComponentIdentifier compid(stripid1,"STRIP");
-  bool isthisGood{m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_STRIP)};
+  bool isthisGood{m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP)};
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): strip(0,3,41,-4,1,703) is not noisy ");
   } else {
@@ -108,7 +108,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
   waferid1 = m_sctId->wafer_id(stripid1);
   moduleid1 = m_sctId->module_id(waferid1);
   //    compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"STRIP");
-  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_STRIP);
+  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): strip(0,3,41,-4,0,703) is not noisy ");
   } else {
@@ -121,7 +121,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
   moduleid1 = m_sctId->module_id(waferid1);
   ATH_MSG_DEBUG("(MonitorTest): stripid  = " << stripid1);
   ATH_MSG_DEBUG("(MonitorTest): moduleid = " << moduleid1);
-  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_STRIP);
+  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): strip(0,2,39,-1,0,397) is not noisy ");
   } else {
@@ -133,7 +133,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
   moduleid1 = m_sctId->module_id(waferid1);
   ATH_MSG_DEBUG("(MonitorTest): stripid  = " << stripid1);
   ATH_MSG_DEBUG("(MonitorTest): moduleid = " << moduleid1);
-  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_STRIP);
+  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): strip(0,2,39,-1,0,396) is not noisy ");
   } else {
@@ -145,7 +145,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
   moduleid1 = m_sctId->module_id(waferid1);
   ATH_MSG_DEBUG("(MonitorTest): stripid  = " << stripid1);
   ATH_MSG_DEBUG("(MonitorTest): moduleid = " << moduleid1);
-  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_STRIP);
+  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): strip(0,2,39,-1,0,398) is not noisy ");
   } else {
@@ -154,7 +154,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
   
   stripid1 = m_sctId->strip_id(0, 3, 13, -3, 0, 567);
   //    compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"STRIP");
-  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_STRIP);
+  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): strip(0,3,13,-3,0,567) is not noisy ");
   } else {
@@ -163,7 +163,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
   
   stripid1 = m_sctId->strip_id(0, 3, 13, -3, 0, 566);
   //    compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"STRIP");
-  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_STRIP);
+  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): strip(0,3,13,-3,0,566) is not noisy ");
   } else {
@@ -172,7 +172,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
   
   stripid1 = m_sctId->strip_id(0, 3, 13, -3, 1, 567);
   //    compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"STRIP");
-  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_STRIP);
+  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): strip(0,3,13,-3,1,567) is not noisy ");
   } else {
@@ -181,7 +181,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
 
   stripid1 = m_sctId->strip_id(0, 0, 7, 2, 0, 700);
   //    compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"STRIP");
-  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_STRIP);
+  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): strip(0,0,7,2,0,700) is not noisy ");
   } else {
@@ -190,7 +190,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
   
   stripid1 = m_sctId->strip_id(0, 0, 7, 2, 1, 700);
   //    compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"STRIP");
-  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_STRIP);
+  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): strip(0,0,7,2,1,700) is not noisy ");
   } else {
@@ -200,7 +200,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
   // check if chip is noisy
   stripid1 = m_sctId->strip_id(0, 0, 8, -4, 0, 100);
   //    compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"CHIP");
-  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_CHIP);
+  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_CHIP);
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): chip(0,0,8,-4,0,100) is not noisy ");
   } else {
@@ -209,7 +209,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
   
   stripid1 = m_sctId->strip_id(0, 3, 13, -3, 0, 567);
   //    compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"CHIP");
-  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_CHIP);
+  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_CHIP);
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): chip(0,3,13,-3,0,567) is not noisy ");
   } else {
@@ -219,7 +219,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
   // check if wafer is noisy
   stripid1 = m_sctId->strip_id(0, 0, 8, -4, 0, 100);
   //    compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"WAFER");
-  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_SIDE);
+  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_SIDE);
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): wafer(0,0,8,-4,0,100) is not noisy ");
   } else {
@@ -229,7 +229,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
   // check if module is noisy
   stripid1 = m_sctId->strip_id(0, 0, 8, -4, 0, 100);
   //    compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"MODULE");
-  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, InDetConditions::SCT_MODULE);
+  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_MODULE);
   if (isthisGood) {
     ATH_MSG_INFO("isGood(): module(0,0,8,-4,0,100) is not noisy ");
   } else {
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_RODVetoTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_RODVetoTestAlg.cxx
index 4fd95db28a844f574053f9d9d7f3dcf548820554..4cc0d352938fce3e60f1ef665170728855d75fc2 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_RODVetoTestAlg.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_RODVetoTestAlg.cxx
@@ -32,12 +32,12 @@ SCT_RODVetoTestAlg::initialize() {
 
 //Execute
 StatusCode 
-SCT_RODVetoTestAlg::execute(const EventContext& /*ctx*/) const {
+SCT_RODVetoTestAlg::execute(const EventContext& ctx) const {
   //This method is only used to test the summary service, and only used within this package,
   // so the INFO level messages have no impact on performance of these services when used by clients
   ATH_MSG_INFO("Calling execute");
   for (unsigned int hash{0}; hash<8176; hash+=2) {
-    bool result{m_pRODVetoTool->isGood(IdentifierHash(hash))};//invented, no idea what this is
+    bool result{m_pRODVetoTool->isGood(IdentifierHash{hash}, ctx)};//invented, no idea what this is
     ATH_MSG_INFO("Call to module in ROD : Module (hash=" << hash << ") is " << (result?"good":"bad"));
   }
 
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipDataTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipDataTestAlg.cxx
index 2d315e160d8a8f853ed5d12a9944d2f60ef3a220..a223f3d4f544cb8b9b354332280ca6aba8c955ff 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipDataTestAlg.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipDataTestAlg.cxx
@@ -113,7 +113,7 @@ StatusCode SCT_ReadCalibChipDataTestAlg::execute(const EventContext& ctx) const
     // Test summmary, ask status of strip in module
     Identifier IdM{m_moduleId};
     Identifier IdS{m_waferId};
-    bool Sok{m_ReadCalibChipDataTool->isGood(IdS, InDetConditions::SCT_SIDE)};
+    bool Sok{m_ReadCalibChipDataTool->isGood(IdS, ctx, InDetConditions::SCT_SIDE)};
     ATH_MSG_INFO("Side " << IdS << " on module " << IdM << " is " << (Sok ? "good" : "bad"));
   }
 
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataTestAlg.cxx
index bfaa9b1a1a201bf2b211a6892441b6fae8d926fd..2c8a153790d991c0e4589079635ba12a263c3e96 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataTestAlg.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataTestAlg.cxx
@@ -104,7 +104,7 @@ StatusCode SCT_ReadCalibDataTestAlg::execute(const EventContext& ctx) const
     // Test summmary, ask status of strip in module
     Identifier IdM{m_moduleId};
     Identifier IdS{m_stripId};
-    bool Sok{m_ReadCalibDataTool->isGood(IdS, InDetConditions::SCT_STRIP)};
+    bool Sok{m_ReadCalibDataTool->isGood(IdS, ctx, InDetConditions::SCT_STRIP)};
     ATH_MSG_INFO("Strip " << IdS << " on module " << IdM << " is " << (Sok?"good":"bad"));
   }
 
@@ -129,7 +129,7 @@ StatusCode SCT_ReadCalibDataTestAlg::execute(const EventContext& ctx) const
           Identifier IdS{m_id_sct->strip_id(waferId,stripIndex)};
           const int stripId{m_id_sct->strip(IdS)};
           const int side{m_id_sct->side(IdS)};
-          const bool stripOk{m_ReadCalibDataTool->isGood(IdS, InDetConditions::SCT_STRIP)};
+          const bool stripOk{m_ReadCalibDataTool->isGood(IdS, ctx, InDetConditions::SCT_STRIP)};
           if (stripOk) ++ngood;
 	  else ++nbad; 
           if (not stripOk) { // Print info on all bad strips
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_StripVetoTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_StripVetoTestAlg.cxx
index 93a2ba5bbc8726944dce1d58ea1e0551ff08c68d..506814d5a4ee560ddc961738464680d5b5377349 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_StripVetoTestAlg.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_StripVetoTestAlg.cxx
@@ -36,7 +36,7 @@ StatusCode SCT_StripVetoTestAlg::initialize() {
 }
 
 //Execute
-StatusCode SCT_StripVetoTestAlg::execute(const EventContext& /*ctx*/) const {
+StatusCode SCT_StripVetoTestAlg::execute(const EventContext& ctx) const {
   std::vector<Identifier::value_type> stripIds{576522359582752768ULL,
                                                576522475009998848ULL,
                                                576522475278434304ULL,
@@ -45,7 +45,7 @@ StatusCode SCT_StripVetoTestAlg::execute(const EventContext& /*ctx*/) const {
                                                576522475815305216ULL};
 
   for (Identifier::value_type stripId : stripIds) {
-    ATH_MSG_INFO("Strip " << stripId << " " << (m_stripVetoTool->isGood(Identifier{stripId}, InDetConditions::SCT_STRIP) ? "not vetoed" : "vetoed"));
+    ATH_MSG_INFO("Strip " << stripId << " " << (m_stripVetoTool->isGood(Identifier{stripId}, ctx, InDetConditions::SCT_STRIP) ? "not vetoed" : "vetoed"));
   }
 
   return StatusCode::SUCCESS;
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledTestAlg.cxx
index bbdb97fbd98d03c90c4fa9af5fd857c6cef9772a..adcd9e1959fd2e296a4812dfc2ac4b36778ad7e3 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledTestAlg.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledTestAlg.cxx
@@ -35,31 +35,31 @@ SCT_TdaqEnabledTestAlg::initialize() {
 
 //Execute
 StatusCode 
-SCT_TdaqEnabledTestAlg::execute(const EventContext& /*ctx*/) const {
+SCT_TdaqEnabledTestAlg::execute(const EventContext& ctx) const {
   //This method is only used to test the summary service, and only used within this package,
   // so the INFO level messages have no impact on performance of these services when used by clients
   ATH_MSG_INFO("Calling execute");
   ATH_MSG_INFO("Dummy call to module idHash 0: module is ");
-  bool result{m_pTdaqEnabledTool->isGood(IdentifierHash{0})};
+  bool result{m_pTdaqEnabledTool->isGood(IdentifierHash{0}, ctx)};
   ATH_MSG_INFO((result ? "good" : "bad"));
   ATH_MSG_INFO("Dummy call to module Identifier 1: module is ");
-  result=m_pTdaqEnabledTool->isGood(Identifier{1});
+  result=m_pTdaqEnabledTool->isGood(Identifier{1}, ctx);
   ATH_MSG_INFO((result ? "good" : "bad"));
   ATH_MSG_INFO("Using Identifier Hash method: with number 2137 ");
-  result=m_pTdaqEnabledTool->isGood(IdentifierHash{2137});
+  result=m_pTdaqEnabledTool->isGood(IdentifierHash{2137}, ctx);
   ATH_MSG_INFO((result ? "good" : "bad"));
   ATH_MSG_INFO("Dummy call to module idHash 3: module is ");
-  result=m_pTdaqEnabledTool->isGood(IdentifierHash{3});
+  result=m_pTdaqEnabledTool->isGood(IdentifierHash{3}, ctx);
   ATH_MSG_INFO((result ? "good" : "bad"));
   unsigned int printNbad{10}, printNgood{10};
   ATH_MSG_INFO("Printing the first " << printNbad << " bad modules, and the first " << printNgood << " good modules.");
   for (unsigned int i{0}; i<8176; ++i) {
     IdentifierHash idh{i};
-    if (printNbad and (not m_pTdaqEnabledTool->isGood(idh))) {
+    if (printNbad and (not m_pTdaqEnabledTool->isGood(idh, ctx))) {
       ATH_MSG_INFO(i << " is bad.");
       --printNbad;
     }
-    if (printNgood and m_pTdaqEnabledTool->isGood(idh)) {
+    if (printNgood and m_pTdaqEnabledTool->isGood(idh, ctx)) {
       ATH_MSG_INFO(i << " is good.");
       --printNgood;
     }
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/SCT_ConditionsTools/ISCT_ConditionsTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/SCT_ConditionsTools/ISCT_ConditionsTool.h
index a662ef58a294b9e692c9ee0dc23058215b458a7a..4e3370836f668867f63f1d7ff7bfd21e64d00eb7 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/SCT_ConditionsTools/ISCT_ConditionsTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/SCT_ConditionsTools/ISCT_ConditionsTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -11,14 +11,15 @@
 #ifndef ISCT_ConditionsTool_h
 #define ISCT_ConditionsTool_h
 
-//Gaudi Includes
-#include "GaudiKernel/IAlgTool.h"
-
 //Athena includes
 #include "Identifier/Identifier.h"
 #include "Identifier/IdentifierHash.h"
 #include "InDetConditionsSummaryService/InDetHierarchy.h"
 
+//Gaudi Includes
+#include "GaudiKernel/IAlgTool.h"
+#include "GaudiKernel/EventContext.h"
+
 /**
  * @class ISCT_ConditionsTool
  * Base class for SCT conditions tools so they can be used in the summary tool
@@ -35,9 +36,11 @@ class ISCT_ConditionsTool: virtual public IAlgTool {
   
   ///Summarise the result from the service as good/bad
   virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const =0;
+  virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const =0;
   
   //@todo introduce hash identifier method
   virtual bool isGood(const IdentifierHash& hashId) const =0;
+  virtual bool isGood(const IdentifierHash& hashId, const EventContext& ctx) const =0;
 };
 
 #endif // ISCT_ConditionsTool_h
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.cxx
index c2994778c4b12062de69e7627c6adaf84401fc45..a66025bc224e57cd1ff6400127486a6987d75af2 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.cxx
@@ -103,9 +103,7 @@ SCT_ByteStreamErrorsTool::canReportAbout(InDetConditions::Hierarchy h) const {
  * result in bad hits or no hits for that event */
  
 bool 
-SCT_ByteStreamErrorsTool::isGood(const IdentifierHash& elementIdHash) const {
-  const EventContext& ctx{Gaudi::Hive::currentContext()};
-  
+SCT_ByteStreamErrorsTool::isGood(const IdentifierHash& elementIdHash, const EventContext& ctx) const {
   if (m_checkRODSimulatedData and isRODSimulatedData(elementIdHash)) return false;
   
   bool result{true};
@@ -137,13 +135,20 @@ SCT_ByteStreamErrorsTool::isGood(const IdentifierHash& elementIdHash) const {
   return result;
 }
 
+bool
+SCT_ByteStreamErrorsTool::isGood(const IdentifierHash& elementIdHash) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(elementIdHash, ctx);
+}
+
 bool 
-SCT_ByteStreamErrorsTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+SCT_ByteStreamErrorsTool::isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h) const {
   if (not canReportAbout(h)) return true;
   
   if (h==InDetConditions::SCT_SIDE) {
     const IdentifierHash elementIdHash{m_sct_id->wafer_hash(elementId)};
-    return isGood(elementIdHash);
+    return isGood(elementIdHash, ctx);
   }
   if (h==InDetConditions::SCT_CHIP) {
     return isGoodChip(elementId);
@@ -152,6 +157,13 @@ SCT_ByteStreamErrorsTool::isGood(const Identifier& elementId, InDetConditions::H
   return true;
 }
 
+bool
+SCT_ByteStreamErrorsTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(elementId, ctx, h);
+}
+
 bool
 SCT_ByteStreamErrorsTool::isGoodChip(const Identifier& stripId) const {
   // This check assumes present SCT.
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.h
index 3a7b2dfbff71c83b3123aad628846a253dd11b66..7a612ce579d8b3e6e001d695df878fcaabc37bc5 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.h
@@ -59,7 +59,9 @@ public:
   
   ///Is the detector element good?
   virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
+  virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
   virtual bool isGood(const IdentifierHash& elementIdHash) const override;
+  virtual bool isGood(const IdentifierHash& elementIdHash, const EventContext& ctx) const override;
   
   const std::set<IdentifierHash>* getErrorSet(int errorType) const override; // Used by SCTRawDataProviderTool and others
   const std::set<IdentifierHash>* getErrorSet(int errorType, const EventContext& ctx) const override; // Used by SCTRawDataProviderTool and others
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConditionsSummaryTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConditionsSummaryTool.cxx
index d2bcf1ea07e39f6406f99b4a137895a53fcb72fa..f4805fd3dca1d54cc82f00a07aac0b5c4063a61a 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConditionsSummaryTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConditionsSummaryTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -11,6 +11,8 @@
 #include "SCT_ConditionsSummaryTool.h"
 #include "SCT_ConditionsTools/ISCT_ConditionsTool.h"
 
+#include "GaudiKernel/EventContext.h"
+
 using namespace std;
 
 // Constructor
@@ -64,8 +66,9 @@ SCT_ConditionsSummaryTool::activeFraction(const IdentifierHash& elementHash, con
 bool
 SCT_ConditionsSummaryTool::isGood(const Identifier& elementId, const InDetConditions::Hierarchy h) const {
   if (not m_noReports) {
+    const EventContext& ctx{Gaudi::Hive::currentContext()};
     for (const ToolHandle<ISCT_ConditionsTool>& tool: m_toolHandles) {
-      if (tool->canReportAbout(h) and (not tool->isGood(elementId, h))) return false;
+      if (tool->canReportAbout(h) and (not tool->isGood(elementId, ctx, h))) return false;
     }
   }
   return true;
@@ -74,8 +77,9 @@ SCT_ConditionsSummaryTool::isGood(const Identifier& elementId, const InDetCondit
 bool
 SCT_ConditionsSummaryTool::isGood(const IdentifierHash& elementHash) const {
   if (not m_noReports) {
+    const EventContext& ctx{Gaudi::Hive::currentContext()};
     for (const ToolHandle<ISCT_ConditionsTool>& tool: m_toolHandles) {
-      if (tool->canReportAbout(InDetConditions::SCT_SIDE) and (not tool->isGood(elementHash))) return false;
+      if (tool->canReportAbout(InDetConditions::SCT_SIDE) and (not tool->isGood(elementHash, ctx))) return false;
     }    
   }
   return true;
@@ -84,8 +88,9 @@ SCT_ConditionsSummaryTool::isGood(const IdentifierHash& elementHash) const {
 bool
 SCT_ConditionsSummaryTool::isGood(const IdentifierHash& /*elementHash*/, const Identifier& elementId) const {
   if (not m_noReports) {
+    const EventContext& ctx{Gaudi::Hive::currentContext()};
     for (const ToolHandle<ISCT_ConditionsTool>& tool: m_toolHandles) {
-      if (tool->canReportAbout(InDetConditions::SCT_STRIP) and (not tool->isGood(elementId))) return false;
+      if (tool->canReportAbout(InDetConditions::SCT_STRIP) and (not tool->isGood(elementId, ctx))) return false;
     } 
   }
   return true;
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConfigurationConditionsTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConfigurationConditionsTool.cxx
index cbce7855b989ff31e8e34f612795609f0021385e..d141efb67a106dd40e072e3e4da0c8c0f25d1382 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConfigurationConditionsTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConfigurationConditionsTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "SCT_ConfigurationConditionsTool.h"
@@ -53,10 +53,9 @@ bool SCT_ConfigurationConditionsTool::canReportAbout(InDetConditions::Hierarchy
 }
 
 // Is an element with this Identifier and hierachy good?
-bool SCT_ConfigurationConditionsTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+bool SCT_ConfigurationConditionsTool::isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h) const {
   if (not canReportAbout(h)) return true;
 
-  const EventContext& ctx{Gaudi::Hive::currentContext()};
   const SCT_ConfigurationCondData* condData{getCondData(ctx)};
   if (condData==nullptr) {
     ATH_MSG_ERROR("In isGood, SCT_ConfigurationCondData pointer cannot be retrieved");
@@ -79,10 +78,22 @@ bool SCT_ConfigurationConditionsTool::isGood(const Identifier& elementId, InDetC
   return result;
 }
 
+bool SCT_ConfigurationConditionsTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(elementId, ctx, h);
+}
+
 // Is a wafer with this IdentifierHash good?
-bool SCT_ConfigurationConditionsTool::isGood(const IdentifierHash& hashId) const {
+bool SCT_ConfigurationConditionsTool::isGood(const IdentifierHash& hashId, const EventContext& ctx) const {
   const Identifier elementId{m_pHelper->wafer_id(hashId)};
-  return isGood(elementId);
+  return isGood(elementId, ctx);
+}
+
+bool SCT_ConfigurationConditionsTool::isGood(const IdentifierHash& hashId) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(hashId, ctx);
 }
 
 // Is a chip with this Identifier good?
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConfigurationConditionsTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConfigurationConditionsTool.h
index 3c62d34d62b1137e4c61a22b23a314de91ccf590..f688f55a0d39fe19016bfcb106474dced5cc583c 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConfigurationConditionsTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConfigurationConditionsTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -53,9 +53,11 @@ class SCT_ConfigurationConditionsTool: public extends<AthAlgTool, ISCT_Configura
   
   /**Is the detector element good?*/
   virtual bool                          isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
+  virtual bool                          isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
   
   /**Is it good?, using wafer hash*/
   virtual bool                          isGood(const IdentifierHash& hashId) const override;
+  virtual bool                          isGood(const IdentifierHash& hashId, const EventContext& ctx) const override;
 
   /**List of bad modules*/
   virtual const std::set<Identifier>*   badModules() const override;
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_DCSConditionsTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_DCSConditionsTool.cxx
index 6a8f83d3324be91f6239f8c3900e731457c48a04..d4ee921748556eb63a0fc148094458598537fa02 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_DCSConditionsTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_DCSConditionsTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 // New SCT_DCSConditions Tool, based on existing tool in SCT_ConditionsAlgs
@@ -86,12 +86,11 @@ Identifier SCT_DCSConditionsTool::getModuleID(const Identifier& elementId, InDet
 }
 
 //Returns if element Id is good or bad
-bool SCT_DCSConditionsTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+bool SCT_DCSConditionsTool::isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h) const {
   Identifier moduleId=getModuleID(elementId, h);
   if (not moduleId.is_valid()) return true; // not canreportabout
 
   if ((m_readAllDBFolders and m_returnHVTemp) or (not m_readAllDBFolders and not m_returnHVTemp)) {
-    const EventContext& ctx{Gaudi::Hive::currentContext()};
     const SCT_DCSStatCondData* condDataState{getCondDataState(ctx)};
     if (!condDataState) return false; // no cond data
     else if (condDataState->output(castId(moduleId))==0) return true; //No params are listed as bad
@@ -101,11 +100,23 @@ bool SCT_DCSConditionsTool::isGood(const Identifier& elementId, InDetConditions:
   }
 }
 
+bool SCT_DCSConditionsTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(elementId, ctx, h);
+}
+
 //Does the same for hashIds
+bool SCT_DCSConditionsTool::isGood(const IdentifierHash& hashId, const EventContext& ctx) const {
+  Identifier waferId{m_pHelper->wafer_id(hashId)};
+  Identifier moduleId{m_pHelper->module_id(waferId)};
+  return isGood(moduleId, ctx, InDetConditions::SCT_MODULE);
+}
+
 bool SCT_DCSConditionsTool::isGood(const IdentifierHash& hashId) const {
-  Identifier waferId = m_pHelper->wafer_id(hashId);
-  Identifier moduleId = m_pHelper->module_id(waferId);
-  return isGood(moduleId, InDetConditions::SCT_MODULE);
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(hashId, ctx);
 }
 
 /////////////////////////////////// 
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_DCSConditionsTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_DCSConditionsTool.h
index 563d492305eb8c934c350ed53d18fa82434424a7..6ba11daf85ae9e8117bbf17804a3fdc508b4eee1 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_DCSConditionsTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_DCSConditionsTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef SCT_DCSConditionsTool_h
@@ -52,8 +52,10 @@ public:
   virtual Identifier getModuleID(const Identifier& elementId, InDetConditions::Hierarchy h) const;
   ///Summarise the result from the service as good/bad
   virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
+  virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
   ///is it good?, using wafer hash
   virtual bool isGood(const IdentifierHash& hashId) const override;
+  virtual bool isGood(const IdentifierHash& hashId, const EventContext& ctx) const override;
   //Returns HV (0 if there is no information)
   virtual float modHV(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
   //Does the same for hashIds
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.cxx
index d37936efcdbd3c806198a15ace99f04295cee2ea..2d2fcabbf71cbcc91d8a847a01f1ddbaaa962b96 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "SCT_FlaggedConditionTool.h"
@@ -53,15 +53,21 @@ bool SCT_FlaggedConditionTool::canReportAbout(InDetConditions::Hierarchy h) cons
 }
 
 // Is this element good (by Identifier)?
-bool SCT_FlaggedConditionTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+bool SCT_FlaggedConditionTool::isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h) const {
   if (not canReportAbout(h)) return true;
-  const IdentifierHash hashId = m_sctID->wafer_hash(elementId);
-  return isGood(hashId);
+  const IdentifierHash hashId{m_sctID->wafer_hash(elementId)};
+  return isGood(hashId, ctx);
+}
+
+bool SCT_FlaggedConditionTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(elementId, ctx, h);
 }
 
 // Is this element good (by IdentifierHash)?
-bool SCT_FlaggedConditionTool::isGood(const IdentifierHash& hashId) const {
-  const SCT_FlaggedCondData* badIds{getCondData()};
+bool SCT_FlaggedConditionTool::isGood(const IdentifierHash& hashId, const EventContext& ctx) const {
+  const SCT_FlaggedCondData* badIds{getCondData(ctx)};
   if (badIds==nullptr) {
     ATH_MSG_ERROR("SCT_FlaggedCondData cannot be retrieved. (isGood)");
     return false;
@@ -70,12 +76,20 @@ bool SCT_FlaggedConditionTool::isGood(const IdentifierHash& hashId) const {
   return (badIds->find(hashId) == badIds->end());
 }
 
+bool SCT_FlaggedConditionTool::isGood(const IdentifierHash& hashId) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(hashId, ctx);
+}
+
 // Retrieve the reason why the wafer is flagged as bad (by IdentifierHash)
 // If wafer is not found return a null string
 const std::string& SCT_FlaggedConditionTool::details(const IdentifierHash& hashId) const {
   static const std::string nullString;
 
-  const SCT_FlaggedCondData* badIds{getCondData()};
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  const SCT_FlaggedCondData* badIds{getCondData(ctx)};
   if (badIds==nullptr) {
     ATH_MSG_ERROR("SCT_FlaggedCondData cannot be retrieved. (details)");
     return nullString;
@@ -93,7 +107,9 @@ const std::string& SCT_FlaggedConditionTool::details(const Identifier& Id) const
 }
 
 int SCT_FlaggedConditionTool::numBadIds() const {
-  const SCT_FlaggedCondData* badIds{getCondData()};
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  const SCT_FlaggedCondData* badIds{getCondData(ctx)};
   if (badIds==nullptr) {
     ATH_MSG_ERROR("SCT_FlaggedCondData cannot be retrieved. (numBadIds)");
     return -1;
@@ -103,11 +119,13 @@ int SCT_FlaggedConditionTool::numBadIds() const {
 }
 
 const SCT_FlaggedCondData* SCT_FlaggedConditionTool::getBadIds() const {
-  return getCondData();
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return getCondData(ctx);
 }
 
-const SCT_FlaggedCondData* SCT_FlaggedConditionTool::getCondData() const {
-  SG::ReadHandle<SCT_FlaggedCondData> condData{m_badIds};
+const SCT_FlaggedCondData* SCT_FlaggedConditionTool::getCondData(const EventContext& ctx) const {
+  SG::ReadHandle<SCT_FlaggedCondData> condData{m_badIds, ctx};
   if (not condData.isValid()) {
     ATH_MSG_ERROR("Failed to get " << m_badIds.key());
     return nullptr;
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.h
index c897170673638f4716062fd6e597037895335a5a..b3ee3a21bcd3ecca4f8a145c37bf03f877c76b47 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /*
@@ -43,7 +43,9 @@ public:
   
   /**Is the detector element good?*/
   virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
+  virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
   virtual bool isGood(const IdentifierHash& hashId) const override;
+  virtual bool isGood(const IdentifierHash& hashId, const EventContext& ctx) const override;
 
   /**Get the reason why the wafer is bad (by Identifier)*/ 
   virtual const std::string& details(const Identifier& id) const override;
@@ -61,7 +63,7 @@ public:
 
   const SCT_ID* m_sctID; //!< ID helper for SCT
 
-  const SCT_FlaggedCondData* getCondData() const;
+  const SCT_FlaggedCondData* getCondData(const EventContext& ctx) const;
 };
 
 #endif // SCT_FlaggedConditionTool_h
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_LinkMaskingTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_LinkMaskingTool.cxx
index 82103b7472a598d608a5dce85bb62ee7843c4237..b4860fcbad85a27fa4d11c25a34c91b75cd36fe5 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_LinkMaskingTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_LinkMaskingTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "SCT_LinkMaskingTool.h"
@@ -45,10 +45,9 @@ bool SCT_LinkMaskingTool::canReportAbout(InDetConditions::Hierarchy h) const {
 }
 
 // Is an element with this Identifier and hierachy good?
-bool SCT_LinkMaskingTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+bool SCT_LinkMaskingTool::isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h) const {
   if (not canReportAbout(h)) return true;
 
-  const EventContext& ctx{Gaudi::Hive::currentContext()};
   const SCT_ModuleVetoCondData* condData{getCondData(ctx)};
   // If database cannot be retrieved, all wafer IDs are good.
   if (condData==nullptr) return true;
@@ -57,10 +56,22 @@ bool SCT_LinkMaskingTool::isGood(const Identifier& elementId, InDetConditions::H
   return (not condData->isBadWaferId(elementId));
 }
 
+bool SCT_LinkMaskingTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(elementId, ctx, h);
+}
+
 // Is a wafer with this IdentifierHash good?
-bool SCT_LinkMaskingTool::isGood(const IdentifierHash& hashId) const {
+bool SCT_LinkMaskingTool::isGood(const IdentifierHash& hashId, const EventContext& ctx) const {
   Identifier elementId{m_sctHelper->wafer_id(hashId)};
-  return isGood(elementId);
+  return isGood(elementId, ctx);
+}
+
+bool SCT_LinkMaskingTool::isGood(const IdentifierHash& hashId) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(hashId, ctx);
 }
 
 const SCT_ModuleVetoCondData*
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_LinkMaskingTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_LinkMaskingTool.h
index a81b4076b77bbee7bf1fc36914fcb6575a954e90..ed863c0badca53d50cefe10857378f80b690a4a6 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_LinkMaskingTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_LinkMaskingTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -49,9 +49,11 @@ public:
   
   /**Is the detector element good?*/
   virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
+  virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
   
   /**Is it good?, using wafer hash*/
   virtual bool isGood(const IdentifierHash& hashId) const override;
+  virtual bool isGood(const IdentifierHash& hashId, const EventContext& ctx) const override;
 
 private:
   const SCT_ID* m_sctHelper; //!< ID helper for SCT
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ModuleVetoTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ModuleVetoTool.cxx
index d5fc6dc7ba3be0a79712ede025b6da97d12c9894..6578442221349aad978b115f293bbadd3bd6c08c 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ModuleVetoTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ModuleVetoTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -99,7 +99,7 @@ SCT_ModuleVetoTool::canReportAbout(InDetConditions::Hierarchy h) const {
 }
 
 bool 
-SCT_ModuleVetoTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+SCT_ModuleVetoTool::isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h) const {
   if (not canReportAbout(h)) return true;
 
   // Bad wafer in properties
@@ -107,7 +107,6 @@ SCT_ModuleVetoTool::isGood(const Identifier& elementId, InDetConditions::Hierarc
   // If database is not used, all wafer IDs here should be good.
   if (not m_useDatabase) return true;
 
-  const EventContext& ctx{Gaudi::Hive::currentContext()};
   const SCT_ModuleVetoCondData* condData{getCondData(ctx)};
   // If database cannot be retrieved, all wafer IDs are good.
   if (condData==nullptr) return true;
@@ -117,9 +116,23 @@ SCT_ModuleVetoTool::isGood(const Identifier& elementId, InDetConditions::Hierarc
 }
 
 bool 
-SCT_ModuleVetoTool::isGood(const IdentifierHash& hashId) const {
+SCT_ModuleVetoTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(elementId, ctx, h);
+}
+
+bool 
+SCT_ModuleVetoTool::isGood(const IdentifierHash& hashId, const EventContext& ctx) const {
   Identifier elementId{m_pHelper->wafer_id(hashId)};
-  return isGood(elementId);
+  return isGood(elementId, ctx);
+}
+
+bool
+SCT_ModuleVetoTool::isGood(const IdentifierHash& hashId) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(hashId, ctx);
 }
 
 StatusCode 
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ModuleVetoTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ModuleVetoTool.h
index 7e06a86f76623b7cc0ed53ef7c6fc4eeec2e19b1..cca07e4a6f425959e97fc4453304abd78b7e2169 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ModuleVetoTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ModuleVetoTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -50,9 +50,11 @@ class SCT_ModuleVetoTool: public extends<AthAlgTool, ISCT_ConditionsTool> {
   
   ///Is the detector element good?
   virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
+  virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
   
   ///is it good?, using wafer hash
   virtual bool isGood(const IdentifierHash& hashId) const override;
+  virtual bool isGood(const IdentifierHash& hashId, const EventContext& ctx) const override;
 
  private:
   StringArrayProperty m_badElements; //list of bad detector elements (= module sides)
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_MonitorConditionsTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_MonitorConditionsTool.cxx
index 9ccec0acf2a863b2786485edcf2a0b9e5f15038b..91fdba0a24d6285f830c04fb08ff501b869066d2 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_MonitorConditionsTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_MonitorConditionsTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -81,11 +81,11 @@ SCT_MonitorConditionsTool::canReportAbout(InDetConditions::Hierarchy h) const {
 ///////////////////////////////////////////////////////////////////////////////////
 
 bool
-SCT_MonitorConditionsTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+SCT_MonitorConditionsTool::isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h) const {
   Identifier waferid{m_pHelper->wafer_id(elementId)};
   Identifier iimodule{m_pHelper->module_id(waferid)};
   // defectlist is based on each module
-  std::string defectlist{getList(iimodule)};
+  std::string defectlist{getList(iimodule, ctx)};
 
   if (not defectlist.empty()) {
     switch (h) {
@@ -107,11 +107,28 @@ SCT_MonitorConditionsTool::isGood(const Identifier& elementId, InDetConditions::
 
 ///////////////////////////////////////////////////////////////////////////////////
 
+bool
+SCT_MonitorConditionsTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(elementId, ctx, h);
+}
+
+///////////////////////////////////////////////////////////////////////////////////
+
 bool 
-SCT_MonitorConditionsTool::isGood(const IdentifierHash& hashId) const {
-  //bool result(true);
+SCT_MonitorConditionsTool::isGood(const IdentifierHash& hashId, const EventContext& ctx) const {
   Identifier elementId{m_pHelper->wafer_id(hashId)};
-  return isGood(elementId);
+  return isGood(elementId, ctx);
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////
+
+bool
+SCT_MonitorConditionsTool::isGood(const IdentifierHash& hashId) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(hashId, ctx);
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////
@@ -132,9 +149,11 @@ SCT_MonitorConditionsTool::badStrips(std::set<Identifier>& strips) const {
 
 void
 SCT_MonitorConditionsTool::badStrips(const Identifier& moduleId, std::set<Identifier>& strips) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
   // Set of bad strip Identifers for a given module
   // Get defect string and check it is sensible, i.e. non-empty and contains numbers
-  std::string defectStr{getList(moduleId)};
+  std::string defectStr{getList(moduleId, ctx)};
   if (doesNotHaveNumbers(defectStr)) return;
 
   // Expand the string
@@ -163,7 +182,9 @@ SCT_MonitorConditionsTool::badStrips(const Identifier& moduleId, std::set<Identi
 
 std::string 
 SCT_MonitorConditionsTool::badStripsAsString(const Identifier& moduleId) const {
-   return getList(moduleId);
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return getList(moduleId, ctx);
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////
@@ -171,9 +192,8 @@ SCT_MonitorConditionsTool::badStripsAsString(const Identifier& moduleId) const {
 //////////////////////////////////////////////////////////////////////////////////////////
 
 std::string
-SCT_MonitorConditionsTool::getList(const Identifier& moduleId) const {
+SCT_MonitorConditionsTool::getList(const Identifier& moduleId, const EventContext& ctx) const {
   string currentDefectList{""};
-  const EventContext& ctx{Gaudi::Hive::currentContext()};
   const SCT_MonitorCondData* condData{getCondData(ctx)};
   if (condData) {
     const IdentifierHash moduleHash{m_pHelper->wafer_hash(moduleId)};
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_MonitorConditionsTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_MonitorConditionsTool.h
index c821150c5aafee7ec51d19a6f8f34d769cfee687..a8f97efd874165a24a5fe1e7f7e531b8e96eaef3 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_MonitorConditionsTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_MonitorConditionsTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef SCT_MONITORCONDITIONSTOOL_SCT_MONITORCONDITIONSTOOL_H
@@ -48,9 +48,11 @@ public:
 
   ///Is the detector element good?
   virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
+  virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
 
   ///is it good?, using wafer hash
   virtual bool isGood(const IdentifierHash& hashId) const override;
+  virtual bool isGood(const IdentifierHash& hashId, const EventContext& ctx) const override;
 
   /// List of bad strip Identifiers
   virtual void badStrips(std::set<Identifier>& strips) const override;
@@ -65,7 +67,7 @@ private:
   // ------------------------------------------------------------------------------------
   // local stuff 
   // ------------------------------------------------------------------------------------
-  std::string getList(const Identifier& imodule) const;
+  std::string getList(const Identifier& imodule, const EventContext& ctx) const;
 
   bool stripIsNoisy(const int strip, const std::string& defectList) const;
 
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_RODVetoTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_RODVetoTool.cxx
index 5465e58e78c020515923c0f7cb382b66b6e423b6..0868cfe8ca543712eb6c4c287b52134a30623671 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_RODVetoTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_RODVetoTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -56,9 +56,9 @@ SCT_RODVetoTool::canReportAbout(InDetConditions::Hierarchy h) const {
 }
 
 bool 
-SCT_RODVetoTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+SCT_RODVetoTool::isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h) const {
   if (not canReportAbout(h)) return true;
-  const IdentifierSet* badIds{getCondData()};
+  const IdentifierSet* badIds{getCondData(ctx)};
   if (badIds==nullptr) {
     ATH_MSG_ERROR("IdentifierSet cannot be retrieved in isGood. true is returned.");
     return true;
@@ -68,15 +68,29 @@ SCT_RODVetoTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy
 }
 
 bool 
-SCT_RODVetoTool::isGood(const IdentifierHash& hashId) const {
+SCT_RODVetoTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(elementId, ctx, h);
+}
+
+bool 
+SCT_RODVetoTool::isGood(const IdentifierHash& hashId, const EventContext& ctx) const {
   Identifier elementId{m_pHelper->wafer_id(hashId)};
   Identifier moduleId{m_pHelper->module_id(elementId)};
-  return isGood(moduleId);
+  return isGood(moduleId, ctx);
+}
+
+bool 
+SCT_RODVetoTool::isGood(const IdentifierHash& hashId) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(hashId, ctx);
 }
 
 const IdentifierSet*
-SCT_RODVetoTool::getCondData() const {
-  SG::ReadHandle<IdentifierSet> condData{m_badModuleIds};
+SCT_RODVetoTool::getCondData(const EventContext& ctx) const {
+  SG::ReadHandle<IdentifierSet> condData{m_badModuleIds, ctx};
   if (not condData.isValid()) {
     ATH_MSG_ERROR("Failed to get " << m_badModuleIds.key());
     return nullptr;
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_RODVetoTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_RODVetoTool.h
index 627c50b4880066e2937a98a4880056b849d0d376..6eef5e8fb8ca8d62b9e9021960dfcd38547d1ad5 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_RODVetoTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_RODVetoTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -51,13 +51,15 @@ public:
   
   ///Is the detector element good?
   virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
+  virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
   
   ///is it good?, using wafer hash
   virtual bool isGood(const IdentifierHash& hashId) const override;
+  virtual bool isGood(const IdentifierHash& hashId, const EventContext& ctx) const override;
 
 private:
 
-  const IdentifierSet* getCondData() const;
+  const IdentifierSet* getCondData(const EventContext& ctx) const;
 
   // The vector of bad rods should be kept in a threadsafe way so it can 
   // be called and read safely.
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibChipDataTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibChipDataTool.cxx
index a3be15a7211d074185f314de8859bb70dcc07e8a..778c507e99434bbbd6fb1eab57f8b5950512d44c 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibChipDataTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibChipDataTool.cxx
@@ -1,5 +1,5 @@
- /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+/*
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /** @file SCT_ReadCalibChipDataTool.cxx Implementation file for SCT_ReadCalibChipDataTool.
@@ -62,9 +62,8 @@ SCT_ReadCalibChipDataTool::canReportAbout(InDetConditions::Hierarchy h) const {
 //----------------------------------------------------------------------
 // Returns a bool summary of the data
 bool
-SCT_ReadCalibChipDataTool::isGood(const IdentifierHash& elementHashId) const {
+SCT_ReadCalibChipDataTool::isGood(const IdentifierHash& elementHashId, const EventContext& ctx) const {
   // Retrieve SCT_NoiseCalibData pointer
-  const EventContext& ctx{Gaudi::Hive::currentContext()};
   const SCT_NoiseCalibData* condDataNoise{getCondDataNoise(ctx)};
   if (condDataNoise==nullptr) {
     ATH_MSG_ERROR("In isGood, SCT_NoiseCalibData cannot be retrieved");
@@ -103,13 +102,20 @@ SCT_ReadCalibChipDataTool::isGood(const IdentifierHash& elementHashId) const {
   return (meanNoiseValue < m_noiseLevel);
 } //SCT_ReadCalibChipDataTool::summary()
 
+bool
+SCT_ReadCalibChipDataTool::isGood(const IdentifierHash& elementHashId) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(elementHashId, ctx);
+}
+
 //----------------------------------------------------------------------
 // Returns a bool summary of the data
 bool
-SCT_ReadCalibChipDataTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+SCT_ReadCalibChipDataTool::isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h) const {
   if (h==InDetConditions::SCT_SIDE) { //Could do by chip too
     const IdentifierHash elementIdHash{m_id_sct->wafer_hash(elementId)};
-    return isGood(elementIdHash);
+    return isGood(elementIdHash, ctx);
   } else{
     // Not applicable for Calibration data
     ATH_MSG_WARNING("summary(): " << h << "good/bad is not applicable for Calibration data");
@@ -117,6 +123,13 @@ SCT_ReadCalibChipDataTool::isGood(const Identifier& elementId, InDetConditions::
   }
 }
 
+bool
+SCT_ReadCalibChipDataTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(elementId, ctx, h);
+}
+
 //----------------------------------------------------------------------
 std::vector<float> 
 SCT_ReadCalibChipDataTool::getNPtGainData(const Identifier& moduleId, const int side, const std::string& datatype) const {
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibChipDataTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibChipDataTool.h
index 142897aed12280d6226d164e6331f8ad7509415c..29d53f8921b11bef95e77db10c919f18b60a8513 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibChipDataTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibChipDataTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /** @file SCT_ReadCalibChipDataTool.h Header file for SCT_ReadCalibChipDataTool.
@@ -50,8 +50,10 @@ class SCT_ReadCalibChipDataTool: public extends<AthAlgTool, ISCT_ReadCalibChipDa
   virtual bool canReportAbout(InDetConditions::Hierarchy h) const override;
   ///Summarise the result from the service as good/bad
   virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
+  virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
   ///same thing with id hash, introduced by shaun with dummy method for now
   virtual bool isGood(const IdentifierHash& hashId) const override;
+  virtual bool isGood(const IdentifierHash& hashId, const EventContext& ctx) const override;
   //@}
   
   // Methods to return calibration data
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibDataTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibDataTool.cxx
index 55ede894dba108fb4a9f1ab6860b8e838e46b9b5..d617bd637be5ba659850421b6e383a3b308e56ed 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibDataTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibDataTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /** @file SCT_ReadCalibDataTool.cxx Implementation file for SCT_ReadCalibDataTool.
@@ -58,7 +58,7 @@ bool SCT_ReadCalibDataTool::canReportAbout(InDetConditions::Hierarchy h) const {
 
 //----------------------------------------------------------------------
 // Returns a bool summary of the data
-bool SCT_ReadCalibDataTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+bool SCT_ReadCalibDataTool::isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h) const {
   // Status of the compId
   bool status{true};
   // Extract the moduleId from the comp identifier
@@ -94,7 +94,6 @@ bool SCT_ReadCalibDataTool::isGood(const Identifier& elementId, InDetConditions:
       int strip{m_id_sct->strip(elementId)};
       // Retrieve isGood Wafer data
 
-      const EventContext& ctx{Gaudi::Hive::currentContext()};
       const SCT_AllGoodStripInfo* condDataInfo{getCondDataInfo(ctx)};
       if (condDataInfo==nullptr) {
         ATH_MSG_ERROR("In isGood, SCT_AllGoodStripInfo cannot be retrieved");
@@ -115,6 +114,11 @@ bool SCT_ReadCalibDataTool::isGood(const Identifier& elementId, InDetConditions:
   return status;
 } //SCT_ReadCalibDataTool::summary()
 
+bool SCT_ReadCalibDataTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(elementId, ctx, h);
+}
 
 //----------------------------------------------------------------------
 // Returns a defect summary of a defect strip, scan, type and value
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibDataTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibDataTool.h
index b09387c30fe668e242b13bca6d84a0253c75f9d8..41ce81b292581f58b3d23a9e5138dfbcd0db18e0 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibDataTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ReadCalibDataTool.h
@@ -56,9 +56,11 @@ class SCT_ReadCalibDataTool: public extends<AthAlgTool, ISCT_ReadCalibDataTool>
   ///Return whether this tool can report on the hierarchy level (e.g. module, chip...)
   virtual bool canReportAbout(InDetConditions::Hierarchy h) const override;
   ///Summarise the result from the tool as good/bad
-  virtual bool isGood(const Identifier& elementId,InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
+  virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
+  virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
   ///same thing with id hash, introduced by shaun with dummy method for now
   virtual bool isGood(const IdentifierHash& /*hashId*/) const override { return true; }
+  virtual bool isGood(const IdentifierHash& hashId, const EventContext& /*ctx*/) const override { return isGood(hashId); }
   //@}
   
   // Methods to return calibration defect type and summary
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_StripVetoTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_StripVetoTool.cxx
index 61f1a0f0e43af5a08551a0d37dc1e2a62cb4b6b9..8189cce824f4336550bee8a76235fba12d00c3e6 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_StripVetoTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_StripVetoTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -59,11 +59,21 @@ SCT_StripVetoTool::isGood(const Identifier& elementId, InDetConditions::Hierarch
   return (m_badIds.find(elementId) == m_badIds.end());
 }
 
+bool 
+SCT_StripVetoTool::isGood(const Identifier& elementId, const EventContext& /*ctx*/, InDetConditions::Hierarchy h) const {
+  return isGood(elementId, h);
+}
+
 bool 
 SCT_StripVetoTool::isGood(const IdentifierHash& /*hashId*/) const { //comment out unused parameter to prevent compiler warning
   return true; //cant answer questions about the module side
 }
 
+bool 
+SCT_StripVetoTool::isGood(const IdentifierHash& hashId, const EventContext& /*ctx*/) const {
+  return isGood(hashId);
+}
+
 StatusCode 
 SCT_StripVetoTool::fillData() {
   if (m_badElements.value().empty()) ATH_MSG_INFO("No bad strips.");
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_StripVetoTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_StripVetoTool.h
index 6b0e8000621093c9f951c0cc7b5522c4b0462e82..f5b27c2ce4c9c80b6f697e9bbe1e49bd5145c847 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_StripVetoTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_StripVetoTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -10,8 +10,6 @@
 
 #ifndef SCT_StripVetoTool_h
 #define SCT_StripVetoTool_h
-//STL includes
-#include <set>
 
 //Gaudi includes
 #include "AthenaBaseComps/AthAlgTool.h"
@@ -20,6 +18,9 @@
 #include "InDetConditionsSummaryService/InDetHierarchy.h"
 #include "SCT_ConditionsTools/ISCT_ConditionsTool.h"
 
+//STL includes
+#include <set>
+
 //forward declarations
 class IdentifierHash;
 class SCT_ID;
@@ -43,9 +44,11 @@ public:
   
   ///Is the detector element good?
   virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::SCT_STRIP) const override;
+  virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::SCT_STRIP) const override;
   
   ///is it good?, using wafer hash
   virtual bool isGood(const IdentifierHash& hashId) const override;
+  virtual bool isGood(const IdentifierHash& hashId, const EventContext& ctx) const override;
 
 private:
   StatusCode fillData();
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_TdaqEnabledTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_TdaqEnabledTool.cxx
index 1128a81daca5d5c22bd8c907f3d509f4ba494ae4..250b755a541b6ae542df37e17aa0c2df8d895030 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_TdaqEnabledTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_TdaqEnabledTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -59,21 +59,34 @@ SCT_TdaqEnabledTool::canReportAbout(InDetConditions::Hierarchy h) const {
 }
 
 bool 
-SCT_TdaqEnabledTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
+SCT_TdaqEnabledTool::isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h) const {
   if (not canReportAbout(h)) return true;
   //turn to hash, given the identifier
   const IdentifierHash hashId{m_pHelper->wafer_hash(elementId)};
-  return isGood(hashId);
+  return isGood(hashId, ctx);
 }
 
 bool 
-SCT_TdaqEnabledTool::isGood(const IdentifierHash& hashId) const {
+SCT_TdaqEnabledTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
   const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(elementId, ctx, h);
+}
+
+bool
+SCT_TdaqEnabledTool::isGood(const IdentifierHash& hashId, const EventContext& ctx) const {
   const SCT_TdaqEnabledCondData* condData{getCondData(ctx)};
   if (!condData) return false;
   return condData->isGood(hashId);
 }
 
+bool
+SCT_TdaqEnabledTool::isGood(const IdentifierHash& hashId) const {
+  const EventContext& ctx{Gaudi::Hive::currentContext()};
+
+  return isGood(hashId, ctx);
+}
+
 const SCT_TdaqEnabledCondData*
 SCT_TdaqEnabledTool::getCondData(const EventContext& ctx) const {
   static const EventContext::ContextEvt_t invalidValue{EventContext::INVALID_CONTEXT_EVT};
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_TdaqEnabledTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_TdaqEnabledTool.h
index a0a52d8c7c57480dac7385059eff5b4fc92c0df3..62b8a07dc5969a20f890f25164da76b92b61d40b 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_TdaqEnabledTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_TdaqEnabledTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -52,9 +52,11 @@ public:
 
   ///Is the detector element good?
   virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
+  virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
 
   ///is it good?, using wafer hash
   virtual bool isGood(const IdentifierHash& hashId) const override;
+  virtual bool isGood(const IdentifierHash& hashId, const EventContext& ctx) const override;
 
  private:
   // Mutex to protect the contents.
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/test/SCT_RODVetoTool_test.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/test/SCT_RODVetoTool_test.cxx
index 014135b01427ea573fc4beafb35e6a092c0e1757..9a49473b5fb3291f2d6db23ab05c854369571645 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/test/SCT_RODVetoTool_test.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/test/SCT_RODVetoTool_test.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -23,16 +23,20 @@
 //Gaudi includes
 #include "GaudiKernel/IAppMgrUI.h"
 #include "GaudiKernel/SmartIF.h"
+#include "GaudiKernel/IEvtSelector.h"
 #include "GaudiKernel/IToolSvc.h"
 #include "GaudiKernel/ISvcLocator.h"
 #include "GaudiKernel/IProperty.h"
+#include "GaudiKernel/EventContext.h"
 
 // Tested AthAlgTool
 #include "../src/SCT_RODVetoTool.h"
 
 // ATLAS C++
+#include "AthenaKernel/ExtendedEventContext.h"
 #include "SCT_ConditionsTools/ISCT_ConditionsTool.h"
 #include "InDetIdentifier/SCT_ID.h"
+#include "StoreGate/StoreGateSvc.h"
 
 namespace SCT_test {
 
@@ -58,9 +62,15 @@ protected:
     m_svcMgr = m_appMgr;
     ASSERT_TRUE( m_svcMgr.isValid() );
 
+    m_sg = nullptr;
+    ASSERT_TRUE( m_svcLoc->service ("StoreGateSvc", m_sg).isSuccess() );
+
+    m_evtSel = m_svcLoc->service("EventSelector");
+    ASSERT_TRUE( m_evtSel.isValid() );
+
     m_propMgr = m_appMgr;
     ASSERT_TRUE( m_propMgr.isValid() );
-    ASSERT_TRUE( m_propMgr->setProperty("EvtSel", "NONE").isSuccess() );
+    ASSERT_TRUE( m_propMgr->setProperty("EvtSel", "EventSelector").isSuccess() );
     ASSERT_TRUE( m_propMgr->setProperty("JobOptionsType", "NONE").isSuccess() );
 
     m_toolSvc = m_svcLoc->service("ToolSvc");
@@ -99,7 +109,9 @@ protected:
   SmartIF<ISvcLocator> m_svcLoc;
   SmartIF<ISvcManager> m_svcMgr;
   SmartIF<IToolSvc> m_toolSvc;
+  SmartIF<IEvtSelector> m_evtSel;
   SmartIF<IProperty> m_propMgr;
+  StoreGateSvc* m_sg{nullptr};
 };
 
 class SCT_RODVetoTool_test: public ::testing::Test, public GaudiFixture {
@@ -159,7 +171,9 @@ TEST_F(SCT_RODVetoTool_test, isGood_Hash) {
 TEST_F(SCT_RODVetoTool_test, isGood_Id) {
   m_tool->initialize(); 
   const Identifier elementId{0};
-  ASSERT_TRUE( m_tool->isGood(elementId, InDetConditions::DEFAULT) );
+  EventContext ctx{0, 0};
+  ctx.setExtension( Atlas::ExtendedEventContext( m_sg, 0 ) );
+  ASSERT_TRUE( m_tool->isGood(elementId, ctx, InDetConditions::DEFAULT) );
 }
 
 } // namespace SCT_test
diff --git a/Projects/AnalysisBase/CMakeLists.txt b/Projects/AnalysisBase/CMakeLists.txt
index add794f885d0df2fcc840071abb4b731c6484c5b..1a91179210d702d31cb432836c78322ab553cda4 100644
--- a/Projects/AnalysisBase/CMakeLists.txt
+++ b/Projects/AnalysisBase/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 
 # The minimum required CMake version:
-cmake_minimum_required( VERSION 3.2 FATAL_ERROR )
+cmake_minimum_required( VERSION 3.6 FATAL_ERROR )
 
 # Read in the project's version from a file called version.txt. But let it be
 # overridden from the command line if necessary.
@@ -22,20 +22,6 @@ find_package( AnalysisBaseExternals REQUIRED )
 # against Python to correct it.
 find_package( PythonInterp )
 
-# Add the project's modules directory to CMAKE_MODULE_PATH:
-list( INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/modules )
-list( REMOVE_DUPLICATES CMAKE_MODULE_PATH )
-
-# Install the files from modules/:
-install( DIRECTORY ${CMAKE_SOURCE_DIR}/modules/
-   DESTINATION cmake/modules
-   USE_SOURCE_PERMISSIONS
-   PATTERN ".svn" EXCLUDE
-   PATTERN "*~" EXCLUDE )
-
-# Include the AnalysisBase specific function(s):
-include( AnalysisBaseFunctions )
-
 # Set up the build/runtime environment:
 set( AnalysisBaseReleaseEnvironment_DIR ${CMAKE_SOURCE_DIR} )
 find_package( AnalysisBaseReleaseEnvironment REQUIRED )
@@ -52,15 +38,6 @@ atlas_project( AnalysisBase ${ANALYSISBASE_PROJECT_VERSION}
    USE AnalysisBaseExternals ${AnalysisBaseExternals_VERSION}
    PROJECT_ROOT ${CMAKE_SOURCE_DIR}/../../ )
 
-# Generate the RootCore/Packages.h header:
-analysisbase_generate_release_header()
-
-# Set up the load_packages.C script:
-configure_file( ${CMAKE_SOURCE_DIR}/scripts/load_packages.C.in
-   ${CMAKE_SCRIPT_OUTPUT_DIRECTORY}/load_packages.C @ONLY )
-install( FILES ${CMAKE_SCRIPT_OUTPUT_DIRECTORY}/load_packages.C
-   DESTINATION ${CMAKE_INSTALL_SCRIPTDIR} )
-
 # Configure and install the post-configuration file:
 configure_file( ${CMAKE_SOURCE_DIR}/PostConfig.cmake.in
    ${CMAKE_BINARY_DIR}/PostConfig.cmake @ONLY )
diff --git a/Projects/AnalysisBase/build.sh b/Projects/AnalysisBase/build.sh
index e6f04f22b375dddc86a5461f8e4b0678f2e647d2..97717bd1f5b5f94eb108b25de8e7bf6ff6f1d871 100755
--- a/Projects/AnalysisBase/build.sh
+++ b/Projects/AnalysisBase/build.sh
@@ -8,12 +8,13 @@ _time_() { local c="time -p " ; while test "X$1" != "X" ; do c+=" \"$1\"" ; shif
 
 # Function printing the usage information for the script
 usage() {
-    echo "Usage: build.sh [-t type] [-b dir] [-g generator] [-c] [-m] [-i] [-p] [-a]"
+    echo "Usage: build.sh [-t type] [-b dir] [-g generator] [-c] [-m] [-i] [-p] [-a] [-x opt]"
     echo ""
     echo "  General flags:"
     echo "    -t: The (optional) CMake build type to use."
     echo "    -b: The (optional) build directory to use."
     echo "    -g: The (optional) CMake generator to use."
+    echo "    -x: Custom argument(s) to pass to the CMake configuration"
     echo "    -a: Abort on error."
     echo "  Build step selection:"
     echo "    -c: Execute the CMake step."
@@ -35,7 +36,8 @@ EXE_MAKE=""
 EXE_INSTALL=""
 EXE_CPACK=""
 NIGHTLY=true
-while getopts ":t:b:g:hcmipa" opt; do
+EXTRACMAKE=()
+while getopts ":t:b:g:hcmipax:" opt; do
     case $opt in
         t)
             BUILDTYPE=$OPTARG
@@ -61,6 +63,9 @@ while getopts ":t:b:g:hcmipa" opt; do
         a)
             NIGHTLY=false
             ;;
+        x)
+            EXTRACMAKE+=($OPTARG)
+            ;;
         h)
             usage
             exit 0
@@ -122,7 +127,7 @@ if [ -n "$EXE_CMAKE" ]; then
     # Now run the actual CMake configuration:
     _time_ cmake -G "${GENERATOR}" \
          -DCMAKE_BUILD_TYPE:STRING=${BUILDTYPE} \
-         ${USE_LAUNCHERS} \
+         ${USE_LAUNCHERS} ${EXTRACMAKE[@]} \
          ${AnalysisBaseSrcDir} 2>&1 | tee cmake_config.log
 fi
 
diff --git a/Projects/AnalysisBase/build_externals.sh b/Projects/AnalysisBase/build_externals.sh
index 234b2db78b24cf6c176ac45823798c5bff455cce..26089095a33d7babfe64c5844dbd55a2d6ea3594 100755
--- a/Projects/AnalysisBase/build_externals.sh
+++ b/Projects/AnalysisBase/build_externals.sh
@@ -8,11 +8,13 @@ set -e
 
 # Function printing the usage information for the script
 usage() {
-    echo "Usage: build_externals.sh [-t build_type] [-b build_dir] [-f] [-c]"
+    echo "Usage: build_externals.sh [-t build_type] [-b build_dir] [-f] [-c] [-x opt]"
     echo " -f: Force rebuild of externals, otherwise if script"
     echo "     finds an external build present it will simply exit"
     echo " -c: Build the externals for the continuous integration (CI) system,"
     echo "     skipping the build of the externals RPMs."
+    echo " -x: Extra cmake argument(s) to provide for the build(configuration)"
+    echo "     of all externals needed by Athena."
     echo "If a build_dir is not given the default is '../build'"
     echo "relative to the athena checkout"
 }
@@ -22,7 +24,8 @@ BUILDDIR=""
 BUILDTYPE="RelWithDebInfo"
 FORCE=""
 CI=""
-while getopts ":t:b:fch" opt; do
+EXTRACMAKE=()
+while getopts ":t:b:x:fch" opt; do
     case $opt in
         t)
             BUILDTYPE=$OPTARG
@@ -36,6 +39,9 @@ while getopts ":t:b:fch" opt; do
         c)
             CI="1"
             ;;
+        x)
+            EXTRACMAKE+=($OPTARG)
+            ;;
         h)
             usage
             exit 0
@@ -95,12 +101,13 @@ fi
 # Read in the tag/branch to use for AnalysisBaseExternals:
 AnalysisBaseExternalsVersion=$(awk '/^AnalysisBaseExternalsVersion/{print $3}' ${thisdir}/externals.txt)
 
+# Stop on all errors in the following (piped) commands:
 set -o pipefail
 
 # Check out AnalysisBaseExternals from the right branch/tag:
 ${scriptsdir}/checkout_atlasexternals.sh \
     -t ${AnalysisBaseExternalsVersion} \
-    -s ${BUILDDIR}/src/AnalysisBaseExternals 2>&1  | tee ${BUILDDIR}/src/checkout.AnalysisBaseExternals.log
+    -s ${BUILDDIR}/src/AnalysisBaseExternals 2>&1 | tee ${BUILDDIR}/src/checkout.AnalysisBaseExternals.log
 
 # Build AnalysisBaseExternals:
 export NICOS_PROJECT_HOME=$(cd ${BUILDDIR}/install;pwd)/AnalysisBaseExternals
@@ -109,4 +116,4 @@ ${scriptsdir}/build_atlasexternals.sh \
     -b ${BUILDDIR}/build/AnalysisBaseExternals \
     -i ${BUILDDIR}/install/AnalysisBaseExternals/${NICOS_PROJECT_VERSION} \
     -p AnalysisBaseExternals ${RPMOPTIONS} -t ${BUILDTYPE} \
-    -v ${NICOS_PROJECT_VERSION}
+    -v ${NICOS_PROJECT_VERSION} ${EXTRACMAKE[@]/#/-x }
diff --git a/Projects/AnalysisBase/modules/AnalysisBaseFunctions.cmake b/Projects/AnalysisBase/modules/AnalysisBaseFunctions.cmake
deleted file mode 100644
index 9e16d92bf9674d2c0038f0f725fcb02204f6f8e1..0000000000000000000000000000000000000000
--- a/Projects/AnalysisBase/modules/AnalysisBaseFunctions.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# This module collects CMake functions that are useful when setting up an
-# analysis release.
-#
-
-# Function generating a RootCore/Packages.h header
-#
-# This function should be called in the main CMakeLists.txt file of the
-# project, after the atlas_project(...) call, in order to generate a header file
-# called "RootCore/Packages.h", in the format that RootCore generates it in.
-# With one define statement per package that was found in he release.
-#
-# Usage: analysisbase_generate_release_header()
-#
-function( analysisbase_generate_release_header )
-
-   # Get the list of packages that were found:
-   get_property( _packages GLOBAL PROPERTY ATLAS_EXPORTED_PACKAGES )
-
-   # Generate a "RootCore/Package.h" file, in the same format that
-   # RootCore does/did:
-   set( _packagesFileName
-      ${CMAKE_BINARY_DIR}/RootCore/include/RootCore/Packages.h )
-   file( MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/RootCore/include/RootCore )
-   file( WRITE ${_packagesFileName}
-      "// Auto-generated file, please do not edit\n"
-      "#ifndef ROOTCORE_PACKAGES_H\n"
-      "#define ROOTCORE_PACKAGES_H\n\n" )
-   foreach( pkgname ${_packages} )
-      file( APPEND ${_packagesFileName}
-         "#define ROOTCORE_PACKAGE_${pkgname}\n" )
-   endforeach()
-   file( APPEND ${_packagesFileName} "\n#endif // not ROOTCORE_PACKAGES_H\n" )
-   unset( _packagesFileName )
-   unset( _packages )
-
-   # Install the header in the usual place:
-   install( DIRECTORY ${CMAKE_BINARY_DIR}/RootCore/include/
-      DESTINATION RootCore/include )
-
-endfunction( analysisbase_generate_release_header )
diff --git a/Projects/AnalysisBase/package_filters.txt b/Projects/AnalysisBase/package_filters.txt
index 7fcded02d0e9894158f680a5b1624d8a37905a06..0faac768a091ad51a52d4cafe8e034b33e824f85 100644
--- a/Projects/AnalysisBase/package_filters.txt
+++ b/Projects/AnalysisBase/package_filters.txt
@@ -10,80 +10,19 @@
 + Control/AthToolSupport/.*
 + Control/CxxUtils
 + Control/xAODRootAccess.*
-+ DataQuality/GoodRunsLists
 + DetectorDescription/GeoPrimitives
 + DetectorDescription/IRegionSelector
 + DetectorDescription/RoiDescriptor
 + Event/EventPrimitives
 + Event/FourMomUtils
 - Event/xAOD/.*AthenaPool
-+ Event/xAOD/xAODMetaDataCnv
-+ Event/xAOD/xAODTriggerCnv
 - Event/xAOD/.*Cnv
 + Event/xAOD/.*
 + Generators/TruthUtils
-+ InnerDetector/InDetRecTools/InDetTrackSelectionTool
-+ InnerDetector/InDetRecTools/TrackVertexAssociationTool
 + MuonSpectrometer/MuonIdHelpers
-+ PhysicsAnalysis/AnalysisCommon/AssociationUtils
-+ PhysicsAnalysis/AnalysisCommon/CPAnalysisExamples
-+ PhysicsAnalysis/AnalysisCommon/FsrUtils
-+ PhysicsAnalysis/AnalysisCommon/IsolationSelection
-+ PhysicsAnalysis/AnalysisCommon/PATCore
-+ PhysicsAnalysis/AnalysisCommon/PATInterfaces
-+ PhysicsAnalysis/AnalysisCommon/PMGTools
-+ PhysicsAnalysis/AnalysisCommon/ParticleJetTools
-+ PhysicsAnalysis/AnalysisCommon/PileupReweighting
-+ PhysicsAnalysis/AnalysisCommon/ReweightUtils
-+ PhysicsAnalysis/D3PDTools/.*
-- PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools
-+ PhysicsAnalysis/ElectronPhotonID/.*
-+ PhysicsAnalysis/HiggsPhys/Run2/HZZ/Tools/ZMassConstraint
-+ PhysicsAnalysis/Interfaces/.*
-+ PhysicsAnalysis/JetMissingEtID/JetSelectorTools
-+ PhysicsAnalysis/JetPhys/SemileptonicCorr
-+ PhysicsAnalysis/JetTagging/JetTagPerformanceCalibration/CalibrationDataInterface
-+ PhysicsAnalysis/JetTagging/JetTagPerformanceCalibration/xAODBTaggingEfficiency
-+ PhysicsAnalysis/MCTruthClassifier
-+ PhysicsAnalysis/MuonID/MuonIDAnalysis/.*
-+ PhysicsAnalysis/MuonID/MuonSelectorTools
-+ PhysicsAnalysis/SUSYPhys/SUSYTools
-+ PhysicsAnalysis/TauID/DiTauMassTools
-+ PhysicsAnalysis/TauID/TauAnalysisTools
-+ PhysicsAnalysis/TauID/TauCorrUncert
-+ PhysicsAnalysis/TopPhys/QuickAna
-+ PhysicsAnalysis/TrackingID/.*
-+ Reconstruction/EventShapes/EventShapeInterface
-- Reconstruction/Jet/JetAnalysisTools/JetAnalysisEDM
-- Reconstruction/Jet/JetEvent.*
-- Reconstruction/Jet/JetMonitoring
-+ Reconstruction/Jet/JetReclustering
-- Reconstruction/Jet/JetRec.+
-- Reconstruction/Jet/JetSimTools
-- Reconstruction/Jet/JetValidation
-+ Reconstruction/Jet/Jet.*
-+ Reconstruction/MET/METInterface
-+ Reconstruction/MET/METUtilities
-+ Reconstruction/MVAUtils
-+ Reconstruction/PFlow/PFlowUtils
-+ Reconstruction/egamma/egammaLayerRecalibTool
-+ Reconstruction/egamma/egammaMVACalib
-+ Reconstruction/egamma/egammaRecEvent
-+ Reconstruction/tauRecTools
 + Tools/PathResolver
-+ Trigger/TrigAnalysis/TrigAnalysisInterfaces
-+ Trigger/TrigAnalysis/TrigBunchCrossingTool
-+ Trigger/TrigAnalysis/TrigDecisionTool
-+ Trigger/TrigAnalysis/TrigTauAnalysis/TrigTauMatching
-+ Trigger/TrigAnalysis/TriggerMatchingTool
 + Trigger/TrigConfiguration/TrigConfBase
-+ Trigger/TrigConfiguration/TrigConfHLTData
-+ Trigger/TrigConfiguration/TrigConfInterfaces
 + Trigger/TrigConfiguration/TrigConfL1Data
-+ Trigger/TrigConfiguration/TrigConfxAOD
-+ Trigger/TrigEvent/TrigDecisionInterface
++ Trigger/TrigConfiguration/TrigConfHLTData
 + Trigger/TrigEvent/TrigNavStructure
-+ Trigger/TrigEvent/TrigRoiConversion
-+ Trigger/TrigEvent/TrigSteeringEvent
-+ Trigger/TrigValidation/TrigAnalysisTest
 - .*
diff --git a/Projects/AnalysisBase/scripts/load_packages.C.in b/Projects/AnalysisBase/scripts/load_packages.C.in
deleted file mode 100644
index 9d47dbba4f5e387d305f51263578180496e9ba73..0000000000000000000000000000000000000000
--- a/Projects/AnalysisBase/scripts/load_packages.C.in
+++ /dev/null
@@ -1,48 +0,0 @@
-//
-// This is a much simplified version of the RootCore script with the same
-// name, basically just here to provide the existing scripts/tests with a
-// file that they can use.
-//
-
-// System include(s):
-#include <stdexcept>
-
-// ROOT include(s):
-#include <TSystem.h>
-#include <TROOT.h>
-
-/// Function setting up interactive ROOT to use the analysis release
-///
-/// In order to use macros or PyROOT scripts that make use of symbols
-/// defined in the analysis release, the user has to execute this macro.
-/// It takes care of setting up the compilation options of ACLiC, and
-/// of calling xAOD::Init().
-///
-/// @param options An unused parameter, just to mimic the RootCore function
-///
-void load_packages( const char* options = "" ) {
-
-   // Make sure that some reasonable environment is set up:
-   const char* ROOTCOREDIR = gSystem->Getenv( "ROOTCOREDIR" );
-   if( ! ROOTCOREDIR ) {
-      throw std::runtime_error( "ROOTCOREDIR not set, please set "
-                                "the environment" );
-   }
-   const std::string dir = ROOTCOREDIR;
-
-   const char* ROOTCOREBIN = gSystem->Getenv( "ROOTCOREBIN" );
-   if( ! ROOTCOREBIN ) {
-      throw std::runtime_error( "ROOTCOREBIN not set, please set "
-                                "the environment");
-   }
-   const std::string bin = ROOTCOREBIN;
-
-   // Set the compilation options for ACLiC:
-   gSystem->AddIncludePath( "@CMAKE_CXX_FLAGS@" );
-
-   // Load the xAODRootAccess library, in a hard-coded way:
-   gSystem->Load( "libxAODRootAccess" );
-   gROOT->ProcessLine( "xAOD::Init().ignore()" );
-
-   return;
-}
diff --git a/Projects/AnalysisBase/version.txt b/Projects/AnalysisBase/version.txt
index 24ba9a38de68d00674ec97b283a967699716b9f4..01c3bca9e331e9935cb0d5c49ecf2bdcdbca5caf 100644
--- a/Projects/AnalysisBase/version.txt
+++ b/Projects/AnalysisBase/version.txt
@@ -1 +1 @@
-2.7.0
+22.0.1
diff --git a/Tools/ChkLib/CMakeLists.txt b/Tools/ChkLib/CMakeLists.txt
deleted file mode 100644
index e254db8245ed728a2de438b4f870d64db578f608..0000000000000000000000000000000000000000
--- a/Tools/ChkLib/CMakeLists.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-################################################################################
-# Package: ChkLib
-################################################################################
-
-# Declare the package name:
-atlas_subdir( ChkLib )
-
-# Component(s) in the package:
-atlas_add_executable( ChkLib
-                      src/ChkLib.cxx )
-
-# Install files from the package:
-atlas_install_runtime( share/*.files share/*.symbols )
-
diff --git a/Tools/ChkLib/doc/README b/Tools/ChkLib/doc/README
deleted file mode 100755
index 7130d08ccfc7fc0b07ce02348462929b4681bed8..0000000000000000000000000000000000000000
--- a/Tools/ChkLib/doc/README
+++ /dev/null
@@ -1,37 +0,0 @@
-
-                 ChkLib - Check for undefined symbols
-
-  Author: Fredrik Akesson (fredrik.akesson@cern.ch)
-  Start:  19.01.2004
-
- --------------------------------------------------------------------------- 
-
- Athena might crash for several reasons. If it crashes with an error message
- complaining about a missing symbol you might check the symbols with ChkLib.
- If the same symbol is not shown as unresolved by the script it is probably
- a 'use' statement missing somewhere. If Athena crashes with a message like
- 'blabla probably not built as a component library' it is more likely that 
- you will find the perpetrator with ChkLib.
-
- If you encounter a number of unresolved symbols in the InstallArea: Don't
- panic. Check if they belong to your package or if they belong to some other
- package of the atlas release. Normally the unresolved symbols from other
- packages can be ignored and are resolved when linking. This program just
- looks into the InstallArea and takes whatever .so files it can find. Not
- more. I do not know if it is worth going through LD_LIBRARY_PATH and to 
- check every library for the missing symbols. I have put the symbols which
- contains certain keywords into the 'Ignore-list' hardcoded into the 
- program. The existing setup works fine for me ...
-
- NOTE: Since the program uses the 'system' call I guess that there might
- be differences for different shells. I am using zsh, and it works.
-
- Comments and remarks are welcome. Have fun saving time hunting down 
- 'not built as a component library' errors.
-
- TODO: - The use of map could be done for ignored and resolved symbols as
-         well. 
-       - Maybe I should introduce a switch if somebody wants to go
-         through the whole LD_LIBRARY_PATH.
-
- ---------------------------------------------------------------------------
diff --git a/Tools/ChkLib/share/chklib_external.files b/Tools/ChkLib/share/chklib_external.files
deleted file mode 100755
index 50831d49c44bdf3a36aec50a29f0215ebc1eaca3..0000000000000000000000000000000000000000
--- a/Tools/ChkLib/share/chklib_external.files
+++ /dev/null
@@ -1,2 +0,0 @@
-/afs/cern.ch/sw/lhcxx/specific/redhat73/gcc-3.2/CLHEP/1.8.2.0/lib/libCLHEP.so
-/usr/local/gcc-alt-3.2/lib/libstdc++.so
diff --git a/Tools/ChkLib/share/chklib_ignore.files b/Tools/ChkLib/share/chklib_ignore.files
deleted file mode 100755
index 175fb3da690cb67c0125e78f82b0058852f125ae..0000000000000000000000000000000000000000
--- a/Tools/ChkLib/share/chklib_ignore.files
+++ /dev/null
@@ -1,13 +0,0 @@
-libGaudiSvc.so
-libgaudimodule.so
-libGaudiGSL.so
-libAtlsim.so
-libHbookCnv.so
-libRootHistCnv.so
-libTBlob.so
-libRootKernel.so
-libRootGateLib.so
-libatlroot.so
-libRootSvcModulesLib.so
-libatlprod.so
-libapythia.so
diff --git a/Tools/ChkLib/share/chklib_ignore.symbols b/Tools/ChkLib/share/chklib_ignore.symbols
deleted file mode 100755
index 5d6ad848a6b45b4e825e14df48033ad118597f0e..0000000000000000000000000000000000000000
--- a/Tools/ChkLib/share/chklib_ignore.symbols
+++ /dev/null
@@ -1,162 +0,0 @@
-GLIBC
-CXXABI
-GCC
-cxxabi
-AlgTool
-HepVector
-HepMatrix
-CBNT
-HepSymMatrix
-_Unwind_
-HepGenMatrix
-DataSvc
-HepRotation
-DataObject
-CLID
-Algorithm
-SimplePropertyRef
-dynamic_cast
-DataProxy
-Genfun
-NullVerifier
-NTuple
-Hep3Vector
-FactoryTable
-StoreGateSvc
-MsgStream
-ActiveStoreSvc
-System
-Property
-Service
-HepPDT
-HepRandum
-HepRotate
-HepDiagMatrix
-HepRandom
-HepRotate3D
-HepRotationX
-HepRotationY
-HepRotationZ
-HepTool
-QApplication
-QBrush
-QColor
-QFrame
-QKeySequence
-QMenuData
-QMessageBox
-QMetaObject
-QMetaObjectCleanUp
-QObject
-QPaintDevice
-QPainter
-QPen
-QPixmap
-QPopupMenu
-QRect
-QString
-QStringData
-QWidget
-XAllocColor
-XBell
-XChangeWindowAttributes
-XClearWindow
-XCloseDisplay
-XCopyArea
-XCopyGC
-XCreateBitmapFromData
-XCreateFontCursor
-XCreateGC
-XCreateImage
-XCreateWindow
-XDefineCursor
-XDestroyWindow
-XDrawArc
-XDrawImageString
-XDrawLine
-XDrawLines
-XDrawPoint
-XDrawPoints
-XDrawRectangle
-XDrawSegments
-XDrawString
-XEventsQueued
-XFillArc
-XFillPolygon
-XFillRectangle
-XFlush
-XFree
-XFreeColors
-XFreeFont
-XFreeFontNames
-XFreeGC
-XFreePixmap
-XGetAtomName
-XGetGCValues
-XGetGeometry
-XGetImage
-XGetInputFocus
-XGetKeyboardControl
-XGetPixel
-XGetSubImage
-XInternAtom
-XListFonts
-XLoadQueryFont
-XLookupString
-XMapWindow
-XMoveWindow
-XNextEvent
-XOpenDisplay
-XPutImage
-XPutPixel
-XQueryColors
-XQueryPointer
-XRaiseWindow
-XResizeWindow
-XServerVendor
-XSetBackground
-XSetClassHint
-XSetClipMask
-XSetClipRectangles
-XSetDashes
-XSetFillStyle
-XSetFont
-XSetForeground
-XSetFunction
-XSetIconName
-XSetInputFocus
-XSetLineAttributes
-XSetNormalHints
-XSetStipple
-XSetTSOrigin
-XSetWMHints
-XSetWMProtocols
-XSetWindowBackground
-XStoreName
-XSync
-XSynchronize
-XTextExtents
-XTextWidth
-XTranslateCoordinates
-XUndefineCursor
-XWarpPointer
-XWindowEvent
-XWriteBitmapFile
-XmCreateCascadeButton
-XmCreatePulldownMenu
-XmCreatePushButton
-XmCreateToggleButton
-XmStringCreateSimple
-XtAddCallback
-XtAppProcessEvent
-XtManageChild
-XtParent
-XtSetValues
-XtUnmanageChild
-pool::
-boost::
-mysql_
-seal::
-std::
-XCreatePixmap
-XCreatePixmapCursor
diff --git a/Tools/ChkLib/src/ChkLib.cxx b/Tools/ChkLib/src/ChkLib.cxx
deleted file mode 100755
index f3d3535ff7600943f7d47a5252a060425d1592f3..0000000000000000000000000000000000000000
--- a/Tools/ChkLib/src/ChkLib.cxx
+++ /dev/null
@@ -1,499 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/* ---------------------------------------------------------------------------
- *                 chklib - Check for undefined symbols
- *
- *  Author: Fredrik Akesson (fredrik.akesson@cern.ch)
- *  Start:  19.01.2004
- *
- *  Changelog
- *
- *  19.04.2004 FA Added ignore lists to run on the release and a flag to 
- *                input a directory where to look for the ignore files.
- *  10.03.2004 FA Commited chklib to cvs as a cmt package
- *  06.02.2004 FA The user can now give a list of external libraries to check
- *                in addition to the ones in the InstallArea. This can get
- *                very nasty when you have to include tons of other files to 
- *                fullfil all dependencies. For the use with athena or any 
- *                other huge package anyway. There can not be any good defaul
- *                list for this since it would have to be version dependent
- *                and would have to be changed continuously. Maybe this can be
- *                automated for athena somehow.
- *  05.02.2004 FA Included the feature of showing in which file a unresolved 
- *                symbol was missing. For this the list of strings of unsresoved
- *                symbols was changed to a map mapping a symbol to a file.
- *                Tried to use hash_map but for some reason I did not manage to
- *                compile with that type.	      
- *  04.02.2004 FA Created a list of files to ignore. This list contains libraries 
- *                whose undefined symbols are hopefully resolved somewhere else.
- *                Ignored symbols and files can now be read in from external
- *                files: chklib_ignore.symbols and chklib_ignore.files. If they
- *                exists the ignored symbols/files are taken from the file and
- *                the default hardcoded ones are ignored. Using hardcoded default 
- *                strings otherwise. Files have to be in the working directory.
- *  04.02.2004 CA Transform the command execution mechanism to fill in a
- *                text string rather than a creating a temporary file.
- *  03.02.2004 FA Introduced C++ style iterators and strings.
- *  03.02.2004 FA Using demangled symbol list. Easier to read.
- *  03.02.2004 FA An if-statement was taken out which was supposed to stop the
- *                program from comparing symbols in a file with its own symbols.
- *                Did not work, I guess ++i, i++ trap. Now it compares its own
- *                symbols. A bit slower, but fast enough. 
- *
- * --------------------------------------------------------------------------- 
- *
- *  Athena might crash for several reasons. If it crashes with an error message
- * complaining about a missing symbol you might check the symbols with ChkLib.
- * If the same symbol is not shown as unresolved by the script it is probably
- * a 'use' statement missing somewhere. If Athena crashes with a message like
- * 'blabla probably not built as a component library' it is more likely that 
- * you will find the perpetrator with ChkLib.
- *
- * If you encounter a number of unresolved symbols in the InstallArea: Don't
- * panic. Check if they belong to your package or if they belong to some other
- * package of the atlas release. Normally the unresolved symbols from other
- * packages can be ignored and are resolved when linking. This program just
- * looks into the InstallArea and takes whatever .so files it can find. Not
- * more. I do not know if it is worth going through LD_LIBRARY_PATH and to 
- * check every library for the missing symbols. I have put the symbols which
- * contains certain keywords into the 'Ignore-list' hardcoded into the 
- * program. The existing setup works fine for me ...
- *
- * NOTE: Since the program uses the 'system' call I guess that there might
- * be differences for different shells. I am using zsh, and it works.
- *
- * Comments and remarks are welcome. Have fun saving time hunting down 
- * 'not built as a component library' errors.
- *
- * TODO: - The use of map could be done for ignored and resolved symbols as
- *         well. 
- *       - Maybe I should introduce a switch if somebody wants to go
- *         through the whole LD_LIBRARY_PATH.
- * --------------------------------------------------------------------------- */
- 
-#include <iostream>
-#include <fstream>
-#include <stdlib.h>
-#include <stdio.h>
-#include <list>
-#include <string>
-#include <sstream>
-#include <map>
-#include <cstring>
-
-using std::strlen;
-using std::strcmp;
-
-/* ------------------------ Declaration of global variables ------------------ */ 
-
-int debug=0;                                      // Even more information 
-int verbose=0;                                    // Switch for output
-int checkpath=0;                                  // Check path for ignore files
-std::string ignorePath;                           // Path to the ignore files
-std::list<std::string> fileNames;                 // Library (*.so) file names
-std::map<std::string,std::string> undefSymbols;
-std::list<std::string> defSymbols;                // List of defined symbols
-std::list<std::string> ignoreSymbols;             // Symbols to ignore
-std::list<std::string> ignoreFiles;               // Files to ignore
-std::list<std::string> externalLibs;              // Check these external libs
-
-typedef std::list<std::string>::iterator listIterator;
-typedef std::map<std::string,std::string>::iterator mapIterator;
-
-/* ---------------------------------- Subroutines ---------------------------- */
-
-/**
- * Execute a shell command and accumulate its output into a string
- */
-static int execute (const std::string& command, std::string& output)
-{
-  output = "";
-
-  FILE* f = popen (command.c_str (), "r"); 
-  
-  if (f != 0) 
-    { 
-      char line[256]; 
-      char* ptr;
-
-      while ((ptr = fgets (line, sizeof (line), f)) != NULL) 
-        {
-          output += ptr;
-        } 
-      pclose (f);
-
-      return (1);
-    }
-
-  return (0);
-}
-
-/**
- * Decode all symbols from the output of one nm -C command.
- * We expect all lines to be formatted as follows
- *
- * nm -C <file> 2>&1 | grep -v 'no symbols' | sed -e 's#^[0-9a-fA-F][0-9a-fA-F]*# #' -e 's#^#>> #'
- *
- * ie:
- *    + error messages are captured and filtered out
- *    + a fixed preamble ">> " is prepended to all output lines 
- *    + symbol addresses are suppressed
- *
- */
-static int ReadSymbols (const std::string& buffer, const std::string& fileName)
-{
-  std::istringstream input (buffer.c_str ());
-
-  while (! input.eof() )
-    {
-      std::string code;
-      std::string symbol = "";
-
-      input >> code;
-
-      if (code == ">>")
-	{
-	  input >> code;
-	}
-      
-      while (! input.eof() )
-	{
-	  std::string w;
-	  input >> w;
-	  if (w == ">>") break;
-	  if (symbol.size () > 0) symbol += " ";
-	  symbol += w;
-	}
-
-      //std::cout << "code=[" << code << "] symbol=[" << symbol << "]" << std::endl;
-
-      if (code == "U")
-	{
-	  undefSymbols[symbol]=fileName;
-	} 
-      else
-	{
-	  defSymbols.push_back(symbol);
-	}
-    }
-  return 0;
-}
-
-/**
- *  Acquire all *.so file names
- */
-int GetFilenames(const std::string& buffer)
-{
-  std::istringstream input (buffer.c_str ());
-  while (! input.eof() )
-  {
-    std::string line;  
-    input >> line;
-    if (line.find ("no matches found") == std::string::npos)
-    {
-      if (line.size () > 3) 
-      {
-	int ignoreFile=0;
-	if (debug) std::cout << "Found file " << line;
-	for (listIterator II=ignoreFiles.begin(); II!=ignoreFiles.end(); II++)
-	{
-	  if (line.compare(*II)==0) 
-	  {
-	    if (debug) std::cout << " (ignored)";
-	    ignoreFile=1;
-	  }
-	}
-	if (ignoreFile==0) fileNames.push_back(line);
-	if (debug) std::cout << std::endl; 
-      }
-    }
-  }
-  return 0;
-}
-
-static void ReadIgnoredSymbols(void)
-{
-  char buffer[300];
-//  std::ifstream infile ("chklib_ignore.symbols");
-  std::string tempName;
-  tempName=ignorePath+"chklib_ignore.symbols";
-  std::cout << " Looking for " << tempName << std::endl;
-  std::ifstream infile (tempName.c_str());
-  if (! infile.is_open())
-  {
-    std::cout << "INFO: No external file for ignored symbols found. Using default." << std::endl;
-    return;
-  }
-  while (! infile.eof() )
-  {
-    infile.getline (buffer,300);
-    if (strlen(buffer)>3) 
-    {
-      ignoreSymbols.push_back(buffer);
-      if (debug) std::cout << "Ignoring symbols containing '" << buffer << "'" << std::endl;
-    }
-  }
-  return;
-}
-
-static void ReadIgnoredFiles(void)
-{
-  char buffer[300];
-//  std::ifstream infile ("chklib_ignore.files");
-  std::string tempName;
-  tempName=ignorePath+"chklib_ignore.files";
-  std::ifstream infile (tempName.c_str());
-  if (! infile.is_open())
-  {
-    std::cout << "INFO: No external file for ignored files found. Using default." << std::endl;
-    return;
-  }
-  while (! infile.eof() )
-  {
-    infile.getline (buffer,300);
-    if (strlen(buffer)>3) 
-    {
-      ignoreFiles.push_back(buffer);
-      if (debug) std::cout << "Ignoring file '" << buffer << "'" << std::endl;
-    }
-  }
-  return;
-}
-
-static void ReadExternalLibraries(void)
-{
-  char buffer[300];
-//  std::ifstream infile ("chklib_external.files");
-  std::string tempName;
-  tempName=ignorePath+"chklib_external.files";
-  std::ifstream infile (tempName.c_str());
-  if (! infile.is_open())
-  {
-    std::cout << "INFO: No external file for additional libraries found. Using default." << std::endl;
-    return;
-  }
-  while (! infile.eof() )
-  {
-    infile.getline (buffer,300);
-    if (strlen(buffer)>3) 
-    {
-      externalLibs.push_back(buffer);
-      if (debug) std::cout << "Using external library  '" << buffer << "'" << std::endl;
-    }
-  }
-  return;
-}
-
-/* ----------------------------- MAIN --------------------------------- */
-
-int main(int argc, char *argv[]) 
-{
-  /* --- Variable declarations --- */
-
-  int nfile;
-  char command[400];
-  undefSymbols.clear();
-  defSymbols.clear();
-  ignoreSymbols.clear();
-  ignoreFiles.clear();
-  externalLibs.clear();
-
-  std::cout << "--------------------- chklib ---------------------" << std::endl ;
-  std::cout << std::endl;
-  std::cout << "Version: 0.8 (05.02.2004)" << std::endl;
-  std::cout << "Author:  Fredrik Akesson" << std::endl;
-  std::cout << "Email:   fredrik.akesson@cern.ch" << std::endl;
-  verbose=0;
-  checkpath=0;
-  if (argc > 1 && argv[1]!=0) 
-    {  
-      if (strcmp(argv[1],"-i")==0) verbose=1;
-      if (strcmp(argv[1],"-u")==0) verbose=2;
-      if (strcmp(argv[1],"-s")==0) verbose=3;
-      if (strcmp(argv[1],"-a")==0) verbose=4;
-      if (strcmp(argv[1],"-v")==0) { verbose=4; debug=1; } 
-      if (strcmp(argv[2],"-f")==0) checkpath=1; 
-    }  
-  if (argc == 0 || argv[1]==0 || verbose==0) 
-    {
-      std::cout << "" << std::endl;
-      std::cout << "Usage:" << std::endl;
-      std::cout << std::endl;
-      std::cout << " -i : Output only ignored symbols" << std::endl;
-      std::cout << " -u : Output only undefined symbols" << std::endl;
-      std::cout << " -s : Output only resolved symbols" << std::endl;
-      std::cout << " -a : Output all symbols" << std::endl;
-      std::cout << " -v : Output even more information" << std::endl;
-      std::cout << std::endl;
-      std::cout << "--------------------------------------------------" << std::endl ;
-      std::cout << std::endl;
-      return -1;
-    }
-  std::cout << std::endl;
-  std::cout << "--------------------------------------------------" << std::endl ;
-  std::cout << std::endl;
-
-  /* Checks if the user has some extern files for symbols and files to
-     be ignored. Otherwise use default lists. */
-
-  if (checkpath==0) 
-  { 
-      ignorePath="";
-  } else
-  {
-      ignorePath=argv[3];
-  }
-  ReadIgnoredSymbols(); // Read symbols to be ignored from file
-  ReadIgnoredFiles();   // 
-  ReadExternalLibraries();
-  std::cout << std::endl;
-  /* Ignore symbols by default containing one of the following strings */  
-
-  if (ignoreSymbols.size()==0) 
-  {
-    ignoreSymbols.push_back("GLIBC");
-    ignoreSymbols.push_back("CXXABI");
-    ignoreSymbols.push_back("GCC");
-    ignoreSymbols.push_back("cxxabi");
-    ignoreSymbols.push_back("_Unwind_");
-    ignoreSymbols.push_back("dynamic_cast");
-    ignoreSymbols.push_back("System");
-    ignoreSymbols.push_back("AlgTool::");
-    ignoreSymbols.push_back("SG::");
-    ignoreSymbols.push_back("StoreGateSvc::");
-    ignoreSymbols.push_back("NTuple::");
-    ignoreSymbols.push_back("Algorithm::");
-    ignoreSymbols.push_back("MsgStream::");
-    ignoreSymbols.push_back("DataObject::");
-    ignoreSymbols.push_back("CBNT_AthenaBase::");
-    ignoreSymbols.push_back("FactoryTable::");
-    ignoreSymbols.push_back("CLIDRegistry::");
-    ignoreSymbols.push_back("ActiveStoreSvc::");
-    ignoreSymbols.push_back("Genfun::");
-    ignoreSymbols.push_back("Hep3Vector::");
-    ignoreSymbols.push_back("HepGenMatrix::");
-    ignoreSymbols.push_back("HepMatrix::");
-    ignoreSymbols.push_back("HepSymMatrix::");
-    ignoreSymbols.push_back("HepVector::");
-    ignoreSymbols.push_back("Service::");
-    ignoreSymbols.push_back("HepRotation::");
-    ignoreSymbols.push_back("SimplePropertyRef");
-    ignoreSymbols.push_back("NullVerifier");
-    ignoreSymbols.push_back("operator");
-    ignoreSymbols.push_back("typeinfo");
-    ignoreSymbols.push_back("vtable");
-  }
-  
-  /* Ignore library files with the following names by default. */  
-
-  if (ignoreFiles.size()==0) 
-  {
-    ignoreFiles.push_back("libGaudiSvc.so");
-  }
-  
-  std::string buffer;
-  
-  execute ("ls -lL *.so | cut -b 57- ", buffer);
-  
-  GetFilenames (buffer);
-  
-  if (externalLibs.size()!=0)
-  {
-    for (listIterator LI=externalLibs.begin(); LI!=externalLibs.end(); LI++)
-    {
-      if ((*LI).size()>3) fileNames.push_back(*LI);
-    }
-  }
-
-  nfile=fileNames.size();
-  if (nfile==0) 
-  {
-    std::cout << "You are probably not starting chklib in your InstallArea/i686-rh73-gcc32-dbg/lib/ directory" << std::endl;
-    exit (1);
-  } 
-  
-  for (listIterator FI=fileNames.begin(); FI!=fileNames.end(); FI++)
-  {
-    const std::string& fileName = *FI;
-    std::string buffer;  
-    sprintf (command, "nm -C %s 2>&1 | grep -v 'no symbols' | sed -e 's#^[0-9a-fA-F][0-9a-fA-F]*# #' -e 's#^#>> #'", fileName.c_str());
-    execute (command, buffer);
-    ReadSymbols (buffer, fileName);
-  }
-  
-  /* Remove duplicates in the symbol lists */
-
-  defSymbols.sort(); defSymbols.unique();
-  
-  std::list<std::string> foundSymbols; foundSymbols.clear();
-  std::list<std::string> missingSymbols; missingSymbols.clear();  
-  std::list<std::string> ignoredSymbols; ignoredSymbols.clear();    
-  std::map<std::string,std::string> tempList(undefSymbols); undefSymbols.clear();
-  
-  /* Compare undefined symbols with the "Ignore" list. If it is in the
-     ignored list, print it if requested and push back to list */ 
-  
-  for (mapIterator UI=tempList.begin(); UI!=tempList.end(); UI++)
-  {
-    int ignoreSymbol=0;
-    for (listIterator II=ignoreSymbols.begin(); II!=ignoreSymbols.end(); II++)
-    {
-      if ((*UI).first.find(*II)!=std::string::npos) 
-      {
-	ignoreSymbol=1;
-	ignoredSymbols.push_back((*UI).first);
-	if (verbose==1 || verbose==4) std::cout << "Ignored symbol " << (*UI).first << std::endl;
-	break;
-      }
-    }
-    if (ignoreSymbol==0) undefSymbols[(*UI).first]=(*UI).second;
-  }  
-  
-  /* Compare undefined symbols with the resolved symbols. If it is found
-     print it as success or failure if requested and push back to the 
-     list accordingly. */ 
-  
-  for (mapIterator UI=undefSymbols.begin(); UI!=undefSymbols.end(); UI++)
-    {
-      int symbolResolved=0;
-      for (listIterator RI=defSymbols.begin(); RI!=defSymbols.end(); RI++)
-	{
-	  if ( (*UI).first.compare(*RI)==0 ) 
-	    {
-	      symbolResolved=1;
-	      foundSymbols.push_back((*UI).first);
-	      if (verbose==3 || verbose==4) std::cout << "Found symbol " << (*UI).first << std::endl;
-	      break;
-	    }
-	}
-      if (symbolResolved==0)
-	{
-	  if (verbose==2 || verbose==4) std::cout << "Missing symbol " << (*UI).first << " in " << (*UI).second << std::endl;
-	  missingSymbols.push_back((*UI).first);
-	}
-    }
-  if (missingSymbols.size()==0) 
-  {
-    std::cout << std::endl;
-    std::cout << "No missing symbols found. This can have the following reasons:" << std::endl;
-    std::cout << std::endl;
-    std::cout << " 1. Everything is OK (Congratulations)." << std::endl;
-    std::cout << " 2. The ignore list is to extensive." << std::endl;
-    std::cout << " 3. The error (if that was the reason to run this tool) is not related to missing symbols." << std::endl;    
-  } 
-  if (foundSymbols.size()==0 && (verbose==3 || verbose==4)) 
-  {
-    std::cout << std::endl;
-    std::cout << "No symbols resolved. This can have the following reasons:" << std::endl;
-    std::cout << std::endl;
-    std::cout << " 1. The ignore list is to extensive." << std::endl;
-    std::cout << " 2. All symbols are resolved within each library. A succes in resolving a symbol" << std::endl;    
-    std::cout << "    is when the symbol is undefined in one library but found in an other." << std::endl;
-  } 
-  return 0;
-}
-
-
-
diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/CMakeLists.txt b/Trigger/TrigHypothesis/TrigMuonHypo/CMakeLists.txt
index 9b8d1c9d9f4468a9cb124da46a3517347d8bd739..a0f038d21caa942107fcafc27f9288d4dae4031f 100644
--- a/Trigger/TrigHypothesis/TrigMuonHypo/CMakeLists.txt
+++ b/Trigger/TrigHypothesis/TrigMuonHypo/CMakeLists.txt
@@ -39,6 +39,9 @@ atlas_add_component( TrigMuonHypo
                      INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS}
                      LINK_LIBRARIES ${CLHEP_LIBRARIES} xAODTrigMuon MuonIdHelpersLib MuonRecHelperToolsLib TrigInDetEvent TrigMuonEvent TrigSteeringEvent TrigInterfacesLib DecisionHandling AthViews xAODMuon xAODTracking GaudiKernel MuonSegment MuonSegmentMakerUtils TrigConfHLTData TrigT1Interfaces TrigT1Result )
 
+atlas_add_test( TrigMuonHypoConfig SCRIPT python -m  	TrigMuonHypo.testTrigMuonHypoConfig
+		POST_EXEC_SCRIPT nopost.sh )
+
 # Install files from the package:
 atlas_install_headers( TrigMuonHypo )
 atlas_install_python_modules( python/*.py )
diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/python/testTrigMuonHypoConfig.py b/Trigger/TrigHypothesis/TrigMuonHypo/python/testTrigMuonHypoConfig.py
index cdf44d0b7e3696a7013dc12b5353113d0e7b338a..f41f16c9f73c62912b329b624de67d6f5e8be2aa 100755
--- a/Trigger/TrigHypothesis/TrigMuonHypo/python/testTrigMuonHypoConfig.py
+++ b/Trigger/TrigHypothesis/TrigMuonHypo/python/testTrigMuonHypoConfig.py
@@ -1,6 +1,6 @@
-# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 
-from TrigMuonHypo.TrigMuonHypoConf import TrigMufastHypoAlg, TrigMufastHypoTool, TrigmuCombHypoAlg, TrigmuCombHypoTool, TrigMuonEFMSonlyHypoAlg, TrigMuonEFMSonlyHypoTool, TrigMuisoHypoAlg, TrigMuisoHypoTool
+from TrigMuonHypo.TrigMuonHypoConf import TrigMufastHypoAlg, TrigMufastHypoTool, TrigmuCombHypoAlg, TrigmuCombHypoTool, TrigMuonEFMSonlyHypoAlg, TrigMuonEFMSonlyHypoTool, TrigMuisoHypoAlg, TrigMuisoHypoTool, TrigMuonEFCombinerHypoTool
 from TrigMuonHypo.TrigMuonHypoMonitoringMT import *
 from AthenaCommon.SystemOfUnits import GeV
 from MuonByteStream.MuonByteStreamFlags import muonByteStreamFlags
@@ -387,47 +387,40 @@ muFastThresholdsForECWeakBRegion = {
     }
 
 
-def TrigMufastHypoToolFromName( toolName,  thresholdHLT ):	
-        
-    name = "TrigMufastHypoTool"
-    config = TrigMufastHypoConfig()
-    
-    # Separete HLT_NmuX to bname[0]=HLT and bname[1]=NmuX
-    bname = thresholdHLT.split('_') 
-    threshold = bname[1]
-    thresholds = config.decodeThreshold( threshold )
-    print "TrigMufastHypoConfig: Decoded ", thresholdHLT, " to ", thresholds
-
-    tool=config.ConfigurationHypoTool( toolName, thresholds )
-    
-    # Setup MonTool for monitored variables in AthenaMonitoring package
-    TriggerFlags.enableMonitoring = ["Validation"]
-
+def addMonitoring(tool, monClass, name, thresholdHLT ):
     try:
-            if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring():
-                tool.MonTool = TrigMufastHypoMonitoring( name + "Monitoring_" + thresholdHLT ) 
+        if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring():
+            tool.MonTool = monClass( name + "Monitoring_" + thresholdHLT ) 
     except AttributeError:
-            tool.MonTool = ""
-            print name, ' Monitoring Tool failed'
+        tool.MonTool = ""
+        print name, ' Monitoring Tool failed'
 
-    return tool
 
+def getThresholdsFromDict( chainDict ):    
+    return sum( [ [part['threshold']]*int(part['multiplicity']) for part in chainDict['chainParts']], [])
 
-class TrigMufastHypoConfig():
 
-    def decodeThreshold( self, threshold ):
-        """ decodes the thresholds of the form mu6, 2mu6, ... """
-        print "decoding ", threshold
+def TrigMufastHypoToolFromDict( chainDict ):	
 
-        if threshold[0].isdigit():  # If the form is NmuX, return as list [X,X,X...N times...]
-            assert threshold[1:3] == "mu", "Two digit multiplicity not supported"
-            return [ threshold[3:] ] * int( threshold[0] )
-    
-        if threshold.count('mu') > 1:  # If theform is muXmuY, return as [X,Y]
-            return threshold.strip('mu').split('mu')
+    thresholds = getThresholdsFromDict( chainDict )
+    config = TrigMufastHypoConfig()
+    tool=config.ConfigurationHypoTool( chainDict['chainName'], thresholds )
+    # # Setup MonTool for monitored variables in AthenaMonitoring package
+    TriggerFlags.enableMonitoring = ['Validation']
+    addMonitoring( tool, TrigMufastHypoMonitoring, 'TrigMufastHypoTool', chainDict['chainName'] )
     
-        # If the form is muX(inclusive), return as 1 element list
-        return [ threshold[2:] ]        
+    return tool
+
+
+def TrigMufastHypoToolFromName( name,  thresholdHLT ):	
+    from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName   
+    decoder = DictFromChainName()    
+    decodedDict = decoder.analyseShortName(thresholdHLT, [], "") # no L1 info    
+    decodedDict['chainName'] = name # override
+    return TrigMufastHypoToolFromDict( decodedDict )
+
+
+class TrigMufastHypoConfig():
     
     def ConfigurationHypoTool( self, thresholdHLT, thresholds ): 
         
@@ -481,35 +474,27 @@ class TrigMufastHypoConfig():
                     raise Exception('MuFast Hypo Misconfigured: threshold %r not supported' % thvaluename)
 
         return tool
-    
 
-def TrigmuCombHypoToolFromName( toolName, thresholdHLT ):	
-        
-    name = "TrigmuCombHypoTool"
+def TrigmuCombHypoToolFromDict( chainDict ):
+    print chainDict
+
+    thresholds = getThresholdsFromDict( chainDict )
     config = TrigmuCombHypoConfig()
     
-    # Separete HLT_NmuX to bname[0]=HLT and bname[1]=NmuX
-    bname = thresholdHLT.split('_') 
-    threshold = bname[1]
-    thresholds = config.decodeThreshold( threshold )
-    print "TrigmuCombHypoConfig: Decoded ", thresholdHLT, " to ", thresholds
-
-    tight = False
-    tool=config.ConfigurationHypoTool( toolName, thresholds, tight )
-    
-    # Setup MonTool for monitored variables in AthenaMonitoring package
-    TriggerFlags.enableMonitoring = ["Validation"]
+    tight = False # can be probably decoded from some of the proprties of the chain, expert work
+    tool=config.ConfigurationHypoTool( chainDict['chainName'], thresholds, tight )
 
-    try:
-            if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring():
-                tool.MonTool = TrigmuCombHypoMonitoring( name + "Monitoring_" + thresholdHLT ) 
-    except AttributeError:
-            tool.MonTool = ""
-            print name, ' Monitoring Tool failed'
+    addMonitoring( tool, TrigmuCombHypoMonitoring, "TrigmuCombHypoTool", chainDict['chainName'] )
 
     return tool
 
-
+def TrigmuCombHypoToolFromName( name, thresholdsHLT ):	
+    from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName   
+    decoder = DictFromChainName()    
+    decodedDict = decoder.analyseShortName(thresholdsHLT, [], "") # no L1 info    
+    decodedDict['chainName'] = name # override
+    return TrigmuCombHypoToolFromDict( decodedDict )
+        
 class TrigmuCombHypoConfig():
 
     def decodeThreshold( self, threshold ):
@@ -566,46 +551,36 @@ class TrigmuCombHypoConfig():
         return tool 
 
 
+
 ### for TrigMuisoHypo
-def TrigMuisoHypoToolFromName( toolName, thresholdHLT ):
+def TrigMuisoHypoToolFromDict( chainDict ):
 
-    name = "TrigMuisoHypoTool"
     config = TrigMuisoHypoConfig()
+    tool = config.ConfigurationHypoTool( chainDict['chainName'] )
+    addMonitoring( tool, TrigMuisoHypoMonitoring,  "TrigMuisoHypoTool", chainDict['chainName'])
+    return tool
+    
 
-    # Separete HLT_NmuX to bname[0]=HLT and bname[1]=NmuX
-    bnames = thresholdHLT.split('_') 
-
-    print "TrigMuisoHypoConfig: Decoded ", thresholdHLT 
-
-    tool = config.ConfigurationHypoTool( toolName, bnames )
-
+def TrigMuisoHypoToolFromName( name, thresholdHLT ):
 
-    # Setup MonTool for monitored variables in AthenaMonitoring package
-    TriggerFlags.enableMonitoring = ["Validation"]
-
-    try:
-        if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring():
-            tool.MonTool = TrigMuisoHypoMonitoring( name + "Monitoring_" + thresholdHLT ) 
-    except AttributeError:
-        tool.MonTool = ""
-        print name, ' Monitoring Tool failed'
-
-    return tool
+    from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName   
+    decoder = DictFromChainName()    
+    decodedDict = decoder.analyseShortName(thresholdHLT, [], "") # no L1 info    
+    decodedDict['chainName'] = name # override
+    return TrigMuisoHypoToolFromDict( decodedDict )
 
 
 class TrigMuisoHypoConfig() :
 
-
-    def ConfigurationHypoTool( self, toolName, bnames ):	
+    def ConfigurationHypoTool( self, toolName ):	
 
         tool = TrigMuisoHypoTool( toolName )  
         
-        # If configured with passthrough, set AcceptAll flag on
+        # If configured with passthrough, set AcceptAll flag on, not quite there in the menu
         tool.AcceptAll = False
-        for bname in bnames:
-            if 'passthrough' in bname:
-                tool.AcceptAll = True
-                print 'MuisoHypoConfig configured in pasthrough mode'
+        if 'passthrough' in toolName:                    
+            tool.AcceptAll = True
+            print 'MuisoHypoConfig configured in pasthrough mode'
 
         if "FTK" in toolName: # allows us to use different working points in FTK mode
             tool.IDConeSize   = 2;
@@ -623,30 +598,21 @@ class TrigMuisoHypoConfig() :
         return tool
 
 
-def TrigMuonEFMSonlyHypoToolFromName( toolName, thresholdHLT ) :
-
-    name = "TrigMuonEFMSonlyHypoTool"
+def TrigMuonEFMSonlyHypoToolFromDict( chainDict ) :
+    thresholds = getThresholdsFromDict( chainDict ) 
     config = TrigMuonEFMSonlyHypoConfig()
+    tool = config.ConfigurationHypoTool( chainDict['chainName'], thresholds )
+    addMonitoring( tool, TrigMuonEFMSonlyHypoMonitoring, "TrigMuonEFMSonlyHypoTool", chainDict['chainName'] )
+    return tool
 
-    # Separete HLT_NmuX to bname[0]=HLT and bname[1]=NmuX
-    bname = thresholdHLT.split('_') 
-    threshold = bname[1]
-    thresholds = config.decodeThreshold( threshold )
-    print "TrigMuonEFMSonlyHypoConfig: Decoded ", thresholdHLT, " to ", thresholds
-
-    tool = config.ConfigurationHypoTool( toolName, thresholds )
- 
-    # Setup MonTool for monitored variables in AthenaMonitoring package
-    TriggerFlags.enableMonitoring = ["Validation"]
-
-    try:
-            if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring():
-                tool.MonTool = TrigMuonEFMSonlyHypoMonitoring( name + "Monitoring_" + thresholdHLT ) 
-    except AttributeError:
-            tool.MonTool = ""
-            print name, ' Monitoring Tool failed'
     
-    return tool
+def TrigMuonEFMSonlyHypoToolFromName( name, thresholdHLT ) :
+
+    from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName   
+    decoder = DictFromChainName()    
+    decodedDict = decoder.analyseShortName(thresholdHLT, [], "") # no L1 info    
+    decodedDict['chainName'] = name # override
+    return TrigMuonEFMSonlyHypoToolFromDict( decodedDict )
     
 class TrigMuonEFMSonlyHypoConfig(): 
         
@@ -694,30 +660,22 @@ class TrigMuonEFMSonlyHypoConfig():
 
         return tool
 
-def TrigMuonEFCombinerHypoToolFromName( toolName, thresholdHLT ) :
-
-    name = "TrigMuonEFCombinerHypoTool"
+    
+def TrigMuonEFCombinerHypoToolFromDict( chainDict ) :
+    thresholds = getThresholdsFromDict( chainDict ) 
     config = TrigMuonEFCombinerHypoConfig()
+    tool = config.ConfigurationHypoTool( chainDict['chainName'], thresholds )
+    addMonitoring( tool, TrigMuonEFCombinerHypoMonitoring, "TrigMuonEFCombinerHypoTool", chainDict['chainName'] )
+    return tool
+    
+def TrigMuonEFCombinerHypoToolFromName( name, thresholdHLT ) :
 
-    # Separete HLT_NmuX to bname[0]=HLT and bname[1]=NmuX
-    bname = thresholdHLT.split('_') 
-    threshold = bname[1]
-    thresholds = config.decodeThreshold( threshold )
-    print "TrigMuonEFCombinerHypoConfig: Decoded ", thresholdHLT, " to ", thresholds
-
-    tool = config.ConfigurationHypoTool( toolName, thresholds )
- 
-    # Setup MonTool for monitored variables in AthenaMonitoring package
-    TriggerFlags.enableMonitoring = ["Validation"]
+    from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName   
+    decoder = DictFromChainName()    
+    decodedDict = decoder.analyseShortName(thresholdHLT, [], "") # no L1 info    
+    decodedDict['chainName'] = name # override
+    return TrigMuonEFCombinerHypoToolFromDict( decodedDict )
 
-    try:
-            if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring():
-                tool.MonTool = TrigMuonEFCombinerHypoMonitoring( name + "Monitoring_" + thresholdHLT ) 
-    except AttributeError:
-            tool.MonTool = ""
-            print name, ' Monitoring Tool failed'
-    
-    return tool
 
 class TrigMuonEFCombinerHypoConfig(): 
         
@@ -764,3 +722,33 @@ class TrigMuonEFCombinerHypoConfig():
 
         return tool
 
+
+
+
+if __name__ == '__main__':
+    # normaly this tools are private and have no clash in naming, for the test we create them and never assign so they are like public,
+    # in Run3 config this is checked in a different way so having Run 3 JO behaviour solves test issue
+    from AthenaCommon.Configurable import Configurable
+    Configurable.configurableRun3Behavior=1 
+
+    configToTest = [ 'HLT_mu6fast',
+                     'HLT_mu6Comb',
+                     'HLT_mu6'                    
+                     'HLT_mu20_ivar',
+                     'HLT_2mu6Comb',
+                     'HLT_2mu6']
+                    
+    for c in configToTest:
+        print "testing config ", c
+        toolMufast = TrigMufastHypoToolFromName(c, c)
+        assert toolMufast
+        toolmuComb = TrigmuCombHypoToolFromName(c, c)
+        assert toolmuComb
+        toolMuiso = TrigMuisoHypoToolFromName(c, c)
+        assert toolMuiso
+        toolEFMSonly = TrigMuonEFMSonlyHypoToolFromName(c, c)
+        assert toolEFMSonly
+        toolEFCombiner = TrigMuonEFCombinerHypoToolFromName(c, c)
+        assert toolEFCombiner
+        
+    print "All OK"
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
index 6398c34c508550edc073ec7c9ba0c1b2b77f7238..d2c78e3b8a7b20fb7a2b564f43a14beff9d4b233 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
@@ -195,7 +195,7 @@ MuonChainParts = {
     'threshold'      : '',
     'extra'          : ['noL1'],
     'IDinfo'         : [],
-    'isoInfo'        : ['iloose', 'imedium', 'itight', 'ivarloose', 'ivarmedium','icalo','iloosecalo','imediumcalo','iloosems', 'ivarloosecalo', 'ivarmediumcalo'],
+    'isoInfo'        : ['iloose', 'ivar', 'imedium', 'itight', 'ivarloose', 'ivarmedium','icalo','iloosecalo','imediumcalo','iloosems', 'ivarloosecalo', 'ivarmediumcalo'],
     'reccalibInfo'   : ['msonly', 'l2msonly', 'l2idonly', 'nomucomb', 'idperf','muoncalib', 'mucombTag','muL2', 'mgonly'],
     'trkInfo'        : ['fasttr', 'hlttr', 'ftk', 'IDT'],
     'hypoInfo'       : [],