21 #include <trg/cdc/modules/trgcdcetfUnpacker/TRGCDCETFUnpackerModule.h>
25 using namespace TRGCDCETFUNPACKERSPACE;
30 string TRGCDCETFUnpackerModule::version()
const
32 return string(
"1.00");
35 TRGCDCETFUnpackerModule::TRGCDCETFUnpackerModule()
39 string desc =
"TRGCDCETFUnpackerModule(" +
version() +
")";
41 B2INFO(
"TRGCDCETFUnpacker: Constructor done.");
69 for (
int i = 0; i < raw_trgarray.
getEntries(); i++) {
70 for (
int j = 0; j < raw_trgarray[i]->GetNumEntries(); j++) {
71 if (raw_trgarray[i]->GetNodeID(j) == 0x15000001) {
72 if (raw_trgarray[i]->GetDetectorNwords(j, 1) > 0) {
83 const unsigned nword_header = 3;
86 for (
int clk = 0; clk < nClks; clk++) {
89 int ntups =
m_store.getEntries() - 1;
90 int* bitArray[nLeafs + nLeafsExtra];
91 setLeafPointersArray(
m_store[ntups], bitArray);
92 for (
int l = 0; l < nLeafs + nLeafsExtra; l++) *bitArray[l] = 0;
96 m_store[ntups]->m_firmid = buf[0];
97 m_store[ntups]->m_firmvers = buf[1];
121 for (
unsigned _wd = 0; _wd < nBits / 32; _wd++) {
122 unsigned wd = buf[clk * (nBits / 32) + _wd + nword_header];
123 for (
int bb = 0; bb < 32; bb++) {
124 if ((wd >> (31 - bb)) & 1) {
125 int bitPosition = (nBits - 1) - _wd * 32 - bb;
127 leaf < nLeafs; leaf++) {
128 int bitMaxOfTheLeaf = BitMap[leaf][0];
129 int bitWidOfTheLeaf = BitMap[leaf][1];
130 int bitMinOfTheLeaf = bitMaxOfTheLeaf - bitWidOfTheLeaf;
131 if (bitMinOfTheLeaf <= bitPosition && bitPosition <= bitMaxOfTheLeaf) {
132 *bitArray[leaf] |= (1 << (bitPosition - bitMinOfTheLeaf));
void setDescription(const std::string &description)
Sets the description of the module.
Accessor to arrays stored in the data store.
int getEntries() const
Get the number of objects in the array.
virtual ~TRGCDCETFUnpackerModule()
Destructor.
virtual void initialize() override
Initilizes TRGCDCETFUnpackerUnpackerModule.
virtual void event() override
Called event by event.
virtual void endRun() override
Called when run ended.
virtual void terminate() override
Called when processing ended.
virtual void beginRun() override
Called when new run started.
virtual void fillTreeTRGCDCETFUnpacker(int *buf, int evt)
Unpacker main function.
StoreArray< TRGCDCETFUnpackerStore > m_store
Output datastore for unpacker.
std::string version() const
returns version of TRGCDCETFUnpackerModule.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Abstract base class for different kinds of events.