/* * SttHitSampler.cxx * * Created on: Nov 28, 2012 * Author: dklein */ #include "SttHitLoader.h" #include "FairMQLogger.h" SttHitLoader::SttHitLoader() : FairMQSamplerTask("Load PndSttHits from rootfile into PndHits::SttHit") { } SttHitLoader::~SttHitLoader() { } void SttHitLoader::Exec(Option_t* opt) { Int_t nHits = fInput->GetEntriesFast(); Int_t size = nHits * sizeof(PndPayload::SttHit); void* buffer = operator new[](size); PndPayload::SttHit* ptr = static_cast(buffer); for (Int_t i = 0; i < nHits; ++i) { PndSttHit* hit = (PndSttHit*) fInput->At(i); if (hit != NULL) { new(&ptr[i]) PndPayload::SttHit(); ptr[i].fIsochrone = hit->GetIsochrone(); ptr[i].fIsochroneError = hit->GetIsochroneError(); ptr[i].fPulse = hit->GetPulse(); ptr[i].fDepCharge = hit->GetDepCharge(); ptr[i].fTubeID = hit->GetTubeID(); 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()); }