/* * SttHitDemo.cxx * * Created on: Dec 6, 2012 * Author: dklein */ #include "SttHitDemo.h" #include "PndPayload.h" #include "Logger.h" namespace Highway { namespace PndProcessorTasks { SttHitDemo::SttHitDemo() { } SttHitDemo::~SttHitDemo() { } void SttHitDemo::Init() { } void SttHitDemo::Exec(Message* msg) { int inputSize = msg->Size(); int numInput = inputSize / sizeof(PndPayload::SttHit); PndPayload::SttHit* input = static_cast(msg->GetMessage()->data()); int numOutput = 3; int outputSize = numOutput * sizeof(double); void* buffer = operator new[](outputSize); double* output = static_cast(buffer); double sumIsochrone = .0; double sumPulse = .0; double sumDepCharge = .0; for (int i = 0; i < numInput; ++i) { sumIsochrone = sumIsochrone + input[i].fIsochrone; sumPulse = sumPulse + input[i].fPulse; sumDepCharge = sumDepCharge + input[i].fDepCharge; } //std::stringstream logmsg; //logmsg << "sum Isochrone: " << sumIsochrone << ", sum Pulse: " << sumPulse << ", sum DepCharge: " << sumDepCharge << ", outputSize: " << outputSize; //Logger::GetInstance()->Log(Logger::DEBUG, logmsg.str()); if (inputSize > 0) { output[0] = sumIsochrone / (double)numInput; output[1] = sumPulse / (double)numInput; output[2] = sumDepCharge / (double)numInput; } msg->GetMessage()->rebuild(buffer, outputSize, 0); } } /* namespace PndProcessorTasks */ } /* namespace Highway */