diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCT_RodEncoder.h b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCT_RodEncoder.h index cc51ee48c43328eacb66d9a8ec62694804b4d5c1..50dc4b234935cdc25b9d626422f3f986e7c86d92 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCT_RodEncoder.h +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCT_RodEncoder.h @@ -23,9 +23,6 @@ class SCT_RDORawData; class ISCT_RodEncoder : virtual public IAlgTool { public: - typedef SCT_RDORawData RDO; - typedef std::vector<const RDO*> vRDOs; - /** destructor */ virtual ~ISCT_RodEncoder() = default; @@ -33,7 +30,7 @@ class ISCT_RodEncoder : virtual public IAlgTool { DeclareInterfaceID(ISCT_RodEncoder, 1, 0); /** convert all collections of RDO's in the current list to vector of 32bit words */ - virtual void fillROD(std::vector<uint32_t>& vec32Data, const uint32_t& robID, const vRDOs& vecRDOs) const = 0; + virtual void fillROD(std::vector<uint32_t>& vec32Data, const uint32_t& robID, const std::vector<const SCT_RDORawData*>& vecRDOs) const = 0; }; diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodEncoder.cxx b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodEncoder.cxx index 9f7a51eb3b8c5718e2268941c7ce5b79e633b609..0c3a0f56d760d39f1e01d5e0acf53139f19d9629 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodEncoder.cxx +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodEncoder.cxx @@ -85,7 +85,7 @@ StatusCode SCT_RodEncoder::finalize() { ///========================================================================= void SCT_RodEncoder::fillROD(std::vector<uint32_t>& vec32Data, const uint32_t& robID, - const vRDOs_t& vecRDOs) const { + const std::vector<const SCT_RDORawData*>& vecRDOs) const { /** retrieve errors from SCT_ByteStreamErrorsSvc */ @@ -120,7 +120,7 @@ void SCT_RodEncoder::fillROD(std::vector<uint32_t>& vec32Data, const uint32_t& r std::vector<bool> vec_isDuplicated(vecRDOs.size(), false); for (unsigned int iRDO1{0}; iRDO1<vecRDOs.size(); iRDO1++) { - const RDO* rdo1{vecRDOs.at(iRDO1)}; + const SCT_RDORawData* rdo1{vecRDOs.at(iRDO1)}; if (rdo1==nullptr) { ATH_MSG_ERROR("RDO pointer is NULL. skipping this hit."); vec_isDuplicated.at(iRDO1) = true; @@ -129,7 +129,7 @@ void SCT_RodEncoder::fillROD(std::vector<uint32_t>& vec32Data, const uint32_t& r // Check if there is another RDO with the same first strip for (unsigned int iRDO2{0}; iRDO2<iRDO1; iRDO2++) { - const RDO* rdo2{vecRDOs.at(iRDO2)}; + const SCT_RDORawData* rdo2{vecRDOs.at(iRDO2)}; if (vec_isDuplicated.at(iRDO2)) continue; if (rdo1->identify()==rdo2->identify()) { @@ -154,7 +154,7 @@ void SCT_RodEncoder::fillROD(std::vector<uint32_t>& vec32Data, const uint32_t& r bool firstInROD{true}; uint16_t lastTrailer{0}; for (unsigned int iRDO{0}; iRDO<vecRDOs.size(); iRDO++) { - const RDO* rdo{vecRDOs.at(iRDO)}; + const SCT_RDORawData* rdo{vecRDOs.at(iRDO)}; if (vec_isDuplicated.at(iRDO)) continue; const uint16_t header{this->getHeaderUsingRDO(rdo)}; @@ -208,7 +208,7 @@ void SCT_RodEncoder::fillROD(std::vector<uint32_t>& vec32Data, const uint32_t& r else {/** Expanded mode */ vecTimeBins.clear(); - const RDO* rdo{vecRDOs.at(iRDO)}; + const SCT_RDORawData* rdo{vecRDOs.at(iRDO)}; strip = getStrip(rdo); timeBin = getTimeBin(rdo); groupSize = rdo->getGroupSize(); @@ -275,7 +275,7 @@ void SCT_RodEncoder::addSpecificErrors(const uint32_t& robID, const std::set<Ide /// Encode Data function ///========================================================================= -void SCT_RodEncoder::encodeData(const std::vector<int>& vecTimeBins, std::vector<uint16_t>& vec16Words, const RDO *rdo, const int& groupSize, const int& strip) const { +void SCT_RodEncoder::encodeData(const std::vector<int>& vecTimeBins, std::vector<uint16_t>& vec16Words, const SCT_RDORawData* rdo, const int& groupSize, const int& strip) const { const int encodedSide{side(rdo) << 14}; @@ -387,31 +387,31 @@ uint32_t SCT_RodEncoder::set32Bits(const unsigned short int* arr16Words, const u /// Link and Side Numbers ///========================================================================= /** Strip number */ -int SCT_RodEncoder::getStrip(const RDO* rdo) const { +int SCT_RodEncoder::getStrip(const SCT_RDORawData* rdo) const { const Identifier rdoID{rdo->identify()}; return m_sctID->strip(rdoID); } /** RDO ID */ -Identifier SCT_RodEncoder::offlineID(const RDO* rdo) const { +Identifier SCT_RodEncoder::offlineID(const SCT_RDORawData* rdo) const { const Identifier rdoId{rdo->identify()}; return m_sctID->wafer_id(rdoId); } /** ROD online ID */ -uint32_t SCT_RodEncoder::onlineID(const RDO* rdo) const { +uint32_t SCT_RodEncoder::onlineID(const SCT_RDORawData* rdo) const { const Identifier waferID{offlineID(rdo)}; const IdentifierHash offlineIDHash{m_sctID->wafer_hash(waferID)}; return static_cast<const uint32_t>(m_cabling->getOnlineIdFromHash(offlineIDHash)); } /** ROD Link Number In the ROD header data */ -int SCT_RodEncoder::getRODLink(const RDO* rdo) const { +int SCT_RodEncoder::getRODLink(const SCT_RDORawData* rdo) const { return rodLinkFromOnlineID(onlineID(rdo)); } /** Side Info */ -int SCT_RodEncoder::side(const RDO* rdo) const { +int SCT_RodEncoder::side(const SCT_RDORawData* rdo) const { const Identifier rdoID{rdo->identify()}; int sctSide{m_sctID->side(rdoID)}; /** see if we need to swap sides due to cabling weirdness */ @@ -421,7 +421,7 @@ int SCT_RodEncoder::side(const RDO* rdo) const { } /** Time Bin Info */ -int SCT_RodEncoder::getTimeBin(const RDO* rdo) const { +int SCT_RodEncoder::getTimeBin(const SCT_RDORawData* rdo) const { int timeBin{0}; const SCT3_RawData* rdoCosmic{dynamic_cast<const SCT3_RawData*>(rdo)}; if (rdoCosmic != 0) timeBin = rdoCosmic->getTimeBin(); @@ -433,7 +433,7 @@ int SCT_RodEncoder::getTimeBin(const RDO* rdo) const { ///------------------------------------------------------------------------------------- uint16_t -SCT_RodEncoder::getHeaderUsingRDO(const RDO* rdo) const { +SCT_RodEncoder::getHeaderUsingRDO(const SCT_RDORawData* rdo) const { const int rodLink{getRODLink(rdo)}; const uint16_t linkHeader{static_cast<uint16_t>(0x2000 | (m_condensed.value() << 8) | rodLink)}; return linkHeader; diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodEncoder.h b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodEncoder.h index 9553fecef4a16a14379c956cdba0913785ae6e86..d7e62143b8f4a97b96f9bf23dfbde36d13470ea3 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodEncoder.h +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodEncoder.h @@ -40,10 +40,6 @@ class SCT_RodEncoder : public extends<AthAlgTool, ISCT_RodEncoder> { public: - typedef SCT_RDORawData RDO; - typedef std::vector<const RDO*> vRDOs_t; - typedef SCT_RDO_Container SCTRawContainer; - /** constructor */ SCT_RodEncoder(const std::string& type, const std::string& name, const IInterface* parent); @@ -58,12 +54,12 @@ class SCT_RodEncoder : public extends<AthAlgTool, ISCT_RodEncoder> virtual StatusCode finalize() override; /// convert all collections of RDO's in the current list to vector of 32bit words - virtual void fillROD(std::vector<uint32_t>& vec32Data, const uint32_t& robID, const vRDOs_t& vecRDOs) const override; + virtual void fillROD(std::vector<uint32_t>& vec32Data, const uint32_t& robID, const std::vector<const SCT_RDORawData*>& vecRDOs) const override; private: /// Encode rdo into the data: called by fillROD(..) - void encodeData(const std::vector<int>& vecTimeBins, std::vector<uint16_t>& vec16Words, const RDO *rdo, const int& groupSize, const int& strip) const; + void encodeData(const std::vector<int>& vecTimeBins, std::vector<uint16_t>& vec16Words, const SCT_RDORawData* rdo, const int& groupSize, const int& strip) const; /// pack 32 bit word: called by encodeData(..) void packFragments(std::vector<uint16_t>& vec16Words, std::vector<uint32_t>& vec32Words) const; @@ -72,25 +68,25 @@ class SCT_RodEncoder : public extends<AthAlgTool, ISCT_RodEncoder> uint32_t set32Bits(const unsigned short int* arr16Words, const unsigned short int* position, const unsigned short int& numWords) const; /// Get the side info from the RDO - int side(const RDO* rdo) const; + int side(const SCT_RDORawData* rdo) const; /// Get the time bin info from the RDO - int getTimeBin(const RDO* rdo) const; + int getTimeBin(const SCT_RDORawData* rdo) const; /// Get the strip number info from the RDO - int getStrip(const RDO* rdo) const; + int getStrip(const SCT_RDORawData* rdo) const; /// Get the offline Identifirer from the RDO - Identifier offlineID(const RDO* rdo) const; + Identifier offlineID(const SCT_RDORawData* rdo) const; /// Get the online id from the RDO - uint32_t onlineID(const RDO* rdo) const; + uint32_t onlineID(const SCT_RDORawData* rdo) const; /// Get the ROD link info from the RDO - int getRODLink(const RDO* rdo) const; + int getRODLink(const SCT_RDORawData* rdo) const; /// Get the 16-bit word for a header for a hit - uint16_t getHeaderUsingRDO(const RDO* rdo) const; + uint16_t getHeaderUsingRDO(const SCT_RDORawData* rdo) const; /// Get the 16-bit word for a header for a link with a ByteStream error uint16_t getHeaderUsingHash(const IdentifierHash& linkHash, const int& errorWord) const;