6#include "GaudiKernel/DataObject.h"
7#include "GaudiKernel/IRegistry.h"
8#include "MuCalDecode/CalibData.h"
9#include "MuCalDecode/CalibEvent.h"
10#include "MuCalDecode/CalibUti.h"
24#include "GaudiKernel/ServiceHandle.h"
45 return (bcBitMap == 4 ? 1 : (bcBitMap == 2 ? 2 : (bcBitMap == 1 ? 3 : 0)));
65 return StatusCode::SUCCESS;
84 ATH_MSG_DEBUG(
"TGC core decode processed in MT decode (calibration stream event)");
86 return StatusCode::SUCCESS;
94 return StatusCode::SUCCESS;
97 int l1Id =
event->lvl1_id();
99 int subsystemId = (*(
event->tgc())).subsystemId();
100 int rodId = (*(
event->tgc())).rdoId();
103 int idHash = rdoIdHash(rdoId);
105 std::unique_ptr<TgcRdo> newrdo = std::make_unique<TgcRdo>(subsystemId,rodId,
bcId,l1Id);
107 for(
auto const& calib_tgcRdo : (event->tgc())->data()){
108 for(
auto const& roh : calib_tgcRdo.readoutHit()){
114 uint16_t slbId = roh.sbId;
115 std::unique_ptr<TgcRawData> raw = std::make_unique<TgcRawData>(
bcTagCnv(roh.bcBitmap),
127 ATH_MSG_DEBUG(std::hex <<
"TgcRawData READOUT FORMATTED HIT " << std::endl
128 <<
" bcTag " <<
bcTagCnv(roh.bcBitmap) <<
" subDetectorId " << newrdo->subDetectorId() <<
" rodId "
129 << newrdo->rodId() <<
" sswId " << roh.ldbId <<
" sbId " << slbId <<
" l1Id " << newrdo->l1Id()
130 <<
" bcId " << newrdo->bcId() <<
" sbType " <<
static_cast<TgcRawData::SlbType>(roh.sbType) <<
" adjucent "
131 << roh.adj <<
" associate tracklet " << roh.tracklet <<
" bitPos "
132 << roh.channel + 40);
134 newrdo->push_back(std::move(raw));
141 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
uint16_t bcId(uint32_t data)
An algorithm that can be simultaneously executed in multiple threads.
StatusCode addOrDelete(std::unique_ptr< T > ptr)
IDC_WriteHandle getWriteHandle(IdentifierHash hash)
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
pointer_type ptr()
Dereference the pointer.
TgcCalibRawDataProvider(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
uint16_t bcTagCnv(uint16_t bcBitMap) const
virtual StatusCode initialize() override
Initialize.
virtual StatusCode execute(const EventContext &ctx) const override
Execute.
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_detectorManagerKey
MuonDetectorManager from the conditions store.
ServiceHandle< Muon::IMuonIdHelperSvc > m_muonIdHelper
StatusCode decodeImpl(TgcRdoContainer *m_tgcRdoContainer, const LVL2_MUON_CALIBRATION::CalibEvent *event) const
ServiceHandle< IMuonCalibStreamDataProviderSvc > m_dataProvider
SG::WriteHandleKey< TgcRdoContainer > m_rdoContainerKey
static uint16_t calculateOnlineId(uint16_t subDetectorId, uint16_t rodId)