#include "FairTestDetectorDigiLoader.h" #include "FairMQLogger.h" #include TestDetectorDigiLoader::TestDetectorDigiLoader() : FairMQSamplerTask("Load TestDetectorDigiPixel from rootfile into TestDetectorPayload::TestDetectorDigi") { } TestDetectorDigiLoader::~TestDetectorDigiLoader() { } void TestDetectorDigiLoader::Exec(Option_t* opt) { Int_t nTestDetectorDigis = fInput->GetEntriesFast(); Int_t size = nTestDetectorDigis * sizeof(TestDetectorPayload::TestDetectorDigi); fOutput = new FairMQMessage(size); TestDetectorPayload::TestDetectorDigi* ptr = static_cast(fOutput->GetMessage()); for (Int_t i = 0; i < nTestDetectorDigis; ++i) { FairTestDetectorDigi* testDigi = dynamic_cast(fInput->At(i)); if (testDigi != NULL) { new(&ptr[i]) TestDetectorPayload::TestDetectorDigi(); ptr[i] = TestDetectorPayload::TestDetectorDigi(); ptr[i].fX = testDigi->GetX(); ptr[i].fY = testDigi->GetY(); ptr[i].fZ = testDigi->GetZ(); ptr[i].fTimeStamp = testDigi->GetTimeStamp(); } else { continue; } } // std::cout << "Loaded " << fOutput->GetSize() << " bytes (" << nTestDetectorDigis << " entries)." << std::endl; }