15 #include <boost/thread.hpp>
16 #include <boost/bind.hpp>
17 #include <boost/archive/binary_oarchive.hpp>
21 #include "baseMQtools.h"
23 #include "FairMQLogger.h"
24 #include "mrfdata_8b.h"
32 using namespace baseMQ::tools::resolve;
33 bool checkOutputClass =
false;
35 if (is_same<boost::archive::binary_oarchive, boost::archive::binary_oarchive>::value)
37 if (has_BoostSerialization<
PndSdsDigiTopix4,
void(boost::archive::binary_oarchive&,
const unsigned int)>::value == 1)
39 checkOutputClass =
true;
51 memcpy(reinterpret_cast<u_int8_t*>(&message->
regdata[0]),fPayload->GetData(), fPayload->GetSize());
55 std::vector<ULong64_t> rawArray;
60 LOG(INFO) <<
"Frames.size " << frames.size();
61 if (frames.size() > 0)
62 LOG(INFO) <<
"Frames.front().size() " << frames.front().size();
63 if (frames.size() > 0){
64 ostringstream obuffer;
65 boost::archive::binary_oarchive OutputArchive(obuffer);
68 int outputSize = obuffer.str().length();
69 fPayload->Rebuild(outputSize);
70 memcpy(fPayload->GetData(), obuffer.str().c_str(), outputSize);
73 LOG(INFO) <<
"Data: " << frames.front().size();
Data class to store the digi output of a pixel module.
void setNumWords(const UInt_t &length)
Sets the length of the register to lengths words.
std::vector< std::vector< PndSdsDigiTopix4 > > AnalyzeData(std::vector< ULong64_t > &rawData, Double_t clockFrequency)
PndMQTopix4ProcessorTask()
std::vector< ULong64_t > GetRawData(TMrfData_8b *data)
virtual ~PndMQTopix4ProcessorTask()
Base interface class for data storage and manipulation. Compatible with IO classes from MRF Suite...
std::vector< UChar_t > regdata
Internal storage for data structure.
std::vector< PndSdsDigiTopix4 > fPndSdsDigiTopix4Vector
PndMvdReadInToPix4TBData fTopixDataReader
bool fHasBoostSerialization
virtual void Exec(Option_t *opt="0")