 |
ATLAS Offline Software
|
Go to the documentation of this file.
7 #include "eformat/ROBFragment.h"
9 #define ENABLE_TIMING = true;
11 #define SCOPED_TIMER(name, msg) ITkPixelDecoding::ScopedTimer timer_##__LINE__(name, msg)
13 #define SCOPED_TIMER(name, msg)
17 using namespace itksw::pix::endec;
44 return StatusCode::SUCCESS;
66 fmt.options.en_chip_id =
true;
67 fmt.options.en_eos =
true;
69 DecCore<PixelCallbacks::RDOCallback> core(
fmt, cb);
73 std::vector<const eformat::ROBFragment<const uint32_t*>*>
ROBs;
81 std::vector<uint64_t> payload64;
82 std::array<std::vector<uint64_t>, 4> split_streams;
83 for (
const auto& ROB :
ROBs){
91 payload64.resize(
length / 2);
110 core.decode(payload64);
114 for (
auto &
v : split_streams)
v.clear();
115 for (
const uint64_t& word64: payload64) split_streams[(word64 >> 61) & 0b11].push_back(word64);
116 for (
uint8_t chipID = 0; chipID < 4; chipID++){
117 if (!split_streams[chipID].empty()){
119 core.decode(split_streams[chipID]);
129 return StatusCode::SUCCESS;
133 return StatusCode::SUCCESS;
def retrieve(aClass, aKey=None)
std::vector< uint32_t > m_sourceIDs
void setChipID(const uint8_t &chipID)
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
SG::ReadCondHandleKey< ITkPixelCablingData > m_pixelCablingKey
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
An algorithm that can be simultaneously executed in multiple threads.
const PixelID * m_idHelper
::StatusCode StatusCode
StatusCode definition for legacy code.
SG::WriteHandleKey< PixelRDO_Container > m_pixelRDOKey
ServiceHandle< IROBDataProviderSvc > m_robDataProviderSvc
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
size_type wafer_hash_max() const
StatusCode initialize(bool used=true)
#define SCOPED_TIMER(name, msg)
ITkPixelDecodingAlg(const std::string &name, ISvcLocator *pSvcLocator)
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
virtual StatusCode execute(const EventContext &ctx) const override
Handle class for reading from StoreGate.
virtual StatusCode finalize() override
virtual StatusCode initialize() override
void setTransformType(const ITkPixelCabling::TransformType &transform)
void setOfflineID(const uint32_t &offlineID)