ATLAS Offline Software
Loading...
Searching...
No Matches
Decoder::Fragment Struct Reference
Collaboration diagram for Decoder::Fragment:

Public Member Functions

template<typename T>
void addTob (const T &tob, int sliceNumber)
std::vector< uint32_t > getWords (uint32_t shelfNumber)

Public Attributes

int numSlices = 1
std::map< Module::Id, Modulemodules = {}

Detailed Description

Definition at line 362 of file eFexByteStreamTool.cxx.

Member Function Documentation

◆ addTob()

template<typename T>
void Decoder::Fragment::addTob ( const T & tob,
int sliceNumber )
inline

Definition at line 364 of file eFexByteStreamTool.cxx.

364 {
365 const uint32_t shelfNumber = tob.shelfNumber();
366 const uint32_t efexNumber = tob.eFexNumber();
367 modules[{.shelfNumber=shelfNumber,.efexNumber=efexNumber}].addTob(tob,sliceNumber);
368 }
setEventNumber uint32_t
std::map< Module::Id, Module > modules

◆ getWords()

std::vector< uint32_t > Decoder::Fragment::getWords ( uint32_t shelfNumber)
inline

Definition at line 369 of file eFexByteStreamTool.cxx.

369 {
370 std::vector<uint32_t> out;
371 for(auto& [id,module] : modules) {
372 if(id.shelfNumber!=shelfNumber) continue;
373 auto words = module.getWords(id,numSlices);
374 out.insert(out.end(),words.begin(),words.end());
375 }
376 // add the rod trailer (the bits that matter, at least)
377 uint32_t rodTrailer1 = 0;
378 uint32_t rodTrailer2 = 0;
379
380 rodTrailer1 += (out.size()&0xffff);
381
382 out.push_back(rodTrailer1);
383 out.push_back(rodTrailer2);
384 return out;
385 }

Member Data Documentation

◆ modules

std::map<Module::Id,Module> Decoder::Fragment::modules = {}

Definition at line 386 of file eFexByteStreamTool.cxx.

386{};

◆ numSlices

int Decoder::Fragment::numSlices = 1

Definition at line 363 of file eFexByteStreamTool.cxx.


The documentation for this struct was generated from the following file: