1 #include "DAQDataFormats/RawEventV0.h" 2 #include "DAQDataFormats/RawEventHeader.h" 3 #include "DAQDataFormats/RawEventTail.h" 4 #include "DAQDataFormats/RawDataBlock.h" 5 #include "DAQDataFormats/RawTrigger.h" 6 #include "DAQDataFormats/RawEvent.h" 8 #include <boost/format.hpp> 17 #include "DAQDataFormats/DataFormatFirst.inc" 18 #define CURRENT_CLASS RawEvent 19 #define CURRENT_CLASS_VERSION 0 20 #define CURRENT_FIELDS_SUB_NAMESPACE rawevent 21 #include "DAQDataFormats/DataFormatLast.inc" 81 ,_FloatingDataBlock (NULL)
82 ,_FloatingDataBlockNumber (-1)
170 uint32_t size_of_data =
_Header->sizeofdata() + 1;
174 size_of_data +=
_Trigger->sizeofdata();
176 if(_shouldBufferBeInternal){
177 resizeInternalBuffer(size_of_data);
179 checkBufferInternalness();
186 if(_shouldBufferBeInternal){
187 resizeInternalBuffer(size_of_data);
189 checkBufferInternalness();
196 _Header->setEventSize(size_of_data);
209 RETURN_FUNCTION(addDataBlockWithSize)(datablock_buffer, temp_datablock_header.getDataSize());
217 bool RawEvent::addDataBlockWithSize(
const void* datablock_buffer,
const uint32_t datablock_size){
231 _Header->addEventSize(datablock_size);
232 _Header->advanceDataBlockNumber();
236 readDataGeneral(datablock_buffer, datablock_size, current_size - 1);
239 checkBufferInternalness();
248 bool RawEvent::setAppropriateMCFlag(
const void* datablock_buffer){
270 const uint32_t new_event_size = old_event_size +
_Tail->sizeofdata();
272 _Header->setEventSize(new_event_size);
275 if(_shouldBufferBeInternal){
276 resizeInternalBuffer(new_event_size);
278 checkBufferInternalness();
290 _Header->setCRCCalculationUsed(
true);
301 _Tail->setBufferSource(pointer);
306 _Tail->setBufferSource(pointer);
319 uint32_t RawEvent::getHeaderMarkerLeft()
const {
return _Header->getMarkerLeft();}
320 uint32_t RawEvent::getHeaderMarkerRight()
const {
return _Header->getMarkerRight();}
321 uint32_t RawEvent::getVersion()
const {
return _Header->getVersion();}
322 uint32_t RawEvent::getDataLoggerID()
const {
return _Header->getDataLoggerID();}
323 uint32_t RawEvent::getRunNumber()
const {
return _Header->getRunNumber();}
324 uint32_t RawEvent::getRunType()
const {
return _Header->getRunType();}
325 uint32_t RawEvent::getConfigIDX()
const {
return _Header->getConfigIDX();}
326 uint32_t RawEvent::getPartition()
const {
return _Header->getPartition();}
327 uint32_t RawEvent::getSubrun()
const {
return _Header->getSubrun();}
328 uint32_t RawEvent::getEventNumberLo()
const {
return _Header->getEventNumberLo();}
329 uint32_t RawEvent::getEventNumberHi()
const {
return _Header->getEventNumberHi();}
330 uint32_t RawEvent::getEventType()
const {
return _Header->getEventType();}
331 uint32_t RawEvent::getEventSize()
const {
return _Header->getEventSize();}
332 uint32_t RawEvent::getDataBlockNumber()
const {
return _Header->getDataBlockNumber();}
333 bool RawEvent::isEventIncomplete()
const {
return _Header->isEventIncomplete();}
334 bool RawEvent::getMonteCarloFlag()
const {
return _Header->getMonteCarloFlag();}
335 bool RawEvent::isCRCCalculationUsed()
const {
return _Header->isCRCCalculationUsed();}
336 uint64_t RawEvent::getEventNumber()
const {
return _Header->getEventNumber();}
350 if(_shouldBufferBeInternal){
353 checkBufferInternalness();
357 readDataGeneral(pointer,
_Trigger->sizeofdata(),
_Header->sizeofdata());
365 bool RawEvent::setTriggerPointer(
const void* pointer){
372 _triggerVersion = daqdataformats::RawTrigger::figureOutTheVersionStatic(pointer);
381 bool RawEvent::setDataLoggerID (
const uint32_t inp) {
return _Header->setDataLoggerID (inp);}
382 bool RawEvent::setRunNumber (
const uint32_t inp) {
return _Header->setRunNumber (inp);}
383 bool RawEvent::setRunType (
const uint32_t inp) {
return _Header->setRunType (inp);}
384 bool RawEvent::setConfigIDX (
const uint32_t inp) {
return _Header->setConfigIDX (inp);}
385 bool RawEvent::setPartition (
const uint32_t inp) {
return _Header->setPartition (inp);}
386 bool RawEvent::setSubrun (
const uint32_t inp) {
return _Header->setSubrun (inp);}
387 bool RawEvent::setEventNumberLo (
const uint32_t inp) {
return _Header->setEventNumberLo (inp);}
388 bool RawEvent::setEventNumberHi (
const uint32_t inp) {
return _Header->setEventNumberHi (inp);}
389 bool RawEvent::setEventType (
const uint32_t inp) {
return _Header->setEventType (inp);}
390 bool RawEvent::setEventIncomplete(
const bool tf) {
return _Header->setEventIncomplete(tf);}
391 bool RawEvent::setMonteCarloFlag (
const bool tf) {
return _Header->setMonteCarloFlag(tf);}
392 bool RawEvent::setEventNumber (
const uint64_t evnt){
return _Header->setEventNumber(evnt);}
395 bool RawEvent::setFloatingDataBlockToBufferSource(
const void* internal_buffer_pointer)
const {
407 bool RawEvent::setFloatingDataBlock(
const uint32_t idatablock)
const {
409 const int32_t idatablock_int = (int32_t)idatablock;
416 uint32_t* pointer = NULL;
426 pointer = ((uint32_t*)_Buffer) +
_Header->sizeofdata() +
_Trigger->sizeofdata();
445 if (pointer >= end_of_buffer_pointer)
460 _Header->setDataBlockNumber(0);
475 os<<
boost::format(
"---RawEvent---------------------------------------------size = %u\n")
483 event_copy.getHeader()->print(os);
491 const uint32_t n_datablocks = event_copy.getDataBlockNumber();
492 os<<
"Number of datablocks="<<n_datablocks<<
std::endl;
495 for(uint32_t idatablock = 0; idatablock < n_datablocks; ++idatablock){
496 event_copy.setFloatingDataBlock(idatablock);
497 event_copy.getFloatingDataBlock()->print(os);
502 os<<
"There is no trigger right now\n";
509 for(uint32_t
i = 0;
i < size_of_data; ++
i){
510 printWord(
i,
false, os);
515 for(uint32_t
i = 0;
i < size_of_data; ++
i){
517 printWord(
i,
true, os);
521 os<<
boost::format(
"---end of RawEvent---------------------------------------size = %u\n")
536 const uint32_t header_size =
_Header->sizeofdata();
538 if(_shouldBufferBeInternal){
539 resizeInternalBuffer(header_size + 1);
541 checkBufferInternalness();
545 void* datablock_buffer_new = readDataGeneral(datablock_buffer, header_size, 0);
547 if(_shouldBufferBeInternal){
550 checkBufferInternalness();
557 checkBufferInternalness();
564 return datablock_buffer_new;
574 _Buffer = (
void*)pointer;
576 _shouldBufferBeInternal = isInternalBuffer();
581 _Header->setBufferSource(pointer);
596 _function_sizeofdata = (
sizeofdata_t) &VERSION_NAMESPACE::CURRENT_CLASS::sizeofdata;
616 if(isVersionUnknown())
return false;
631 header_v0.setBufferSource(pointer);
671 if(isVersionUnknown())
return false;
681 const uint32_t event_tail_size = tail_0.sizeofdata();
691 tail_0.setBufferSource(pointer);
701 _Tail->setBufferSource(pointer);
#define ZEROOUT_FUNCTION(FUNC)
#define DEEPCOPY_FUNCTION(FUNC)
#define EXECUTE_FUNCTION(FULLFUNCTIONNAME)
Execute and return the delegate.
#define VERSION_NAMESPACE
#define RETURN_FUNCTION(FULLFUNCTIONNAME)
std::string format(const int32_t &value, const int &ndigits=8)
#define PRINT_ON_DEBUG(x)