ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ITkStripsRodEncoder Class Reference

Athena Algorithm Tool that provides conversion from ITkStrips RDO to ROD format Bytestream. More...

#include <ITkStripsRodEncoder.h>

Inheritance diagram for ITkStripsRodEncoder:
Collaboration diagram for ITkStripsRodEncoder:

Public Member Functions

virtual ~ITkStripsRodEncoder ()=default
 Destructor. More...
 
virtual StatusCode initialize () override
 Initialize. More...
 
virtual void fillROD (std::vector< uint32_t > &vec32Data, const uint32_t &robID, const std::vector< const SCT_RDORawData * > &vecRDOs) const override
 Main Convert method. More...
 

Private Member Functions

void encodeData (const std::vector< uint16_t > &clusters, std::vector< uint8_t > &data_encode, int typ, uint8_t l0tag, uint8_t bc_count) const
 
void packFragments (std::vector< uint8_t > &vec8Words, std::vector< uint32_t > &vec32Words) const
 Method to pack vector of 8 bit words intto a vector of 32 bit words. More...
 
std::vector< uint16_t > clusterFinder (const std::bitset< 256 > &inputData, const uint8_t maxCluster=63) const
 @breif Method to set pairs of 8 bit words to a 32 bit word. More...
 
uint16_t clusterFinder_sub (uint64_t &hits_high64, uint64_t &hits_low64, bool isSecondRow) const
 
uint32_t set32Bits (const unsigned short int *arr8Words, const unsigned short int *position, const unsigned short int &numWords) const
 
bool getBit_128b (uint8_t bit_addr, uint64_t data_high64, uint64_t data_low64) const
 
void setBit_128b (uint8_t bit_addr, bool value, uint64_t &data_high64, uint64_t &data_low64) const
 
bool getParity_8bits (uint8_t val) const
 
int getBarrelEC (const SCT_RDORawData *rdo) const
 Get the barrel/endcape info from the RDO. More...
 
int getDiskLayer (const SCT_RDORawData *rdo) const
 Get disk/layer info from the RDO. More...
 
int getPhiModule (const SCT_RDORawData *rdo) const
 Get the phi value info from the RDO. More...
 
int getEtaModule (const SCT_RDORawData *rdo) const
 Get the eta value info from the RDO. More...
 
int getStripMax (const SCT_RDORawData *rdo) const
 Get the maxumum strip value info from the RDO. More...
 
int side (const SCT_RDORawData *rdo) const
 Get the side info from the RDO. More...
 
int getTimeBin (const SCT_RDORawData *rdo) const
 Get the time bin info from the RDO. More...
 
int getStrip (const SCT_RDORawData *rdo) const
 Get the strip number info from the RDO. More...
 
Identifier offlineID (const SCT_RDORawData *rdo) const
 Get the offline Identifier from the RDO. More...
 
uint32_t onlineID (const SCT_RDORawData *rdo) const
 Get the online Identifier from the RDO. More...
 
int getRODLink (const SCT_RDORawData *rdo) const
 Get the ROD link number info in the RDO header data. More...
 
uint16_t getHeaderPhysicsPacket (int typ, uint8_t l0tag, uint8_t bc_count) const
 Get the 16-bit word for a header with Type (PR or LP), L0Tag event and BCID. More...
 
uint16_t getHeaderUsingRDO (const SCT_RDORawData *rdo) const
 Get the 16-bit word for a header for a hit. More...
 
uint16_t getHeaderUsingHash (const IdentifierHash &linkHash, const int &errorWord) const
 Get the 16-bit word for a header for a link with a ByteStream error. More...
 
uint16_t getTrailer (const int &errorWord) const
 Get the 16-bit word for a trailer, with or without ByteStream errors. More...
 

Private Attributes

std::atomic< uint8_t > m_bcid = 0
 Method to encode RDO data to vector of 16 bin words. More...
 
std::atomic< uint8_t > m_l0tag = 0
 
ToolHandle< IITkStripCablingToolm_cabling
 Providing mappings of online and offline identifiers and also serial numbers. More...
 
const SCT_IDm_itkStripsID {nullptr}
 Identifier helper class for the ITkStrips subdetector that creates compact Identifier objects and IdentifierHash or hash IDs. More...
 
BooleanProperty m_condensed {this, "CondensedMode", false, "Condensed mode (true) or Expanded mode (false)"}
 Example Boolean used to determine decoding mode, maybe unused finally. More...
 
std::set< Identifierm_swapModuleID {}
 Swap Module identifier, set by SCTRawContByteStreamTool. More...
 

Detailed Description

Athena Algorithm Tool that provides conversion from ITkStrips RDO to ROD format Bytestream.

Definition at line 29 of file ITkStripsRodEncoder.h.

Constructor & Destructor Documentation

◆ ~ITkStripsRodEncoder()

virtual ITkStripsRodEncoder::~ITkStripsRodEncoder ( )
virtualdefault

Destructor.

Member Function Documentation

◆ clusterFinder()

std::vector< uint16_t > ITkStripsRodEncoder::clusterFinder ( const std::bitset< 256 > &  inputData,
const uint8_t  maxCluster = 63 
) const
private

@breif Method to set pairs of 8 bit words to a 32 bit word.

Function used by the packFragments(...) method.

Parameters
arr8WordsPointer to array containing a pair of 8 bit words.
positionPointer to an array that gives the 32 bit starting positions of the 8 bit words and corresponding to arr8Words.
numWordsNumber of word to be set to a 32 bit word.

Definition at line 161 of file ITkStripsRodEncoder.cxx.

161  {
162 
163  std::vector<uint16_t> clusters;
164 
165  // Split the 256-bit input data into four 64-bit chunks for processing
166  uint64_t d0l = chunk<0>(inputData);
167  uint64_t d0h = chunk<1>(inputData);
168 
169  uint64_t d1l = chunk<2>(inputData);
170  uint64_t d1h = chunk<3>(inputData);
171 
172  while (d0l or d0h or d1l or d1h){
173  if (clusters.size() > maxCluster) break;
174 
175  uint16_t cluster1 = clusterFinder_sub(d1h, d1l, true);
176  if (cluster1 != 0x3ff) // No cluster was found
177  clusters.push_back(cluster1);
178 
179  if (clusters.size() > maxCluster) break;
180 
181  uint16_t cluster0 = clusterFinder_sub(d0h, d0l, false);
182  if (cluster0 != 0x3ff) // No cluster was found
183  clusters.push_back(cluster0);
184  }
185 
186  if (clusters.empty()) {
187  clusters.push_back(0x3fe);
188  } else {
189  clusters.back() |=1 << 11;
190  }
191 
192  return clusters;
193 }

◆ clusterFinder_sub()

uint16_t ITkStripsRodEncoder::clusterFinder_sub ( uint64_t &  hits_high64,
uint64_t &  hits_low64,
bool  isSecondRow 
) const
private

Definition at line 214 of file ITkStripsRodEncoder.cxx.

214  {
215  uint8_t hit_addr = 128;
216  uint8_t hitpat_next3 = 0;
217 
218  if (hits_low64){
219  hit_addr = __builtin_ctzll(hits_low64);
220  } else if (hits_high64){
221  hit_addr = __builtin_ctzll(hits_high64) + 64;
222  }
223 
224  hitpat_next3 = getBit_128b(hit_addr+1, hits_high64, hits_low64) << 2
225  | getBit_128b(hit_addr+2, hits_high64, hits_low64) << 1
226  | getBit_128b(hit_addr+3, hits_high64, hits_low64);
227 
228  for (int i=0; i<4; ++i)
229  setBit_128b(hit_addr+i, 0, hits_high64, hits_low64);
230 
231  if (hit_addr == 128) {
232  return 0x3ff;
233  } else {
234  hit_addr += isSecondRow<<7;
235  return hit_addr << 3 | hitpat_next3;
236  }
237 }

◆ encodeData()

void ITkStripsRodEncoder::encodeData ( const std::vector< uint16_t > &  clusters,
std::vector< uint8_t > &  data_encode,
int  typ,
uint8_t  l0tag,
uint8_t  bc_count 
) const
private

Definition at line 130 of file ITkStripsRodEncoder.cxx.

131  {
132 
133  uint16_t header = getHeaderPhysicsPacket(ptyp, l0tag, bc_count);
134 
135  data_encode.push_back((header>>8) & 0xff);
136  data_encode.push_back(header & 0xff);
137 
138  size_t cluster_count = 0;
139  for ( uint16_t cluster : clusters) {
140  if (cluster_count == 4){
141  // Max number of clusters per package 4
142  break;
143  }
144 
145  uint16_t clusterbits = cluster & 0x7ff;
146  data_encode.push_back((clusterbits>>8) & 0xff);
147  data_encode.push_back(clusterbits & 0xff);
148  cluster_count++;
149  }
150 
151  while (cluster_count < 4) {
152  data_encode.push_back(0x7F); // Cluster empty (0x7FF in 12 bits)
153  data_encode.push_back(0xFF);
154  cluster_count++;
155  }
156 
157  return;
158 }

◆ fillROD()

void ITkStripsRodEncoder::fillROD ( std::vector< uint32_t > &  vec32Data,
const uint32_t &  robID,
const std::vector< const SCT_RDORawData * > &  vecRDOs 
) const
overridevirtual

Main Convert method.

Converts SCT RDO to a vector of 32 bit words. Starts by retrieving and collecting errors, then loops through RDO's and decode them to 16 bit words, and then finally it packs the 16 bit word into 32 bit words vector.

Parameters
vec32DataVector of 32 bit words to be filled with encoded RDOs from the SCT.
robIDID of the current readout buffer (ROB).
vecRDOsVector containing the RDOs to be coverted to vector of 32 bit words.

Definition at line 67 of file ITkStripsRodEncoder.cxx.

68  {
69  //code to be filled here
70 
71  std::unordered_map<uint64_t, std::vector<std::bitset<256>>> allStripData;
72 
73  for (const auto& rdo : vecRDOs) {
74  int barrel = getBarrelEC(rdo);
75  int disk = getDiskLayer(rdo);
76  int phi_mod = getPhiModule(rdo);
77  int eta_mod = getEtaModule(rdo);
78  int strip_max = getStripMax(rdo);
79 
80  if (strip_max < 0){
81  continue;
82  }
83  int eta_group;
84 
85  if (barrel == 0) {
86  eta_group = static_cast<int>(std::floor((eta_mod+1) / 2)); //To work with barrel
87  }else {
88  eta_group = static_cast<int>(std::floor(eta_mod / 2)); //To work with endcap
89  }
90 
91  int chips_per_module = (strip_max + 1) / 128;
92  uint64_t key = geometryKey(barrel, disk, phi_mod, eta_group);
93  auto& StripData = allStripData[key];
94 
95  if (StripData.empty()) {
96  StripData.resize(chips_per_module);
97  }
98 
99  //Populate the bitset for each chip with active strips
100  int strip = getStrip(rdo);
101  int chip = static_cast<int>(std::floor(strip / 128));
102  int strip_position = strip % 128;
103  int strip_logical_channel = 2*strip_position + (eta_mod & 1);
104  StripData[chip].set(strip_logical_channel);
105  }
106 
107  std::vector<uint8_t> vec8Data;
108  vec8Data.reserve(10);
109 
110  //Iterate over processed strip data and find clusters
111  for (const auto& [key, StripData] : allStripData) {
112  int ptype = 1;
113  for (size_t i = 0; i < StripData.size(); ++i) {
114  if (StripData[i].any()) {
115  std::bitset<256> hits = StripData[i];
116  //Use clusterFinder to extract clusters from the bitset
117  std::vector<uint16_t> clusters = clusterFinder(hits);
118  encodeData(clusters, vec8Data, ptype, m_l0tag , m_bcid);
119  }
120  }
121  //Update BCID and L0Tag counters
122  m_bcid = (m_bcid + 1) & 0x7F;
123  m_l0tag = (m_l0tag + 1) & 0x7F;
124  }
125  packFragments(vec8Data,vec32Data);
126  return;
127 }

◆ getBarrelEC()

int ITkStripsRodEncoder::getBarrelEC ( const SCT_RDORawData rdo) const
private

Get the barrel/endcape info from the RDO.

Definition at line 313 of file ITkStripsRodEncoder.cxx.

313  {
314  const Identifier rdoID{rdo->identify()};
315  int itkBarrel{m_itkStripsID->barrel_ec(rdoID)};
316  return itkBarrel;
317 }

◆ getBit_128b()

bool ITkStripsRodEncoder::getBit_128b ( uint8_t  bit_addr,
uint64_t  data_high64,
uint64_t  data_low64 
) const
inlineprivate

Definition at line 196 of file ITkStripsRodEncoder.cxx.

196  {
197  if (bit_addr > 127) return false;
198 
199  return bit_addr<64 ? data_low64>>bit_addr & 1 : data_high64>>(bit_addr-64) & 1;
200 }

◆ getDiskLayer()

int ITkStripsRodEncoder::getDiskLayer ( const SCT_RDORawData rdo) const
private

Get disk/layer info from the RDO.

Definition at line 320 of file ITkStripsRodEncoder.cxx.

320  {
321  const Identifier rdoID{rdo->identify()};
322  int itkDiskLayer{m_itkStripsID->layer_disk(rdoID)};
323  return itkDiskLayer;
324 }

◆ getEtaModule()

int ITkStripsRodEncoder::getEtaModule ( const SCT_RDORawData rdo) const
private

Get the eta value info from the RDO.

Definition at line 334 of file ITkStripsRodEncoder.cxx.

334  {
335  const Identifier rdoID{rdo->identify()};
336  int itkEtaModule{m_itkStripsID->eta_module(rdoID)};
337  return itkEtaModule;
338 }

◆ getHeaderPhysicsPacket()

uint16_t ITkStripsRodEncoder::getHeaderPhysicsPacket ( int  typ,
uint8_t  l0tag,
uint8_t  bc_count 
) const
private

Get the 16-bit word for a header with Type (PR or LP), L0Tag event and BCID.

Definition at line 356 of file ITkStripsRodEncoder.cxx.

356  {
357  uint8_t bcid_low = bc_cout & 0x7; // BCID[2:0]
358  bool bc_parity = getParity_8bits(bc_cout);
359  //TYPE (4 bits) + FlagBit (1 bit) + L0tag (7 bits) + BCID (3 bits) + Parity (1 bit)
360  const uint16_t Header{static_cast<uint16_t>(((uint8_t)typ << 12) | (0x1 << 11) | (l0tag & 0x7f) << 4 | (bcid_low) << 1 | bc_parity)};
361  return Header;
362 
363 }

◆ getHeaderUsingHash()

uint16_t ITkStripsRodEncoder::getHeaderUsingHash ( const IdentifierHash linkHash,
const int &  errorWord 
) const
private

Get the 16-bit word for a header for a link with a ByteStream error.

Definition at line 375 of file ITkStripsRodEncoder.cxx.

375  {
376  const int rodLink{rodLinkFromOnlineID(m_cabling->getOnlineIdFromHash(linkHash))};
377  const uint16_t linkHeader{static_cast<uint16_t>(0x2000 | errorWord | (m_condensed.value() << 8) | rodLink)};
378  return linkHeader;
379 }

◆ getHeaderUsingRDO()

uint16_t ITkStripsRodEncoder::getHeaderUsingRDO ( const SCT_RDORawData rdo) const
private

Get the 16-bit word for a header for a hit.

Definition at line 368 of file ITkStripsRodEncoder.cxx.

368  {
369  const int rodLink{getRODLink(rdo)};
370  const uint16_t linkHeader{static_cast<uint16_t>(0x2000 | (m_condensed.value() << 8) | rodLink)};
371  return linkHeader;
372 }

◆ getParity_8bits()

bool ITkStripsRodEncoder::getParity_8bits ( uint8_t  val) const
private

Definition at line 348 of file ITkStripsRodEncoder.cxx.

348  {
349  val ^= val >> 4;
350  val ^= val >> 2;
351  val ^= val >> 1;
352  return val&1;
353 }

◆ getPhiModule()

int ITkStripsRodEncoder::getPhiModule ( const SCT_RDORawData rdo) const
private

Get the phi value info from the RDO.

Definition at line 327 of file ITkStripsRodEncoder.cxx.

327  {
328  const Identifier rdoID{rdo->identify()};
329  int itkPhiModule{m_itkStripsID->phi_module(rdoID)};
330  return itkPhiModule;
331 }

◆ getRODLink()

int ITkStripsRodEncoder::getRODLink ( const SCT_RDORawData rdo) const
private

Get the ROD link number info in the RDO header data.

Definition at line 301 of file ITkStripsRodEncoder.cxx.

301  {
302  return rodLinkFromOnlineID(onlineID(rdo));
303 }

◆ getStrip()

int ITkStripsRodEncoder::getStrip ( const SCT_RDORawData rdo) const
private

Get the strip number info from the RDO.

Definition at line 282 of file ITkStripsRodEncoder.cxx.

282  {
283  const Identifier rdoID{rdo->identify()};
284  return m_itkStripsID->strip(rdoID);
285 }

◆ getStripMax()

int ITkStripsRodEncoder::getStripMax ( const SCT_RDORawData rdo) const
private

Get the maxumum strip value info from the RDO.

Definition at line 341 of file ITkStripsRodEncoder.cxx.

341  {
342  const Identifier rdoID{rdo->identify()};
343  int itkStripMax{m_itkStripsID->strip_max(rdoID)};
344  return itkStripMax;
345 }

◆ getTimeBin()

int ITkStripsRodEncoder::getTimeBin ( const SCT_RDORawData rdo) const
private

Get the time bin info from the RDO.

◆ getTrailer()

uint16_t ITkStripsRodEncoder::getTrailer ( const int &  errorWord) const
private

Get the 16-bit word for a trailer, with or without ByteStream errors.

Definition at line 382 of file ITkStripsRodEncoder.cxx.

382  {
383  const uint16_t linkTrailer{static_cast<uint16_t>(0x4000 | errorWord)};
384  return linkTrailer;
385 }

◆ initialize()

StatusCode ITkStripsRodEncoder::initialize ( )
overridevirtual

Initialize.

Definition at line 45 of file ITkStripsRodEncoder.cxx.

45  {
46  ATH_MSG_DEBUG("ITkStripsRodEncoder::initialize()");
47 
48  // Retrieve cabling tool
49  ATH_CHECK(m_cabling.retrieve());
50  ATH_MSG_DEBUG("Retrieved tool " << m_cabling);
52  const InDetDD::SCT_DetectorManager* itkStripsDetManager{nullptr};
53  ATH_CHECK(detStore()->retrieve(itkStripsDetManager, "ITkStrip"));
54  const InDetDD::SiDetectorElementCollection* sctDetElementColl{itkStripsDetManager->getDetectorElementCollection()};
55  for (const InDetDD::SiDetectorElement* sctDetElement : *sctDetElementColl) {
56  if (sctDetElement->swapPhiReadoutDirection()) {
57  m_swapModuleID.insert(sctDetElement->identify());
58  }
59  }
60  ATH_MSG_DEBUG("Initialization was successful");
61  return StatusCode::SUCCESS;
62 }

◆ offlineID()

Identifier ITkStripsRodEncoder::offlineID ( const SCT_RDORawData rdo) const
private

Get the offline Identifier from the RDO.


Definition at line 288 of file ITkStripsRodEncoder.cxx.

288  {
289  const Identifier rdoId{rdo->identify()};
290  return m_itkStripsID->wafer_id(rdoId);
291 }

◆ onlineID()

uint32_t ITkStripsRodEncoder::onlineID ( const SCT_RDORawData rdo) const
private

Get the online Identifier from the RDO.

Definition at line 294 of file ITkStripsRodEncoder.cxx.

294  {
295  const Identifier waferID{offlineID(rdo)};
296  const IdentifierHash offlineIDHash{m_itkStripsID->wafer_hash(waferID)};
297  return static_cast<uint32_t>(m_cabling->getOnlineIdFromHash(offlineIDHash));
298 }

◆ packFragments()

void ITkStripsRodEncoder::packFragments ( std::vector< uint8_t > &  vec8Words,
std::vector< uint32_t > &  vec32Words 
) const
private

Method to pack vector of 8 bit words intto a vector of 32 bit words.

Method us used by private method encodeData(...).

Parameters
vec8WordsVector containing 8 bit words.
vec32WordsVector for 32 bit words to be packed.

Definition at line 240 of file ITkStripsRodEncoder.cxx.

240  {
241  int num8Words{static_cast<int>(vec8Words.size())};
242  if (num8Words % 4 != 0) {
243  // Just add additional 8-bit words to make the size a multiple of 4
244  while (num8Words % 4 != 0) {
245  vec8Words.push_back(0x40); // Padding byte
246  num8Words++;
247  }
248  }
249  // Now merge 4 consecutive 8-bit words into 32-bit words
250  const unsigned short int numWords{4};
251  const unsigned short int position[numWords]{0, 8, 16, 24};
252  unsigned short int arr8Words[numWords]{0, 0, 0, 0};
253 
254  for (int i{0}; i<num8Words; i += numWords) {
255  for (int j{0}; j<numWords; j++) {
256  arr8Words[j] = vec8Words[i + j];
257  }
258  const uint32_t uint32Word{set32Bits(arr8Words, position, numWords)};
259  vec32Words.push_back(uint32Word);
260  }
261  return;
262 }

◆ set32Bits()

uint32_t ITkStripsRodEncoder::set32Bits ( const unsigned short int *  arr8Words,
const unsigned short int *  position,
const unsigned short int &  numWords 
) const
private

Definition at line 266 of file ITkStripsRodEncoder.cxx.

267 {
268  uint32_t uint32Word{0};
269  uint32_t pos{0};
270  uint32_t uint8Word{0};
271  for (uint16_t i{0}; i<numWords; i++) {
272  uint8Word = static_cast<uint32_t>(*(arr8Words + i));
273  pos = static_cast<uint32_t>(*(position + i));
274  uint32Word |= (uint8Word << pos); // Shift the 8-bit word to its correct position and merge
275  }
276  return uint32Word;
277 }

◆ setBit_128b()

void ITkStripsRodEncoder::setBit_128b ( uint8_t  bit_addr,
bool  value,
uint64_t &  data_high64,
uint64_t &  data_low64 
) const
inlineprivate

Definition at line 203 of file ITkStripsRodEncoder.cxx.

203  {
204  if (bit_addr < 64) {
205  data_low64 = (data_low64 & ~(1ULL << bit_addr)) | ((uint64_t)value << bit_addr);
206  } else if (bit_addr < 128) {
207  data_high64 =
208  (data_high64 & ~(1ULL << (bit_addr-64))) | ((uint64_t)value << (bit_addr-64));
209  }
210 }

◆ side()

int ITkStripsRodEncoder::side ( const SCT_RDORawData rdo) const
private

Get the side info from the RDO.

Definition at line 306 of file ITkStripsRodEncoder.cxx.

306  {
307  const Identifier rdoID{rdo->identify()};
308  int itkSide{m_itkStripsID->side(rdoID)};
309  return itkSide;
310 }

Member Data Documentation

◆ m_bcid

std::atomic<uint8_t> ITkStripsRodEncoder::m_bcid = 0
mutableprivate

Method to encode RDO data to vector of 16 bin words.

Methods used by main convert methods fillROD(...).

Parameters
vecTimeBinsVector of time bins for RDOs.
vec16WordsVector of 16 bit words to filled from encoded RDO data.
rdoRDO raw data object to be encoded.
groupSizeGroup size info from the RDO.
stripStrip number info from the RDO.

Definition at line 70 of file ITkStripsRodEncoder.h.

◆ m_cabling

ToolHandle<IITkStripCablingTool> ITkStripsRodEncoder::m_cabling
private
Initial value:
{this,
"ITkStripCablingTool",
"ITkStripCablingTool",
"Tool to retrieve ITkStrips Cabling"}

Providing mappings of online and offline identifiers and also serial numbers.

Definition at line 152 of file ITkStripsRodEncoder.h.

◆ m_condensed

BooleanProperty ITkStripsRodEncoder::m_condensed {this, "CondensedMode", false, "Condensed mode (true) or Expanded mode (false)"}
private

Example Boolean used to determine decoding mode, maybe unused finally.

Definition at line 162 of file ITkStripsRodEncoder.h.

◆ m_itkStripsID

const SCT_ID* ITkStripsRodEncoder::m_itkStripsID {nullptr}
private

Identifier helper class for the ITkStrips subdetector that creates compact Identifier objects and IdentifierHash or hash IDs.

Also allows decoding of these IDs.

Definition at line 159 of file ITkStripsRodEncoder.h.

◆ m_l0tag

std::atomic<uint8_t> ITkStripsRodEncoder::m_l0tag = 0
mutableprivate

Definition at line 71 of file ITkStripsRodEncoder.h.

◆ m_swapModuleID

std::set<Identifier> ITkStripsRodEncoder::m_swapModuleID {}
private

Swap Module identifier, set by SCTRawContByteStreamTool.

Definition at line 165 of file ITkStripsRodEncoder.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
ITkStripsRodEncoder::m_cabling
ToolHandle< IITkStripCablingTool > m_cabling
Providing mappings of online and offline identifiers and also serial numbers.
Definition: ITkStripsRodEncoder.h:152
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
SiliconTech::strip
@ strip
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
header
Definition: hcg.cxx:526
InDetDD::SiDetectorElementCollection
Definition: SiDetectorElementCollection.h:27
ITkStripsRodEncoder::getDiskLayer
int getDiskLayer(const SCT_RDORawData *rdo) const
Get disk/layer info from the RDO.
Definition: ITkStripsRodEncoder.cxx:320
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:558
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
ITkStripsRodEncoder::m_swapModuleID
std::set< Identifier > m_swapModuleID
Swap Module identifier, set by SCTRawContByteStreamTool.
Definition: ITkStripsRodEncoder.h:165
ITkStripsRodEncoder::clusterFinder
std::vector< uint16_t > clusterFinder(const std::bitset< 256 > &inputData, const uint8_t maxCluster=63) const
@breif Method to set pairs of 8 bit words to a 32 bit word.
Definition: ITkStripsRodEncoder.cxx:161
athena.value
value
Definition: athena.py:124
SCT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: SCT_ID.h:728
SCT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: SCT_ID.h:740
ITkStripsRodEncoder::onlineID
uint32_t onlineID(const SCT_RDORawData *rdo) const
Get the online Identifier from the RDO.
Definition: ITkStripsRodEncoder.cxx:294
ITkStripsRodEncoder::clusterFinder_sub
uint16_t clusterFinder_sub(uint64_t &hits_high64, uint64_t &hits_low64, bool isSecondRow) const
Definition: ITkStripsRodEncoder.cxx:214
ITkStripsRodEncoder::getPhiModule
int getPhiModule(const SCT_RDORawData *rdo) const
Get the phi value info from the RDO.
Definition: ITkStripsRodEncoder.cxx:327
ITkStripsRodEncoder::set32Bits
uint32_t set32Bits(const unsigned short int *arr8Words, const unsigned short int *position, const unsigned short int &numWords) const
Definition: ITkStripsRodEncoder.cxx:266
ITkStripsRodEncoder::getStripMax
int getStripMax(const SCT_RDORawData *rdo) const
Get the maxumum strip value info from the RDO.
Definition: ITkStripsRodEncoder.cxx:341
ITkStripsRodEncoder::m_condensed
BooleanProperty m_condensed
Example Boolean used to determine decoding mode, maybe unused finally.
Definition: ITkStripsRodEncoder.h:162
ITkStripsRodEncoder::getRODLink
int getRODLink(const SCT_RDORawData *rdo) const
Get the ROD link number info in the RDO header data.
Definition: ITkStripsRodEncoder.cxx:301
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
lumiFormat.i
int i
Definition: lumiFormat.py:85
ITkStripsRodEncoder::offlineID
Identifier offlineID(const SCT_RDORawData *rdo) const
Get the offline Identifier from the RDO.
Definition: ITkStripsRodEncoder.cxx:288
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SCT_ID::wafer_hash
IdentifierHash wafer_hash(const Identifier &wafer_id) const
wafer hash from id - optimized
Definition: SCT_ID.h:492
ITkStripsRodEncoder::getParity_8bits
bool getParity_8bits(uint8_t val) const
Definition: ITkStripsRodEncoder.cxx:348
ITkStripsRodEncoder::getEtaModule
int getEtaModule(const SCT_RDORawData *rdo) const
Get the eta value info from the RDO.
Definition: ITkStripsRodEncoder.cxx:334
ITkStripsRodEncoder::m_bcid
std::atomic< uint8_t > m_bcid
Method to encode RDO data to vector of 16 bin words.
Definition: ITkStripsRodEncoder.h:70
ITkStripsRodEncoder::setBit_128b
void setBit_128b(uint8_t bit_addr, bool value, uint64_t &data_high64, uint64_t &data_low64) const
Definition: ITkStripsRodEncoder.cxx:203
ITkStripsRodEncoder::m_l0tag
std::atomic< uint8_t > m_l0tag
Definition: ITkStripsRodEncoder.h:71
ITkStripsRodEncoder::getBit_128b
bool getBit_128b(uint8_t bit_addr, uint64_t data_high64, uint64_t data_low64) const
Definition: ITkStripsRodEncoder.cxx:196
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
SCT_ID::layer_disk
int layer_disk(const Identifier &id) const
Definition: SCT_ID.h:734
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
ITkStripsRodEncoder::getHeaderPhysicsPacket
uint16_t getHeaderPhysicsPacket(int typ, uint8_t l0tag, uint8_t bc_count) const
Get the 16-bit word for a header with Type (PR or LP), L0Tag event and BCID.
Definition: ITkStripsRodEncoder.cxx:356
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:16
ITkStripsRodEncoder::encodeData
void encodeData(const std::vector< uint16_t > &clusters, std::vector< uint8_t > &data_encode, int typ, uint8_t l0tag, uint8_t bc_count) const
Definition: ITkStripsRodEncoder.cxx:130
ITkStripsRodEncoder::getStrip
int getStrip(const SCT_RDORawData *rdo) const
Get the strip number info from the RDO.
Definition: ITkStripsRodEncoder.cxx:282
ITkStripsRodEncoder::getBarrelEC
int getBarrelEC(const SCT_RDORawData *rdo) const
Get the barrel/endcape info from the RDO.
Definition: ITkStripsRodEncoder.cxx:313
SCT_ID::strip
int strip(const Identifier &id) const
Definition: SCT_ID.h:764
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
SCT_ID::eta_module
int eta_module(const Identifier &id) const
Definition: SCT_ID.h:746
SCT_ID::strip_max
int strip_max(const Identifier &id) const
Definition: SCT_ID.cxx:197
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
DetectorZone::barrel
@ barrel
SCT_ID::side
int side(const Identifier &id) const
Definition: SCT_ID.h:752
InDetRawData::identify
virtual Identifier identify() const override final
Definition: InDetRawData.h:41
SCT_ID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
Definition: SCT_ID.h:464
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
ITkStripsRodEncoder::m_itkStripsID
const SCT_ID * m_itkStripsID
Identifier helper class for the ITkStrips subdetector that creates compact Identifier objects and Ide...
Definition: ITkStripsRodEncoder.h:159
ITkStripsRodEncoder::packFragments
void packFragments(std::vector< uint8_t > &vec8Words, std::vector< uint32_t > &vec32Words) const
Method to pack vector of 8 bit words intto a vector of 32 bit words.
Definition: ITkStripsRodEncoder.cxx:240
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
Identifier
Definition: IdentifierFieldParser.cxx:14