/******************************************************************************** * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * * * * This software is distributed under the terms of the * * GNU Lesser General Public Licence version 3 (LGPL) version 3, * * copied verbatim in the file "LICENSE" * ********************************************************************************/ /* * PndMapSorter.h * * Created on: Jul 15, 2010 * Author: stockman */ #ifndef PndMapSorter_H_ #define PndMapSorter_H_ #include "TObject.h" // for TObject #include "Riosfwd.h" // for ostream #include "Rtypes.h" // for PndMapSorter::Class, etc #include // for operator<<, ostream, etc #include // for multimap #include // for pair #include // for vector #include "FairTimeStamp.h" class PndMapSorter : public TObject { public: PndMapSorter(double timeOffset = 1000000) : TObject(), fOutputData(), fVerbose(0), fTimeOffset(timeOffset), fOldTS(0) { } virtual ~PndMapSorter() {}; virtual FairTimeStamp* CreateElement(FairTimeStamp* data); virtual void AddElement(FairTimeStamp* digi, double timestamp); virtual void WriteOutAll(); virtual void WriteOutData(double time); virtual std::vector GetOutputData() { return fOutputData; } virtual void DeleteOutputData() { for (auto itr : fOutputData) delete(itr); fOutputData.clear(); } virtual void print(std::ostream& out = std::cout) { } virtual void PrintMap(std::ostream& out = std::cout){ int i = 0; out << "PndMapsSorter Print Map: " << std::endl; for (std::multimap::iterator itr = fMapBuffer.begin(); itr != fMapBuffer.end(); itr++){ out << i++ << " : " << itr->first << std::endl; } out << std::endl; } private: std::multimap fMapBuffer; std::vector fOutputData; double fOldTS; double fTimeOffset; int fVerbose; ClassDef(PndMapSorter,1) }; #endif /* PndMapSorter_H_ */