/* * PndDrcDigiWriteoutBuffer.cxx * */ // ------------------------------------------------------------------------- // ----- PndDrcDigiWriteoutBuffer source file ----- // ----- HARPHOOL KUMAWAT h.kumawat@gsi.de ----- // ----- ----- // ------------------------------------------------------------------------- #include #include "PndDrcDigi.h" ClassImp(PndDrcDigiWriteoutBuffer); PndDrcDigiWriteoutBuffer::PndDrcDigiWriteoutBuffer():FairWriteoutBuffer() { // TODO Auto-generated constructor stub } PndDrcDigiWriteoutBuffer::PndDrcDigiWriteoutBuffer(TString branchName, TString folderName, Bool_t persistance): FairWriteoutBuffer(branchName, "PndDrcDigi", folderName, persistance) { } PndDrcDigiWriteoutBuffer::~PndDrcDigiWriteoutBuffer() { // TODO Auto-generated destructor stub } void PndDrcDigiWriteoutBuffer::AddNewDataToTClonesArray(FairTimeStamp* data) { FairRootManager* ioman = FairRootManager::Instance(); TClonesArray* myArray = ioman->GetTClonesArray(fBranchName); if (fVerbose > 1){ std::cout << "Data Inserted: " << *(PndDrcDigi*)(data) << std::endl; } new ((*myArray)[myArray->GetEntries()]) PndDrcDigi(*(PndDrcDigi*)(data)); } double PndDrcDigiWriteoutBuffer::FindTimeForData(FairTimeStamp* data) { std::map::iterator it; PndDrcDigi myData = *(PndDrcDigi*)data; it = fData_map.find(myData); if (it == fData_map.end()) return -1; else return it->second; } void PndDrcDigiWriteoutBuffer::FillDataMap(FairTimeStamp* data, double activeTime) { PndDrcDigi myData = *(PndDrcDigi*)data; fData_map[myData] = activeTime; } void PndDrcDigiWriteoutBuffer::EraseDataFromDataMap(FairTimeStamp* data) { PndDrcDigi myData = *(PndDrcDigi*)data; if (fData_map.find(myData) != fData_map.end()){ fData_map.erase(fData_map.find(myData)); } } std::vector > PndDrcDigiWriteoutBuffer::Modify(std::pair oldData, std::pair newData) { std::vector > result; std::pair Result1; if (newData.first > 0) Result1.first = oldData.first + (newData.first - oldData.first); Result1.second = oldData.second; if (fVerbose > 0){ std::cout << "Modify hit" << std::endl; std::cout << "OldData: " << oldData.first << " : " << ((PndDrcDigi*)oldData.second)->GetTimeStamp() <<"("<<((PndDrcDigi*)oldData.second)->GetSensorId() <<")"<< " NewData: " << newData.first << " : " << newData.second <<" "<< ((PndDrcDigi*)newData.second)->GetTimeStamp() <<"("<<((PndDrcDigi*)newData.second)->GetSensorId() <<")"<< std::endl; std::cout << "Resulting Data: " << Result1.first << " : " << Result1.second << std::endl; } result.push_back(Result1); return result; }