Skip to content
Snippets Groups Projects
Commit eaf10e32 authored by Masato Aoki's avatar Masato Aoki
Browse files

use MT ReadHandle

parent b6732324
No related branches found
No related tags found
No related merge requests found
/*
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() {
......
/*
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();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment