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' : [],