8 const std::string&
name,
11 m_regionSelector(
"RegSelTool/RegSelTool_STGC",this)
26 ATH_CHECK(m_stgcPrepContainerKey.initialize(!m_stgcPrepContainerKey.empty()));
28 return StatusCode::SUCCESS;
36 ATH_MSG_DEBUG(
"StgcDataPreparator::prepareData() was called.");
40 std::vector<const Muon::sTgcPrepDataCollection*> stgcCols;
41 std::vector<IdentifierHash> stgcHashList;
42 std::vector<IdentifierHash> stgcHashList_cache;
45 if(m_stgcPrepContainerKey.empty()) {
47 return StatusCode::SUCCESS;
49 auto stgcPrepContainerHandle =
SG::makeHandle(m_stgcPrepContainerKey, ctx);
50 if (!stgcPrepContainerHandle.isValid()) {
51 ATH_MSG_ERROR(
"Cannot retrieve sTgc PRD Container key: " << m_stgcPrepContainerKey.key());
52 return StatusCode::FAILURE;
54 ATH_MSG_DEBUG(
"sTgc PRD Container retrieved with key: " << m_stgcPrepContainerKey.key());
58 if (m_use_RoIBasedDataAccess) {
63 if (iroi) m_regionSelector->lookup(ctx)->HashIDList(*iroi, stgcHashList);
66 m_regionSelector->lookup(ctx)->HashIDList(fullscan_roi, stgcHashList);
70 std::vector<uint32_t> stgcRobList;
71 m_regionSelector->lookup(ctx)->ROBIDList(*iroi, stgcRobList);
73 if (!stgcHashList.empty()) {
80 if( STGCcoll ==
nullptr ) {
84 if( STGCcoll->size() == 0) {
89 stgcHashList_cache.push_back(
id);
90 stgcCols.push_back(STGCcoll);
99 for(
const auto stgccoll : *stgcPrds) {
100 stgcCols.push_back(stgccoll);
107 stgcHits.reserve( stgcHits.size() + stgc->size() );
113 lutDigit.
eta = prepData->globalPosition().eta();
114 lutDigit.
phi = prepData->globalPosition().phi();
115 lutDigit.
r = prepData->globalPosition().perp();
116 lutDigit.
z = prepData->globalPosition().z();
117 lutDigit.
stationEta = m_idHelperSvc->stgcIdHelper().stationEta(prepData->identify());
118 lutDigit.
stationPhi = m_idHelperSvc->stgcIdHelper().stationPhi(prepData->identify());
119 lutDigit.
stationName = m_idHelperSvc->stgcIdHelper().stationName(prepData->identify());
120 lutDigit.
channelType = m_idHelperSvc->stgcIdHelper().channelType(prepData->identify());
124 lutDigit.
layerNumber = m_idHelperSvc->stgcIdHelper().gasGap(prepData->identify())-1 + 4*(m_idHelperSvc->stgcIdHelper().multilayer(prepData->identify())-1);
125 stgcHits.push_back(lutDigit);
127 ATH_MSG_DEBUG(
"StgcDataPreparator: global eta/phi/r/z station eta/phi/name channel_type layer " << lutDigit.
eta <<
"/" << lutDigit.
phi <<
"/" << lutDigit.
r <<
"/" << lutDigit.
z <<
" " << lutDigit.
stationEta <<
"/" << lutDigit.
stationPhi <<
"/" << lutDigit.
stationName <<
" " << lutDigit.
channelType <<
" " << (m_idHelperSvc->stgcIdHelper().gasGap(prepData->identify())-1 + 4*(m_idHelperSvc->stgcIdHelper().multilayer(prepData->identify())-1)) );
132 return StatusCode::SUCCESS;