7#include "eformat/SourceIdentifier.h"
12using eformat::helper::SourceIdentifier;
21 rmod.reserve(roms.size());
24 SourceIdentifier sid{
static_cast<eformat::SubDetector
>(larROMService.
subDet(mId)),
25 static_cast<uint8_t
>(larROMService.
rodFragId(mId))};
26 const uint32_t rod_id = sid.code();
27 rmod.push_back(rod_id);
42 if(it!=
m_lookup.end())
return it->second;
44 throw std::out_of_range(
"LArRodIdHash: invalid Rod number" + std::to_string(
id));
Service for creating and interpreting LAr readout modules identifiers.
static int subDet(const HWIdentifier &id)
return sub-detector identifier
static int rodFragId(const HWIdentifier &id)
return ROD fragment identifier ( == ROL == ROB identifier )
unsigned int ID
definition of ID type
std::unordered_map< ID, size_t > m_lookup
lookup map
std::vector< ID > m_int2id
reverse lookup
size_t operator()(ID id) const
convert ID to index throws std::out_of_range if not found
void initialize(int offset, const std::vector< HWIdentifier > &roms)
Initialize.
int offset() const
return offset