From eaf10e32c11050cda038ddbd2511789fd3201991 Mon Sep 17 00:00:00 2001
From: Masato Aoki <masato.aoki@cern.ch>
Date: Fri, 28 Feb 2020 21:36:31 +0100
Subject: [PATCH] use MT ReadHandle

---
 .../TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h      | 33 ++++++++++-------
 .../TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx   | 37 ++++++++-----------
 2 files changed, 35 insertions(+), 35 deletions(-)

diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h
index dd080508b35..fc405b8bbdf 100644
--- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h
+++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 // LVL1TGCTrigger.h
@@ -31,15 +31,22 @@
 #include "StoreGate/ReadCondHandle.h"
 #include "MuonCondSvc/TGCTriggerData.h"
 
+#include "StoreGate/ReadHandleKey.h"
+#include "StoreGate/WriteHandleKey.h"
+
 #include "MuonDigitContainer/TgcDigit.h"
 #include "TrigConfInterfaces/ILVL1ConfigSvc.h"
 
 #include "TrigT1TGC/TGCArguments.hh"
+#include "MuonDigitContainer/TgcDigitContainer.h"
+
+// Tile-Muon
+#include "TileEvent/TileMuContainer.h"
+#include "TileEvent/TileMuonReceiverObj.h"
 
 class TgcRdo;
 class TgcRawData;
 class ITGCcablingSvc;
-class TgcDigitContainer; 
 
 namespace LVL1TGCTrigger {
   
@@ -83,10 +90,10 @@ namespace LVL1TGCTrigger {
     StatusCode finalize() ;
     
   private:
-    StatusCode processOneBunch(const DataHandle<TgcDigitContainer>&,
+    StatusCode processOneBunch(const TgcDigitContainer*,
 			       LVL1MUONIF::Lvl1MuCTPIInput*,
 			       LVL1MUONIF::Lvl1MuCTPIInputPhase1*);
-    void doMaskOperation(const DataHandle<TgcDigitContainer>& ,std::map<Identifier, int>& );
+    void doMaskOperation(const TgcDigitContainer* ,std::map<Identifier, int>& );
     void fillTGCEvent(std::map<Identifier, int>& ,  TGCEvent&);
     
     // Fill TMDB event data
@@ -126,19 +133,13 @@ namespace LVL1TGCTrigger {
     
     
     // Properties
-    
+
     // Location of LVL1MUONIF::Lvl1MuSectorLogicData (output from SL)
     StringProperty m_keyMuCTPIInput_TGC{this,"MuCTPIInput_TGC","L1MuctpiStoreTGC"};
-    
+
     // Version of Coincidence Window
     StringProperty m_VerCW{this,"VersionCW","00_07_0022"};
-    
-    // Location of TgcDigitContainer
-    StringProperty m_keyTgcDigit{this,"InputData_perEvent","TGC_DIGITS"};
-    
-    // Location of TileMuonReceiverContainer
-    StringProperty m_keyTileMu{this,"TileMuRcv_Input","TileMuRcvCnt"};
-    
+
     StringProperty    m_MaskFileName{this,"MaskFileName",""};   //!< property, see @link LVL1TGCTrigger::LVL1TGCTrigger @endlink
     StringProperty    m_MaskFileName12{this,"MaskFileName12",""};   //!< property, see @link LVL1TGCTrigger::LVL1TGCTrigger @endlink
     ShortProperty     m_CurrentBunchTag{this,"CurrentBunchTag",TgcDigit::BC_CURRENT};  //!< property, see @link LVL1TGCTrigger::LVL1TGCTrigger @endlink
@@ -182,10 +183,14 @@ namespace LVL1TGCTrigger {
     
     TGCArguments m_tgcArgs;
     TGCArguments* tgcArgs();
-      
+
+
+    SG::ReadHandleKey<TgcDigitContainer> m_keyTgcDigit{this,"InputData_perEvent","TGC_DIGITS","Location of TgcDigitContainer"};
+    SG::ReadHandleKey<TileMuonReceiverContainer> m_keyTileMu{this,"TileMuRcv_Input","TileMuRcvCnt","Location of TileMuonReceiverContainer"};
     SG::ReadCondHandleKey<TGCTriggerData> m_readCondKey{this,"ReadCondKey","TGCTriggerData"};
     SG::WriteHandleKey<LVL1MUONIF::Lvl1MuCTPIInput> m_muctpiKey{this, "MuctpiLocationTGC", "L1MuctpiStoreTGC", "Location of muctpi for Tgc"};
     SG::WriteHandleKey<LVL1MUONIF::Lvl1MuCTPIInputPhase1> m_muctpiPhase1Key{this, "MuctpiPhase1LocationTGC", "L1MuctpiStoreTGC", "Location of muctpiPhase1 for Tgc"};
+
   }; // class LVL1TGCTrigger
 
   inline TGCArguments* LVL1TGCTrigger::tgcArgs() {
diff --git a/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx b/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx
index e8b82b44d2d..7215f8e6bf1 100644
--- a/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx
+++ b/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 // STL
@@ -24,11 +24,6 @@
 #include "TrigT1TGC/TGCCoincidence.hh"
 #include "TrigT1TGC/TGCTMDBOut.h"
 
-// Tile-Muon
-#include "TileEvent/TileMuContainer.h"
-#include "TileEvent/TileMuonReceiverObj.h"
-
-
 // Athena/Gaudi
 #include "GaudiKernel/MsgStream.h"
 #include "StoreGate/StoreGate.h"
@@ -115,7 +110,7 @@ namespace LVL1TGCTrigger {
     m_tgcArgs.set_TILE_MU( m_TILEMU.value() && m_tgcArgs.USE_INNER() );
     m_tgcArgs.set_USE_CONDDB( true );
     m_tgcArgs.set_useRun3Config( m_useRun3Config.value() );
-    
+
     // TrigConfigSvc
     StatusCode sc = m_configSvc.retrieve();
     if (sc.isFailure()) {
@@ -144,6 +139,8 @@ namespace LVL1TGCTrigger {
       ATH_MSG_DEBUG("TGCcablingServerSvc not yet configured; postone TGCcabling initialization at first event.");
     }
 
+    ATH_CHECK(m_keyTgcDigit.initialize());
+    ATH_CHECK(m_keyTileMu.initialize());
     ATH_CHECK(m_muctpiPhase1Key.initialize(tgcArgs()->useRun3Config()));
     ATH_CHECK(m_muctpiKey.initialize(!tgcArgs()->useRun3Config()));
     
@@ -224,12 +221,12 @@ namespace LVL1TGCTrigger {
       }
     }
     
-    const DataHandle<TgcDigitContainer> tgc_container;
-    sc = evtStore()->retrieve(tgc_container, m_keyTgcDigit);
-    if (sc.isFailure()) {
-      ATH_MSG_FATAL("Cannot retrieve TGC Digit Container");
-      return sc;
+    SG::ReadHandle<TgcDigitContainer> readTgcDigitContainer( m_keyTgcDigit );
+    if(!readTgcDigitContainer.isValid()){
+      ATH_MSG_ERROR("Cannot retrieve TgcDigitContainer");
+      return StatusCode::FAILURE;
     }
+    const TgcDigitContainer* tgc_container = readTgcDigitContainer.cptr();
     
     LVL1MUONIF::Lvl1MuCTPIInputPhase1* muctpiinputPhase1 = nullptr;
     LVL1MUONIF::Lvl1MuCTPIInput* muctpiinput = nullptr;
@@ -269,7 +266,7 @@ namespace LVL1TGCTrigger {
     return sc;
   }
   
-  StatusCode LVL1TGCTrigger::processOneBunch(const DataHandle<TgcDigitContainer>& tgc_container,
+  StatusCode LVL1TGCTrigger::processOneBunch(const TgcDigitContainer* tgc_container,
                                              LVL1MUONIF::Lvl1MuCTPIInput* muctpiinput,
                                              LVL1MUONIF::Lvl1MuCTPIInputPhase1* muctpiinputPhase1)
   {
@@ -405,7 +402,7 @@ namespace LVL1TGCTrigger {
   
   
   ////////////////////////////////////////////////////////
-  void LVL1TGCTrigger::doMaskOperation(const DataHandle<TgcDigitContainer>& tgc_container,
+  void LVL1TGCTrigger::doMaskOperation(const TgcDigitContainer* tgc_container,
                                        std::map<Identifier, int>& TgcDigitIDs)
   {
     std::map<Identifier, int>::iterator itCh;
@@ -1323,14 +1320,12 @@ namespace LVL1TGCTrigger {
     // clear TMDB
     tmdb->eraseOutput();
     
-    // retrive TileMuonReceiverContainer
-    const DataHandle<TileMuonReceiverContainer> tileMuRecCont;
-    sc = evtStore()->retrieve(tileMuRecCont, m_keyTileMu);
-
-    if (sc.isFailure()) {
-      ATH_MSG_WARNING("Cannot retrieve Tile Muon Receiver Container.");
-      return sc;
+    SG::ReadHandle<TileMuonReceiverContainer> readTileMuonReceiverContainer(m_keyTileMu);
+    if(!readTileMuonReceiverContainer.isValid()){
+      ATH_MSG_ERROR("Cannot retrieve Tile Muon Receiver Container.");
+      return StatusCode::FAILURE;
     }
+    const TileMuonReceiverContainer* tileMuRecCont = readTileMuonReceiverContainer.cptr();
 
     // loop over all TileMuonReceiverObj in container
     TileMuonReceiverContainer::const_iterator tmItr = tileMuRecCont->begin();
-- 
GitLab