Skip to content
Snippets Groups Projects
Commit 0300ec83 authored by Johannes Junggeburth's avatar Johannes Junggeburth :dog2: Committed by Andrea Coccaro
Browse files

Fix data decoding of BIS78 chambers

Fix data decoding of BIS78 chambers
parent 15c04afb
No related branches found
No related tags found
No related merge requests found
......@@ -37,19 +37,15 @@ StatusCode Muon::MdtCsmContByteStreamTool::convert(const MdtCsmContainer* cont,
return StatusCode::FAILURE;
}
FullEventAssembler<MDT_Hid2RESrcID>::RODDATA* theROD;
FullEventAssembler<MDT_Hid2RESrcID>::RODDATA* theROD{nullptr};
std::map<uint32_t, MdtROD_Encoder> mapEncoder;
const MuonGM::MuonDetectorManager* mdm = nullptr;
ATH_CHECK(detStore()->retrieve(mdm, "Muon"));
const MdtIdHelper& mdtIdHelper = *mdm->mdtIdHelper();
ATH_MSG_DEBUG(" number of collections " << cont->size());
for (const MdtCsm* csm : *cont) {
Identifier coll_id = csm->identify();
uint32_t rodId = m_hid2re->getRodID(coll_id);
mapEncoder.try_emplace(rodId, mdtIdHelper).first->second.add(csm);
mapEncoder.try_emplace(rodId).first->second.add(csm);
}
// MdtCsm_Encoder has collected all the csm, now can fill the
......
/*
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
*/
#include "MdtROD_Decoder.h"
......@@ -43,12 +43,6 @@ StatusCode MdtROD_Decoder::initialize() {
ATH_MSG_INFO("Processing configuration for layouts with BME chambers.");
m_BMEid = m_idHelperSvc->mdtIdHelper().stationNameIndex("BME");
}
m_BMGpresent = m_idHelperSvc->mdtIdHelper().stationNameIndex("BMG") != -1;
if (m_BMGpresent) {
ATH_MSG_INFO("Processing configuration for layouts with BMG chambers.");
m_BMGid = m_idHelperSvc->mdtIdHelper().stationNameIndex("BMG");
}
ATH_CHECK(m_readKey.initialize());
return StatusCode::SUCCESS;
......@@ -256,8 +250,10 @@ StatusCode MdtROD_Decoder::fillCollections(const OFFLINE_FRAGMENTS_NAMESPACE::RO
// get IdentifierHash for this module ID
auto idHash = getHash(moduleId);
const bool isHpTdc = m_idHelperSvc->hasHPTDC(moduleId);
// Create MdtCsm and try to get it from the cache via the IDC_WriteHandle
std::unique_ptr<MdtCsm> collection(nullptr);
std::unique_ptr<MdtCsm> collection{nullptr};
MdtCsmContainer::IDC_WriteHandle lock = rdoIDC.getWriteHandle(idHash.first);
if (lock.alreadyPresent()) {
ATH_MSG_DEBUG("collections already found, do not convert");
......@@ -284,11 +280,11 @@ StatusCode MdtROD_Decoder::fillCollections(const OFFLINE_FRAGMENTS_NAMESPACE::RO
if (wordPos >= size) {
ATH_MSG_DEBUG("Error: data corrupted");
return StatusCode::FAILURE;
}
cabling_data.stationIndex == m_BMGid ? hptdcReadOut.decodeWord(vint[wordPos]) : amtReadOut.decodeWord(vint[wordPos]);
}
isHpTdc ? hptdcReadOut.decodeWord(vint[wordPos]) : amtReadOut.decodeWord(vint[wordPos]);
csmReadOut.decodeWord(vint[wordPos]);
while (!csmReadOut.is_TWC()) {
uint16_t tdcNum = cabling_data.stationIndex == m_BMGid ? hptdcReadOut.tdcId() : amtReadOut.tdcId();
uint16_t tdcNum = isHpTdc ? hptdcReadOut.tdcId() : amtReadOut.tdcId();
ATH_MSG_DEBUG(" Decoding data from TDC number : " << tdcNum);
......@@ -299,15 +295,17 @@ StatusCode MdtROD_Decoder::fillCollections(const OFFLINE_FRAGMENTS_NAMESPACE::RO
return StatusCode::FAILURE;
}
cabling_data.stationIndex == m_BMGid ? hptdcReadOut.decodeWord(vint[wordPos]) : amtReadOut.decodeWord(vint[wordPos]);
isHpTdc ? hptdcReadOut.decodeWord(vint[wordPos]) : amtReadOut.decodeWord(vint[wordPos]);
MdtAmtHit* amtHit;
MdtAmtHit* amtHit{nullptr};
// Loop on the TDC data words and create the corresponding
// RDO's
while (!((cabling_data.stationIndex == m_BMGid ? hptdcReadOut.is_EOT() : amtReadOut.is_EOT()) ||
(cabling_data.stationIndex == m_BMGid ? hptdcReadOut.is_BOT() : amtReadOut.is_BOT()) ||
(cabling_data.stationIndex == m_BMGid ? csmReadOut.is_TWC() : amtReadOut.is_TWC()))) {
cabling_data.stationIndex == m_BMGid ? hptdcReadOut.decodeWord(vint[wordPos]) : amtReadOut.decodeWord(vint[wordPos]);
while (!((isHpTdc ? hptdcReadOut.is_EOT() : amtReadOut.is_EOT()) ||
(isHpTdc ? hptdcReadOut.is_BOT() : amtReadOut.is_BOT()) ||
(isHpTdc ? csmReadOut.is_TWC() : amtReadOut.is_TWC()))) {
isHpTdc ? hptdcReadOut.decodeWord(vint[wordPos]) : amtReadOut.decodeWord(vint[wordPos]);
int tdcCounts;
uint16_t chanNum;
// decode the tdc channel number
......@@ -315,13 +313,13 @@ StatusCode MdtROD_Decoder::fillCollections(const OFFLINE_FRAGMENTS_NAMESPACE::RO
// Check whether this channel has already been
// created for this CSM
if ((cabling_data.stationIndex == m_BMGid ? hptdcReadOut.is_TSM() : amtReadOut.is_TSM()) &&
(cabling_data.stationIndex == m_BMGid ? hptdcReadOut.isLeading() : amtReadOut.isLeading()) && collection) {
chanNum = cabling_data.stationIndex == m_BMGid ? hptdcReadOut.channel() : amtReadOut.channel();
if ((isHpTdc ? hptdcReadOut.is_TSM() : amtReadOut.is_TSM()) &&
(isHpTdc ? hptdcReadOut.isLeading() : amtReadOut.isLeading()) && collection) {
chanNum = isHpTdc ? hptdcReadOut.channel() : amtReadOut.channel();
amtHit = new MdtAmtHit(tdcNum, chanNum);
amtHit->setValues((cabling_data.stationIndex == m_BMGid ? hptdcReadOut.coarse() : amtReadOut.coarse()),
(cabling_data.stationIndex == m_BMGid ? hptdcReadOut.fine() : amtReadOut.fine()), 0);
amtHit->setValues((isHpTdc ? hptdcReadOut.coarse() : amtReadOut.coarse()),
(isHpTdc ? hptdcReadOut.fine() : amtReadOut.fine()), 0);
amtHit->addData(vint[wordPos]);
std::pair<leading_amt_map::iterator, bool> ins = leadingHitMap.insert(leading_amt_map::value_type(chanNum, amtHit));
if (!ins.second) {
......@@ -330,9 +328,9 @@ StatusCode MdtROD_Decoder::fillCollections(const OFFLINE_FRAGMENTS_NAMESPACE::RO
delete amtHit;
}
// leadingHitMap[chanNum] = amtHit;
} else if ((cabling_data.stationIndex == m_BMGid ? hptdcReadOut.is_TSM() : amtReadOut.is_TSM()) &&
!(cabling_data.stationIndex == m_BMGid ? hptdcReadOut.isLeading() : amtReadOut.isLeading()) && collection) {
chanNum = cabling_data.stationIndex == m_BMGid ? hptdcReadOut.channel() : amtReadOut.channel();
} else if ((isHpTdc ? hptdcReadOut.is_TSM() : amtReadOut.is_TSM()) &&
!(isHpTdc ? hptdcReadOut.isLeading() : amtReadOut.isLeading()) && collection) {
chanNum = isHpTdc ? hptdcReadOut.channel() : amtReadOut.channel();
leading_amt_map::iterator chanPosition = leadingHitMap.find(chanNum);
if (chanPosition != leadingHitMap.end()) {
......@@ -343,7 +341,7 @@ StatusCode MdtROD_Decoder::fillCollections(const OFFLINE_FRAGMENTS_NAMESPACE::RO
int tdcCountsFirst = coarse * 32 + fine;
// get the tdc counts of the current data word
tdcCounts = cabling_data.stationIndex == m_BMGid ? hptdcReadOut.coarse() * 32 + hptdcReadOut.fine()
tdcCounts = isHpTdc ? hptdcReadOut.coarse() * 32 + hptdcReadOut.fine()
: amtReadOut.coarse() * 32 + amtReadOut.fine();
int width = tdcCounts - tdcCountsFirst;
......@@ -358,13 +356,13 @@ StatusCode MdtROD_Decoder::fillCollections(const OFFLINE_FRAGMENTS_NAMESPACE::RO
<< chanNum);
}
} else if ((cabling_data.stationIndex == m_BMGid ? hptdcReadOut.is_TCM() : amtReadOut.is_TCM()) && collection) {
uint16_t chanNum = cabling_data.stationIndex == m_BMGid ? hptdcReadOut.channel() : amtReadOut.channel();
} else if ((isHpTdc ? hptdcReadOut.is_TCM() : amtReadOut.is_TCM()) && collection) {
uint16_t chanNum = isHpTdc ? hptdcReadOut.channel() : amtReadOut.channel();
amtHit = new MdtAmtHit(tdcNum, chanNum);
amtHit->setValues((cabling_data.stationIndex == m_BMGid ? hptdcReadOut.coarse() : amtReadOut.coarse()),
(cabling_data.stationIndex == m_BMGid ? hptdcReadOut.fine() : amtReadOut.fine()),
(cabling_data.stationIndex == m_BMGid ? hptdcReadOut.width() : amtReadOut.width()));
amtHit->setValues((isHpTdc ? hptdcReadOut.coarse() : amtReadOut.coarse()),
(isHpTdc ? hptdcReadOut.fine() : amtReadOut.fine()),
(isHpTdc ? hptdcReadOut.width() : amtReadOut.width()));
amtHit->addData(vint[wordPos]);
collection->push_back(amtHit);
}
......@@ -376,9 +374,9 @@ StatusCode MdtROD_Decoder::fillCollections(const OFFLINE_FRAGMENTS_NAMESPACE::RO
return StatusCode::FAILURE;
}
cabling_data.stationIndex == m_BMGid ? hptdcReadOut.decodeWord(vint[wordPos]) : amtReadOut.decodeWord(vint[wordPos]);
isHpTdc ? hptdcReadOut.decodeWord(vint[wordPos]) : amtReadOut.decodeWord(vint[wordPos]);
if (cabling_data.stationIndex == m_BMGid) csmReadOut.decodeWord(vint[wordPos]);
if (isHpTdc) csmReadOut.decodeWord(vint[wordPos]);
} // End of loop on AMTs
......@@ -394,7 +392,7 @@ StatusCode MdtROD_Decoder::fillCollections(const OFFLINE_FRAGMENTS_NAMESPACE::RO
// increase the decoding position only if it's end of TDC
// i.e. not operating in TDC trailer suppression mode
if ((cabling_data.stationIndex == m_BMGid ? hptdcReadOut.is_EOT() : amtReadOut.is_EOT())) {
if ((isHpTdc ? hptdcReadOut.is_EOT() : amtReadOut.is_EOT())) {
wordPos += 1;
if (wordPos >= size) {
ATH_MSG_ERROR("Error: data corrupted");
......@@ -402,7 +400,7 @@ StatusCode MdtROD_Decoder::fillCollections(const OFFLINE_FRAGMENTS_NAMESPACE::RO
}
}
csmReadOut.decodeWord(vint[wordPos]);
cabling_data.stationIndex == m_BMGid ? hptdcReadOut.decodeWord(vint[wordPos]) : amtReadOut.decodeWord(vint[wordPos]);
isHpTdc ? hptdcReadOut.decodeWord(vint[wordPos]) : amtReadOut.decodeWord(vint[wordPos]);
} // End of loop on TDCs
if (collection) ATH_CHECK(lock.addOrDelete(std::move(collection)));
// Collection has been found, go out
......
......@@ -61,14 +61,14 @@ private:
SG::ReadCondHandleKey<MuonMDT_CablingMap> m_readKey{this, "ReadKey", "MuonMDT_CablingMap", "Key of MuonMDT_CablingMap"};
ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
/** TMP special ROB number for sector13 runs*/
int m_specialROBNumber{-1};
bool m_BMEpresent{false};
bool m_BMGpresent{false};
int m_BMEid{-1};
int m_BMGid{-1};
// variables to count how often the caching kicks in
// Mutable as this is just to count calls of const function
mutable std::atomic_uint m_nCache ATLAS_THREAD_SAFE = 0;
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
*/
// Implementation of MdtROD_Encoder class
......@@ -15,103 +15,66 @@
#include "MdtAmtReadOut.h"
#include "MdtCsmReadOut.h"
#include "MdtHptdcReadOut.h"
#include "MdtRODReadOut.h"
#include "MuonIdHelpers/MdtIdHelper.h"
#include "StoreGate/StoreGateSvc.h"
/** constructor
*/
MdtROD_Encoder::MdtROD_Encoder(const MdtIdHelper& mdtIdHelper) : m_mdtIdHelper(mdtIdHelper), m_BMGid(mdtIdHelper.stationNameIndex("BMG")) {}
/** destructor
*/
MdtROD_Encoder::~MdtROD_Encoder() {}
MdtROD_Encoder::MdtROD_Encoder() {
if (!m_mdtIdHelper.retrieve().isSuccess()) {
throw std::runtime_error("MdtROD_Encoder -- Failed to initialize the IdHelperSvc");
}
}
// Add a CSM
void MdtROD_Encoder::add(const MdtCsm* csm) {
m_vMdtCsm.push_back(csm);
return;
m_vMdtCsm.push_back(csm);
}
// Clear the vector of CSMs
void MdtROD_Encoder::clear() {
m_vMdtCsm.erase(m_vMdtCsm.begin(), m_vMdtCsm.end());
return;
m_vMdtCsm.erase(m_vMdtCsm.begin(), m_vMdtCsm.end());
}
/** convert all MDT CSMs in the current list to
a vector of 32bit words
*/
void MdtROD_Encoder::fillROD(std::vector<uint32_t>& v) {
// IMessageSvc* msgSvc = 0;
// ISvcLocator* svcLocator = Gaudi::svcLocator();
// StatusCode sc = svcLocator->service("MessageSvc", msgSvc);
// if (sc==StatusCode::FAILURE)
// throw std::runtime_error( "Unable to get MessageSvc");
// MsgStream log(msgSvc, "MdtROD_Encoder::fillROD");
MdtAmtReadOut* amtReadOut = new MdtAmtReadOut();
MdtHptdcReadOut* hptdcReadOut = new MdtHptdcReadOut();
MdtCsmReadOut* csmReadOut = new MdtCsmReadOut();
MdtRODReadOut* rodReadOut = new MdtRODReadOut();
uint32_t mrod_wcnt = 0;
std::vector<const MdtCsm*>::const_iterator it = m_vMdtCsm.begin();
std::vector<const MdtCsm*>::const_iterator it_end = m_vMdtCsm.end();
// Get the rodId from the first csm
// uint16_t subdetId = (*it)->SubDetId();
// uint16_t mrodId = (*it)->MrodId();
void MdtROD_Encoder::fillROD(std::vector<uint32_t>& v) {
// Make the ROD Header
// v.push_back(rodReadOut->makeHeaderMarker());
// v.push_back(rodReadOut->makeHeaderSize());
// v.push_back(rodReadOut->makeFormatVersion());
MdtAmtReadOut amtReadOut{};
MdtHptdcReadOut hptdcReadOut{};
MdtCsmReadOut csmReadOut{};
uint32_t mrod_wcnt{0};
// v.push_back(rodReadOut->makeRODId(subdetId, mrodId)); // Source Id
// v.push_back(0); // Level1ID
// v.push_back(0); // Bunch crossing ID
// v.push_back(0); // Level1 Trigger Type
// v.push_back(0); // Detector event type
// mrod_wcnt += rodReadOut->makeHeaderSize();
typedef std::vector<const MdtAmtHit*> hit_vector;
typedef std::map<uint16_t, hit_vector> tdc_map;
typedef std::map<uint16_t, uint32_t> masked_map;
using hit_vector = std::vector<const MdtAmtHit*>;
using tdc_map = std::map<uint16_t, hit_vector>;
using masked_map = std::map<uint16_t, uint32_t>;
tdc_map tdcMap;
masked_map maskedMap;
// Insert the Beginning of Block Word (Lvl1ID not set yet)
uint32_t lvl1Id = 0;
v.push_back(csmReadOut->makeBOB(lvl1Id));
v.push_back(csmReadOut.makeBOB(lvl1Id));
// make the body of the ROD
// Loop on the CSMs
for (; it != it_end; ++it) {
const MdtCsm* csm = (*it);
bool isBMG = m_mdtIdHelper.stationName(csm->identify()) == m_BMGid;
for ( const MdtCsm* csm : m_vMdtCsm) {
const bool isHPTDC = m_mdtIdHelper->hasHPTDC(csm->identify());
uint16_t ctwc = 0; // Trailer word count initialized
v.push_back(csmReadOut->makeLWC(0)); // Link Word Count
v.push_back(csmReadOut->makeBOL(csm->MrodId(), csm->CsmId())); // Beginning of link
v.push_back(csmReadOut.makeLWC(0)); // Link Word Count
v.push_back(csmReadOut.makeBOL(csm->MrodId(), csm->CsmId())); // Beginning of link
v.push_back(csmReadOut->makeTLP(0));
v.push_back(csmReadOut.makeTLP(0));
++ctwc; // Trailer word count starts from TLP
// Group the hits of this CSM according to the TDC number
tdcMap.clear();
maskedMap.clear();
MdtCsm::const_iterator it_amt = csm->begin();
for (; it_amt != csm->end(); ++it_amt) {
const MdtAmtHit* amt = (*it_amt);
for (const MdtAmtHit* amt : *csm) {
uint16_t tdcNum = amt->tdcId();
if (!amt->isMasked()) {
......@@ -127,7 +90,7 @@ void MdtROD_Encoder::fillROD(std::vector<uint32_t>& v) {
for (; it_tdc != tdcMap.end(); ++it_tdc) {
// Beginning of TDC header word
// Need to fix event counter and bcid
v.push_back((isBMG ? hptdcReadOut->makeBOT((*it_tdc).first, 0, 0) : amtReadOut->makeBOT((*it_tdc).first, 0, 0)));
v.push_back((isHPTDC ? hptdcReadOut.makeBOT((*it_tdc).first, 0, 0) : amtReadOut.makeBOT((*it_tdc).first, 0, 0)));
++ctwc;
uint32_t maskedFlags = maskedMap[(*it_tdc).first];
......@@ -135,7 +98,7 @@ void MdtROD_Encoder::fillROD(std::vector<uint32_t>& v) {
// Masked channels flags
if (maskedFlags != 0) {
v.push_back((isBMG ? 0 : amtReadOut->makeTMC(jt, maskedFlags)));
v.push_back((isHPTDC ? 0 : amtReadOut.makeTMC(jt, maskedFlags)));
++ctwc;
++wcnt;
}
......@@ -143,10 +106,7 @@ void MdtROD_Encoder::fillROD(std::vector<uint32_t>& v) {
// Loop on the hits for this TDC
hit_vector::const_iterator it_amtvec = (*it_tdc).second.begin();
for (; it_amtvec != (*it_tdc).second.end(); ++it_amtvec) {
uint16_t chan = (*it_amtvec)->channelId();
// bool leading = (*it_amtvec)->leading();
// bool leading = true;
// bool errflag = false;
uint16_t chan = (*it_amtvec)->channelId();
uint16_t coarse = (*it_amtvec)->coarse();
uint16_t fine = (*it_amtvec)->fine();
......@@ -154,28 +114,26 @@ void MdtROD_Encoder::fillROD(std::vector<uint32_t>& v) {
uint16_t tdcId = (*it_amtvec)->tdcId();
// Add a "Single Measurement" word
// v.push_back( isBMG ? hptdcReadOut->makeTSM(tdcId, chan, leading, coarse, fine)
// : amtReadOut->makeTSM(jt, chan, leading, errflag, coarse, fine) );
// v.push_back( isHPTDC ? hptdcReadOut.makeTSM(tdcId, chan, leading, coarse, fine)
// : amtReadOut.makeTSM(jt, chan, leading, errflag, coarse, fine) );
// Add a combined measurement data word
v.push_back(
(isBMG ? hptdcReadOut->makeTCM(tdcId, chan, width, coarse, fine) : amtReadOut->makeTCM(jt, chan, width, coarse, fine)));
(isHPTDC ? hptdcReadOut.makeTCM(tdcId, chan, width, coarse, fine) : amtReadOut.makeTCM(jt, chan, width, coarse, fine)));
++ctwc; // CSM word count
++wcnt; // TDC word count
}
uint16_t jt = 0;
uint16_t tdcId = 0;
uint16_t ecnt = 0; // Event counter
uint16_t jt{0}, tdcId{0}, ecnt{0}; // Event counter
// End of TDC trailer
v.push_back((isBMG ? hptdcReadOut->makeEOT(tdcId, ecnt, wcnt + 2) : amtReadOut->makeEOT(jt, ecnt, wcnt + 2)));
v.push_back((isHPTDC ? hptdcReadOut.makeEOT(tdcId, ecnt, wcnt + 2) : amtReadOut.makeEOT(jt, ecnt, wcnt + 2)));
++ctwc;
}
// Last word of each csm: TWC trailer word count
uint16_t ecnt = 0;
v.push_back(csmReadOut->makeTWC(ecnt, ctwc));
v.push_back(csmReadOut.makeTWC(ecnt, ctwc));
// Update the MROD word count
mrod_wcnt += ctwc;
......@@ -183,23 +141,6 @@ void MdtROD_Encoder::fillROD(std::vector<uint32_t>& v) {
}
// Close the MROD: MROD word count in EOB
v.push_back(csmReadOut->makeEOB(mrod_wcnt));
// Status words not fully defined yet ... wait
// log << MSG::DEBUG << "************** Encoder dumping the words ************" << endmsg;
// if (v.size() > 0) {
// log << MSG::DEBUG << "The size of the ROD-Write is: " << v.size() << endmsg;
// for (unsigned int i=0 ; i<v.size() ; ++i) {
// log << MSG::DEBUG << "word " << i << " = " << MSG::hex << v[i] << MSG::dec << endmsg;
// }
//}
// cleanup
delete amtReadOut;
delete hptdcReadOut;
delete csmReadOut;
delete rodReadOut;
return;
v.push_back(csmReadOut.makeEOB(mrod_wcnt));
}
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
*/
#ifndef MUONBYTESTREAM_MDTROD_ENCODER_H
......@@ -7,42 +7,21 @@
#include <stdint.h>
#include <MuonIdHelpers/IMuonIdHelperSvc.h>
#include "ByteStreamData/RawEvent.h"
#include "MuonRDO/MdtCsm.h"
#include "GaudiKernel/ServiceHandle.h"
class MdtIdHelper;
namespace MuonGM {
class MuonDetectorManager;
}
// #include "MuonByteStream/RPC_Hid2RESrcID.h"
/** This class provides conversion from LArRawChannel to ROD format.
* @author H. Ma
* @version 0-0-1 , Oct 7, 2002
* Modified, Jan 02, 2003
Split from LArROD_Decoder.
* Adapted for Muons by Ketevi A. Assamagan
* Jan 14 2003, BNL
* Conversion from RpcFiredChannel, CoinMatrix, Pad to ROD format
* Adapted for MDTs by Stefano Rosati
* Mar 02 2003 CERN
* Conversion from MdtAmtHit and MdtCsm to MROD format
*/
class MdtROD_Encoder {
public:
/** constructor
*/
MdtROD_Encoder(const MdtIdHelper& mdtIdHelper);
MdtROD_Encoder();
/** destructor
*/
~MdtROD_Encoder();
~MdtROD_Encoder() = default;
/** initialize the map
*/
......@@ -62,10 +41,8 @@ public:
void fillROD(std::vector<uint32_t>& v);
private:
// RPC_Hid2RESrcID* m_hid2re;
std::vector<const MdtCsm*> m_vMdtCsm;
const MdtIdHelper& m_mdtIdHelper;
int m_BMGid;
ServiceHandle<Muon::IMuonIdHelperSvc> m_mdtIdHelper{"Muon::MuonIdHelperSvc/MuonIdHelperSvc", "MdtRDO_Encoder"};
std::vector<const MdtCsm*> m_vMdtCsm;
};
#endif
......@@ -20,5 +20,5 @@ references_map = {
# Reco
"q442": "v1",
"q445": "v6",
"q449": "v3",
"q449": "v4",
}
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