/** * MdtHitLoader.cxx * * @since Mar 15, 2013 * @autors: A. Rybalchenko, D. Klein */ #include "MdtHitLoader.h" #include "FairMQLogger.h" MdtHitLoader::MdtHitLoader() : FairMQSamplerTask("Load PndMdtHits from rootfile into PndHits::MdtHit") { } MdtHitLoader::~MdtHitLoader() { } void MdtHitLoader::Exec(Option_t* opt) { Int_t nHits = fInput->GetEntriesFast(); Int_t size = nHits * sizeof(PndPayload::MdtHit); void* buffer = operator new[](size); PndPayload::MdtHit* ptr = static_cast(buffer); for (Int_t i = 0; i < nHits; ++i) { PndMdtHit* hit = (PndMdtHit*) fInput->At(i); if (hit != NULL) { new(&ptr[i]) PndPayload::MdtHit(); ptr[i].fStripID = hit->GetStrip(); ptr[i].fStripIndex = hit->GetStripIndex(); ptr[i].fDx = hit->GetDx(); ptr[i].fDy = hit->GetDy(); ptr[i].fDz = hit->GetDz(); ptr[i].fDetectorID = hit->GetDetectorID(); ptr[i].fX = hit->GetX(); ptr[i].fY = hit->GetY(); ptr[i].fZ = hit->GetZ(); ptr[i].fTimeStamp = hit->GetTimeStamp(); ptr[i].fTimeStampError = hit->GetTimeStampError(); } else { continue; } } FairMQMessage* event = new FairMQMessage(buffer, size, NULL); fOutput->push_back(event); //std::stringstream logmsg; //logmsg << "loaded " << event->Size() << " bytes (" << nHits << "entries)."; //FairMQLogger::GetInstance()->Log(FairMQLogger::DEBUG, logmsg.str()); }