5#ifndef ITKPIXEL_DECODINGALG_H
6#define ITKPIXEL_DECODINGALG_H
10#include "GaudiKernel/MsgStream.h"
14#include "Identifier/Identifier.h"
18#include "itksw/pix/endec/DecCore.hpp"
22using namespace itksw::pix::endec;
34 virtual StatusCode
execute (
const EventContext& ctx)
const override;
36 virtual StatusCode
finalize()
override;
58 std::chrono::time_point<std::chrono::high_resolution_clock>
m_start;
63 auto end = std::chrono::high_resolution_clock::now();
64 auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(end -
m_start).count();
84 inline void evt_init([[maybe_unused]] uint8_t tag) {
97 inline void evt_next([[maybe_unused]] uint8_t tag) {};
103 inline void add_hit(uint16_t col, uint16_t row, uint16_t tot){
109 inline void add_hmap([[maybe_unused]] uint8_t qcol, [[maybe_unused]] uint8_t qrow, [[maybe_unused]] uint16_t hmap, [[maybe_unused]] uint64_t tots) {};
111 inline void add_qcore([[maybe_unused]] uint8_t qcol, [[maybe_unused]] uint8_t qrow, [[maybe_unused]] uint64_t qtot) {};
113 inline uint8_t
on_error([[maybe_unused]] itksw::pix::endec::intf::EventError
error) {
return 0;};
151 m_msg_source << MSG::DEBUG <<
"evt_init(" << tag <<
")" << std::endl;
155 m_msg_source << MSG::DEBUG <<
"evt_next(" << tag <<
")" << std::endl;
159 m_msg_source << MSG::DEBUG <<
"evt_done()" << std::endl;
162 inline void add_hit(uint16_t col, uint16_t row, uint16_t tot) {
163 m_msg_source << MSG::DEBUG <<
"add_hit(" << col <<
"," << row <<
"," << tot <<
")" << std::endl;
166 inline void add_hmap(uint8_t qcol, uint8_t qrow, uint16_t hmap, uint64_t tots) {
167 m_msg_source << MSG::DEBUG <<
"add_hmap(qcol=" << qcol <<
",qrow=" << qrow
168 <<
",hmap=" << hmap <<
",tots=" << tots <<
")" << std::endl;
171 inline void add_qcore(uint8_t qcol, uint8_t qrow, uint64_t qtot) {
172 m_msg_source << MSG::DEBUG <<
"add_qcore(qcol=" << qcol <<
",qrow=" << qrow
173 <<
",qtot=" << qtot <<
")" << std::endl;
This is an Identifier helper class for the Pixel subdetector.
InDetRawDataContainer< InDetRawDataCollection< PixelRDORawData > > PixelRDO_Container
Property holding a SG store/key/clid from which a ReadHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
virtual StatusCode initialize() override
ServiceHandle< IROBDataProviderSvc > m_robDataProviderSvc
std::vector< uint32_t > m_sourceIDs
virtual StatusCode finalize() override
virtual StatusCode execute(const EventContext &ctx) const override
SG::WriteHandleKey< PixelRDO_Container > m_pixelRDOKey
const PixelID * m_idHelper
SG::ReadCondHandleKey< ITkPixelCablingData > m_pixelCablingKey
std::vector< std::vector< uint32_t > > ITkPacketCollection
ITkPixelDecodingAlg(const std::string &name, ISvcLocator *pSvcLocator)
void add_hmap(uint8_t qcol, uint8_t qrow, uint16_t hmap, uint64_t tots)
uint8_t on_error(itksw::pix::endec::intf::EventError error)
PixelRDO_Container * m_rdoContainer
ITkPixelCabling::TransformType m_transform
const PixelID * m_idHelper
void evt_init(uint8_t tag)
void add_hit(uint16_t col, uint16_t row, uint16_t tot)
void setChipID(const uint8_t &chipID)
void setOfflineID(const uint32_t &offlineID)
void evt_next(uint8_t tag)
void setTransformType(const ITkPixelCabling::TransformType &transform)
void add_qcore(uint8_t qcol, uint8_t qrow, uint64_t qtot)
std::unique_ptr< PixelRDO_Collection > m_rdoCollection
RDOCallback(PixelRDO_Container *rdoContainer, const PixelID *idHelper)
void evt_next(uint8_t tag)
TestEventCallback(MsgStream &src)
void evt_init(uint8_t tag)
void add_hit(uint16_t col, uint16_t row, uint16_t tot)
void add_hmap(uint8_t qcol, uint8_t qrow, uint16_t hmap, uint64_t tots)
uint8_t on_error(itksw::pix::endec::intf::EventError error)
~TestEventCallback()=default
void add_qcore(uint8_t qcol, uint8_t qrow, uint64_t qtot)
This is an Identifier helper class for the Pixel subdetector.
Property holding a SG store/key/clid from which a WriteHandle is made.
static void chipToModuleTransform(const TransformType &transform, const uint8_t &chipID, uint16_t &col, uint16_t &row)
ScopedTimer(std::string lbl, MsgStream &src)
std::chrono::time_point< std::chrono::high_resolution_clock > m_start